From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) by sourceware.org (Postfix) with ESMTPS id 68C363871D2C for ; Tue, 13 Dec 2022 23:54:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 68C363871D2C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linaro.org Received: by mail-wm1-x330.google.com with SMTP id r127-20020a1c4485000000b003d1e906ca23so1917519wma.3 for ; Tue, 13 Dec 2022 15:54:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=list-id:mime-version:subject:message-id:cc:to:date:from:from:to:cc :subject:date:message-id:reply-to; bh=F3tHBloVKjy6SVe5gTb0Dze72GIYSDr9F0WaSJsg7C4=; b=Jj4A5mtRDv5ubQgO8voEQ2AVkEltI0bOhzd6s+7aY55mAp7Mwiyr/iu/l7+ENzw9w7 3rl7SSs+ydP+bJhqxjOYp008ovEXytzfwjKJqNJW7xrT15uHY/5oioZTlLp0KNizN5A0 9tEDnto4XqOoeQPny1pc1TDpkQn34kK1ue9QxFZQjMdK/lssNLypuWRQYm0PbEhV1Zg9 7exS1d5gO9iJbNGjq5y4dUMOKqBuev5PYl8fOlKyYJN4mhJr6QEtDNS/BVGifWZW/31t nlpvaaPib236KdUFXiXFuecl7+vokqhkUcxlOeA+k53ZnF/3jws19vulMSwRxZGmMBGY U/Rg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=list-id:mime-version:subject:message-id:cc:to:date:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=F3tHBloVKjy6SVe5gTb0Dze72GIYSDr9F0WaSJsg7C4=; b=aYbBDc5aHzrSFPPq8n7raT4mSvweP8m4/c35L1TdaC2d6TT+if3p9cJTYVd/JAgaqa RpO9r5NXJ0ECG1SlwS0UEFPhDt6SzOYz8PJDO8HGVkHaOLii8CtG34sA8EOB5zrmbrPS bhvw23+HMJbSPvWGbB3p+152OOrop078zWXm89pJA0/Bnc4OWNAbOswjOd6mX5okye1M 4ToUG6rBtefasnb64hvrFqkqKz9DnOYcYp4wzS21E3n4SjSyc5jtUPsKGkVjgpOAD6nL OWNj7U//oLT8q/4EOow4yb0yO/D2aEuOxGpC5evvFoCJYH5U8KKmFavky/vdlqwptLDE sskg== X-Gm-Message-State: ANoB5pn2Q0A21grtkoLeVenTaq6rjePaj62wAgSURWioFOwrDDBucwSC +E913dcNtymuNcKyq5xJZWS1zg== X-Google-Smtp-Source: AA0mqf5lr1fAk64EuxEW40c3aYAMaaIz9EgdlkWBaxzllm0P0Lgshs2z/TqXY16TZiif/yxMbsy9uA== X-Received: by 2002:a05:600c:5385:b0:3c6:e61e:ae71 with SMTP id hg5-20020a05600c538500b003c6e61eae71mr20961452wmb.1.1670975655654; Tue, 13 Dec 2022 15:54:15 -0800 (PST) Received: from jenkins.jenkins (ci.linaro.org. [88.99.136.175]) by smtp.gmail.com with ESMTPSA id k13-20020a5d428d000000b00226dba960b4sm1178191wrq.3.2022.12.13.15.54.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Dec 2022 15:54:14 -0800 (PST) From: ci_notify@linaro.org X-Google-Original-From: linaro-infrastructure-errors@lists.linaro.org Date: Tue, 13 Dec 2022 23:54:13 +0000 (UTC) To: Jan Beulich Cc: gcc-regression@gcc.gnu.org Message-ID: <1807487430.1182.1670975654754@jenkins.jenkins> Subject: [TCWG CI] Failure after gdb-12-branchpoint-3046-g969b9a36506: gas: re-work line number tracking for macros and their expansions MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_1181_1980890805.1670975653850" X-Jenkins-Job: TCWG Build tcwg_gcc_bootstrap/master-arm-bootstrap_O3 X-Jenkins-Result: SUCCESS List-ID: X-Spam-Status: No, score=-13.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org ------=_Part_1181_1980890805.1670975653850 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Failure after gdb-12-branchpoint-3046-g969b9a36506: gas: re-work line numbe= r tracking for macros and their expansions: Results changed to -10 # true: 0 # build_abe binutils: 1 # build_abe bootstrap_O3: # FAILED # First few build errors in logs: # 00:08:36 make[3]: [Makefile:1818: armv8l-unknown-linux-gnueabihf/bits/lar= gefile-config.h] Error 1 (ignored) # 00:44:06 make[3]: [Makefile:1818: armv8l-unknown-linux-gnueabihf/bits/lar= gefile-config.h] Error 1 (ignored) # 01:01:09 make[3]: [Makefile:1818: armv8l-unknown-linux-gnueabihf/bits/lar= gefile-config.h] Error 1 (ignored) # 01:02:40 make[2]: *** [Makefile:25808: compare] Error 1 # 01:02:40 make[1]: *** [Makefile:25788: stage3-bubble] Error 2 # 01:02:40 make: *** [Makefile:1063: all] Error 2 from -10 # true: 0 # build_abe binutils: 1 # build_abe bootstrap_O3: 2 THIS IS THE END OF INTERESTING STUFF. BELOW ARE LINKS TO BUILDS, REPRODUCT= ION INSTRUCTIONS, AND THE RAW COMMIT. For latest status see comments in https://linaro.atlassian.net/browse/GNU-6= 92 . Status of gdb-12-branchpoint-3046-g969b9a36506 commit for tcwg_gcc_bootstra= p: commit 969b9a36506bfb386f8ce30f88f1a6a6ebbaca6e Author: Jan Beulich Date: Tue Dec 13 09:11:53 2022 +0100 gas: re-work line number tracking for macros and their expansions =20 The PR gas/16908 workaround aimed at uniformly reporting line numbers to reference macro invocation sites. As mentioned in a comment this may be desirable for small macros, but often isn't for larger ones. As a first step improve diagnostics to report both locations, while aiming a= t leaving generated debug info unaltered. =20 Note that macro invocation context is lost for any diagnostics issued only after all input was processed (or more generally for any use of as_*_where(), as the functions can't know whether the passed in locatio= n is related to [part of] the present stack of locations). To maintain th= e intended workaround behavior for PR gas/16908, a new as_where() is introduced to "look through" macro invocations, while the existing as_where() is renamed (and used in only very few places for now). Down the road as_where() will likely want to return a list of (file,line) pairs. * master-arm-bootstrap_O3 ** Failure after gdb-12-branchpoint-3046-g969b9a36506: gas: re-work line nu= mber tracking for macros and their expansions: ** https://ci.linaro.org/job/tcwg_gcc_bootstrap-build-master-arm-bootstrap_= O3/561/ Bad build: https://ci.linaro.org/job/tcwg_gcc_bootstrap-build-master-arm-b= ootstrap_O3/561/artifact/artifacts Good build: https://ci.linaro.org/job/tcwg_gcc_bootstrap-build-master-arm-b= ootstrap_O3/560/artifact/artifacts Reproduce current build: mkdir -p investigate-binutils-969b9a36506bfb386f8ce30f88f1a6a6ebbaca6e cd investigate-binutils-969b9a36506bfb386f8ce30f88f1a6a6ebbaca6e # Fetch scripts git clone https://git.linaro.org/toolchain/jenkins-scripts # Fetch manifests for bad and good builds mkdir -p bad/artifacts good/artifacts curl -o bad/artifacts/manifest.sh https://ci.linaro.org/job/tcwg_gcc_bootst= rap-build-master-arm-bootstrap_O3/561/artifact/artifacts/manifest.sh --fail curl -o good/artifacts/manifest.sh https://ci.linaro.org/job/tcwg_gcc_boots= trap-build-master-arm-bootstrap_O3/560/artifact/artifacts/manifest.sh --fai= l # Reproduce bad build (cd bad; ../jenkins-scripts/tcwg_gnu-build.sh ^^ true %%rr[top_artifacts] a= rtifacts) # Reproduce good build (cd good; ../jenkins-scripts/tcwg_gnu-build.sh ^^ true %%rr[top_artifacts] = artifacts) Full commit (up to 1000 lines): commit 969b9a36506bfb386f8ce30f88f1a6a6ebbaca6e Author: Jan Beulich Date: Tue Dec 13 09:11:53 2022 +0100 gas: re-work line number tracking for macros and their expansions =20 The PR gas/16908 workaround aimed at uniformly reporting line numbers to reference macro invocation sites. As mentioned in a comment this may be desirable for small macros, but often isn't for larger ones. As a first step improve diagnostics to report both locations, while aiming a= t leaving generated debug info unaltered. =20 Note that macro invocation context is lost for any diagnostics issued only after all input was processed (or more generally for any use of as_*_where(), as the functions can't know whether the passed in locatio= n is related to [part of] the present stack of locations). To maintain th= e intended workaround behavior for PR gas/16908, a new as_where() is introduced to "look through" macro invocations, while the existing as_where() is renamed (and used in only very few places for now). Down the road as_where() will likely want to return a list of (file,line) pairs. --- gas/as.h | 11 + gas/input-scrub.c | 102 +- gas/macro.c | 43 +- gas/messages.c | 49 +- gas/sb.h | 2 - gas/testsuite/gas/aarch64/illegal-by-element.l | 396 +++-- gas/testsuite/gas/aarch64/illegal-ldapr.l | 36 +- gas/testsuite/gas/aarch64/illegal-lse.l | 1648 +++++++++++++++-= ---- gas/testsuite/gas/aarch64/illegal-sysreg-3.l | 20 + gas/testsuite/gas/aarch64/illegal-sysreg-8.l | 184 +++ gas/testsuite/gas/aarch64/illegal-sysreg-8b.l | 29 + gas/testsuite/gas/aarch64/illegal.l | 900 +++++++---- gas/testsuite/gas/aarch64/sve-movprfx_23.l | 20 + gas/testsuite/gas/aarch64/sve-movprfx_26.l | 13 + gas/testsuite/gas/arm/armv8-2-fp16-scalar-bad.l | 702 ++++++--- gas/testsuite/gas/arm/armv8-2-fp16-simd-warning.l | 444 ++++-- gas/testsuite/gas/arm/armv8-a+rdma.l | 64 + gas/testsuite/gas/arm/bfloat16-bad.l | 43 + gas/testsuite/gas/arm/bfloat16-thumb-bad.l | 43 + .../gas/arm/group-reloc-ldc-parsing-bad.l | 435 ++++-- gas/testsuite/gas/arm/mve-vabsneg-bad-1.l | 36 +- gas/testsuite/gas/arm/mve-vabsneg-bad-2.l | 36 +- gas/testsuite/gas/arm/mve-vaddsubabd-bad-1.l | 90 +- gas/testsuite/gas/arm/mve-vaddsubabd-bad-2.l | 90 +- gas/testsuite/gas/arm/mve-vhadd-vhsub-vrhadd-bad.l | 90 +- gas/testsuite/gas/arm/mve-vldr-bad-1.l | 72 +- gas/testsuite/gas/arm/mve-vldr-bad-2.l | 36 +- gas/testsuite/gas/arm/mve-vldr-bad-3.l | 54 +- gas/testsuite/gas/arm/mve-vmul-bad-2.l | 72 +- gas/testsuite/gas/arm/mve-vqaddsub-bad.l | 72 +- gas/testsuite/gas/arm/mve-vqdmulh-bad.l | 72 +- gas/testsuite/gas/arm/mve-vqdmull-bad.l | 72 +- gas/testsuite/gas/arm/mve-vqshl-bad.l | 54 +- gas/testsuite/gas/arm/mve-vshl-bad.l | 54 +- gas/testsuite/gas/arm/mve-vstld-bad.l | 216 ++- gas/testsuite/gas/arm/mve-vstr-bad-1.l | 72 +- gas/testsuite/gas/arm/mve-vstr-bad-2.l | 36 +- gas/testsuite/gas/arm/mve-vstr-bad-3.l | 54 +- gas/testsuite/gas/arm/neon-cond-bad.l | 66 +- gas/testsuite/gas/arm/shift-bad-pc.l | 165 +- gas/testsuite/gas/arm/simd_by_scalar_low_regbank.l | 144 +- .../gas/arm/sp-pc-validations-bad-t-v8a.l | 180 ++- gas/testsuite/gas/arm/sp-pc-validations-bad-t.l | 60 +- gas/testsuite/gas/arm/t16-bad.l | 492 ++++-- gas/testsuite/gas/arm/thumb32.l | 50 +- gas/testsuite/gas/elf/bad-bss.err | 62 + gas/testsuite/gas/elf/line.l | 24 +- gas/testsuite/gas/i386/ilp32/reloc64.l | 159 +- gas/testsuite/gas/i386/noreg-intel64.l | 136 ++ gas/testsuite/gas/i386/noreg16.l | 115 ++ gas/testsuite/gas/i386/noreg32-data16.e | 30 +- gas/testsuite/gas/i386/noreg32.l | 125 ++ gas/testsuite/gas/i386/noreg64-data16.e | 30 +- gas/testsuite/gas/i386/noreg64.l | 134 ++ gas/testsuite/gas/i386/reloc32.l | 201 ++- gas/testsuite/gas/i386/reloc64.l | 249 ++- gas/testsuite/gas/ppc/bcaterr.l | 210 ++- gas/testsuite/gas/ppc/bcyerr.l | 171 +- gas/testsuite/gas/riscv/csr-version-1p10.l | 795 ++++++++++ gas/testsuite/gas/riscv/csr-version-1p11.l | 793 ++++++++++ gas/testsuite/gas/riscv/csr-version-1p12.l | 675 ++++++++ gas/testsuite/gas/riscv/csr-version-1p9p1.l | 821 ++++++++++ 62 files changed, 9757 insertions(+), 2592 deletions(-) diff --git a/gas/as.h b/gas/as.h index 61f259f77c2..65affeb3835 100644 --- a/gas/as.h +++ b/gas/as.h @@ -437,6 +437,10 @@ typedef struct _pseudo_type pseudo_typeS; #define PRINTF_WHERE_LIKE(FCN) \ void FCN (const char *file, unsigned int line, const char *format, ...) = \ __attribute__ ((__format__ (__printf__, 3, 4))) +#define PRINTF_INDENT_LIKE(FCN) \ + void FCN (const char *file, unsigned int line, unsigned int indent, \ +=09 const char *format, ...) \ + __attribute__ ((__format__ (__printf__, 4, 5))) =20 #else /* __GNUC__ < 2 || defined(VMS) */ =20 @@ -444,6 +448,10 @@ typedef struct _pseudo_type pseudo_typeS; #define PRINTF_WHERE_LIKE(FCN)=09void FCN (const char *file, \ =09=09=09=09=09 unsigned int line, \ =09=09=09=09=09 const char *format, ...) +#define PRINTF_INDENT_LIKE(FCN)=09void FCN (const char *file, \ +=09=09=09=09=09 unsigned int line, \ +=09=09=09=09=09 unsigned int indent, \ +=09=09=09=09=09 const char *format, ...) =20 #endif /* __GNUC__ < 2 || defined(VMS) */ =20 @@ -453,6 +461,7 @@ PRINTF_LIKE (as_tsktsk); PRINTF_LIKE (as_warn); PRINTF_WHERE_LIKE (as_bad_where); PRINTF_WHERE_LIKE (as_warn_where); +PRINTF_INDENT_LIKE (as_info_where); =20 void as_abort (const char *, int, const char *) ATTRIBUTE_NORETURN; void signal_init (void); @@ -487,7 +496,9 @@ void cond_finish_check (int); void cond_exit_macro (int); int seen_at_least_1_file (void); void app_pop (char *); +void as_report_context (void); const char * as_where (unsigned int *); +const char * as_where_top (unsigned int *); const char * as_where_physical (unsigned int *); void bump_line_counters (void); void do_scrub_begin (int); diff --git a/gas/input-scrub.c b/gas/input-scrub.c index 650e3e38bbd..6791ef27749 100644 --- a/gas/input-scrub.c +++ b/gas/input-scrub.c @@ -104,6 +104,9 @@ static const char *logical_input_file; static unsigned int physical_input_line; static unsigned int logical_input_line; =20 +/* Indicator whether the origin of an update was a .linefile directive. */ +static bool is_linefile; + /* Struct used to save the state of the input handler during include files= */ struct input_save { char * buffer_start; @@ -115,6 +118,7 @@ struct input_save { const char * logical_input_file; unsigned int physical_input_line; unsigned int logical_input_line; + bool is_linefile; size_t sb_index; sb from_sb; enum expansion from_sb_expansion; /* Should we do a conditional che= ck? */ @@ -166,6 +170,7 @@ input_scrub_push (char *saved_position) saved->logical_input_file =3D logical_input_file; saved->physical_input_line =3D physical_input_line; saved->logical_input_line =3D logical_input_line; + saved->is_linefile =3D is_linefile; saved->sb_index =3D sb_index; saved->from_sb =3D from_sb; saved->from_sb_expansion =3D from_sb_expansion; @@ -193,6 +198,7 @@ input_scrub_pop (struct input_save *saved) logical_input_file =3D saved->logical_input_file; physical_input_line =3D saved->physical_input_line; logical_input_line =3D saved->logical_input_line; + is_linefile =3D saved->is_linefile; sb_index =3D saved->sb_index; from_sb =3D saved->from_sb; from_sb_expansion =3D saved->from_sb_expansion; @@ -267,8 +273,6 @@ input_scrub_include_sb (sb *from, char *position, enum = expansion expansion) as_fatal (_("macros nested too deeply")); ++macro_nest; =20 - gas_assert (expansion < expanding_nested); - #ifdef md_macro_start if (expansion =3D=3D expanding_macro) { @@ -283,8 +287,6 @@ input_scrub_include_sb (sb *from, char *position, enum = expansion expansion) expansion. */ newline =3D from->len >=3D 1 && from->ptr[0] !=3D '\n'; sb_build (&from_sb, from->len + newline + 2 * sizeof (".linefile") + 30)= ; - if (expansion =3D=3D expanding_repeat && from_sb_expansion >=3D expandin= g_macro) - expansion =3D expanding_nested; from_sb_expansion =3D expansion; if (newline) { @@ -437,10 +439,7 @@ bump_line_counters (void) if (sb_index =3D=3D (size_t) -1) ++physical_input_line; =20 - /* PR gas/16908 workaround: Don't bump logical line numbers while - expanding macros, unless file (and maybe line; see as_where()) are - used inside the macro. */ - if (logical_input_line !=3D -1u && from_sb_expansion < expanding_macro) + if (logical_input_line !=3D -1u) ++logical_input_line; } =0C @@ -471,10 +470,6 @@ new_logical_line_flags (const char *fname, /* DON'T de= stroy it! We point to it! case 1 << 3: if (line_number < 0 || fname !=3D NULL) =09abort (); - /* PR gas/16908 workaround: Ignore updates when nested inside a macr= o -=09 expansion. */ - if (from_sb_expansion =3D=3D expanding_nested) -=09return; if (next_saved_file =3D=3D NULL) =09fname =3D physical_input_file; else if (next_saved_file->logical_input_file) @@ -486,6 +481,8 @@ new_logical_line_flags (const char *fname, /* DON'T des= troy it! We point to it! abort (); } =20 + is_linefile =3D flags !=3D 1 && (flags !=3D 0 || fname); + if (line_number >=3D 0) logical_input_line =3D line_number; else if (line_number =3D=3D -1 && fname && !*fname && (flags & (1 << 2))= ) @@ -499,15 +496,6 @@ new_logical_line_flags (const char *fname, /* DON'T de= stroy it! We point to it! && (logical_input_file =3D=3D NULL =09 || filename_cmp (logical_input_file, fname))) logical_input_file =3D fname; - - /* When encountering file or line changes inside a macro, arrange for - bump_line_counters() to henceforth increment the logical line number - again, just like it does when expanding repeats. See as_where() for - why changing file or line alone doesn't alter expansion mode. */ - if (from_sb_expansion =3D=3D expanding_macro - && logical_input_file !=3D NULL - && logical_input_line !=3D -1u) - from_sb_expansion =3D expanding_repeat; } =20 void @@ -516,6 +504,33 @@ new_logical_line (const char *fname, int line_number) new_logical_line_flags (fname, line_number, 0); } =20 +void +as_report_context (void) +{ + const struct input_save *saved =3D next_saved_file; + enum expansion expansion =3D from_sb_expansion; + int indent =3D 1; + + if (!macro_nest) + return; + + do + { + if (expansion !=3D expanding_macro) +=09/* Nothing. */; + else if (saved->logical_input_file !=3D NULL +=09 && saved->logical_input_line !=3D -1u) +=09as_info_where (saved->logical_input_file, saved->logical_input_line, +=09=09 indent, _("macro invoked from here")); + else +=09as_info_where (saved->physical_input_file, saved->physical_input_line, +=09=09 indent, _("macro invoked from here")); + + expansion =3D saved->from_sb_expansion; + ++indent; + } + while ((saved =3D saved->next_saved_file) !=3D NULL); +} =0C /* Return the current physical input file name and line number, if known = */ =20 @@ -534,10 +549,52 @@ as_where_physical (unsigned int *linep) return NULL; } =20 -/* Return the current file name and line number. */ +/* Return the file name and line number at the top most macro + invocation, unless .file / .line were used inside a macro. */ =20 const char * as_where (unsigned int *linep) +{ + const char *file =3D as_where_top (linep); + + if (macro_nest && is_linefile) + { + const struct input_save *saved =3D next_saved_file; + enum expansion expansion =3D from_sb_expansion; + + do +=09{ +=09 if (!saved->is_linefile) +=09 break; + +=09 if (expansion !=3D expanding_macro) +=09 /* Nothing. */; +=09 else if (saved->logical_input_file !=3D NULL +=09=09 && (linep =3D=3D NULL || saved->logical_input_line !=3D -1u)) +=09 { +=09 if (linep !=3D NULL) +=09=09*linep =3D saved->logical_input_line; +=09 file =3D saved->logical_input_file; +=09 } +=09 else if (saved->physical_input_file !=3D NULL) +=09 { +=09 if (linep !=3D NULL) +=09=09*linep =3D saved->physical_input_line; +=09 file =3D saved->physical_input_file; +=09 } + +=09 expansion =3D saved->from_sb_expansion; +=09} + while ((saved =3D saved->next_saved_file) !=3D NULL); + } + + return file; +} + +/* Return the current file name and line number. */ + +const char * +as_where_top (unsigned int *linep) { if (logical_input_file !=3D NULL && (linep =3D=3D NULL || logical_input_line !=3D -1u)) @@ -549,4 +606,3 @@ as_where (unsigned int *linep) =20 return as_where_physical (linep); } - diff --git a/gas/macro.c b/gas/macro.c index 3d5774ee5e1..c41b9c00421 100644 --- a/gas/macro.c +++ b/gas/macro.c @@ -131,23 +131,21 @@ buffer_and_nest (const char *from, const char *to, sb= *ptr, else from_len =3D strlen (from); =20 - /* Except for macros record the present source position, such that - diagnostics and debug info will be properly associated with the - respective original lines, rather than with the line of the ending - directive (TO). */ - if (from =3D=3D NULL || strcasecmp (from, "MACRO") !=3D 0) - { - unsigned int line; - char *linefile; - - as_where (&line); - if (!flag_m68k_mri) -=09linefile =3D xasprintf ("\t.linefile %u .", line + 1); - else -=09linefile =3D xasprintf ("\tlinefile %u .", line + 1); - sb_add_string (ptr, linefile); - xfree (linefile); - } + /* Record the present source position, such that diagnostics and debug i= nfo + can be properly associated with the respective original lines, rather + than with the line of the ending directive (TO). */ + { + unsigned int line; + char *linefile; + + as_where_top (&line); + if (!flag_m68k_mri) + linefile =3D xasprintf ("\t.linefile %u .", line + 1); + else + linefile =3D xasprintf ("\tlinefile %u .", line + 1); + sb_add_string (ptr, linefile); + xfree (linefile); + } =20 while (more) { @@ -249,14 +247,8 @@ buffer_and_nest (const char *from, const char *to, sb = *ptr, =09 } =20 =09 /* PR gas/16908 -=09 Apply and discard .linefile directives that appear within -=09 the macro. For long macros, one might want to report the -=09 line number information associated with the lines within -=09 the macro definition, but we would need more infrastructure -=09 to make that happen correctly (e.g. resetting the line -=09 number when expanding the macro), and since for short -=09 macros we clearly prefer reporting the point of expansion -=09 anyway, there's not an obviously better fix here. */ +=09 Apply .linefile directives that appear within the macro, alongside +=09 keeping them for later expansion of the macro. */ =09 if (from !=3D NULL && strcasecmp (from, "MACRO") =3D=3D 0 =09 && len >=3D 8 && strncasecmp (ptr->ptr + i, "linefile", 8) =3D=3D= 0) =09 { @@ -267,7 +259,6 @@ buffer_and_nest (const char *from, const char *to, sb *= ptr, =09 s_linefile (0); =09 restore_ilp (); =09 ptr->ptr[ptr->len] =3D saved_eol_char; -=09 ptr->len =3D line_start; =09 } =09} =20 diff --git a/gas/messages.c b/gas/messages.c index e43b2dbd388..2f8c6ba2b8d 100644 --- a/gas/messages.c +++ b/gas/messages.c @@ -18,6 +18,7 @@ 02110-1301, USA. */ =20 #include "as.h" +#include #include =20 /* If the system doesn't provide strsignal, we get it defined in @@ -119,7 +120,7 @@ as_show_where (void) const char *file; unsigned int line; =20 - file =3D as_where (&line); + file =3D as_where_top (&line); identify (file); if (file) { @@ -130,6 +131,25 @@ as_show_where (void) } } =20 +/* Send to stderr a string as information, with location data passed in. + Note that for now this is not intended for general use. */ + +void +as_info_where (const char *file, unsigned int line, unsigned int indent, +=09 const char *format, ...) +{ + va_list args; + char buffer[2000]; + + gas_assert (file !=3D NULL && line > 0 && indent <=3D INT_MAX); + + va_start (args, format); + vsnprintf (buffer, sizeof (buffer), format, args); + va_end (args); + fprintf (stderr, "%s:%u: %*s%s%s\n", +=09 file, line, (int)indent, "", _("Info: "), buffer); +} + /* Send to stderr a string as a warning, and locate warning in input file(s). Please only use this for when we have some recovery action. @@ -146,6 +166,7 @@ as_tsktsk (const char *format, ...) vfprintf (stderr, format, args); va_end (args); (void) putc ('\n', stderr); + as_report_context (); } =20 /* The common portion of as_warn and as_warn_where. */ @@ -153,10 +174,15 @@ as_tsktsk (const char *format, ...) static void as_warn_internal (const char *file, unsigned int line, char *buffer) { + bool context =3D false; + ++warning_count; =20 if (file =3D=3D NULL) - file =3D as_where (&line); + { + file =3D as_where_top (&line); + context =3D true; + } =20 identify (file); if (file) @@ -168,6 +194,10 @@ as_warn_internal (const char *file, unsigned int line,= char *buffer) } else fprintf (stderr, "%s%s\n", _("Warning: "), buffer); + + if (context) + as_report_context (); + #ifndef NO_LISTING listing_warning (buffer); #endif @@ -194,7 +224,7 @@ as_warn (const char *format, ...) } } =20 -/* Like as_bad but the file name and line number are passed in. +/* Like as_warn but the file name and line number are passed in. Unfortunately, we have to repeat the function in order to handle the varargs correctly and portably. */ =20 @@ -218,10 +248,15 @@ as_warn_where (const char *file, unsigned int line, c= onst char *format, ...) static void as_bad_internal (const char *file, unsigned int line, char *buffer) { + bool context =3D false; + ++error_count; =20 if (file =3D=3D NULL) - file =3D as_where (&line); + { + file =3D as_where_top (&line); + context =3D true; + } =20 identify (file); if (file) @@ -233,6 +268,10 @@ as_bad_internal (const char *file, unsigned int line, = char *buffer) } else fprintf (stderr, "%s%s\n", _("Error: "), buffer); + + if (context) + as_report_context (); + #ifndef NO_LISTING listing_error (buffer); #endif @@ -290,6 +329,7 @@ as_fatal (const char *format, ...) vfprintf (stderr, format, args); (void) putc ('\n', stderr); va_end (args); + as_report_context (); /* Delete the output file, if it exists. This will prevent make from thinking that a file was created and hence does not need rebuilding. = */ if (out_file_name !=3D NULL) @@ -312,6 +352,7 @@ as_abort (const char *file, int line, const char *fn) fprintf (stderr, _("Internal error in %s at %s:%d.\n"), fn, file, line= ); else fprintf (stderr, _("Internal error at %s:%d.\n"), file, line); + as_report_context (); =20 fprintf (stderr, _("Please report this bug.\n")); =20 diff --git a/gas/sb.h b/gas/sb.h index 4f23b3a23a7..6d67ea44c2d 100644 --- a/gas/sb.h +++ b/gas/sb.h @@ -66,11 +66,9 @@ extern size_t sb_skip_comma (size_t, sb *); =20 /* Actually in input-scrub.c. */ enum expansion { - /* Note: Order matters! */ expanding_none, expanding_repeat, expanding_macro, - expanding_nested, /* Only for internal use of input-scrub.c. */ }; extern void input_scrub_include_sb (sb *, char *, enum expansion); =20 diff --git a/gas/testsuite/gas/aarch64/illegal-by-element.l b/gas/testsuite= /gas/aarch64/illegal-by-element.l index 467ccf65552..520db792edb 100644 --- a/gas/testsuite/gas/aarch64/illegal-by-element.l +++ b/gas/testsuite/gas/aarch64/illegal-by-element.l @@ -1,133 +1,265 @@ [^:]*: Assembler messages: -[^:]*:18: Error: register number out of range 0 to 15 at operand 3 -- `fml= a v2.4h,v12.4h,v16.h\[0\]' -[^:]*:18: Error: register number out of range 0 to 15 at operand 3 -- `fml= a v2.4h,v12.4h,v27.h\[0\]' -[^:]*:18: Error: register number out of range 0 to 15 at operand 3 -- `fml= a v2.4h,v12.4h,v31.h\[0\]' -[^:]*:19: Error: register number out of range 0 to 15 at operand 3 -- `fml= al v2.4s,v12.4h,v16.h\[0\]' -[^:]*:19: Error: register number out of range 0 to 15 at operand 3 -- `fml= al v2.4s,v12.4h,v27.h\[0\]' -[^:]*:19: Error: register number out of range 0 to 15 at operand 3 -- `fml= al v2.4s,v12.4h,v31.h\[0\]' -[^:]*:20: Error: register number out of range 0 to 15 at operand 3 -- `fml= al2 v2.4s,v12.4h,v16.h\[0\]' -[^:]*:20: Error: register number out of range 0 to 15 at operand 3 -- `fml= al2 v2.4s,v12.4h,v27.h\[0\]' -[^:]*:20: Error: register number out of range 0 to 15 at operand 3 -- `fml= al2 v2.4s,v12.4h,v31.h\[0\]' -[^:]*:21: Error: register number out of range 0 to 15 at operand 3 -- `fml= s v2.4h,v12.4h,v16.h\[0\]' -[^:]*:21: Error: register number out of range 0 to 15 at operand 3 -- `fml= s v2.4h,v12.4h,v27.h\[0\]' -[^:]*:21: Error: register number out of range 0 to 15 at operand 3 -- `fml= s v2.4h,v12.4h,v31.h\[0\]' -[^:]*:22: Error: register number out of range 0 to 15 at operand 3 -- `fml= sl v2.4s,v12.4h,v16.h\[0\]' -[^:]*:22: Error: register number out of range 0 to 15 at operand 3 -- `fml= sl v2.4s,v12.4h,v27.h\[0\]' -[^:]*:22: Error: register number out of range 0 to 15 at operand 3 -- `fml= sl v2.4s,v12.4h,v31.h\[0\]' -[^:]*:23: Error: register number out of range 0 to 15 at operand 3 -- `fml= sl2 v2.4s,v12.4h,v16.h\[0\]' -[^:]*:23: Error: register number out of range 0 to 15 at operand 3 -- `fml= sl2 v2.4s,v12.4h,v27.h\[0\]' -[^:]*:23: Error: register number out of range 0 to 15 at operand 3 -- `fml= sl2 v2.4s,v12.4h,v31.h\[0\]' -[^:]*:24: Error: register number out of range 0 to 15 at operand 3 -- `fmu= l v2.4h,v12.4h,v16.h\[0\]' -[^:]*:24: Error: register number out of range 0 to 15 at operand 3 -- `fmu= l v2.4h,v12.4h,v27.h\[0\]' -[^:]*:24: Error: register number out of range 0 to 15 at operand 3 -- `fmu= l v2.4h,v12.4h,v31.h\[0\]' -[^:]*:25: Error: register number out of range 0 to 15 at operand 3 -- `fmu= lx v2.4h,v12.4h,v16.h\[0\]' -[^:]*:25: Error: register number out of range 0 to 15 at operand 3 -- `fmu= lx v2.4h,v12.4h,v27.h\[0\]' -[^:]*:25: Error: register number out of range 0 to 15 at operand 3 -- `fmu= lx v2.4h,v12.4h,v31.h\[0\]' -[^:]*:26: Error: register number out of range 0 to 15 at operand 3 -- `mla= v2.4h,v12.4h,v16.h\[0\]' -[^:]*:26: Error: register number out of range 0 to 15 at operand 3 -- `mla= v2.4h,v12.4h,v27.h\[0\]' -[^:]*:26: Error: register number out of range 0 to 15 at operand 3 -- `mla= v2.4h,v12.4h,v31.h\[0\]' -[^:]*:27: Error: register number out of range 0 to 15 at operand 3 -- `mls= v2.4h,v12.4h,v16.h\[0\]' -[^:]*:27: Error: register number out of range 0 to 15 at operand 3 -- `mls= v2.4h,v12.4h,v27.h\[0\]' -[^:]*:27: Error: register number out of range 0 to 15 at operand 3 -- `mls= v2.4h,v12.4h,v31.h\[0\]' -[^:]*:28: Error: register number out of range 0 to 15 at operand 3 -- `mul= v2.4h,v12.4h,v16.h\[0\]' -[^:]*:28: Error: register number out of range 0 to 15 at operand 3 -- `mul= v2.4h,v12.4h,v27.h\[0\]' -[^:]*:28: Error: register number out of range 0 to 15 at operand 3 -- `mul= v2.4h,v12.4h,v31.h\[0\]' -[^:]*:29: Error: register number out of range 0 to 15 at operand 3 -- `sml= al v2.4s,v12.4h,v16.h\[0\]' -[^:]*:29: Error: register number out of range 0 to 15 at operand 3 -- `sml= al v2.4s,v12.4h,v27.h\[0\]' -[^:]*:29: Error: register number out of range 0 to 15 at operand 3 -- `sml= al v2.4s,v12.4h,v31.h\[0\]' -[^:]*:30: Error: register number out of range 0 to 15 at operand 3 -- `sml= al2 v2.4s,v12.8h,v16.h\[0\]' -[^:]*:30: Error: register number out of range 0 to 15 at operand 3 -- `sml= al2 v2.4s,v12.8h,v27.h\[0\]' -[^:]*:30: Error: register number out of range 0 to 15 at operand 3 -- `sml= al2 v2.4s,v12.8h,v31.h\[0\]' -[^:]*:31: Error: register number out of range 0 to 15 at operand 3 -- `sml= sl v2.4s,v12.4h,v16.h\[0\]' -[^:]*:31: Error: register number out of range 0 to 15 at operand 3 -- `sml= sl v2.4s,v12.4h,v27.h\[0\]' -[^:]*:31: Error: register number out of range 0 to 15 at operand 3 -- `sml= sl v2.4s,v12.4h,v31.h\[0\]' -[^:]*:32: Error: register number out of range 0 to 15 at operand 3 -- `sml= sl2 v2.4s,v12.8h,v16.h\[0\]' -[^:]*:32: Error: register number out of range 0 to 15 at operand 3 -- `sml= sl2 v2.4s,v12.8h,v27.h\[0\]' -[^:]*:32: Error: register number out of range 0 to 15 at operand 3 -- `sml= sl2 v2.4s,v12.8h,v31.h\[0\]' -[^:]*:33: Error: register number out of range 0 to 15 at operand 3 -- `smu= ll v2.4s,v12.4h,v16.h\[0\]' -[^:]*:33: Error: register number out of range 0 to 15 at operand 3 -- `smu= ll v2.4s,v12.4h,v27.h\[0\]' -[^:]*:33: Error: register number out of range 0 to 15 at operand 3 -- `smu= ll v2.4s,v12.4h,v31.h\[0\]' -[^:]*:34: Error: register number out of range 0 to 15 at operand 3 -- `smu= ll2 v2.4s,v12.8h,v16.h\[0\]' -[^:]*:34: Error: register number out of range 0 to 15 at operand 3 -- `smu= ll2 v2.4s,v12.8h,v27.h\[0\]' -[^:]*:34: Error: register number out of range 0 to 15 at operand 3 -- `smu= ll2 v2.4s,v12.8h,v31.h\[0\]' -[^:]*:35: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mlal v2.4s,v12.4h,v16.h\[0\]' -[^:]*:35: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mlal v2.4s,v12.4h,v27.h\[0\]' -[^:]*:35: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mlal v2.4s,v12.4h,v31.h\[0\]' -[^:]*:36: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mlal2 v2.4s,v12.8h,v16.h\[0\]' -[^:]*:36: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mlal2 v2.4s,v12.8h,v27.h\[0\]' -[^:]*:36: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mlal2 v2.4s,v12.8h,v31.h\[0\]' -[^:]*:37: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mlsl v2.4s,v12.4h,v16.h\[0\]' -[^:]*:37: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mlsl v2.4s,v12.4h,v27.h\[0\]' -[^:]*:37: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mlsl v2.4s,v12.4h,v31.h\[0\]' -[^:]*:38: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mlsl2 v2.4s,v12.8h,v16.h\[0\]' -[^:]*:38: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mlsl2 v2.4s,v12.8h,v27.h\[0\]' -[^:]*:38: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mlsl2 v2.4s,v12.8h,v31.h\[0\]' -[^:]*:39: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mulh v2.4h,v12.4h,v16.h\[0\]' -[^:]*:39: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mulh v2.4h,v12.4h,v27.h\[0\]' -[^:]*:39: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mulh v2.4h,v12.4h,v31.h\[0\]' -[^:]*:40: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mull v2.4s,v12.4h,v16.h\[0\]' -[^:]*:40: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mull v2.4s,v12.4h,v27.h\[0\]' -[^:]*:40: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mull v2.4s,v12.4h,v31.h\[0\]' -[^:]*:41: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mull2 v2.4s,v12.8h,v16.h\[0\]' -[^:]*:41: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mull2 v2.4s,v12.8h,v27.h\[0\]' -[^:]*:41: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mull2 v2.4s,v12.8h,v31.h\[0\]' -[^:]*:42: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmlah v2.4h,v12.4h,v16.h\[0\]' -[^:]*:42: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmlah v2.4h,v12.4h,v27.h\[0\]' -[^:]*:42: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmlah v2.4h,v12.4h,v31.h\[0\]' -[^:]*:43: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmlsh v2.4h,v12.4h,v16.h\[0\]' -[^:]*:43: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmlsh v2.4h,v12.4h,v27.h\[0\]' -[^:]*:43: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmlsh v2.4h,v12.4h,v31.h\[0\]' -[^:]*:44: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmulh v2.4h,v12.4h,v16.h\[0\]' -[^:]*:44: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmulh v2.4h,v12.4h,v27.h\[0\]' -[^:]*:44: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmulh v2.4h,v12.4h,v31.h\[0\]' -[^:]*:45: Error: register number out of range 0 to 15 at operand 3 -- `uml= al v2.4s,v12.4h,v16.h\[0\]' -[^:]*:45: Error: register number out of range 0 to 15 at operand 3 -- `uml= al v2.4s,v12.4h,v27.h\[0\]' -[^:]*:45: Error: register number out of range 0 to 15 at operand 3 -- `uml= al v2.4s,v12.4h,v31.h\[0\]' -[^:]*:46: Error: register number out of range 0 to 15 at operand 3 -- `uml= al2 v2.4s,v12.8h,v16.h\[0\]' -[^:]*:46: Error: register number out of range 0 to 15 at operand 3 -- `uml= al2 v2.4s,v12.8h,v27.h\[0\]' -[^:]*:46: Error: register number out of range 0 to 15 at operand 3 -- `uml= al2 v2.4s,v12.8h,v31.h\[0\]' -[^:]*:47: Error: register number out of range 0 to 15 at operand 3 -- `uml= sl v2.4s,v12.4h,v16.h\[0\]' -[^:]*:47: Error: register number out of range 0 to 15 at operand 3 -- `uml= sl v2.4s,v12.4h,v27.h\[0\]' -[^:]*:47: Error: register number out of range 0 to 15 at operand 3 -- `uml= sl v2.4s,v12.4h,v31.h\[0\]' -[^:]*:48: Error: register number out of range 0 to 15 at operand 3 -- `uml= sl2 v2.4s,v12.8h,v16.h\[0\]' -[^:]*:48: Error: register number out of range 0 to 15 at operand 3 -- `uml= sl2 v2.4s,v12.8h,v27.h\[0\]' -[^:]*:48: Error: register number out of range 0 to 15 at operand 3 -- `uml= sl2 v2.4s,v12.8h,v31.h\[0\]' -[^:]*:49: Error: register number out of range 0 to 15 at operand 3 -- `umu= ll v2.4s,v12.4h,v16.h\[0\]' -[^:]*:49: Error: register number out of range 0 to 15 at operand 3 -- `umu= ll v2.4s,v12.4h,v27.h\[0\]' -[^:]*:49: Error: register number out of range 0 to 15 at operand 3 -- `umu= ll v2.4s,v12.4h,v31.h\[0\]' -[^:]*:50: Error: register number out of range 0 to 15 at operand 3 -- `umu= ll2 v2.4s,v12.8h,v16.h\[0\]' -[^:]*:50: Error: register number out of range 0 to 15 at operand 3 -- `umu= ll2 v2.4s,v12.8h,v27.h\[0\]' -[^:]*:50: Error: register number out of range 0 to 15 at operand 3 -- `umu= ll2 v2.4s,v12.8h,v31.h\[0\]' -[^:]*:52: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mlal s2,h12,v16.h\[0\]' -[^:]*:52: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mlal s2,h12,v27.h\[0\]' -[^:]*:52: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mlal s2,h12,v31.h\[0\]' -[^:]*:53: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mlsl s2,h12,v16.h\[0\]' -[^:]*:53: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mlsl s2,h12,v27.h\[0\]' -[^:]*:53: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mlsl s2,h12,v31.h\[0\]' -[^:]*:54: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mull s2,h12,v16.h\[0\]' -[^:]*:54: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mull s2,h12,v27.h\[0\]' -[^:]*:54: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mull s2,h12,v31.h\[0\]' -[^:]*:55: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mulh h2,h12,v16.h\[0\]' -[^:]*:55: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mulh h2,h12,v27.h\[0\]' -[^:]*:55: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mulh h2,h12,v31.h\[0\]' -[^:]*:56: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmulh h2,h12,v16.h\[0\]' -[^:]*:56: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmulh h2,h12,v27.h\[0\]' -[^:]*:56: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmulh h2,h12,v31.h\[0\]' -[^:]*:57: Error: register number out of range 0 to 15 at operand 3 -- `fml= a h2,h12,v16.h\[0\]' -[^:]*:57: Error: register number out of range 0 to 15 at operand 3 -- `fml= a h2,h12,v27.h\[0\]' -[^:]*:57: Error: register number out of range 0 to 15 at operand 3 -- `fml= a h2,h12,v31.h\[0\]' -[^:]*:58: Error: register number out of range 0 to 15 at operand 3 -- `fml= s h2,h12,v16.h\[0\]' -[^:]*:58: Error: register number out of range 0 to 15 at operand 3 -- `fml= s h2,h12,v27.h\[0\]' -[^:]*:58: Error: register number out of range 0 to 15 at operand 3 -- `fml= s h2,h12,v31.h\[0\]' -[^:]*:59: Error: register number out of range 0 to 15 at operand 3 -- `fmu= l h2,h12,v16.h\[0\]' -[^:]*:59: Error: register number out of range 0 to 15 at operand 3 -- `fmu= l h2,h12,v27.h\[0\]' -[^:]*:59: Error: register number out of range 0 to 15 at operand 3 -- `fmu= l h2,h12,v31.h\[0\]' -[^:]*:60: Error: register number out of range 0 to 15 at operand 3 -- `fmu= lx h2,h12,v16.h\[0\]' -[^:]*:60: Error: register number out of range 0 to 15 at operand 3 -- `fmu= lx h2,h12,v27.h\[0\]' -[^:]*:60: Error: register number out of range 0 to 15 at operand 3 -- `fmu= lx h2,h12,v31.h\[0\]' -[^:]*:61: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmlah h2,h12,v16.h\[0\]' -[^:]*:61: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmlah h2,h12,v27.h\[0\]' -[^:]*:61: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmlah h2,h12,v31.h\[0\]' -[^:]*:62: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmlsh h2,h12,v16.h\[0\]' -[^:]*:62: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmlsh h2,h12,v27.h\[0\]' -[^:]*:62: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmlsh h2,h12,v31.h\[0\]' +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `fmla= v2.4h,v12.4h,v16.h\[0\]' +[^:]*:18: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `fmla= v2.4h,v12.4h,v27.h\[0\]' +[^:]*:18: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `fmla= v2.4h,v12.4h,v31.h\[0\]' +[^:]*:18: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `fmla= l v2.4s,v12.4h,v16.h\[0\]' +[^:]*:19: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `fmla= l v2.4s,v12.4h,v27.h\[0\]' +[^:]*:19: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `fmla= l v2.4s,v12.4h,v31.h\[0\]' +[^:]*:19: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `fmla= l2 v2.4s,v12.4h,v16.h\[0\]' +[^:]*:20: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `fmla= l2 v2.4s,v12.4h,v27.h\[0\]' +[^:]*:20: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `fmla= l2 v2.4s,v12.4h,v31.h\[0\]' +[^:]*:20: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `fmls= v2.4h,v12.4h,v16.h\[0\]' +[^:]*:21: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `fmls= v2.4h,v12.4h,v27.h\[0\]' +[^:]*:21: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `fmls= v2.4h,v12.4h,v31.h\[0\]' +[^:]*:21: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `fmls= l v2.4s,v12.4h,v16.h\[0\]' +[^:]*:22: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `fmls= l v2.4s,v12.4h,v27.h\[0\]' +[^:]*:22: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `fmls= l v2.4s,v12.4h,v31.h\[0\]' +[^:]*:22: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `fmls= l2 v2.4s,v12.4h,v16.h\[0\]' +[^:]*:23: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `fmls= l2 v2.4s,v12.4h,v27.h\[0\]' +[^:]*:23: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `fmls= l2 v2.4s,v12.4h,v31.h\[0\]' +[^:]*:23: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `fmul= v2.4h,v12.4h,v16.h\[0\]' +[^:]*:24: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `fmul= v2.4h,v12.4h,v27.h\[0\]' +[^:]*:24: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `fmul= v2.4h,v12.4h,v31.h\[0\]' +[^:]*:24: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `fmul= x v2.4h,v12.4h,v16.h\[0\]' +[^:]*:25: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `fmul= x v2.4h,v12.4h,v27.h\[0\]' +[^:]*:25: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `fmul= x v2.4h,v12.4h,v31.h\[0\]' +[^:]*:25: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `mla = v2.4h,v12.4h,v16.h\[0\]' +[^:]*:26: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `mla = v2.4h,v12.4h,v27.h\[0\]' +[^:]*:26: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `mla = v2.4h,v12.4h,v31.h\[0\]' +[^:]*:26: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `mls = v2.4h,v12.4h,v16.h\[0\]' +[^:]*:27: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `mls = v2.4h,v12.4h,v27.h\[0\]' +[^:]*:27: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `mls = v2.4h,v12.4h,v31.h\[0\]' +[^:]*:27: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `mul = v2.4h,v12.4h,v16.h\[0\]' +[^:]*:28: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `mul = v2.4h,v12.4h,v27.h\[0\]' +[^:]*:28: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `mul = v2.4h,v12.4h,v31.h\[0\]' +[^:]*:28: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `smla= l v2.4s,v12.4h,v16.h\[0\]' +[^:]*:29: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `smla= l v2.4s,v12.4h,v27.h\[0\]' +[^:]*:29: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `smla= l v2.4s,v12.4h,v31.h\[0\]' +[^:]*:29: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `smla= l2 v2.4s,v12.8h,v16.h\[0\]' +[^:]*:30: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `smla= l2 v2.4s,v12.8h,v27.h\[0\]' +[^:]*:30: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `smla= l2 v2.4s,v12.8h,v31.h\[0\]' +[^:]*:30: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `smls= l v2.4s,v12.4h,v16.h\[0\]' +[^:]*:31: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `smls= l v2.4s,v12.4h,v27.h\[0\]' +[^:]*:31: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `smls= l v2.4s,v12.4h,v31.h\[0\]' +[^:]*:31: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `smls= l2 v2.4s,v12.8h,v16.h\[0\]' +[^:]*:32: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `smls= l2 v2.4s,v12.8h,v27.h\[0\]' +[^:]*:32: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `smls= l2 v2.4s,v12.8h,v31.h\[0\]' +[^:]*:32: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `smul= l v2.4s,v12.4h,v16.h\[0\]' +[^:]*:33: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `smul= l v2.4s,v12.4h,v27.h\[0\]' +[^:]*:33: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `smul= l v2.4s,v12.4h,v31.h\[0\]' +[^:]*:33: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `smul= l2 v2.4s,v12.8h,v16.h\[0\]' +[^:]*:34: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `smul= l2 v2.4s,v12.8h,v27.h\[0\]' +[^:]*:34: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `smul= l2 v2.4s,v12.8h,v31.h\[0\]' +[^:]*:34: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqdm= lal v2.4s,v12.4h,v16.h\[0\]' +[^:]*:35: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqdm= lal v2.4s,v12.4h,v27.h\[0\]' +[^:]*:35: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqdm= lal v2.4s,v12.4h,v31.h\[0\]' +[^:]*:35: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqdm= lal2 v2.4s,v12.8h,v16.h\[0\]' +[^:]*:36: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqdm= lal2 v2.4s,v12.8h,v27.h\[0\]' +[^:]*:36: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqdm= lal2 v2.4s,v12.8h,v31.h\[0\]' +[^:]*:36: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqdm= lsl v2.4s,v12.4h,v16.h\[0\]' +[^:]*:37: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqdm= lsl v2.4s,v12.4h,v27.h\[0\]' +[^:]*:37: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqdm= lsl v2.4s,v12.4h,v31.h\[0\]' +[^:]*:37: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqdm= lsl2 v2.4s,v12.8h,v16.h\[0\]' +[^:]*:38: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqdm= lsl2 v2.4s,v12.8h,v27.h\[0\]' +[^:]*:38: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqdm= lsl2 v2.4s,v12.8h,v31.h\[0\]' +[^:]*:38: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqdm= ulh v2.4h,v12.4h,v16.h\[0\]' +[^:]*:39: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqdm= ulh v2.4h,v12.4h,v27.h\[0\]' +[^:]*:39: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqdm= ulh v2.4h,v12.4h,v31.h\[0\]' +[^:]*:39: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqdm= ull v2.4s,v12.4h,v16.h\[0\]' +[^:]*:40: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqdm= ull v2.4s,v12.4h,v27.h\[0\]' +[^:]*:40: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqdm= ull v2.4s,v12.4h,v31.h\[0\]' +[^:]*:40: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqdm= ull2 v2.4s,v12.8h,v16.h\[0\]' +[^:]*:41: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqdm= ull2 v2.4s,v12.8h,v27.h\[0\]' +[^:]*:41: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqdm= ull2 v2.4s,v12.8h,v31.h\[0\]' +[^:]*:41: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqrd= mlah v2.4h,v12.4h,v16.h\[0\]' +[^:]*:42: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqrd= mlah v2.4h,v12.4h,v27.h\[0\]' +[^:]*:42: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqrd= mlah v2.4h,v12.4h,v31.h\[0\]' +[^:]*:42: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqrd= mlsh v2.4h,v12.4h,v16.h\[0\]' +[^:]*:43: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqrd= mlsh v2.4h,v12.4h,v27.h\[0\]' +[^:]*:43: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqrd= mlsh v2.4h,v12.4h,v31.h\[0\]' +[^:]*:43: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqrd= mulh v2.4h,v12.4h,v16.h\[0\]' +[^:]*:44: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqrd= mulh v2.4h,v12.4h,v27.h\[0\]' +[^:]*:44: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `sqrd= mulh v2.4h,v12.4h,v31.h\[0\]' +[^:]*:44: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `umla= l v2.4s,v12.4h,v16.h\[0\]' +[^:]*:45: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `umla= l v2.4s,v12.4h,v27.h\[0\]' +[^:]*:45: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `umla= l v2.4s,v12.4h,v31.h\[0\]' +[^:]*:45: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `umla= l2 v2.4s,v12.8h,v16.h\[0\]' +[^:]*:46: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `umla= l2 v2.4s,v12.8h,v27.h\[0\]' +[^:]*:46: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `umla= l2 v2.4s,v12.8h,v31.h\[0\]' +[^:]*:46: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `umls= l v2.4s,v12.4h,v16.h\[0\]' +[^:]*:47: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `umls= l v2.4s,v12.4h,v27.h\[0\]' +[^:]*:47: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `umls= l v2.4s,v12.4h,v31.h\[0\]' +[^:]*:47: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `umls= l2 v2.4s,v12.8h,v16.h\[0\]' +[^:]*:48: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `umls= l2 v2.4s,v12.8h,v27.h\[0\]' +[^:]*:48: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `umls= l2 v2.4s,v12.8h,v31.h\[0\]' +[^:]*:48: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `umul= l v2.4s,v12.4h,v16.h\[0\]' +[^:]*:49: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `umul= l v2.4s,v12.4h,v27.h\[0\]' +[^:]*:49: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `umul= l v2.4s,v12.4h,v31.h\[0\]' +[^:]*:49: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `umul= l2 v2.4s,v12.8h,v16.h\[0\]' +[^:]*:50: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `umul= l2 v2.4s,v12.8h,v27.h\[0\]' +[^:]*:50: *Info: macro .* +[^:]*:4: Error: register number out of range 0 to 15 at operand 3 -- `umul= l2 v2.4s,v12.8h,v31.h\[0\]' +[^:]*:50: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mlal s2,h12,v16.h\[0\]' +[^:]*:52: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mlal s2,h12,v27.h\[0\]' +[^:]*:52: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mlal s2,h12,v31.h\[0\]' +[^:]*:52: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mlsl s2,h12,v16.h\[0\]' +[^:]*:53: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mlsl s2,h12,v27.h\[0\]' +[^:]*:53: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mlsl s2,h12,v31.h\[0\]' +[^:]*:53: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mull s2,h12,v16.h\[0\]' +[^:]*:54: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mull s2,h12,v27.h\[0\]' +[^:]*:54: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mull s2,h12,v31.h\[0\]' +[^:]*:54: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mulh h2,h12,v16.h\[0\]' +[^:]*:55: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mulh h2,h12,v27.h\[0\]' +[^:]*:55: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `sqd= mulh h2,h12,v31.h\[0\]' +[^:]*:55: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmulh h2,h12,v16.h\[0\]' +[^:]*:56: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmulh h2,h12,v27.h\[0\]' +[^:]*:56: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmulh h2,h12,v31.h\[0\]' +[^:]*:56: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `fml= a h2,h12,v16.h\[0\]' +[^:]*:57: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `fml= a h2,h12,v27.h\[0\]' +[^:]*:57: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `fml= a h2,h12,v31.h\[0\]' +[^:]*:57: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `fml= s h2,h12,v16.h\[0\]' +[^:]*:58: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `fml= s h2,h12,v27.h\[0\]' +[^:]*:58: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `fml= s h2,h12,v31.h\[0\]' +[^:]*:58: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `fmu= l h2,h12,v16.h\[0\]' +[^:]*:59: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `fmu= l h2,h12,v27.h\[0\]' +[^:]*:59: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `fmu= l h2,h12,v31.h\[0\]' +[^:]*:59: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `fmu= lx h2,h12,v16.h\[0\]' +[^:]*:60: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `fmu= lx h2,h12,v27.h\[0\]' +[^:]*:60: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `fmu= lx h2,h12,v31.h\[0\]' +[^:]*:60: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmlah h2,h12,v16.h\[0\]' +[^:]*:61: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmlah h2,h12,v27.h\[0\]' +[^:]*:61: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmlah h2,h12,v31.h\[0\]' +[^:]*:61: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmlsh h2,h12,v16.h\[0\]' +[^:]*:62: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmlsh h2,h12,v27.h\[0\]' +[^:]*:62: *Info: macro .* +[^:]*:12: Error: register number out of range 0 to 15 at operand 3 -- `sqr= dmlsh h2,h12,v31.h\[0\]' +[^:]*:62: *Info: macro .* diff --git a/gas/testsuite/gas/aarch64/illegal-ldapr.l b/gas/testsuite/gas/= aarch64/illegal-ldapr.l index 5179cf5a477..8a91e79e8ef 100644 --- a/gas/testsuite/gas/aarch64/illegal-ldapr.l +++ b/gas/testsuite/gas/aarch64/illegal-ldapr.l @@ -2,15 +2,27 @@ [^:]+:18: Error: operand mismatch -- `ldaprb x0,\[x1\]' [^:]+:19: Error: operand mismatch -- `ldaprh x0,\[x1\]' [^:]+:20: Error: the optional immediate offset can only be 0 at operand 2 = -- `ldapr x0,\[x1,#8\]' -[^:]+:23: Error: 64-bit integer or SP register expected at operand 2 -- `l= daprb w1,\[xz\]' -[^:]+:23: Error: the optional immediate offset can only be 0 at operand 2 = -- `ldaprb w1,\[x7,#8\]' -[^:]+:23: Error: invalid addressing mode at operand 2 -- `ldaprb w1,\[x7,#= 8\]!' -[^:]+:23: Error: invalid addressing mode at operand 2 -- `ldaprb w1,\[x7\]= ,#8' -[^:]+:23: Error: 64-bit integer or SP register expected at operand 2 -- `l= daprh w1,\[xz\]' -[^:]+:23: Error: the optional immediate offset can only be 0 at operand 2 = -- `ldaprh w1,\[x7,#8\]' -[^:]+:23: Error: invalid addressing mode at operand 2 -- `ldaprh w1,\[x7,#= 8\]!' -[^:]+:23: Error: invalid addressing mode at operand 2 -- `ldaprh w1,\[x7\]= ,#8' -[^:]+:23: Error: 64-bit integer or SP register expected at operand 2 -- `l= dapr w1,\[xz\]' -[^:]+:23: Error: the optional immediate offset can only be 0 at operand 2 = -- `ldapr w1,\[x7,#8\]' -[^:]+:23: Error: invalid addressing mode at operand 2 -- `ldapr w1,\[x7,#8= \]!' -[^:]+:23: Error: invalid addressing mode at operand 2 -- `ldapr w1,\[x7\],= #8' +[^:]+:5: Error: 64-bit integer or SP register expected at operand 2 -- `ld= aprb w1,\[xz\]' +[^:]+:23: Info: macro .* +[^:]+:6: Error: the optional immediate offset can only be 0 at operand 2 -= - `ldaprb w1,\[x7,#8\]' +[^:]+:23: Info: macro .* +[^:]+:7: Error: invalid addressing mode at operand 2 -- `ldaprb w1,\[x7,#8= \]!' +[^:]+:23: Info: macro .* +[^:]+:8: Error: invalid addressing mode at operand 2 -- `ldaprb w1,\[x7\],= #8' +[^:]+:23: Info: macro .* +[^:]+:5: Error: 64-bit integer or SP register expected at operand 2 -- `ld= aprh w1,\[xz\]' +[^:]+:23: Info: macro .* +[^:]+:6: Error: the optional immediate offset can only be 0 at operand 2 -= - `ldaprh w1,\[x7,#8\]' +[^:]+:23: Info: macro .* +[^:]+:7: Error: invalid addressing mode at operand 2 -- `ldaprh w1,\[x7,#8= \]!' +[^:]+:23: Info: macro .* +[^:]+:8: Error: invalid addressing mode at operand 2 -- `ldaprh w1,\[x7\],= #8' +[^:]+:23: Info: macro .* +[^:]+:5: Error: 64-bit integer or SP register expected at operand 2 -- `ld= apr w1,\[xz\]' +[^:]+:23: Info: macro .* +[^:]+:6: Error: the optional immediate offset can only be 0 at operand 2 -= - `ldapr w1,\[x7,#8\]' +[^:]+:23: Info: macro .* +[^:]+:7: Error: invalid addressing mode at operand 2 -- `ldapr w1,\[x7,#8\= ]!' +[^:]+:23: Info: macro .* +[^:]+:8: Error: invalid addressing mode at operand 2 -- `ldapr w1,\[x7\],#= 8' +[^:]+:23: Info: macro .* diff --git a/gas/testsuite/gas/aarch64/illegal-lse.l b/gas/testsuite/gas/aa= rch64/illegal-lse.l index dd57f99ed73..b47108df161 100644 --- a/gas/testsuite/gas/aarch64/illegal-lse.l +++ b/gas/testsuite/gas/aarch64/illegal-lse.l @@ -1,433 +1,1217 @@ [^:]*: Assembler messages: -[^:]*:68: Error: operand mismatch -- `cas w0,x1,\[x2\]' ------=_Part_1181_1980890805.1670975653850--