[PATCH v5] aarch64: Disable sysreg guards by default
Richard Earnshaw
Richard.Earnshaw@arm.com
Fri Jul 11 13:08:08 GMT 2025
On 11/07/2025 10:15, Alice Carlotti wrote:
> Add a new flag -menable-sysreg-checking to restore previous behaviour.
> This existing behaviour is quite inconsistent, so the gating will
> probably be updated in the future. (In particular, many system
> registers are currently gated with the architecture version they were
> released with instead of the lower architecture version that they
> actually require).
>
> This patch retains the +d128 requirement for msrr/mrrs.
>
> Co-Authored-By: Srinath Parvathaneni <srinath.parvathaneni@arm.com>
>
> ---
>
> Compared to v3, this v5 patch drops the preliminary refactoring, and reduces
> the implementation diff to just a few hunks in gas/config/tc-aarch64.c. It
> also reenables feature checks for system instructions (since I hadn't realised
> that these were affected by previous versions), and moves the *_el3/armv8-r
> sysreg check back under the scope of the new flag.
>
>
> As in v3, I've taken the tests directly from Srinath's patch, with the only
> change being to remove some default r=1 macro arguments.
>
> Srinath wrote that:
>> All the current system registers *.d files are added with
>> "-menable-sysreg-checking" flag to assembler, so that all those
>> system registers get testing with current guarding restrictions.
>
> I don't think this is correct - from a quick check I found some system register
> tests that didn't have the flag added. But I don't think this matters too much
> (as long as all the tests pass and the new flag is getting some testing), so I
> haven't bothered to add the flag anywhere else.
>
>
> Richard, Jan, does this look ok now?
You're missing an update to the manual. Otherwise this is OK.
It would be nice if this, and the existing -mno-verbose-error option,
both of which are on/off flags could support their negated versions as
well (-mverbose-error, -mno-enable-sysreg-checking). But I think that
can wait for now.
R.
>
> Alice
>
>
> diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
> index 3dfb0774cddbc5e37bcc1b94c4963386d70e7e68..628d56b84632b38a38b5eac54b318c64fe604bcf 100644
> --- a/gas/config/tc-aarch64.c
> +++ b/gas/config/tc-aarch64.c
> @@ -4954,6 +4954,10 @@ parse_sme_sm_za (char **str)
> return TOLOWER (p[0]);
> }
>
> +/* By default, system register accesses are unguarded (apart from the
> + requirement of +d128 for mrrs/msrr). */
> +static int sysreg_checking_p = 0;
> +
> /* Parse a system register or a PSTATE field name for an MSR/MRS instruction.
> Returns the encoding for the option, or PARSE_FAIL.
>
> @@ -5008,10 +5012,11 @@ parse_sys_reg (char **str, htab_t sys_regs,
> }
> else
> {
> - if (pstatefield_p && !aarch64_pstatefield_supported_p (cpu_variant, o))
> + if (pstatefield_p && sysreg_checking_p
> + && !aarch64_pstatefield_supported_p (cpu_variant, o))
> as_bad (_("selected processor does not support PSTATE field "
> "name '%s'"), buf);
> - if (!pstatefield_p
> + if (!pstatefield_p && sysreg_checking_p
> && !aarch64_sys_ins_reg_supported_p (cpu_variant, o->name,
> o->flags, &o->features))
> as_bad (_("selected processor does not support system register "
> @@ -10553,6 +10558,9 @@ static struct aarch64_option_table aarch64_opts[] = {
> NULL},
> {"mno-verbose-error", N_("do not output verbose error messages"),
> &verbose_error_p, 0, NULL},
> + {"menable-sysreg-checking",
> + N_("enable feature flag gating for system registers"),
> + &sysreg_checking_p, 1, NULL},
> {NULL, NULL, NULL, 0, NULL}
> };
>
> diff --git a/gas/testsuite/gas/aarch64/armv8-ras-1.d b/gas/testsuite/gas/aarch64/armv8-ras-1.d
> index b10495fcd41fb3f1b258de82f8cb937e514ea870..21596c0b97be939fc3662584d1ac85b0cd1ccf81 100644
> --- a/gas/testsuite/gas/aarch64/armv8-ras-1.d
> +++ b/gas/testsuite/gas/aarch64/armv8-ras-1.d
> @@ -1,4 +1,4 @@
> -#as: -march=armv8-a+ras
> +#as: -menable-sysreg-checking -march=armv8-a+ras
> #objdump: -dr
>
> .*: file format .*
> diff --git a/gas/testsuite/gas/aarch64/armv8_4-a-registers-illegal.d b/gas/testsuite/gas/aarch64/armv8_4-a-registers-illegal.d
> index 2c00b6543087bc1238060d539decc358d6c99b60..a429d2d4f498f55b06f85f8ade1a14120e57ab27 100644
> --- a/gas/testsuite/gas/aarch64/armv8_4-a-registers-illegal.d
> +++ b/gas/testsuite/gas/aarch64/armv8_4-a-registers-illegal.d
> @@ -1,3 +1,3 @@
> -#as: -march=armv8.4-a+crypto+sm4+sha3
> +#as: -menable-sysreg-checking -march=armv8.4-a+crypto+sm4+sha3
> #source: armv8_4-a-registers-illegal.s
> #error_output: armv8_4-a-registers-illegal.l
> diff --git a/gas/testsuite/gas/aarch64/armv8_4-a-registers.d b/gas/testsuite/gas/aarch64/armv8_4-a-registers.d
> index f643c8905a115ddf2815e26ffcd6c91f1070591b..f8768c33a0cef90d72cd75d5f5364a6121438712 100644
> --- a/gas/testsuite/gas/aarch64/armv8_4-a-registers.d
> +++ b/gas/testsuite/gas/aarch64/armv8_4-a-registers.d
> @@ -1,4 +1,4 @@
> -#as: -march=armv8.4-a
> +#as: -menable-sysreg-checking -march=armv8.4-a
> #objdump: -dr
>
> .*: file format .*
> diff --git a/gas/testsuite/gas/aarch64/gpc3.d b/gas/testsuite/gas/aarch64/gpc3.d
> index 2535aefa2730c2d205f28098d367d2307650e90c..749a0ae788ca961a3f09e47dfc313f35c0640c8f 100644
> --- a/gas/testsuite/gas/aarch64/gpc3.d
> +++ b/gas/testsuite/gas/aarch64/gpc3.d
> @@ -1,5 +1,5 @@
> #name: RME_GPC3 System register
> -#as: -march=armv9.5-a
> +#as: -menable-sysreg-checking -march=armv9.5-a
> #objdump: -dr
>
> .*: file format .*
> diff --git a/gas/testsuite/gas/aarch64/illegal-ite1-1.d b/gas/testsuite/gas/aarch64/illegal-ite1-1.d
> index 99ef4d47d7b41b5b44e1da6985da1a79bc496796..d655d2d255781929939b9f9a8bee8a2c3babd331 100644
> --- a/gas/testsuite/gas/aarch64/illegal-ite1-1.d
> +++ b/gas/testsuite/gas/aarch64/illegal-ite1-1.d
> @@ -1,3 +1,3 @@
> -#as: -march=armv8-a
> +#as: -menable-sysreg-checking -march=armv8-a
> #source: ite1.s
> -#error_output: illegal-ite1-1.l
> \ No newline at end of file
> +#error_output: illegal-ite1-1.l
> diff --git a/gas/testsuite/gas/aarch64/illegal-predres2-1.d b/gas/testsuite/gas/aarch64/illegal-predres2-1.d
> index f858afd34c96fcb556daafc3d9482216789f4288..ff73ac805d523397fa1e4f4712876c11cc945fff 100644
> --- a/gas/testsuite/gas/aarch64/illegal-predres2-1.d
> +++ b/gas/testsuite/gas/aarch64/illegal-predres2-1.d
> @@ -1,3 +1,3 @@
> -#as: -march=armv8-a
> +#as: -menable-sysreg-checking -march=armv8-a
> #source: predres2.s
> -#error_output: illegal-predres2-1.l
> \ No newline at end of file
> +#error_output: illegal-predres2-1.l
> diff --git a/gas/testsuite/gas/aarch64/illegal.d b/gas/testsuite/gas/aarch64/illegal.d
> index 33bbb0c22e49557275d4856fa97170b4ec0d46fb..7367f9b9444a5119bd55170f47e17f247fabf541 100644
> --- a/gas/testsuite/gas/aarch64/illegal.d
> +++ b/gas/testsuite/gas/aarch64/illegal.d
> @@ -1,4 +1,4 @@
> #name: Illegal Instructions
> -#as: -mno-verbose-error
> +#as: -menable-sysreg-checking -mno-verbose-error
> #source: illegal.s
> #error_output: illegal.l
> diff --git a/gas/testsuite/gas/aarch64/ite1.d b/gas/testsuite/gas/aarch64/ite1.d
> index 10ccbdac53be6487d6640092bc0e26fb4ea73d30..a0d2b627c0b150e7b21f80f5f9d87918120261b3 100644
> --- a/gas/testsuite/gas/aarch64/ite1.d
> +++ b/gas/testsuite/gas/aarch64/ite1.d
> @@ -1,4 +1,4 @@
> -#as: -march=armv9.4-a+ite
> +#as: -menable-sysreg-checking -march=armv9.4-a+ite
> #objdump: -dr
>
> .*: file format .*
> diff --git a/gas/testsuite/gas/aarch64/mec-arch-bad.d b/gas/testsuite/gas/aarch64/mec-arch-bad.d
> index d2e641652161b413863224af4c1713224486e6e5..8538b7d8962e1856c569235ad72675132969b865 100644
> --- a/gas/testsuite/gas/aarch64/mec-arch-bad.d
> +++ b/gas/testsuite/gas/aarch64/mec-arch-bad.d
> @@ -1,4 +1,4 @@
> #name: MEC unavailable for architecture below armv9.2-a
> -#as: -march=armv9.1-a
> +#as: -menable-sysreg-checking -march=armv9.1-a
> #source: mec.s
> #error_output: mec-arch-bad.l
> diff --git a/gas/testsuite/gas/aarch64/mec.d b/gas/testsuite/gas/aarch64/mec.d
> index 070f831a300a3e91547ede7652cdba6fad95e32d..7a16791858fdd57decc98a38bcbfe558964c19c6 100644
> --- a/gas/testsuite/gas/aarch64/mec.d
> +++ b/gas/testsuite/gas/aarch64/mec.d
> @@ -1,5 +1,5 @@
> #name: MEC System registers
> -#as: -march=armv9.2-a
> +#as: -menable-sysreg-checking -march=armv9.2-a
> #objdump: -dr
>
> .*: file format .*
> diff --git a/gas/testsuite/gas/aarch64/msr.d b/gas/testsuite/gas/aarch64/msr.d
> index fedf2eecd0dbcd5142658b1d76dbe618a925ba0e..815c778870d9b7eb88a4db3759c4eed5f47695db 100644
> --- a/gas/testsuite/gas/aarch64/msr.d
> +++ b/gas/testsuite/gas/aarch64/msr.d
> @@ -1,4 +1,4 @@
> -#as: -march=armv8.2-a+profile
> +#as: -menable-sysreg-checking -march=armv8.2-a+profile
> #objdump: -dr
>
> .*: file format .*
> diff --git a/gas/testsuite/gas/aarch64/pan-directive.d b/gas/testsuite/gas/aarch64/pan-directive.d
> index b7e437844e57f0032ed1b06ecec8db191af07876..51fac2460a599a5df34b166a0848f2027651870f 100644
> --- a/gas/testsuite/gas/aarch64/pan-directive.d
> +++ b/gas/testsuite/gas/aarch64/pan-directive.d
> @@ -1,5 +1,5 @@
> #objdump: -dr
> -#as: --defsym DIRECTIVE=1
> +#as: -menable-sysreg-checking --defsym DIRECTIVE=1
> #source: pan.s
>
> .*: file format .*
> diff --git a/gas/testsuite/gas/aarch64/pan.d b/gas/testsuite/gas/aarch64/pan.d
> index 46c3631b11cf8354dc72e0945d0136ceaa8cf8ff..e79602bf45fafd6e2e1cb526c768259b608cc2dc 100644
> --- a/gas/testsuite/gas/aarch64/pan.d
> +++ b/gas/testsuite/gas/aarch64/pan.d
> @@ -1,5 +1,5 @@
> #objdump: -dr
> -#as: -march=armv8-a+pan
> +#as: -menable-sysreg-checking -march=armv8-a+pan
>
> .*: file format .*
>
> diff --git a/gas/testsuite/gas/aarch64/sme-8.d b/gas/testsuite/gas/aarch64/sme-8.d
> index c956baa66e5dd21b3ab6b1a83303c78636a615ee..e550d0a07a175ff74383a417bcd78610a6a15f50 100644
> --- a/gas/testsuite/gas/aarch64/sme-8.d
> +++ b/gas/testsuite/gas/aarch64/sme-8.d
> @@ -1,5 +1,5 @@
> #name: SME mode selection and state access instructions
> -#as: -march=armv8-a+sme
> +#as: -menable-sysreg-checking -march=armv8-a+sme
> #objdump: -dr
>
> .*: file format .*
> diff --git a/gas/testsuite/gas/aarch64/ssbs-illegal2.d b/gas/testsuite/gas/aarch64/ssbs-illegal2.d
> index d35757c757cbf3d4aa6155c34ebce7029eca583f..aeef0262d0abeda7001ba0a35b762342e1242261 100644
> --- a/gas/testsuite/gas/aarch64/ssbs-illegal2.d
> +++ b/gas/testsuite/gas/aarch64/ssbs-illegal2.d
> @@ -1,3 +1,3 @@
> -#as: -march=armv8-a --defsym ERROR2=1
> +#as: -menable-sysreg-checking -march=armv8-a --defsym ERROR2=1
> #source: ssbs.s
> #error_output: ssbs-illegal2.l
> diff --git a/gas/testsuite/gas/aarch64/ssbs1.d b/gas/testsuite/gas/aarch64/ssbs1.d
> index daeda76b45b8105b8431e8f881ecaca826d48b53..6dfa1787654ca6efb8b7b2c3a568c12b9992ff9a 100644
> --- a/gas/testsuite/gas/aarch64/ssbs1.d
> +++ b/gas/testsuite/gas/aarch64/ssbs1.d
> @@ -1,6 +1,6 @@
> #source: ssbs.s
> #objdump: -dr
> -#as: -march=armv8-a+ssbs --defsym SUCCESS=1
> +#as: -menable-sysreg-checking -march=armv8-a+ssbs --defsym SUCCESS=1
>
> .*: file format .*
>
> diff --git a/gas/testsuite/gas/aarch64/ssbs2.d b/gas/testsuite/gas/aarch64/ssbs2.d
> index 0027026b0f41899961563bffb48b55fd22768164..68eef6bc8ad4a01510066c571a57789d7577e948 100644
> --- a/gas/testsuite/gas/aarch64/ssbs2.d
> +++ b/gas/testsuite/gas/aarch64/ssbs2.d
> @@ -1,6 +1,6 @@
> #source: ssbs.s
> #objdump: -dr
> -#as: -march=armv8.5-a --defsym SUCCESS=1
> +#as: -menable-sysreg-checking -march=armv8.5-a --defsym SUCCESS=1
>
> .*: file format .*
>
> diff --git a/gas/testsuite/gas/aarch64/sysreg/armv8_8-a-sysregs.d b/gas/testsuite/gas/aarch64/sysreg/armv8_8-a-sysregs.d
> index 294fed2c061ae2d3782fe426b09543e85c4ed324..8b66bcfed22caade494aa740c6762e2cb7666ef9 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/armv8_8-a-sysregs.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/armv8_8-a-sysregs.d
> @@ -1,4 +1,4 @@
> -#as: -march=armv8.8-a
> +#as: -menable-sysreg-checking -march=armv8.8-a
> #objdump: -dr
>
> .*: file format .*
> diff --git a/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs-bad.d b/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs-bad.d
> index a2cb5fed63d3c3eb1ef0b7dbd947bcba18ad517b..862d47475ff7a94d5f82d79aff04936a960cce41 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs-bad.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs-bad.d
> @@ -1,3 +1,3 @@
> #source: armv8_9-a-sysregs.s
> -#as: -march=armv8.8-a -I$srcdir/$subdir --no-info
> +#as: -menable-sysreg-checking -march=armv8.8-a -I$srcdir/$subdir --no-info
> #error_output: armv8_9-a-sysregs-bad.l
> diff --git a/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs.d b/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs.d
> index ca675c47d279a4bae145c49fbb609d379b1d563a..91e77bc8b522cb592741d1adb13ff499f4a8b255 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs.d
> @@ -1,5 +1,5 @@
> #source: armv8_9-a-sysregs.s
> -#as: -march=armv8.9-a -I$srcdir/$subdir
> +#as: -menable-sysreg-checking -march=armv8.9-a -I$srcdir/$subdir
> #objdump: -dr
>
> .*: file format .*
> diff --git a/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.d b/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.d
> index 8ad01bc74092263443693bdf768783ba18c66eae..61054aed02a05111134cf2a2d6ae8cebb58b6b57 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.d
> @@ -1,3 +1,3 @@
> #source: armv9_5-a-sysregs.s
> -#as: -march=armv9.4-a -I$srcdir/$subdir
> +#as: -menable-sysreg-checking -march=armv9.4-a -I$srcdir/$subdir
> #error_output: armv9_5-a-sysregs-archv9_4-unsupported.l
> diff --git a/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.d b/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.d
> index c52142d39980fb41fb6cc61e846b606cf34d4148..55a534eaa4c59653167c46939d9c0fa169666869 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.d
> @@ -1,5 +1,5 @@
> #source: armv9_5-a-sysregs.s
> -#as: -march=armv9.5-a -I$srcdir/$subdir
> +#as: -menable-sysreg-checking -march=armv9.5-a -I$srcdir/$subdir
> #objdump: -dr
>
> .*: file format .*
> diff --git a/gas/testsuite/gas/aarch64/sysreg/fp8-feature-enables-fpmr.d b/gas/testsuite/gas/aarch64/sysreg/fp8-feature-enables-fpmr.d
> index edef376de87ed3c16a615097557b05432373e9ab..b6a470614145a3f510f51659005631806a0d07eb 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/fp8-feature-enables-fpmr.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/fp8-feature-enables-fpmr.d
> @@ -1,6 +1,6 @@
> #name: Test that fpmr register is gated and available via the fp8 feature
> #source: fpmr.s
> -#as: -march=armv9.2-a+fp8
> +#as: -menable-sysreg-checking -march=armv9.2-a+fp8
> #objdump: -dr
>
> .*: file format .*
> diff --git a/gas/testsuite/gas/aarch64/sysreg/fpmr-unsupported-by-default.d b/gas/testsuite/gas/aarch64/sysreg/fpmr-unsupported-by-default.d
> index c0b30c2e1497d53544bf94eea6013ce2b92fff6b..5f116e691e2f3dc865272ea702905d03c65bf9b0 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/fpmr-unsupported-by-default.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/fpmr-unsupported-by-default.d
> @@ -1,4 +1,4 @@
> #name: Test that fpmr register is not supported by default
> #source: fpmr.s
> -#as: -march=armv9.2-a
> +#as: -menable-sysreg-checking -march=armv9.2-a
> #error_output: fpmr-unsupported-by-default.l
> diff --git a/gas/testsuite/gas/aarch64/sysreg/gcs-sysregs-bad.d b/gas/testsuite/gas/aarch64/sysreg/gcs-sysregs-bad.d
> index 439c1bdbabaeb05ed23f998c76a409864b3d844e..3201a84af7205f577f8896e98eaee5eb9621736c 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/gcs-sysregs-bad.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/gcs-sysregs-bad.d
> @@ -1,3 +1,3 @@
> -#as: -march=armv8-a
> +#as: -menable-sysreg-checking -march=armv8-a
> #source: gcs-sysregs.s
> #error_output: gcs-sysregs-bad.l
> diff --git a/gas/testsuite/gas/aarch64/sysreg/gcs-sysregs.d b/gas/testsuite/gas/aarch64/sysreg/gcs-sysregs.d
> index f75c2708a14be2555c14d0e043486da88c9b50ad..9d8082dad9089f9fd08367a2d98b825b6a175859 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/gcs-sysregs.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/gcs-sysregs.d
> @@ -1,5 +1,5 @@
> #name: Test of Guarded Control Stack system registers
> -#as: -march=armv8.8-a+gcs
> +#as: -menable-sysreg-checking -march=armv8.8-a+gcs
> #objdump: -dr
>
> .*: file format .*
> diff --git a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-3.d b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-3.d
> index 1c5c9d9cc8d56ed3a19a2ad82556b4b1140728bc..b07919d804024c70ecfa020d46d9171f72af3c30 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-3.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-3.d
> @@ -1,3 +1,3 @@
> #source: sysreg-3.s
> -#as: -march=armv8-a -I$srcdir/$subdir --no-info
> +#as: -menable-sysreg-checking -march=armv8-a -I$srcdir/$subdir --no-info
> #error_output: illegal-sysreg-3.l
> diff --git a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-4.d b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-4.d
> index 34dd4e4ac483ec91c094abd614d65019ea1f7a4c..5a11d2e519f40c894822c5ca6d1b7a180e4c7d5f 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-4.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-4.d
> @@ -1,3 +1,3 @@
> #source: sysreg-4.s
> -#as: -march=armv8-a
> +#as: -menable-sysreg-checking -march=armv8-a
> #error_output: illegal-sysreg-4.l
> diff --git a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-4b.d b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-4b.d
> index 1504f5f4637dbeb3b604cd894d24f103d9b21bad..d32c1a2fa32d243f0b8b57191019681986a4f34a 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-4b.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-4b.d
> @@ -1,2 +1,2 @@
> -#as: -march=armv8-a
> +#as: -menable-sysreg-checking -march=armv8-a
> #error_output: illegal-sysreg-4b.l
> diff --git a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-5.d b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-5.d
> index d108d0f474feed34de58fe2793d6f66e674be5e5..481566326219b1667e3d293cc9c316560912e5c9 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-5.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-5.d
> @@ -1,3 +1,3 @@
> -#as: -march=armv8.3-a
> +#as: -menable-sysreg-checking -march=armv8.3-a
> #source: sysreg-5.s
> #error_output: illegal-sysreg-5.l
> diff --git a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-7.d b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-7.d
> index 98bc9a04835fc3fb1dff1dc7fbfab1cc19a2a4bf..72311a7c46e5ce1551cca3e269c0097000df36bb 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-7.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-7.d
> @@ -1,2 +1,3 @@
> +#as: -menable-sysreg-checking
> #source: illegal-sysreg-7.s
> #error_output: illegal-sysreg-7.l
> diff --git a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-8.d b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-8.d
> index 1e91d4949ae6987af031c927d12ec825edeb4adf..5b88d3e67f2a08f614fc8bd2ac13d23bded883c1 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-8.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-8.d
> @@ -1,2 +1,2 @@
> -#as: --no-info
> +#as: -menable-sysreg-checking --no-info
> #error_output: illegal-sysreg-8.l
> diff --git a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-8b.d b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-8b.d
> index aed5b17197f2758abd004d0cb2b3438277e37d7c..9d3f32b9797958c9e69b5d2695e59cff2d41841e 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-8b.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-8b.d
> @@ -1,2 +1,2 @@
> -#as: --no-info
> +#as: -menable-sysreg-checking --no-info
> #warning_output: illegal-sysreg-8b.l
> diff --git a/gas/testsuite/gas/aarch64/sysreg/mpam-bad.d b/gas/testsuite/gas/aarch64/sysreg/mpam-bad.d
> index c3ec372010b9139e25d3ace0e650786f1f3786f8..7d9938e7c8cb556f3cbd837e32a30e2b676058fb 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/mpam-bad.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/mpam-bad.d
> @@ -1,3 +1,3 @@
> -#as: -march=armv9.3-a
> +#as: -march=armv9.3-a -menable-sysreg-checking
> #source: mpam-bad.s
> #error_output: mpam-bad.l
> diff --git a/gas/testsuite/gas/aarch64/sysreg/pops-sysregs-bad.d b/gas/testsuite/gas/aarch64/sysreg/pops-sysregs-bad.d
> index 61a6b21daa370eadc7f9467c531da7376513e1f9..58d05bff9d723be7fbd9501ddf55286d25b95fb9 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/pops-sysregs-bad.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/pops-sysregs-bad.d
> @@ -1,3 +1,3 @@
> #source: pops-sysregs-bad.s
> -#as: -I$srcdir/$subdir
> +#as: -menable-sysreg-checking -I$srcdir/$subdir
> #error_output: pops-sysregs-bad.l
> diff --git a/gas/testsuite/gas/aarch64/sysreg/pops-sysregs.d b/gas/testsuite/gas/aarch64/sysreg/pops-sysregs.d
> index db04ab86b9400e086e56662c74ac118a15ab01d8..83729b46d06212a6e5488bd92ed0817ea2a55a80 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/pops-sysregs.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/pops-sysregs.d
> @@ -1,5 +1,5 @@
> #source: pops-sysregs.s
> -#as: -I$srcdir/$subdir
> +#as: -menable-sysreg-checking -I$srcdir/$subdir
> #objdump: -dr
>
> [^:]+: file format .*
> diff --git a/gas/testsuite/gas/aarch64/sysreg/sme-sysreg-illegal.d b/gas/testsuite/gas/aarch64/sysreg/sme-sysreg-illegal.d
> index ff0e855ffff361cea49437080c1c607b5c650532..6eae656368379847f8fdcdbb03ecc243decfe782 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/sme-sysreg-illegal.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/sme-sysreg-illegal.d
> @@ -1,3 +1,3 @@
> -#as: -march=armv8-a+sme
> +#as: -menable-sysreg-checking -march=armv8-a+sme
> #source: sme-sysreg-illegal.s
> #warning_output: sme-sysreg-illegal.l
> diff --git a/gas/testsuite/gas/aarch64/sysreg/sme-sysreg.d b/gas/testsuite/gas/aarch64/sysreg/sme-sysreg.d
> index 8eaf73ca82f1b17d3fd48ac67923edaab9e82fd4..f51c56e9c0f130afe006f6ad44ea7d7666109beb 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/sme-sysreg.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/sme-sysreg.d
> @@ -1,5 +1,5 @@
> #name: SME extension (system registers)
> -#as: -march=armv8-a+sme
> +#as: -menable-sysreg-checking -march=armv8-a+sme
> #objdump: -dr
>
> .*: file format .*
> diff --git a/gas/testsuite/gas/aarch64/sysreg/sve-sysreg-invalid.d b/gas/testsuite/gas/aarch64/sysreg/sve-sysreg-invalid.d
> index bfe2d27d4db00496c4492531b6a0944c0959ae4f..03a72b7c232da9de7cc5e8f0a0bb3005cb1b970e 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/sve-sysreg-invalid.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/sve-sysreg-invalid.d
> @@ -1,3 +1,3 @@
> -#as: -march=armv8-a+nosve
> +#as: -menable-sysreg-checking -march=armv8-a+nosve
> #source: sve-sysreg.s
> #error_output: sve-sysreg-invalid.l
> diff --git a/gas/testsuite/gas/aarch64/sysreg/sve-sysreg.d b/gas/testsuite/gas/aarch64/sysreg/sve-sysreg.d
> index 22d9e5ac1f6a38405ab0b8191552321c90628b63..2b3a24bc1bd77d90c70ac062a0ed479501197391 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/sve-sysreg.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/sve-sysreg.d
> @@ -1,4 +1,4 @@
> -#as: -march=armv8-a+sve
> +#as: -menable-sysreg-checking -march=armv8-a+sve
> #objdump: -dr
>
>
> diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-1.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-1.d
> index cecb1ad88ee60a746d7ce2a67e368658a252c26e..d770133f97bff28451ced405fa6654a71429474e 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/sysreg-1.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-1.d
> @@ -1,5 +1,5 @@
> #source: sysreg-1.s
> -#as: -I$srcdir/$subdir
> +#as: -menable-sysreg-checking -I$srcdir/$subdir
> #objdump: -dr
>
> .*: file format .*
> diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-10-bad.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-10-bad.d
> index 628de52d2caa34efc95f3917a1c7ae6488bc2778..b47e92cb162e02b1109eed2a6ab7f98689c6d90b 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/sysreg-10-bad.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-10-bad.d
> @@ -1,3 +1,3 @@
> #source: sysreg-10.s
> -#as: -march=armv8.7-a -I$srcdir/$subdir
> +#as: -menable-sysreg-checking -march=armv8.7-a -I$srcdir/$subdir
> #error_output: sysreg-10-bad.l
> diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-10.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-10.d
> index f07df916485229bf7a6f0ab7a294baf80d4a7987..55ab50efeb1ad8f6604cc90df13e2456d4989cf6 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/sysreg-10.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-10.d
> @@ -1,5 +1,5 @@
> #source: sysreg-10.s
> -#as: -march=armv8.8-a -I$srcdir/$subdir
> +#as: -menable-sysreg-checking -march=armv8.8-a -I$srcdir/$subdir
> #objdump: -dr
>
> [^:]+: file format .*
> diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-2.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-2.d
> index 1845902137e76d8b23cab95e32fb6767823545a0..140d462ae928d245870f2e15ebf0d76584fc95aa 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/sysreg-2.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-2.d
> @@ -1,5 +1,5 @@
> #source: sysreg-2.s
> -#as: -march=armv8.2-a+profile -I$srcdir/$subdir
> +#as: -menable-sysreg-checking -march=armv8.2-a+profile -I$srcdir/$subdir
> #objdump: -dr
>
> .*: file .*
> diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-3.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-3.d
> index 0135762663a47f91e30d50e40dab240e26391573..7f2ece193d3755207a610a6702025c9370447ce4 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/sysreg-3.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-3.d
> @@ -1,5 +1,5 @@
> #source: sysreg-3.s
> -#as: -march=armv8.3-a -I$srcdir/$subdir
> +#as: -menable-sysreg-checking -march=armv8.3-a -I$srcdir/$subdir
> #objdump: -dr
>
> .*: file .*
> diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-4.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-4.d
> index f0fffbee9f5e026b9ff7627c5de6946d88d25d6b..dd832c2ee40f50b0d0150f05806a8c435921f549 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/sysreg-4.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-4.d
> @@ -1,5 +1,5 @@
> #source: sysreg-4.s
> -#as: -march=armv8.5-a+rng+memtag
> +#as: -menable-sysreg-checking -march=armv8.5-a+rng+memtag
> #objdump: -dr
>
> .*: file format .*
> diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-6.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-6.d
> index cb9c46e26b6555dd246a39c9f8e387504034ae49..ef8560fa2f856411474d23b5814d3325aa184e06 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/sysreg-6.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-6.d
> @@ -1,5 +1,5 @@
> #source: sysreg-6.s
> -#as: -I$srcdir/$subdir
> +#as: -menable-sysreg-checking -I$srcdir/$subdir
> #objdump: -dr
>
> .*: file format .*
> diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-7.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-7.d
> index 846ab8b96abd9288737fb9a7176282d9a411c817..df65924a6eff380d100e4fd7a441b113c19a401c 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/sysreg-7.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-7.d
> @@ -1,5 +1,5 @@
> #source: sysreg-7.s
> -#as: -I$srcdir/$subdir
> +#as: -menable-sysreg-checking -I$srcdir/$subdir
> #objdump: -dr
>
> .*: file format .*
> diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-8.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-8.d
> index 4ee851fc32d783da1438b8d506663a9e17c118d0..8a1b07fdbfb2c02b05c1481fbb16e25b48a3c3f3 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/sysreg-8.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-8.d
> @@ -1,5 +1,5 @@
> #source: sysreg-8.s
> -#as: -I$srcdir/$subdir
> +#as: -menable-sysreg-checking -I$srcdir/$subdir
> #objdump: -dr
>
> .*
> diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-9-bad.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-9-bad.d
> index a1ebac603c6950d48972138b2526443e6486529a..72d188e5885bb7124fb6702b444c458621587c74 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/sysreg-9-bad.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-9-bad.d
> @@ -1,3 +1,3 @@
> #source: sysreg-9-bad.s
> -#as: -I$srcdir/$subdir
> +#as: -menable-sysreg-checking -I$srcdir/$subdir
> #error_output: sysreg-9-bad.l
> diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-9.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-9.d
> index 61b63ce3eec8d62fd0ed0ba12944071ee9b98795..a7fa07e96ed0d3d5f826058097aa98cc08cd301b 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/sysreg-9.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-9.d
> @@ -1,5 +1,5 @@
> #source: sysreg-9.s
> -#as: -I$srcdir/$subdir
> +#as: -menable-sysreg-checking -I$srcdir/$subdir
> #objdump: -dr
>
>
> diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-diagnostic.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-diagnostic.d
> index 55cdf09bb806d0f3fe76917b7550398c82e94c13..35267f578aa0c67132cfd38495ede3bcdba55137 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/sysreg-diagnostic.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-diagnostic.d
> @@ -1,5 +1,5 @@
> #objdump: -dr -M notes
> -#as: -march=armv8-a
> +#as: -menable-sysreg-checking -march=armv8-a
> #warning_output: sysreg-diagnostic.l
>
> .*: file format .*
> diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg.d b/gas/testsuite/gas/aarch64/sysreg/sysreg.d
> index 9aba54829e1a2f1eaa6efa4d53ab2f199c209d37..d17c77f76e8fc939489e559c140e5061eb99c06c 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/sysreg.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg.d
> @@ -1,5 +1,5 @@
> #source: sysreg.s
> -#as: -I$srcdir/$subdir
> +#as: -menable-sysreg-checking -I$srcdir/$subdir
> #objdump: -dr
>
> .*: file format .*
> diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg128.d b/gas/testsuite/gas/aarch64/sysreg/sysreg128.d
> index 22df5e241b108a945dda5bff44f207f0deb4d2cc..ffd751777c6b080a1e8d5263668728aab567f999 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/sysreg128.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg128.d
> @@ -1,5 +1,5 @@
> #source: sysreg128.s
> -#as: -I$srcdir/$subdir
> +#as: -menable-sysreg-checking -I$srcdir/$subdir
> #objdump: -dr
>
> .*
> diff --git a/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions-bad.d b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions-bad.d
> new file mode 100644
> index 0000000000000000000000000000000000000000..95ddd32f8b42c1e0439b3ff0b6266c18ffef7fbb
> --- /dev/null
> +++ b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions-bad.d
> @@ -0,0 +1,3 @@
> +#source: sysregs_with_no_restrictions.s
> +#as: -menable-sysreg-checking -I$srcdir/$subdir
> +#error_output: sysregs_with_no_restrictions-bad.l
> diff --git a/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions-bad.l b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions-bad.l
> new file mode 100644
> index 0000000000000000000000000000000000000000..f70dba97e0d88cdd24b917e48e513a952fbd2f27
> --- /dev/null
> +++ b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions-bad.l
> @@ -0,0 +1,173 @@
> +.*: Assembler messages:
> +.*: Error: selected processor does not support system register name 'mpuir_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'afsr0_el12'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'afsr0_el12'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support PSTATE field name 'uao'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'uao'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'uao'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'apdakeyhi_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'apdakeyhi_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'amcfgr_el0'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'vsttbr_el2'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'vsttbr_el2'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'scxtnum_el0'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'scxtnum_el0'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'id_pfr2_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'amcg1idr_el0'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'hcrx_el2'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'hcrx_el2'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support PSTATE field name 'allint'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'allint'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'allint'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'pfar_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'pfar_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'pir_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'pir_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'pmecr_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'pmecr_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'hdfgrtr2_el2'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'hdfgrtr2_el2'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'mdselr_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'mdselr_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'pmicfiltr_el0'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'pmicfiltr_el0'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'pmsdsfr_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'pmsdsfr_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'pmuacr_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'pmuacr_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'por_el0'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'por_el0'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 's2pir_el2'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 's2pir_el2'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 's2por_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 's2por_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'sctlr2_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'sctlr2_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'spmaccessr_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'spmaccessr_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'tcr2_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'tcr2_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'amair2_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'amair2_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'pmccntsvr_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'vdisr_el3'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'vdisr_el3'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'spmzr_el0'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'spmzr_el0'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'mdstepop_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'mdstepop_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'gpcbw_el3'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'gpcbw_el3'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'pmbmar_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'pmbmar_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'erxgsr_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'fpmr'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'fpmr'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'id_aa64zfr0_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'lorc_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'lorc_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'pmbidr_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'gcspr_el0'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'gcspr_el0'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'id_aa64smfr0_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'trcitecr_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'trcitecr_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'gcr_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'gcr_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'rndr'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support PSTATE field name 'pan'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'pan'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'pan'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support PSTATE field name 'ssbs'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'ssbs'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'ssbs'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'rcwmask_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'rcwmask_el1'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'ttbr1_el2'
> +.*: Info: macro invoked from here
> +.*: Error: selected processor does not support system register name 'ttbr1_el2'
> +.*: Info: macro invoked from here
> diff --git a/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions.d b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions.d
> new file mode 100644
> index 0000000000000000000000000000000000000000..f311c23cdae7dcc3c80fb9bea7082125dc14dd40
> --- /dev/null
> +++ b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions.d
> @@ -0,0 +1,95 @@
> +#as: -I$srcdir/$subdir
> +#objdump: -dr
> +
> +[^:]+: file format .*
> +
> +
> +[^:]+:
> +
> +[^:]+:
> +.*: d5380080 mrs x0, mpuir_el1
> +.*: d51d5100 msr afsr0_el12, x0
> +.*: d53d5100 mrs x0, afsr0_el12
> +.*: d5184280 msr uao, x0
> +.*: d5384280 mrs x0, uao
> +.*: d5182220 msr apdakeyhi_el1, x0
> +.*: d5382220 mrs x0, apdakeyhi_el1
> +.*: d53bd220 mrs x0, amcfgr_el0
> +.*: d51c2600 msr vsttbr_el2, x0
> +.*: d53c2600 mrs x0, vsttbr_el2
> +.*: d51bd0e0 msr scxtnum_el0, x0
> +.*: d53bd0e0 mrs x0, scxtnum_el0
> +.*: d5380380 mrs x0, id_pfr2_el1
> +.*: d53bd2c0 mrs x0, amcg1idr_el0
> +.*: d51c1240 msr hcrx_el2, x0
> +.*: d53c1240 mrs x0, hcrx_el2
> +.*: d5184300 msr allint, x0
> +.*: d5384300 mrs x0, allint
> +.*: d51860a0 msr pfar_el1, x0
> +.*: d53860a0 mrs x0, pfar_el1
> +.*: d518a260 msr pir_el1, x0
> +.*: d538a260 mrs x0, pir_el1
> +.*: d5189ea0 msr pmecr_el1, x0
> +.*: d5389ea0 mrs x0, pmecr_el1
> +.*: d51c3100 msr hdfgrtr2_el2, x0
> +.*: d53c3100 mrs x0, hdfgrtr2_el2
> +.*: d5100440 msr mdselr_el1, x0
> +.*: d5300440 mrs x0, mdselr_el1
> +.*: d51b9600 msr pmicfiltr_el0, x0
> +.*: d53b9600 mrs x0, pmicfiltr_el0
> +.*: d5189a80 msr pmsdsfr_el1, x0
> +.*: d5389a80 mrs x0, pmsdsfr_el1
> +.*: d5189e80 msr pmuacr_el1, x0
> +.*: d5389e80 mrs x0, pmuacr_el1
> +.*: d51ba280 msr por_el0, x0
> +.*: d53ba280 mrs x0, por_el0
> +.*: d51ca2a0 msr s2pir_el2, x0
> +.*: d53ca2a0 mrs x0, s2pir_el2
> +.*: d518a2a0 msr s2por_el1, x0
> +.*: d538a2a0 mrs x0, s2por_el1
> +.*: d5181060 msr sctlr2_el1, x0
> +.*: d5381060 mrs x0, sctlr2_el1
> +.*: d5109d60 msr spmaccessr_el1, x0
> +.*: d5309d60 mrs x0, spmaccessr_el1
> +.*: d5182060 msr tcr2_el1, x0
> +.*: d5382060 mrs x0, tcr2_el1
> +.*: d518a320 msr amair2_el1, x0
> +.*: d538a320 mrs x0, amair2_el1
> +.*: d530ebe0 mrs x0, pmccntsvr_el1
> +.*: d51ec120 msr vdisr_el3, x0
> +.*: d53ec120 mrs x0, vdisr_el3
> +.*: d5139c80 msr spmzr_el0, x0
> +.*: d5339c80 mrs x0, spmzr_el0
> +.*: d5100540 msr mdstepop_el1, x0
> +.*: d5300540 mrs x0, mdstepop_el1
> +.*: d51e21a0 msr gpcbw_el3, x0
> +.*: d53e21a0 mrs x0, gpcbw_el3
> +.*: d5189aa0 msr pmbmar_el1, x0
> +.*: d5389aa0 mrs x0, pmbmar_el1
> +.*: d5385340 mrs x0, erxgsr_el1
> +.*: d51b4440 msr fpmr, x0
> +.*: d53b4440 mrs x0, fpmr
> +.*: d5380480 mrs x0, id_aa64zfr0_el1
> +.*: d518a460 msr lorc_el1, x0
> +.*: d538a460 mrs x0, lorc_el1
> +.*: d5389ae0 mrs x0, pmbidr_el1
> +.*: d51b2520 msr gcspr_el0, x0
> +.*: d53b2520 mrs x0, gcspr_el0
> +.*: d53804a0 mrs x0, id_aa64smfr0_el1
> +.*: d5181260 msr trcitecr_el1, x0
> +.*: d5381260 mrs x0, trcitecr_el1
> +.*: d51810c0 msr gcr_el1, x0
> +.*: d53810c0 mrs x0, gcr_el1
> +.*: d53b2400 mrs x0, rndr
> +.*: d518c120 msr disr_el1, x0
> +.*: d538c120 mrs x0, disr_el1
> +.*: d5184260 msr pan, x0
> +.*: d5384260 mrs x0, pan
> +.*: d51b42c0 msr ssbs, x0
> +.*: d53b42c0 mrs x0, ssbs
> +.*: d558d0c2 msrr rcwmask_el1, x2, x3
> +.*: d578d0c2 mrrs x2, x3, rcwmask_el1
> +.*: d55c2002 msrr ttbr0_el2, x2, x3
> +.*: d57c2002 mrrs x2, x3, ttbr0_el2
> +.*: d55c2022 msrr ttbr1_el2, x2, x3
> +.*: d57c2022 mrrs x2, x3, ttbr1_el2
> diff --git a/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions.s b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions.s
> new file mode 100644
> index 0000000000000000000000000000000000000000..f5c1138ada1972e32098e6355cd8aeaf8aadf165
> --- /dev/null
> +++ b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions.s
> @@ -0,0 +1,56 @@
> + .include "sysreg-test-utils.inc"
> +.text
> + rw_sys_reg mpuir_el1 w=0 // V8R
> + rw_sys_reg afsr0_el12 // V8_1A
> + rw_sys_reg uao // V8_2A
> + rw_sys_reg apdakeyhi_el1 // V8_3A
> + rw_sys_reg amcfgr_el0 w=0 // V8_4A
> + rw_sys_reg vsttbr_el2 // V8A && V8_4A
> + rw_sys_reg scxtnum_el0 // SCXTNUM
> + rw_sys_reg id_pfr2_el1 w=0 // ID_PFR2
> + rw_sys_reg amcg1idr_el0 w=0 // V8_6A
> + rw_sys_reg hcrx_el2 // V8_7A
> + rw_sys_reg allint // V8_8A
> +
> + rw_sys_reg pfar_el1 // PFAR
> + rw_sys_reg pir_el1 // S1PIE
> + rw_sys_reg pmecr_el1 // SEBEP
> + rw_sys_reg hdfgrtr2_el2 // FGT2
> + rw_sys_reg mdselr_el1 // DEBUGv8p9
> + rw_sys_reg pmicfiltr_el0 // PMUv3_ICNTR
> + rw_sys_reg pmsdsfr_el1 // SPE_FDS
> + rw_sys_reg pmuacr_el1 // PMUv3p9
> + rw_sys_reg por_el0 // S1POE
> + rw_sys_reg s2pir_el2 // S2PIE
> + rw_sys_reg s2por_el1 // S2POE
> + rw_sys_reg sctlr2_el1 // SCTLR2
> + rw_sys_reg spmaccessr_el1 // SPMU
> + rw_sys_reg tcr2_el1 // TCR2
> + rw_sys_reg amair2_el1 // AIE
> + rw_sys_reg pmccntsvr_el1 w=0 // PMUv3_SS
> +
> + rw_sys_reg vdisr_el3 // E3DES
> + rw_sys_reg spmzr_el0 // SPMU2
> + rw_sys_reg mdstepop_el1 // STEP2
> + rw_sys_reg gpcbw_el3 // V9_5A
> +
> + rw_sys_reg pmbmar_el1 // PROFILE && V9_5A
> +
> + rw_sys_reg erxgsr_el1 w=0 // RASv2
> + rw_sys_reg fpmr // FP8
> + rw_sys_reg id_aa64zfr0_el1 w=0 // SVE
> + rw_sys_reg lorc_el1 // LOR
> + rw_sys_reg pmbidr_el1 w=0 // PROFILE
> + rw_sys_reg gcspr_el0 // GCS
> + rw_sys_reg id_aa64smfr0_el1 w=0 // SME
> + rw_sys_reg trcitecr_el1 // ITE
> + rw_sys_reg gcr_el1 // MEMTAG
> + rw_sys_reg rndr w=0 // RNG
> + rw_sys_reg disr_el1 // RAS
> + rw_sys_reg pan // PAN
> + rw_sys_reg ssbs // SSBS
> +
> + .arch_extension d128 // For the msrr and mrrs instructions.
> + rw_sys_reg_128 rcwmask_el1 xreg1=x2 xreg2=x3 // THE
> + rw_sys_reg_128 ttbr0_el2 xreg1=x2 xreg2=x3 // V8A
> + rw_sys_reg_128 ttbr1_el2 xreg1=x2 xreg2=x3 // V8A && V8_1A
> diff --git a/gas/testsuite/gas/aarch64/sysreg/sysregs_with_restrictions.d b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_restrictions.d
> new file mode 100644
> index 0000000000000000000000000000000000000000..bca119d76f340696cdd059d9f42751a938d35871
> --- /dev/null
> +++ b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_restrictions.d
> @@ -0,0 +1,95 @@
> +#as: -menable-sysreg-checking -I$srcdir/$subdir
> +#objdump: -dr
> +
> +[^:]+: file format .*
> +
> +
> +[^:]+:
> +
> +[^:]+:
> +.*: d5380080 mrs x0, mpuir_el1
> +.*: d51d5100 msr afsr0_el12, x0
> +.*: d53d5100 mrs x0, afsr0_el12
> +.*: d5184280 msr uao, x0
> +.*: d5384280 mrs x0, uao
> +.*: d5182220 msr apdakeyhi_el1, x0
> +.*: d5382220 mrs x0, apdakeyhi_el1
> +.*: d53bd220 mrs x0, amcfgr_el0
> +.*: d51c2600 msr vsttbr_el2, x0
> +.*: d53c2600 mrs x0, vsttbr_el2
> +.*: d51bd0e0 msr scxtnum_el0, x0
> +.*: d53bd0e0 mrs x0, scxtnum_el0
> +.*: d5380380 mrs x0, id_pfr2_el1
> +.*: d53bd2c0 mrs x0, amcg1idr_el0
> +.*: d51c1240 msr hcrx_el2, x0
> +.*: d53c1240 mrs x0, hcrx_el2
> +.*: d5184300 msr allint, x0
> +.*: d5384300 mrs x0, allint
> +.*: d51860a0 msr pfar_el1, x0
> +.*: d53860a0 mrs x0, pfar_el1
> +.*: d518a260 msr pir_el1, x0
> +.*: d538a260 mrs x0, pir_el1
> +.*: d5189ea0 msr pmecr_el1, x0
> +.*: d5389ea0 mrs x0, pmecr_el1
> +.*: d51c3100 msr hdfgrtr2_el2, x0
> +.*: d53c3100 mrs x0, hdfgrtr2_el2
> +.*: d5100440 msr mdselr_el1, x0
> +.*: d5300440 mrs x0, mdselr_el1
> +.*: d51b9600 msr pmicfiltr_el0, x0
> +.*: d53b9600 mrs x0, pmicfiltr_el0
> +.*: d5189a80 msr pmsdsfr_el1, x0
> +.*: d5389a80 mrs x0, pmsdsfr_el1
> +.*: d5189e80 msr pmuacr_el1, x0
> +.*: d5389e80 mrs x0, pmuacr_el1
> +.*: d51ba280 msr por_el0, x0
> +.*: d53ba280 mrs x0, por_el0
> +.*: d51ca2a0 msr s2pir_el2, x0
> +.*: d53ca2a0 mrs x0, s2pir_el2
> +.*: d518a2a0 msr s2por_el1, x0
> +.*: d538a2a0 mrs x0, s2por_el1
> +.*: d5181060 msr sctlr2_el1, x0
> +.*: d5381060 mrs x0, sctlr2_el1
> +.*: d5109d60 msr spmaccessr_el1, x0
> +.*: d5309d60 mrs x0, spmaccessr_el1
> +.*: d5182060 msr tcr2_el1, x0
> +.*: d5382060 mrs x0, tcr2_el1
> +.*: d518a320 msr amair2_el1, x0
> +.*: d538a320 mrs x0, amair2_el1
> +.*: d530ebe0 mrs x0, pmccntsvr_el1
> +.*: d51ec120 msr vdisr_el3, x0
> +.*: d53ec120 mrs x0, vdisr_el3
> +.*: d5139c80 msr spmzr_el0, x0
> +.*: d5339c80 mrs x0, spmzr_el0
> +.*: d5100540 msr mdstepop_el1, x0
> +.*: d5300540 mrs x0, mdstepop_el1
> +.*: d51e21a0 msr gpcbw_el3, x0
> +.*: d53e21a0 mrs x0, gpcbw_el3
> +.*: d5189aa0 msr pmbmar_el1, x0
> +.*: d5389aa0 mrs x0, pmbmar_el1
> +.*: d5385340 mrs x0, erxgsr_el1
> +.*: d51b4440 msr fpmr, x0
> +.*: d53b4440 mrs x0, fpmr
> +.*: d5380480 mrs x0, id_aa64zfr0_el1
> +.*: d518a460 msr lorc_el1, x0
> +.*: d538a460 mrs x0, lorc_el1
> +.*: d5389ae0 mrs x0, pmbidr_el1
> +.*: d51b2520 msr gcspr_el0, x0
> +.*: d53b2520 mrs x0, gcspr_el0
> +.*: d53804a0 mrs x0, id_aa64smfr0_el1
> +.*: d5181260 msr trcitecr_el1, x0
> +.*: d5381260 mrs x0, trcitecr_el1
> +.*: d51810c0 msr gcr_el1, x0
> +.*: d53810c0 mrs x0, gcr_el1
> +.*: d53b2400 mrs x0, rndr
> +.*: d518c120 msr disr_el1, x0
> +.*: d538c120 mrs x0, disr_el1
> +.*: d5184260 msr pan, x0
> +.*: d5384260 mrs x0, pan
> +.*: d51b42c0 msr ssbs, x0
> +.*: d53b42c0 mrs x0, ssbs
> +.*: d558d0c2 msrr rcwmask_el1, x2, x3
> +.*: d578d0c2 mrrs x2, x3, rcwmask_el1
> +.*: d55c2002 msrr ttbr0_el2, x2, x3
> +.*: d57c2002 mrrs x2, x3, ttbr0_el2
> +.*: d55c2022 msrr ttbr1_el2, x2, x3
> +.*: d57c2022 mrrs x2, x3, ttbr1_el2
> diff --git a/gas/testsuite/gas/aarch64/sysreg/sysregs_with_restrictions.s b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_restrictions.s
> new file mode 100644
> index 0000000000000000000000000000000000000000..0cdb822fdf4a98c059ad1cf2c9b6fc1f0645ab8f
> --- /dev/null
> +++ b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_restrictions.s
> @@ -0,0 +1,93 @@
> + .include "sysreg-test-utils.inc"
> +.text
> + .arch armv8-r
> + rw_sys_reg mpuir_el1 w=0 // V8R
> +
> + .arch armv8.1-a
> + rw_sys_reg afsr0_el12 // V8_1A
> +
> + .arch armv8.2-a
> + rw_sys_reg uao // V8_2A
> +
> + .arch armv8.3-a
> + rw_sys_reg apdakeyhi_el1 // V8_3A
> +
> + .arch armv8.4-a
> + rw_sys_reg amcfgr_el0 w=0 // V8_4A
> + rw_sys_reg vsttbr_el2 // V8A && V8_4A
> +
> + .arch armv8.5-a
> + rw_sys_reg scxtnum_el0 // SCXTNUM
> + rw_sys_reg id_pfr2_el1 w=0 // ID_PFR2
> +
> + .arch armv8.6-a
> + rw_sys_reg amcg1idr_el0 w=0 // V8_6A
> +
> + .arch armv8.7-a
> + rw_sys_reg hcrx_el2 // V8_7A
> +
> + .arch armv8.8-a
> + rw_sys_reg allint // V8_8A
> +
> + .arch armv8.9-a
> + rw_sys_reg pfar_el1 // PFAR
> + rw_sys_reg pir_el1 // S1PIE
> + rw_sys_reg pmecr_el1 // SEBEP
> + rw_sys_reg hdfgrtr2_el2 // FGT2
> + rw_sys_reg mdselr_el1 // DEBUGv8p9
> + rw_sys_reg pmicfiltr_el0 // PMUv3_ICNTR
> + rw_sys_reg pmsdsfr_el1 // SPE_FDS
> + rw_sys_reg pmuacr_el1 // PMUv3p9
> + rw_sys_reg por_el0 // S1POE
> + rw_sys_reg s2pir_el2 // S2PIE
> + rw_sys_reg s2por_el1 // S2POE
> + rw_sys_reg sctlr2_el1 // SCTLR2
> + rw_sys_reg spmaccessr_el1 // SPMU
> + rw_sys_reg tcr2_el1 // TCR2
> + rw_sys_reg amair2_el1 // AIE
> + rw_sys_reg pmccntsvr_el1 w=0 // PMUv3_SS
> +
> + .arch armv9.5-a
> + rw_sys_reg vdisr_el3 // E3DES
> + rw_sys_reg spmzr_el0 // SPMU2
> + rw_sys_reg mdstepop_el1 // STEP2
> + rw_sys_reg gpcbw_el3 // V9_5A
> +
> + .arch armv9.5-a+profile
> + rw_sys_reg pmbmar_el1 // PROFILE && V9_5A
> +
> + .arch_extension rasv2
> + rw_sys_reg erxgsr_el1 w=0 // RASv2
> + .arch_extension fp8
> + rw_sys_reg fpmr // FP8
> + .arch_extension sve
> + rw_sys_reg id_aa64zfr0_el1 w=0 // SVE
> + .arch_extension lor
> + rw_sys_reg lorc_el1 // LOR
> + .arch_extension profile
> + rw_sys_reg pmbidr_el1 w=0 // PROFILE
> + .arch_extension gcs
> + rw_sys_reg gcspr_el0 // GCS
> + .arch_extension sme
> + rw_sys_reg id_aa64smfr0_el1 w=0 // SME
> + .arch_extension ite
> + rw_sys_reg trcitecr_el1 // ITE
> + .arch_extension memtag
> + rw_sys_reg gcr_el1 // MEMTAG
> + .arch_extension rng
> + rw_sys_reg rndr w=0 // RNG
> + .arch_extension ras
> + rw_sys_reg disr_el1 // RAS
> + .arch_extension pan
> + rw_sys_reg pan // PAN
> + .arch_extension ssbs
> + rw_sys_reg ssbs // SSBS
> +
> + .arch_extension d128 // For the msrr and mrrs instructions.
> + .arch_extension the
> + rw_sys_reg_128 rcwmask_el1 xreg1=x2 xreg2=x3 // THE
> +
> + .arch armv8-a+d128
> + rw_sys_reg_128 ttbr0_el2 xreg1=x2 xreg2=x3 // V8A
> + .arch armv8.1-a+d128
> + rw_sys_reg_128 ttbr1_el2 xreg1=x2 xreg2=x3 // V8A && V8_1A
> diff --git a/gas/testsuite/gas/aarch64/sysreg/v8-r-bad-sysregs.d b/gas/testsuite/gas/aarch64/sysreg/v8-r-bad-sysregs.d
> index 6677f3b6579786bcae91f0b7d2617df01bbc6ae9..a228b59303d6aa33c8fd24950ca196f2cc0c1330 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/v8-r-bad-sysregs.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/v8-r-bad-sysregs.d
> @@ -1,3 +1,4 @@
> #name: invalid system registers for Armv8-R AArch64
> +#as: -menable-sysreg-checking
> #source: v8-r-bad-sysregs.s
> #error_output: v8-r-bad-sysregs.l
> diff --git a/gas/testsuite/gas/aarch64/sysreg/v8-r-sysregs-need-arch.d b/gas/testsuite/gas/aarch64/sysreg/v8-r-sysregs-need-arch.d
> index af8319697a7a3468a8861d8945254ed3184ec610..98756de537c96442612068c922837969df555b59 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/v8-r-sysregs-need-arch.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/v8-r-sysregs-need-arch.d
> @@ -1,3 +1,4 @@
> #name: check that Armv8-R system registers are rejected without -march=armv8-r
> +#as: -menable-sysreg-checking
> #source: v8-r-sysregs.s
> #error_output: v8-r-sysregs-need-arch.l
> diff --git a/gas/testsuite/gas/aarch64/sysreg/v8-r-sysregs.d b/gas/testsuite/gas/aarch64/sysreg/v8-r-sysregs.d
> index aa8321e187b2800922bfdf826ccf783a95f75d83..03e7fabcb6ce62a50293ff46048d42904e9cee84 100644
> --- a/gas/testsuite/gas/aarch64/sysreg/v8-r-sysregs.d
> +++ b/gas/testsuite/gas/aarch64/sysreg/v8-r-sysregs.d
> @@ -1,5 +1,5 @@
> #name: Exhaustive test of Armv8-R system registers
> -#as: -march=armv8-r
> +#as: -menable-sysreg-checking -march=armv8-r
> #objdump: -dr -m aarch64:armv8-r
>
> .*: file format .*
> diff --git a/gas/testsuite/gas/aarch64/uao-directive.d b/gas/testsuite/gas/aarch64/uao-directive.d
> index 1dbe8475979c8dd7fdd56ec7e369d25f4685062d..617d73fbae583a49ec9f548ddbe2bf43b82cea02 100644
> --- a/gas/testsuite/gas/aarch64/uao-directive.d
> +++ b/gas/testsuite/gas/aarch64/uao-directive.d
> @@ -1,5 +1,5 @@
> #objdump: -dr
> -#as: --defsym DIRECTIVE=1
> +#as: -menable-sysreg-checking --defsym DIRECTIVE=1
> #source: uao.s
>
> .*: file format .*
> diff --git a/gas/testsuite/gas/aarch64/uao.d b/gas/testsuite/gas/aarch64/uao.d
> index 2fb67b1fa977ef927e7c112cbc65964e9dc46af3..387654c6d6f260673e7756631627cc7c39a5e837 100644
> --- a/gas/testsuite/gas/aarch64/uao.d
> +++ b/gas/testsuite/gas/aarch64/uao.d
> @@ -1,5 +1,5 @@
> #objdump: -dr
> -#as: -march=armv8.2-a
> +#as: -menable-sysreg-checking -march=armv8.2-a
>
> .*: file format .*
>
> diff --git a/gas/testsuite/gas/aarch64/virthostext-directive.d b/gas/testsuite/gas/aarch64/virthostext-directive.d
> index 22e8d548b085b491b9f49c9fa79d063a8ddec7c7..5e23caded69f66457ffca7c0bf622b847ab9c7b8 100644
> --- a/gas/testsuite/gas/aarch64/virthostext-directive.d
> +++ b/gas/testsuite/gas/aarch64/virthostext-directive.d
> @@ -1,5 +1,5 @@
> #objdump: -dr
> -#as: --defsym DIRECTIVE=1
> +#as: -menable-sysreg-checking --defsym DIRECTIVE=1
> #source: virthostext.s
>
>
> diff --git a/gas/testsuite/gas/aarch64/virthostext.d b/gas/testsuite/gas/aarch64/virthostext.d
> index 8e63efa6b67299b49b4815dc7dbc71d909cddc5d..218190696c208ef7c05c029e7ff2219332cc0e6c 100644
> --- a/gas/testsuite/gas/aarch64/virthostext.d
> +++ b/gas/testsuite/gas/aarch64/virthostext.d
> @@ -1,5 +1,5 @@
> #objdump: -dr
> -#as: -march=armv8.1-a
> +#as: -menable-sysreg-checking -march=armv8.1-a
> #source: virthostext.s
>
>
>
More information about the Binutils
mailing list