public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [AArch64] Use "must" rather than "should" in error messages
@ 2016-09-16 12:13 Richard Sandiford
  2016-09-20 13:52 ` Richard Earnshaw (lists)
  0 siblings, 1 reply; 2+ messages in thread
From: Richard Sandiford @ 2016-09-16 12:13 UTC (permalink / raw)
  To: binutils

One of the review comments from the SVE series was that it would
be better to use "must" rather than "should" in error messages.
I think this patch fixes all cases in the AArch64 code.
It also uses "must be" instead of "expected to be".

Tested on aarch64-linux-gnu.  OK to install?

Thanks,
Richard


opcodes/
	* aarch64-opc.c (operand_general_constraint_met_p): Use "must be"
	rather than "should be" or "expected to be" in error messages.

gas/
	* config/tc-aarch64.c (output_operand_error_record): Use "must be"
	rather than "should be" or "expected to be" in error messages.
	(parse_operands): Likewise.
	* testsuite/gas/aarch64/diagnostic.l: Likewise.
	* testsuite/gas/aarch64/legacy_reg_names.l: Likewise.
	* testsuite/gas/aarch64/sve-invalid.l: Likewise.
	* testsuite/gas/aarch64/sve-reg-diagnostic.l: Likewise.

diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index bc39fe9..9963c61 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -4543,7 +4543,7 @@ output_operand_error_record (const operand_error_record *record, char *str)
       else
 	{
 	  gas_assert (idx >= 0);
-	  as_bad (_("operand %d should be %s -- `%s'"), idx + 1,
+	  as_bad (_("operand %d must be %s -- `%s'"), idx + 1,
 		aarch64_get_operand_desc (opd_code), str);
 	}
       break;
@@ -4656,7 +4656,7 @@ output_operand_error_record (const operand_error_record *record, char *str)
 		detail->error ? detail->error : _("immediate value"),
 		detail->data[0], detail->data[1], idx + 1, str);
       else
-	as_bad (_("%s expected to be %d at operand %d -- `%s'"),
+	as_bad (_("%s must be %d at operand %d -- `%s'"),
 		detail->error ? detail->error : _("immediate value"),
 		detail->data[0], idx + 1, str);
       break;
@@ -4673,7 +4673,7 @@ output_operand_error_record (const operand_error_record *record, char *str)
       break;
 
     case AARCH64_OPDE_UNALIGNED:
-      as_bad (_("immediate value should be a multiple of "
+      as_bad (_("immediate value must be a multiple of "
 		"%d at operand %d -- `%s'"),
 	      detail->data[0], idx + 1, str);
       break;
@@ -6056,7 +6056,7 @@ parse_operands (char *str, const aarch64_opcode *opcode)
 	      else
 		{
 		  set_fatal_syntax_error
-		    (_("writeback value should be an immediate constant"));
+		    (_("writeback value must be an immediate constant"));
 		  goto failure;
 		}
 	    }
diff --git a/gas/testsuite/gas/aarch64/diagnostic.l b/gas/testsuite/gas/aarch64/diagnostic.l
index f8bbbc2..427a36a 100644
--- a/gas/testsuite/gas/aarch64/diagnostic.l
+++ b/gas/testsuite/gas/aarch64/diagnostic.l
@@ -28,10 +28,10 @@
 [^:]*:30: Error: invalid post-increment amount at operand 2 -- `st2 \{v0.4s,v1.4s\},\[sp\],#24'
 [^:]*:31: Error: invalid shift amount at operand 2 -- `ldr q0,\[x0,w0,uxtw#5\]'
 [^:]*:32: Error: invalid number of registers in the list; 2 registers are expected at operand 1 -- `st2 \{v0.4s,v1.4s,v2.4s,v3.4s\},\[sp\],#64'
-[^:]*:33: Error: shift amount expected to be 0 or 12 at operand 3 -- `adds x1,sp,2134,lsl#4'
-[^:]*:34: Error: shift amount should be a multiple of 16 at operand 2 -- `movz w0,2134,lsl#8'
+[^:]*:33: Error: shift amount must be 0 or 12 at operand 3 -- `adds x1,sp,2134,lsl#4'
+[^:]*:34: Error: shift amount must be a multiple of 16 at operand 2 -- `movz w0,2134,lsl#8'
 [^:]*:35: Error: shift amount out of range 0 to 16 at operand 2 -- `movz w0,2134,lsl#32'
-[^:]*:36: Error: shift amount should be a multiple of 16 at operand 2 -- `movz x0,2134,lsl#47'
+[^:]*:36: Error: shift amount must be a multiple of 16 at operand 2 -- `movz x0,2134,lsl#47'
 [^:]*:37: Error: immediate value out of range 1 to 17 at operand 4 -- `sbfiz w0,w7,15,18'
 [^:]*:38: Error: immediate value out of range 1 to 32 at operand 4 -- `sbfiz w0,w7,15,0'
 [^:]*:39: Error: invalid shift amount at operand 3 -- `shll v1.4s,v2.4h,#15'
@@ -42,29 +42,29 @@
 [^:]*:44: Error: immediate value out of range -128 to 255 at operand 2 -- `movi v1.4h,-129'
 [^:]*:45: Error: invalid shift operator at operand 2 -- `movi v1.4h,255,msl#8'
 [^:]*:46: Error: invalid value for immediate at operand 2 -- `movi d0,256'
-[^:]*:47: Error: immediate value should be a multiple of 8 at operand 2 -- `movi v1.4h,255,lsl#7'
+[^:]*:47: Error: immediate value must be a multiple of 8 at operand 2 -- `movi v1.4h,255,lsl#7'
 [^:]*:48: Error: shift amount out of range 0 to 8 at operand 2 -- `movi v1.4h,255,lsl#16'
-[^:]*:49: Error: shift amount expected to be 0 or 16 at operand 2 -- `movi v2.2s,255,msl#0'
-[^:]*:50: Error: shift amount expected to be 0 or 16 at operand 2 -- `movi v2.2s,255,msl#15'
+[^:]*:49: Error: shift amount must be 0 or 16 at operand 2 -- `movi v2.2s,255,msl#0'
+[^:]*:50: Error: shift amount must be 0 or 16 at operand 2 -- `movi v2.2s,255,msl#15'
 [^:]*:51: Error: invalid floating-point constant at operand 2 -- `fmov v1.2s,1.01'
 [^:]*:52: Error: invalid floating-point constant at operand 2 -- `fmov v1.2d,1.01'
 [^:]*:53: Error: invalid floating-point constant at operand 2 -- `fmov s3,1.01'
 [^:]*:54: Error: invalid floating-point constant at operand 2 -- `fmov d3,1.01'
 [^:]*:55: Error: immediate zero expected at operand 2 -- `fcmp d0,#1.0'
-[^:]*:56: Error: operand 2 should be a floating-point register -- `fcmp d0,x0'
+[^:]*:56: Error: operand 2 must be a floating-point register -- `fcmp d0,x0'
 [^:]*:57: Error: immediate zero expected at operand 3 -- `cmgt v0.4s,v2.4s,#1'
 [^:]*:58: Error: unexpected characters following instruction at operand 2 -- `fmov d3,1.00,lsl#3'
 [^:]*:59: Error: integer 64-bit register expected at operand 2 -- `st2 {v0.4s,v1.4s},\[sp\],sp'
-[^:]*:60: Error: writeback value should be an immediate constant at operand 2 -- `st2 {v0.4s,v1.4s},\[sp\],zr'
+[^:]*:60: Error: writeback value must be an immediate constant at operand 2 -- `st2 {v0.4s,v1.4s},\[sp\],zr'
 [^:]*:61: Error: invalid shift for the register offset addressing mode at operand 2 -- `ldr q0,\[x0,w0,lsr#4\]'
 [^:]*:62: Error: only 'LSL' shift is permitted at operand 3 -- `adds x1,sp,2134,uxtw#12'
 [^:]*:63: Error: shift amount out of range 0 to 63 at operand 2 -- `movz x0,2134,lsl#64'
-[^:]*:64: Error: operand 1 should be an integer register -- `adds sp,sp,2134,lsl#12'
+[^:]*:64: Error: operand 1 must be an integer register -- `adds sp,sp,2134,lsl#12'
 [^:]*:65: Error: the optional immediate offset can only be 0 at operand 2 -- `ldxrb w2,\[x0,#1\]'
 [^:]*:66: Error: invalid addressing mode at operand 2 -- `ldrb w0,x1,x2,sxtx'
 [^:]*:67: Error: invalid shift amount at operand 2 -- `prfm PLDL3KEEP,\[x9,x15,sxtx#2\]'
 [^:]*:68: Error: C0 - C15 expected at operand 3 -- `sysl x7,#1,C16,C30,#1'
-[^:]*:69: Error: operand 4 should be a 4-bit opcode field named for historical reasons C0 - C15 -- `sysl x7,#1,C15,C77,#1'
+[^:]*:69: Error: operand 4 must be a 4-bit opcode field named for historical reasons C0 - C15 -- `sysl x7,#1,C15,C77,#1'
 [^:]*:70: Error: extending shift is not permitted at operand 3 -- `add x0,xzr,x7,uxtx#5'
 [^:]*:71: Error: bad expression at operand 2 -- `mov x0,##5'
 [^:]*:72: Error: unknown mnemonic `bad' -- `bad expression'
@@ -80,29 +80,29 @@
 [^:]*:82: Error: invalid register list at operand 1 -- `ld2 \{v1.4h,v0.4h\},\[x1\]'
 [^:]*:83: Error: the specified option is not accepted in ISB at operand 1 -- `isb osh'
 [^:]*:84: Error: invalid address at operand 2 -- `st2 \{v4.2d,v5.2d,v6.2d\},\\\[x3\\\]'
-[^:]*:85: Error: immediate value should be a multiple of 4 at operand 3 -- `ldnp w7,w15,\[x3,#3\]'
+[^:]*:85: Error: immediate value must be a multiple of 4 at operand 3 -- `ldnp w7,w15,\[x3,#3\]'
 [^:]*:86: Error: unexpected address writeback at operand 3 -- `stnp x7,x15,\[x3,#32\]!'
 [^:]*:87: Error: immediate offset out of range -256 to 252 at operand 3 -- `ldnp w7,w15,\[x3,#256\]'
 [^:]*:88: Error: shift is not permitted at operand 2 -- `movi v1.2d,4294967295,lsl#0'
-[^:]*:89: Error: shift amount expected to be 0 at operand 2 -- `movi v1.8b,97,lsl#8'
+[^:]*:89: Error: shift amount must be 0 at operand 2 -- `movi v1.8b,97,lsl#8'
 [^:]*:90: Error: unknown or missing system register name at operand 1 -- `msr dummy,x1'
 [^:]*:91: Error: invalid floating-point constant at operand 2 -- `fmov s0,0x42000000'
-[^:]*:92: Error: immediate value should be a multiple of 8 at operand 3 -- `ldp x0,x1,\[x2,#4\]'
-[^:]*:93: Error: immediate value should be a multiple of 8 at operand 3 -- `ldp x0,x1,\[x2,#4\]!'
-[^:]*:94: Error: immediate value should be a multiple of 8 at operand 3 -- `ldp x0,x1,\[x2\],#4'
-[^:]*:95: Error: immediate value should be a multiple of 4 at operand 3 -- `stp w0,w1,\[x2,#3\]'
-[^:]*:96: Error: immediate value should be a multiple of 4 at operand 3 -- `stp w0,w1,\[x2,#2\]!'
-[^:]*:97: Error: immediate value should be a multiple of 4 at operand 3 -- `stp w0,w1,\[x2\],#1'
-[^:]*:98: Error: operand 3 should be one of the standard conditions, excluding AL and NV. -- `cinc w0,w1,al'
-[^:]*:99: Error: operand 3 should be one of the standard conditions, excluding AL and NV. -- `cinc w0,w1,nv'
-[^:]*:100: Error: operand 2 should be one of the standard conditions, excluding AL and NV. -- `cset w0,al'
-[^:]*:101: Error: operand 2 should be one of the standard conditions, excluding AL and NV. -- `cset w0,nv'
-[^:]*:104: Error: operand 1 should be an integer register -- `ret lr'
-[^:]*:105: Error: operand 1 should be an integer register -- `ret kk'
+[^:]*:92: Error: immediate value must be a multiple of 8 at operand 3 -- `ldp x0,x1,\[x2,#4\]'
+[^:]*:93: Error: immediate value must be a multiple of 8 at operand 3 -- `ldp x0,x1,\[x2,#4\]!'
+[^:]*:94: Error: immediate value must be a multiple of 8 at operand 3 -- `ldp x0,x1,\[x2\],#4'
+[^:]*:95: Error: immediate value must be a multiple of 4 at operand 3 -- `stp w0,w1,\[x2,#3\]'
+[^:]*:96: Error: immediate value must be a multiple of 4 at operand 3 -- `stp w0,w1,\[x2,#2\]!'
+[^:]*:97: Error: immediate value must be a multiple of 4 at operand 3 -- `stp w0,w1,\[x2\],#1'
+[^:]*:98: Error: operand 3 must be one of the standard conditions, excluding AL and NV. -- `cinc w0,w1,al'
+[^:]*:99: Error: operand 3 must be one of the standard conditions, excluding AL and NV. -- `cinc w0,w1,nv'
+[^:]*:100: Error: operand 2 must be one of the standard conditions, excluding AL and NV. -- `cset w0,al'
+[^:]*:101: Error: operand 2 must be one of the standard conditions, excluding AL and NV. -- `cset w0,nv'
+[^:]*:104: Error: operand 1 must be an integer register -- `ret lr'
+[^:]*:105: Error: operand 1 must be an integer register -- `ret kk'
 [^:]*:106: Error: immediate operand required at operand 1 -- `clrex x0'
 [^:]*:107: Error: immediate operand required at operand 1 -- `clrex w0'
 [^:]*:108: Error: constant expression required at operand 1 -- `clrex kk'
-[^:]*:109: Error: operand 5 should be an integer register -- `sys #0,c0,c0,#0,kk'
+[^:]*:109: Error: operand 5 must be an integer register -- `sys #0,c0,c0,#0,kk'
 [^:]*:110: Error: unexpected comma before the omitted optional operand at operand 5 -- `sys #0,c0,c0,#0,'
 [^:]*:112: Error: selected processor does not support `casp w0,w1,w2,w3,\[x4\]'
 [^:]*:115: Warning: unpredictable load of register pair -- `ldp x0,x0,\[sp\]'
diff --git a/gas/testsuite/gas/aarch64/legacy_reg_names.l b/gas/testsuite/gas/aarch64/legacy_reg_names.l
index 239b458..791bad3 100644
--- a/gas/testsuite/gas/aarch64/legacy_reg_names.l
+++ b/gas/testsuite/gas/aarch64/legacy_reg_names.l
@@ -1,4 +1,4 @@
 [^:]*: Assembler messages:
 [^:]*:5: Error: indexed vector register expected at operand 1 -- `dup v0.b,v1.b\[7\]'
-[^:]*:6: Error: operand 1 should be an integer register -- `mov r0.w,r1.w'
-[^:]*:7: Error: operand 2 should be a SIMD vector element -- `dup s0,s1\[3\]'
+[^:]*:6: Error: operand 1 must be an integer register -- `mov r0.w,r1.w'
+[^:]*:7: Error: operand 2 must be a SIMD vector element -- `dup s0,s1\[3\]'
diff --git a/gas/testsuite/gas/aarch64/sve-invalid.l b/gas/testsuite/gas/aarch64/sve-invalid.l
index 1cb06c5..5ecb993 100644
--- a/gas/testsuite/gas/aarch64/sve-invalid.l
+++ b/gas/testsuite/gas/aarch64/sve-invalid.l
@@ -1,5 +1,5 @@
 [^:]*: Assembler messages:
-.*: Error: operand 2 should be an SVE predicate register -- `fmov z1,z2'
+.*: Error: operand 2 must be an SVE predicate register -- `fmov z1,z2'
 .*: Error: operand mismatch -- `fmov z1,#1\.0'
 .*: Info:    did you mean this\?
 .*: Info:    	fmov z1\.s,#1\.000000000000000000e\+00
@@ -124,7 +124,7 @@
 .*: Info:    	movprfx z0\.s,p1/m,z1\.s
 .*: Info:    	movprfx z0\.d,p1/z,z1\.d
 .*: Info:    	movprfx z0\.d,p1/m,z1\.d
-.*: Error: operand 1 should be an SVE vector register -- `movprfx p0,p1'
+.*: Error: operand 1 must be an SVE vector register -- `movprfx p0,p1'
 .*: Error: operand mismatch -- `ldr p0\.b,\[x1\]'
 .*: Info:    did you mean this\?
 .*: Info:    	ldr p0,\[x1\]
@@ -181,7 +181,7 @@
 .*: Info:    	add z0\.s,z0\.s,#1
 .*: Info:    	add z0\.d,z0\.d,#1
 .*: Error: constant expression required at operand 2 -- `mov z0\.b,z32\.b'
-.*: Error: operand 2 should be an SVE predicate register -- `mov p0\.b,p16\.b'
+.*: Error: operand 2 must be an SVE predicate register -- `mov p0\.b,p16\.b'
 .*: Error: p0-p7 expected at operand 2 -- `cmpeq p0\.b,p8/z,z1\.b,z2\.b'
 .*: Error: p0-p7 expected at operand 2 -- `cmpeq p0\.b,p15/z,z1\.b,z2\.b'
 .*: Error: operand mismatch -- `ld1w z0\.s,p0,\[x0\]'
@@ -272,12 +272,12 @@
 .*: Error: missing type suffix at operand 1 -- `stnt1h {z0},p1/z,\[x1\]'
 .*: Error: missing type suffix at operand 1 -- `stnt1w {z0},p1/z,\[x1\]'
 .*: Error: missing type suffix at operand 1 -- `stnt1d {z0},p1/z,\[x1\]'
-.*: Error: operand 1 should be a list of SVE vector registers -- `ld1b {x0},p1/z,\[x1\]'
-.*: Error: operand 1 should be a list of SVE vector registers -- `ld1b {b0},p1/z,\[x1\]'
-.*: Error: operand 1 should be a list of SVE vector registers -- `ld1b {h0},p1/z,\[x1\]'
-.*: Error: operand 1 should be a list of SVE vector registers -- `ld1b {s0},p1/z,\[x1\]'
-.*: Error: operand 1 should be a list of SVE vector registers -- `ld1b {d0},p1/z,\[x1\]'
-.*: Error: operand 1 should be a list of SVE vector registers -- `ld1b {v0\.2s},p1/z,\[x1\]'
+.*: Error: operand 1 must be a list of SVE vector registers -- `ld1b {x0},p1/z,\[x1\]'
+.*: Error: operand 1 must be a list of SVE vector registers -- `ld1b {b0},p1/z,\[x1\]'
+.*: Error: operand 1 must be a list of SVE vector registers -- `ld1b {h0},p1/z,\[x1\]'
+.*: Error: operand 1 must be a list of SVE vector registers -- `ld1b {s0},p1/z,\[x1\]'
+.*: Error: operand 1 must be a list of SVE vector registers -- `ld1b {d0},p1/z,\[x1\]'
+.*: Error: operand 1 must be a list of SVE vector registers -- `ld1b {v0\.2s},p1/z,\[x1\]'
 .*: Error: type mismatch in vector register list at operand 1 -- `ld2b {z0\.b,z1},p1/z,\[x1\]'
 .*: Error: type mismatch in vector register list at operand 1 -- `ld2b {z0\.b,z1\.h},p1/z,\[x1\]'
 .*: Error: type mismatch in vector register list at operand 1 -- `ld2b {z0\.b,z1\.s},p1/z,\[x1\]'
@@ -298,15 +298,15 @@
 .*: Error: immediate offset out of range -16 to 14 at operand 3 -- `ld2b \{z0\.b,z1\.b\},p1/z,\[x1,#-18,mul vl\]'
 .*: Error: immediate offset out of range -16 to 14 at operand 3 -- `ld2b \{z0\.b,z1\.b\},p1/z,\[x1,#-17,mul vl\]'
 .*: Error: constant offset required at operand 3 -- `ld2b \{z0\.b,z1\.b\},p1/z,\[x1,#foo,mul vl\]'
-.*: Error: immediate value should be a multiple of 2 at operand 3 -- `ld2b \{z0\.b,z1\.b\},p1/z,\[x1,#1,mul vl\]'
+.*: Error: immediate value must be a multiple of 2 at operand 3 -- `ld2b \{z0\.b,z1\.b\},p1/z,\[x1,#1,mul vl\]'
 .*: Error: invalid addressing mode at operand 3 -- `ld2b \{z0\.b,z1\.b\},p1/z,\[x1,#14,mul vl\]!'
 .*: Error: immediate offset out of range -16 to 14 at operand 3 -- `ld2b \{z0\.b,z1\.b\},p1/z,\[x1,#16,mul vl\]'
 .*: Error: immediate offset out of range -24 to 21 at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#-27,mul vl\]'
 .*: Error: immediate offset out of range -24 to 21 at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#-26,mul vl\]'
 .*: Error: immediate offset out of range -24 to 21 at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#-25,mul vl\]'
 .*: Error: constant offset required at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#foo,mul vl\]'
-.*: Error: immediate value should be a multiple of 3 at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#1,mul vl\]'
-.*: Error: immediate value should be a multiple of 3 at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#2,mul vl\]'
+.*: Error: immediate value must be a multiple of 3 at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#1,mul vl\]'
+.*: Error: immediate value must be a multiple of 3 at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#2,mul vl\]'
 .*: Error: invalid addressing mode at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#21,mul vl\]!'
 .*: Error: immediate offset out of range -24 to 21 at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#24,mul vl\]'
 .*: Error: immediate offset out of range -32 to 28 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#-36,mul vl\]'
@@ -314,9 +314,9 @@
 .*: Error: immediate offset out of range -32 to 28 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#-34,mul vl\]'
 .*: Error: immediate offset out of range -32 to 28 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#-33,mul vl\]'
 .*: Error: constant offset required at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#foo,mul vl\]'
-.*: Error: immediate value should be a multiple of 4 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#1,mul vl\]'
-.*: Error: immediate value should be a multiple of 4 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#2,mul vl\]'
-.*: Error: immediate value should be a multiple of 4 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#3,mul vl\]'
+.*: Error: immediate value must be a multiple of 4 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#1,mul vl\]'
+.*: Error: immediate value must be a multiple of 4 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#2,mul vl\]'
+.*: Error: immediate value must be a multiple of 4 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#3,mul vl\]'
 .*: Error: invalid addressing mode at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#28,mul vl\]!'
 .*: Error: immediate offset out of range -32 to 28 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#32,mul vl\]'
 .*: Error: immediate offset out of range -32 to 31 at operand 3 -- `prfb pldl1keep,p1,\[x1,#-33,mul vl\]'
@@ -338,7 +338,7 @@
 .*: Error: immediate offset out of range 0 to 126 at operand 3 -- `ld1rh z0\.h,p1/z,\[x1,#-2\]'
 .*: Error: immediate offset out of range 0 to 126 at operand 3 -- `ld1rh z0\.h,p1/z,\[x1,#-1\]'
 .*: Error: constant offset required at operand 3 -- `ld1rh z0\.h,p1/z,\[x1,#foo\]'
-.*: Error: immediate value should be a multiple of 2 at operand 3 -- `ld1rh z0\.h,p1/z,\[x1,#1\]'
+.*: Error: immediate value must be a multiple of 2 at operand 3 -- `ld1rh z0\.h,p1/z,\[x1,#1\]'
 .*: Error: invalid addressing mode at operand 3 -- `ld1rh z0\.h,p1/z,\[x1,#2,mul vl\]'
 .*: Error: invalid addressing mode at operand 3 -- `ld1rh z0\.h,p1/z,\[x1,#126\]!'
 .*: Error: invalid addressing mode at operand 3 -- `ld1rh z0\.h,p1/z,\[x1\],#126'
@@ -346,8 +346,8 @@
 .*: Error: immediate offset out of range 0 to 252 at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#-4\]'
 .*: Error: immediate offset out of range 0 to 252 at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#-1\]'
 .*: Error: constant offset required at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#foo\]'
-.*: Error: immediate value should be a multiple of 4 at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#1\]'
-.*: Error: immediate value should be a multiple of 4 at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#2\]'
+.*: Error: immediate value must be a multiple of 4 at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#1\]'
+.*: Error: immediate value must be a multiple of 4 at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#2\]'
 .*: Error: invalid addressing mode at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#4,mul vl\]'
 .*: Error: invalid addressing mode at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#252\]!'
 .*: Error: invalid addressing mode at operand 3 -- `ld1rw z0\.s,p1/z,\[x1\],#252'
@@ -355,9 +355,9 @@
 .*: Error: immediate offset out of range 0 to 504 at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#-8\]'
 .*: Error: immediate offset out of range 0 to 504 at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#-1\]'
 .*: Error: constant offset required at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#foo\]'
-.*: Error: immediate value should be a multiple of 8 at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#1\]'
-.*: Error: immediate value should be a multiple of 8 at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#2\]'
-.*: Error: immediate value should be a multiple of 8 at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#4\]'
+.*: Error: immediate value must be a multiple of 8 at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#1\]'
+.*: Error: immediate value must be a multiple of 8 at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#2\]'
+.*: Error: immediate value must be a multiple of 8 at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#4\]'
 .*: Error: invalid addressing mode at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#8,mul vl\]'
 .*: Error: invalid addressing mode at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#504\]!'
 .*: Error: invalid addressing mode at operand 3 -- `ld1rd z0\.d,p1/z,\[x1\],#504'
@@ -457,22 +457,22 @@
 .*: Error: immediate offset out of range 0 to 62 at operand 3 -- `ld1h z0\.d,p1/z,\[z2\.d,#-2\]'
 .*: Error: immediate offset out of range 0 to 62 at operand 3 -- `ld1h z0\.d,p1/z,\[z2\.d,#-1\]'
 .*: Error: constant offset required at operand 3 -- `ld1h z0\.d,p1/z,\[z2\.d,#foo\]'
-.*: Error: immediate value should be a multiple of 2 at operand 3 -- `ld1h z0\.d,p1/z,\[z2\.d,#1\]'
+.*: Error: immediate value must be a multiple of 2 at operand 3 -- `ld1h z0\.d,p1/z,\[z2\.d,#1\]'
 .*: Error: invalid addressing mode at operand 3 -- `ld1h z0\.d,p1/z,\[z2\.d,#2,mul vl\]'
 .*: Error: immediate offset out of range 0 to 62 at operand 3 -- `ld1h z0\.d,p1/z,\[z2\.d,#64\]'
 .*: Error: immediate offset out of range 0 to 124 at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#-4\]'
 .*: Error: immediate offset out of range 0 to 124 at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#-1\]'
 .*: Error: constant offset required at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#foo\]'
-.*: Error: immediate value should be a multiple of 4 at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#1\]'
-.*: Error: immediate value should be a multiple of 4 at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#2\]'
+.*: Error: immediate value must be a multiple of 4 at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#1\]'
+.*: Error: immediate value must be a multiple of 4 at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#2\]'
 .*: Error: invalid addressing mode at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#4,mul vl\]'
 .*: Error: immediate offset out of range 0 to 124 at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#128\]'
 .*: Error: immediate offset out of range 0 to 248 at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#-8\]'
 .*: Error: immediate offset out of range 0 to 248 at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#-1\]'
 .*: Error: constant offset required at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#foo\]'
-.*: Error: immediate value should be a multiple of 8 at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#1\]'
-.*: Error: immediate value should be a multiple of 8 at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#2\]'
-.*: Error: immediate value should be a multiple of 8 at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#4\]'
+.*: Error: immediate value must be a multiple of 8 at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#1\]'
+.*: Error: immediate value must be a multiple of 8 at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#2\]'
+.*: Error: immediate value must be a multiple of 8 at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#4\]'
 .*: Error: invalid addressing mode at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#8,mul vl\]'
 .*: Error: immediate offset out of range 0 to 248 at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#256\]'
 .*: Error: shift amount out of range 0 to 63 at operand 2 -- `adr z0\.s,\[z1\.s,z2\.s,lsl#-1\]'
@@ -835,32 +835,32 @@
 .*: Error: floating-point value must be 0\.0 or 1\.0 at operand 4 -- `fmax z0\.s,p1/m,z0\.s,#1\.5'
 .*: Error: invalid floating-point constant at operand 4 -- `fmax z0\.s,p1/m,z0\.s,#2'
 .*: Error: floating-point value must be 0\.0 or 1\.0 at operand 4 -- `fmax z0\.s,p1/m,z0\.s,#2\.0'
-.*: Error: operand 2 should be an enumeration value such as POW2 -- `ptrue p1\.b,vl0'
-.*: Error: operand 2 should be an enumeration value such as POW2 -- `ptrue p1\.b,vl255'
-.*: Error: operand 2 should be an enumeration value such as POW2 -- `ptrue p1\.b,#-1'
-.*: Error: operand 2 should be an enumeration value such as POW2 -- `ptrue p1\.b,#32'
+.*: Error: operand 2 must be an enumeration value such as POW2 -- `ptrue p1\.b,vl0'
+.*: Error: operand 2 must be an enumeration value such as POW2 -- `ptrue p1\.b,vl255'
+.*: Error: operand 2 must be an enumeration value such as POW2 -- `ptrue p1\.b,#-1'
+.*: Error: operand 2 must be an enumeration value such as POW2 -- `ptrue p1\.b,#32'
 .*: Error: immediate operand required at operand 2 -- `ptrue p1\.b,x0'
 .*: Error: immediate operand required at operand 2 -- `ptrue p1\.b,z0\.s'
-.*: Error: operand 2 should be an enumeration value such as POW2 -- `cntb x0,vl0'
-.*: Error: operand 2 should be an enumeration value such as POW2 -- `cntb x0,vl255'
-.*: Error: operand 2 should be an enumeration value such as POW2 -- `cntb x0,#-1'
-.*: Error: operand 2 should be an enumeration value such as POW2 -- `cntb x0,#32'
+.*: Error: operand 2 must be an enumeration value such as POW2 -- `cntb x0,vl0'
+.*: Error: operand 2 must be an enumeration value such as POW2 -- `cntb x0,vl255'
+.*: Error: operand 2 must be an enumeration value such as POW2 -- `cntb x0,#-1'
+.*: Error: operand 2 must be an enumeration value such as POW2 -- `cntb x0,#32'
 .*: Error: immediate operand required at operand 2 -- `cntb x0,x0'
 .*: Error: immediate operand required at operand 2 -- `cntb x0,z0\.s'
-.*: Error: operand 2 should be an enumeration value such as POW2 -- `cntb x0,mul#1'
+.*: Error: operand 2 must be an enumeration value such as POW2 -- `cntb x0,mul#1'
 .*: Error: multiplier out of range 1 to 16 at operand 2 -- `cntb x0,pow2,mul#0'
 .*: Error: multiplier out of range 1 to 16 at operand 2 -- `cntb x0,pow2,mul#17'
 .*: Error: shift expression expected at operand 2 -- `cntb x0,pow2,#1'
-.*: Error: operand 1 should be an enumeration value such as PLDL1KEEP -- `prfb pldl0keep,p1,\[x0\]'
-.*: Error: operand 1 should be an enumeration value such as PLDL1KEEP -- `prfb pldl4keep,p1,\[x0\]'
-.*: Error: operand 1 should be an enumeration value such as PLDL1KEEP -- `prfb #-1,p1,\[x0\]'
-.*: Error: operand 1 should be an enumeration value such as PLDL1KEEP -- `prfb #16,p1,\[x0\]'
+.*: Error: operand 1 must be an enumeration value such as PLDL1KEEP -- `prfb pldl0keep,p1,\[x0\]'
+.*: Error: operand 1 must be an enumeration value such as PLDL1KEEP -- `prfb pldl4keep,p1,\[x0\]'
+.*: Error: operand 1 must be an enumeration value such as PLDL1KEEP -- `prfb #-1,p1,\[x0\]'
+.*: Error: operand 1 must be an enumeration value such as PLDL1KEEP -- `prfb #16,p1,\[x0\]'
 .*: Error: immediate operand required at operand 1 -- `prfb x0,p1,\[x0\]'
 .*: Error: immediate operand required at operand 1 -- `prfb z0\.s,p1,\[x0\]'
 .*: Error: immediate value out of range 0 to 7 at operand 3 -- `lsl z0\.b,z0\.b,#-1'
 .*: Error: immediate value out of range 0 to 7 at operand 3 -- `lsl z0\.b,z0\.b,#8'
 .*: Error: immediate value out of range 0 to 7 at operand 3 -- `lsl z0\.b,z0\.b,#9'
-.*: Error: operand 3 should be an SVE vector register -- `lsl z0\.b,z0\.b,x0'
+.*: Error: operand 3 must be an SVE vector register -- `lsl z0\.b,z0\.b,x0'
 .*: Error: immediate value out of range 0 to 15 at operand 3 -- `lsl z0\.h,z0\.h,#-1'
 .*: Error: immediate value out of range 0 to 15 at operand 3 -- `lsl z0\.h,z0\.h,#16'
 .*: Error: immediate value out of range 0 to 15 at operand 3 -- `lsl z0\.h,z0\.h,#17'
@@ -873,7 +873,7 @@
 .*: Error: immediate value out of range 0 to 7 at operand 4 -- `lsl z0\.b,p1/m,z0\.b,#-1'
 .*: Error: immediate value out of range 0 to 7 at operand 4 -- `lsl z0\.b,p1/m,z0\.b,#8'
 .*: Error: immediate value out of range 0 to 7 at operand 4 -- `lsl z0\.b,p1/m,z0\.b,#9'
-.*: Error: operand 4 should be an SVE vector register -- `lsl z0\.b,p1/m,z0\.b,x0'
+.*: Error: operand 4 must be an SVE vector register -- `lsl z0\.b,p1/m,z0\.b,x0'
 .*: Error: immediate value out of range 0 to 15 at operand 4 -- `lsl z0\.h,p1/m,z0\.h,#-1'
 .*: Error: immediate value out of range 0 to 15 at operand 4 -- `lsl z0\.h,p1/m,z0\.h,#16'
 .*: Error: immediate value out of range 0 to 15 at operand 4 -- `lsl z0\.h,p1/m,z0\.h,#17'
@@ -886,7 +886,7 @@
 .*: Error: immediate value out of range 1 to 8 at operand 3 -- `lsr z0\.b,z0\.b,#-1'
 .*: Error: immediate value out of range 1 to 8 at operand 3 -- `lsr z0\.b,z0\.b,#0'
 .*: Error: immediate value out of range 1 to 8 at operand 3 -- `lsr z0\.b,z0\.b,#9'
-.*: Error: operand 3 should be an SVE vector register -- `lsr z0\.b,z0\.b,x0'
+.*: Error: operand 3 must be an SVE vector register -- `lsr z0\.b,z0\.b,x0'
 .*: Error: immediate value out of range 1 to 16 at operand 3 -- `lsr z0\.h,z0\.h,#-1'
 .*: Error: immediate value out of range 1 to 16 at operand 3 -- `lsr z0\.h,z0\.h,#0'
 .*: Error: immediate value out of range 1 to 16 at operand 3 -- `lsr z0\.h,z0\.h,#17'
@@ -899,7 +899,7 @@
 .*: Error: immediate value out of range 1 to 8 at operand 4 -- `lsr z0\.b,p1/m,z0\.b,#-1'
 .*: Error: immediate value out of range 1 to 8 at operand 4 -- `lsr z0\.b,p1/m,z0\.b,#0'
 .*: Error: immediate value out of range 1 to 8 at operand 4 -- `lsr z0\.b,p1/m,z0\.b,#9'
-.*: Error: operand 4 should be an SVE vector register -- `lsr z0\.b,p1/m,z0\.b,x0'
+.*: Error: operand 4 must be an SVE vector register -- `lsr z0\.b,p1/m,z0\.b,x0'
 .*: Error: immediate value out of range 1 to 16 at operand 4 -- `lsr z0\.h,p1/m,z0\.h,#-1'
 .*: Error: immediate value out of range 1 to 16 at operand 4 -- `lsr z0\.h,p1/m,z0\.h,#0'
 .*: Error: immediate value out of range 1 to 16 at operand 4 -- `lsr z0\.h,p1/m,z0\.h,#17'
@@ -915,8 +915,8 @@
 .*: Error: immediate value out of range -16 to 15 at operand 3 -- `index z0\.s,#0,#16'
 .*: Error: immediate value out of range -32 to 31 at operand 3 -- `addpl x0,sp,#-33'
 .*: Error: immediate value out of range -32 to 31 at operand 3 -- `addpl sp,x0,#32'
-.*: Error: operand 2 should be an integer register or SP -- `addpl x0,xzr,#1'
-.*: Error: operand 1 should be an integer or stack pointer register -- `addpl xzr,x0,#1'
+.*: Error: operand 2 must be an integer register or SP -- `addpl x0,xzr,#1'
+.*: Error: operand 1 must be an integer or stack pointer register -- `addpl xzr,x0,#1'
 .*: Error: immediate value out of range -128 to 127 at operand 3 -- `mul z0\.b,z0\.b,#-129'
 .*: Error: immediate value out of range -128 to 127 at operand 3 -- `mul z0\.b,z0\.b,#128'
 .*: Error: immediate value out of range -128 to 127 at operand 3 -- `mul z0\.s,z0\.s,#-129'
diff --git a/gas/testsuite/gas/aarch64/sve-reg-diagnostic.l b/gas/testsuite/gas/aarch64/sve-reg-diagnostic.l
index 6c46b40..b0ade28 100644
--- a/gas/testsuite/gas/aarch64/sve-reg-diagnostic.l
+++ b/gas/testsuite/gas/aarch64/sve-reg-diagnostic.l
@@ -1,6 +1,6 @@
 .*: Assembler messages:
-.*: Error: operand 3 should be a SIMD vector register -- `cmeq v0\.4s,v1\.4s,x0'
-.*: Error: operand 3 should be a SIMD vector register -- `cmeq v0\.4s,v1\.4s,s0'
+.*: Error: operand 3 must be a SIMD vector register -- `cmeq v0\.4s,v1\.4s,x0'
+.*: Error: operand 3 must be a SIMD vector register -- `cmeq v0\.4s,v1\.4s,s0'
 .*: Error: immediate zero expected at operand 3 -- `cmeq v0\.4s,v1\.4s,p0\.b'
 .*: Error: immediate zero expected at operand 3 -- `cmeq v0\.4s,v1\.4s,#p0\.b'
 .*: Error: 64-bit integer or SP register expected at operand 2 -- `ldr x1,\[s0\]'
@@ -19,6 +19,6 @@
 .*: Error: immediate out of range at operand 3 -- `and x0,x0,#z0\.s'
 .*: Error: immediate out of range at operand 3 -- `and x0,x0,p0'
 .*: Error: immediate out of range at operand 3 -- `and x0,x0,#p0'
-.*: Error: operand 3 should be an integer register -- `lsl x0,x0,s0'
+.*: Error: operand 3 must be an integer register -- `lsl x0,x0,s0'
 .*: Error: immediate operand required at operand 1 -- `svc x0'
 .*: Error: immediate operand required at operand 1 -- `svc s0'
diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c
index b07429d..0f0795b 100644
--- a/opcodes/aarch64-opc.c
+++ b/opcodes/aarch64-opc.c
@@ -1914,7 +1914,7 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx,
 	  if (opnd->shifter.amount != 0 && opnd->shifter.amount != 12)
 	    {
 	      set_other_error (mismatch_detail, idx,
-			       _("shift amount expected to be 0 or 12"));
+			       _("shift amount must be 0 or 12"));
 	      return 0;
 	    }
 	  if (!value_fit_unsigned_field_p (opnd->imm.value, 12))
@@ -1937,7 +1937,7 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx,
 	  if (!value_aligned_p (opnd->shifter.amount, 16))
 	    {
 	      set_other_error (mismatch_detail, idx,
-			       _("shift amount should be a multiple of 16"));
+			       _("shift amount must be a multiple of 16"));
 	      return 0;
 	    }
 	  if (!value_in_range_p (opnd->shifter.amount, 0, size * 8 - 16))
@@ -2174,7 +2174,7 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx,
 	      if (opnd->shifter.amount != 8 && opnd->shifter.amount != 16)
 		{
 		  set_other_error (mismatch_detail, idx,
-				   _("shift amount expected to be 0 or 16"));
+				   _("shift amount must be 0 or 16"));
 		  return 0;
 		}
 	      break;

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [AArch64] Use "must" rather than "should" in error messages
  2016-09-16 12:13 [AArch64] Use "must" rather than "should" in error messages Richard Sandiford
@ 2016-09-20 13:52 ` Richard Earnshaw (lists)
  0 siblings, 0 replies; 2+ messages in thread
From: Richard Earnshaw (lists) @ 2016-09-20 13:52 UTC (permalink / raw)
  To: binutils, richard.sandiford

On 16/09/16 13:13, Richard Sandiford wrote:
> One of the review comments from the SVE series was that it would
> be better to use "must" rather than "should" in error messages.
> I think this patch fixes all cases in the AArch64 code.
> It also uses "must be" instead of "expected to be".
> 
> Tested on aarch64-linux-gnu.  OK to install?
> 

OK.

R.

> Thanks,
> Richard
> 
> 
> opcodes/
> 	* aarch64-opc.c (operand_general_constraint_met_p): Use "must be"
> 	rather than "should be" or "expected to be" in error messages.
> 
> gas/
> 	* config/tc-aarch64.c (output_operand_error_record): Use "must be"
> 	rather than "should be" or "expected to be" in error messages.
> 	(parse_operands): Likewise.
> 	* testsuite/gas/aarch64/diagnostic.l: Likewise.
> 	* testsuite/gas/aarch64/legacy_reg_names.l: Likewise.
> 	* testsuite/gas/aarch64/sve-invalid.l: Likewise.
> 	* testsuite/gas/aarch64/sve-reg-diagnostic.l: Likewise.
> 
> diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
> index bc39fe9..9963c61 100644
> --- a/gas/config/tc-aarch64.c
> +++ b/gas/config/tc-aarch64.c
> @@ -4543,7 +4543,7 @@ output_operand_error_record (const operand_error_record *record, char *str)
>        else
>  	{
>  	  gas_assert (idx >= 0);
> -	  as_bad (_("operand %d should be %s -- `%s'"), idx + 1,
> +	  as_bad (_("operand %d must be %s -- `%s'"), idx + 1,
>  		aarch64_get_operand_desc (opd_code), str);
>  	}
>        break;
> @@ -4656,7 +4656,7 @@ output_operand_error_record (const operand_error_record *record, char *str)
>  		detail->error ? detail->error : _("immediate value"),
>  		detail->data[0], detail->data[1], idx + 1, str);
>        else
> -	as_bad (_("%s expected to be %d at operand %d -- `%s'"),
> +	as_bad (_("%s must be %d at operand %d -- `%s'"),
>  		detail->error ? detail->error : _("immediate value"),
>  		detail->data[0], idx + 1, str);
>        break;
> @@ -4673,7 +4673,7 @@ output_operand_error_record (const operand_error_record *record, char *str)
>        break;
>  
>      case AARCH64_OPDE_UNALIGNED:
> -      as_bad (_("immediate value should be a multiple of "
> +      as_bad (_("immediate value must be a multiple of "
>  		"%d at operand %d -- `%s'"),
>  	      detail->data[0], idx + 1, str);
>        break;
> @@ -6056,7 +6056,7 @@ parse_operands (char *str, const aarch64_opcode *opcode)
>  	      else
>  		{
>  		  set_fatal_syntax_error
> -		    (_("writeback value should be an immediate constant"));
> +		    (_("writeback value must be an immediate constant"));
>  		  goto failure;
>  		}
>  	    }
> diff --git a/gas/testsuite/gas/aarch64/diagnostic.l b/gas/testsuite/gas/aarch64/diagnostic.l
> index f8bbbc2..427a36a 100644
> --- a/gas/testsuite/gas/aarch64/diagnostic.l
> +++ b/gas/testsuite/gas/aarch64/diagnostic.l
> @@ -28,10 +28,10 @@
>  [^:]*:30: Error: invalid post-increment amount at operand 2 -- `st2 \{v0.4s,v1.4s\},\[sp\],#24'
>  [^:]*:31: Error: invalid shift amount at operand 2 -- `ldr q0,\[x0,w0,uxtw#5\]'
>  [^:]*:32: Error: invalid number of registers in the list; 2 registers are expected at operand 1 -- `st2 \{v0.4s,v1.4s,v2.4s,v3.4s\},\[sp\],#64'
> -[^:]*:33: Error: shift amount expected to be 0 or 12 at operand 3 -- `adds x1,sp,2134,lsl#4'
> -[^:]*:34: Error: shift amount should be a multiple of 16 at operand 2 -- `movz w0,2134,lsl#8'
> +[^:]*:33: Error: shift amount must be 0 or 12 at operand 3 -- `adds x1,sp,2134,lsl#4'
> +[^:]*:34: Error: shift amount must be a multiple of 16 at operand 2 -- `movz w0,2134,lsl#8'
>  [^:]*:35: Error: shift amount out of range 0 to 16 at operand 2 -- `movz w0,2134,lsl#32'
> -[^:]*:36: Error: shift amount should be a multiple of 16 at operand 2 -- `movz x0,2134,lsl#47'
> +[^:]*:36: Error: shift amount must be a multiple of 16 at operand 2 -- `movz x0,2134,lsl#47'
>  [^:]*:37: Error: immediate value out of range 1 to 17 at operand 4 -- `sbfiz w0,w7,15,18'
>  [^:]*:38: Error: immediate value out of range 1 to 32 at operand 4 -- `sbfiz w0,w7,15,0'
>  [^:]*:39: Error: invalid shift amount at operand 3 -- `shll v1.4s,v2.4h,#15'
> @@ -42,29 +42,29 @@
>  [^:]*:44: Error: immediate value out of range -128 to 255 at operand 2 -- `movi v1.4h,-129'
>  [^:]*:45: Error: invalid shift operator at operand 2 -- `movi v1.4h,255,msl#8'
>  [^:]*:46: Error: invalid value for immediate at operand 2 -- `movi d0,256'
> -[^:]*:47: Error: immediate value should be a multiple of 8 at operand 2 -- `movi v1.4h,255,lsl#7'
> +[^:]*:47: Error: immediate value must be a multiple of 8 at operand 2 -- `movi v1.4h,255,lsl#7'
>  [^:]*:48: Error: shift amount out of range 0 to 8 at operand 2 -- `movi v1.4h,255,lsl#16'
> -[^:]*:49: Error: shift amount expected to be 0 or 16 at operand 2 -- `movi v2.2s,255,msl#0'
> -[^:]*:50: Error: shift amount expected to be 0 or 16 at operand 2 -- `movi v2.2s,255,msl#15'
> +[^:]*:49: Error: shift amount must be 0 or 16 at operand 2 -- `movi v2.2s,255,msl#0'
> +[^:]*:50: Error: shift amount must be 0 or 16 at operand 2 -- `movi v2.2s,255,msl#15'
>  [^:]*:51: Error: invalid floating-point constant at operand 2 -- `fmov v1.2s,1.01'
>  [^:]*:52: Error: invalid floating-point constant at operand 2 -- `fmov v1.2d,1.01'
>  [^:]*:53: Error: invalid floating-point constant at operand 2 -- `fmov s3,1.01'
>  [^:]*:54: Error: invalid floating-point constant at operand 2 -- `fmov d3,1.01'
>  [^:]*:55: Error: immediate zero expected at operand 2 -- `fcmp d0,#1.0'
> -[^:]*:56: Error: operand 2 should be a floating-point register -- `fcmp d0,x0'
> +[^:]*:56: Error: operand 2 must be a floating-point register -- `fcmp d0,x0'
>  [^:]*:57: Error: immediate zero expected at operand 3 -- `cmgt v0.4s,v2.4s,#1'
>  [^:]*:58: Error: unexpected characters following instruction at operand 2 -- `fmov d3,1.00,lsl#3'
>  [^:]*:59: Error: integer 64-bit register expected at operand 2 -- `st2 {v0.4s,v1.4s},\[sp\],sp'
> -[^:]*:60: Error: writeback value should be an immediate constant at operand 2 -- `st2 {v0.4s,v1.4s},\[sp\],zr'
> +[^:]*:60: Error: writeback value must be an immediate constant at operand 2 -- `st2 {v0.4s,v1.4s},\[sp\],zr'
>  [^:]*:61: Error: invalid shift for the register offset addressing mode at operand 2 -- `ldr q0,\[x0,w0,lsr#4\]'
>  [^:]*:62: Error: only 'LSL' shift is permitted at operand 3 -- `adds x1,sp,2134,uxtw#12'
>  [^:]*:63: Error: shift amount out of range 0 to 63 at operand 2 -- `movz x0,2134,lsl#64'
> -[^:]*:64: Error: operand 1 should be an integer register -- `adds sp,sp,2134,lsl#12'
> +[^:]*:64: Error: operand 1 must be an integer register -- `adds sp,sp,2134,lsl#12'
>  [^:]*:65: Error: the optional immediate offset can only be 0 at operand 2 -- `ldxrb w2,\[x0,#1\]'
>  [^:]*:66: Error: invalid addressing mode at operand 2 -- `ldrb w0,x1,x2,sxtx'
>  [^:]*:67: Error: invalid shift amount at operand 2 -- `prfm PLDL3KEEP,\[x9,x15,sxtx#2\]'
>  [^:]*:68: Error: C0 - C15 expected at operand 3 -- `sysl x7,#1,C16,C30,#1'
> -[^:]*:69: Error: operand 4 should be a 4-bit opcode field named for historical reasons C0 - C15 -- `sysl x7,#1,C15,C77,#1'
> +[^:]*:69: Error: operand 4 must be a 4-bit opcode field named for historical reasons C0 - C15 -- `sysl x7,#1,C15,C77,#1'
>  [^:]*:70: Error: extending shift is not permitted at operand 3 -- `add x0,xzr,x7,uxtx#5'
>  [^:]*:71: Error: bad expression at operand 2 -- `mov x0,##5'
>  [^:]*:72: Error: unknown mnemonic `bad' -- `bad expression'
> @@ -80,29 +80,29 @@
>  [^:]*:82: Error: invalid register list at operand 1 -- `ld2 \{v1.4h,v0.4h\},\[x1\]'
>  [^:]*:83: Error: the specified option is not accepted in ISB at operand 1 -- `isb osh'
>  [^:]*:84: Error: invalid address at operand 2 -- `st2 \{v4.2d,v5.2d,v6.2d\},\\\[x3\\\]'
> -[^:]*:85: Error: immediate value should be a multiple of 4 at operand 3 -- `ldnp w7,w15,\[x3,#3\]'
> +[^:]*:85: Error: immediate value must be a multiple of 4 at operand 3 -- `ldnp w7,w15,\[x3,#3\]'
>  [^:]*:86: Error: unexpected address writeback at operand 3 -- `stnp x7,x15,\[x3,#32\]!'
>  [^:]*:87: Error: immediate offset out of range -256 to 252 at operand 3 -- `ldnp w7,w15,\[x3,#256\]'
>  [^:]*:88: Error: shift is not permitted at operand 2 -- `movi v1.2d,4294967295,lsl#0'
> -[^:]*:89: Error: shift amount expected to be 0 at operand 2 -- `movi v1.8b,97,lsl#8'
> +[^:]*:89: Error: shift amount must be 0 at operand 2 -- `movi v1.8b,97,lsl#8'
>  [^:]*:90: Error: unknown or missing system register name at operand 1 -- `msr dummy,x1'
>  [^:]*:91: Error: invalid floating-point constant at operand 2 -- `fmov s0,0x42000000'
> -[^:]*:92: Error: immediate value should be a multiple of 8 at operand 3 -- `ldp x0,x1,\[x2,#4\]'
> -[^:]*:93: Error: immediate value should be a multiple of 8 at operand 3 -- `ldp x0,x1,\[x2,#4\]!'
> -[^:]*:94: Error: immediate value should be a multiple of 8 at operand 3 -- `ldp x0,x1,\[x2\],#4'
> -[^:]*:95: Error: immediate value should be a multiple of 4 at operand 3 -- `stp w0,w1,\[x2,#3\]'
> -[^:]*:96: Error: immediate value should be a multiple of 4 at operand 3 -- `stp w0,w1,\[x2,#2\]!'
> -[^:]*:97: Error: immediate value should be a multiple of 4 at operand 3 -- `stp w0,w1,\[x2\],#1'
> -[^:]*:98: Error: operand 3 should be one of the standard conditions, excluding AL and NV. -- `cinc w0,w1,al'
> -[^:]*:99: Error: operand 3 should be one of the standard conditions, excluding AL and NV. -- `cinc w0,w1,nv'
> -[^:]*:100: Error: operand 2 should be one of the standard conditions, excluding AL and NV. -- `cset w0,al'
> -[^:]*:101: Error: operand 2 should be one of the standard conditions, excluding AL and NV. -- `cset w0,nv'
> -[^:]*:104: Error: operand 1 should be an integer register -- `ret lr'
> -[^:]*:105: Error: operand 1 should be an integer register -- `ret kk'
> +[^:]*:92: Error: immediate value must be a multiple of 8 at operand 3 -- `ldp x0,x1,\[x2,#4\]'
> +[^:]*:93: Error: immediate value must be a multiple of 8 at operand 3 -- `ldp x0,x1,\[x2,#4\]!'
> +[^:]*:94: Error: immediate value must be a multiple of 8 at operand 3 -- `ldp x0,x1,\[x2\],#4'
> +[^:]*:95: Error: immediate value must be a multiple of 4 at operand 3 -- `stp w0,w1,\[x2,#3\]'
> +[^:]*:96: Error: immediate value must be a multiple of 4 at operand 3 -- `stp w0,w1,\[x2,#2\]!'
> +[^:]*:97: Error: immediate value must be a multiple of 4 at operand 3 -- `stp w0,w1,\[x2\],#1'
> +[^:]*:98: Error: operand 3 must be one of the standard conditions, excluding AL and NV. -- `cinc w0,w1,al'
> +[^:]*:99: Error: operand 3 must be one of the standard conditions, excluding AL and NV. -- `cinc w0,w1,nv'
> +[^:]*:100: Error: operand 2 must be one of the standard conditions, excluding AL and NV. -- `cset w0,al'
> +[^:]*:101: Error: operand 2 must be one of the standard conditions, excluding AL and NV. -- `cset w0,nv'
> +[^:]*:104: Error: operand 1 must be an integer register -- `ret lr'
> +[^:]*:105: Error: operand 1 must be an integer register -- `ret kk'
>  [^:]*:106: Error: immediate operand required at operand 1 -- `clrex x0'
>  [^:]*:107: Error: immediate operand required at operand 1 -- `clrex w0'
>  [^:]*:108: Error: constant expression required at operand 1 -- `clrex kk'
> -[^:]*:109: Error: operand 5 should be an integer register -- `sys #0,c0,c0,#0,kk'
> +[^:]*:109: Error: operand 5 must be an integer register -- `sys #0,c0,c0,#0,kk'
>  [^:]*:110: Error: unexpected comma before the omitted optional operand at operand 5 -- `sys #0,c0,c0,#0,'
>  [^:]*:112: Error: selected processor does not support `casp w0,w1,w2,w3,\[x4\]'
>  [^:]*:115: Warning: unpredictable load of register pair -- `ldp x0,x0,\[sp\]'
> diff --git a/gas/testsuite/gas/aarch64/legacy_reg_names.l b/gas/testsuite/gas/aarch64/legacy_reg_names.l
> index 239b458..791bad3 100644
> --- a/gas/testsuite/gas/aarch64/legacy_reg_names.l
> +++ b/gas/testsuite/gas/aarch64/legacy_reg_names.l
> @@ -1,4 +1,4 @@
>  [^:]*: Assembler messages:
>  [^:]*:5: Error: indexed vector register expected at operand 1 -- `dup v0.b,v1.b\[7\]'
> -[^:]*:6: Error: operand 1 should be an integer register -- `mov r0.w,r1.w'
> -[^:]*:7: Error: operand 2 should be a SIMD vector element -- `dup s0,s1\[3\]'
> +[^:]*:6: Error: operand 1 must be an integer register -- `mov r0.w,r1.w'
> +[^:]*:7: Error: operand 2 must be a SIMD vector element -- `dup s0,s1\[3\]'
> diff --git a/gas/testsuite/gas/aarch64/sve-invalid.l b/gas/testsuite/gas/aarch64/sve-invalid.l
> index 1cb06c5..5ecb993 100644
> --- a/gas/testsuite/gas/aarch64/sve-invalid.l
> +++ b/gas/testsuite/gas/aarch64/sve-invalid.l
> @@ -1,5 +1,5 @@
>  [^:]*: Assembler messages:
> -.*: Error: operand 2 should be an SVE predicate register -- `fmov z1,z2'
> +.*: Error: operand 2 must be an SVE predicate register -- `fmov z1,z2'
>  .*: Error: operand mismatch -- `fmov z1,#1\.0'
>  .*: Info:    did you mean this\?
>  .*: Info:    	fmov z1\.s,#1\.000000000000000000e\+00
> @@ -124,7 +124,7 @@
>  .*: Info:    	movprfx z0\.s,p1/m,z1\.s
>  .*: Info:    	movprfx z0\.d,p1/z,z1\.d
>  .*: Info:    	movprfx z0\.d,p1/m,z1\.d
> -.*: Error: operand 1 should be an SVE vector register -- `movprfx p0,p1'
> +.*: Error: operand 1 must be an SVE vector register -- `movprfx p0,p1'
>  .*: Error: operand mismatch -- `ldr p0\.b,\[x1\]'
>  .*: Info:    did you mean this\?
>  .*: Info:    	ldr p0,\[x1\]
> @@ -181,7 +181,7 @@
>  .*: Info:    	add z0\.s,z0\.s,#1
>  .*: Info:    	add z0\.d,z0\.d,#1
>  .*: Error: constant expression required at operand 2 -- `mov z0\.b,z32\.b'
> -.*: Error: operand 2 should be an SVE predicate register -- `mov p0\.b,p16\.b'
> +.*: Error: operand 2 must be an SVE predicate register -- `mov p0\.b,p16\.b'
>  .*: Error: p0-p7 expected at operand 2 -- `cmpeq p0\.b,p8/z,z1\.b,z2\.b'
>  .*: Error: p0-p7 expected at operand 2 -- `cmpeq p0\.b,p15/z,z1\.b,z2\.b'
>  .*: Error: operand mismatch -- `ld1w z0\.s,p0,\[x0\]'
> @@ -272,12 +272,12 @@
>  .*: Error: missing type suffix at operand 1 -- `stnt1h {z0},p1/z,\[x1\]'
>  .*: Error: missing type suffix at operand 1 -- `stnt1w {z0},p1/z,\[x1\]'
>  .*: Error: missing type suffix at operand 1 -- `stnt1d {z0},p1/z,\[x1\]'
> -.*: Error: operand 1 should be a list of SVE vector registers -- `ld1b {x0},p1/z,\[x1\]'
> -.*: Error: operand 1 should be a list of SVE vector registers -- `ld1b {b0},p1/z,\[x1\]'
> -.*: Error: operand 1 should be a list of SVE vector registers -- `ld1b {h0},p1/z,\[x1\]'
> -.*: Error: operand 1 should be a list of SVE vector registers -- `ld1b {s0},p1/z,\[x1\]'
> -.*: Error: operand 1 should be a list of SVE vector registers -- `ld1b {d0},p1/z,\[x1\]'
> -.*: Error: operand 1 should be a list of SVE vector registers -- `ld1b {v0\.2s},p1/z,\[x1\]'
> +.*: Error: operand 1 must be a list of SVE vector registers -- `ld1b {x0},p1/z,\[x1\]'
> +.*: Error: operand 1 must be a list of SVE vector registers -- `ld1b {b0},p1/z,\[x1\]'
> +.*: Error: operand 1 must be a list of SVE vector registers -- `ld1b {h0},p1/z,\[x1\]'
> +.*: Error: operand 1 must be a list of SVE vector registers -- `ld1b {s0},p1/z,\[x1\]'
> +.*: Error: operand 1 must be a list of SVE vector registers -- `ld1b {d0},p1/z,\[x1\]'
> +.*: Error: operand 1 must be a list of SVE vector registers -- `ld1b {v0\.2s},p1/z,\[x1\]'
>  .*: Error: type mismatch in vector register list at operand 1 -- `ld2b {z0\.b,z1},p1/z,\[x1\]'
>  .*: Error: type mismatch in vector register list at operand 1 -- `ld2b {z0\.b,z1\.h},p1/z,\[x1\]'
>  .*: Error: type mismatch in vector register list at operand 1 -- `ld2b {z0\.b,z1\.s},p1/z,\[x1\]'
> @@ -298,15 +298,15 @@
>  .*: Error: immediate offset out of range -16 to 14 at operand 3 -- `ld2b \{z0\.b,z1\.b\},p1/z,\[x1,#-18,mul vl\]'
>  .*: Error: immediate offset out of range -16 to 14 at operand 3 -- `ld2b \{z0\.b,z1\.b\},p1/z,\[x1,#-17,mul vl\]'
>  .*: Error: constant offset required at operand 3 -- `ld2b \{z0\.b,z1\.b\},p1/z,\[x1,#foo,mul vl\]'
> -.*: Error: immediate value should be a multiple of 2 at operand 3 -- `ld2b \{z0\.b,z1\.b\},p1/z,\[x1,#1,mul vl\]'
> +.*: Error: immediate value must be a multiple of 2 at operand 3 -- `ld2b \{z0\.b,z1\.b\},p1/z,\[x1,#1,mul vl\]'
>  .*: Error: invalid addressing mode at operand 3 -- `ld2b \{z0\.b,z1\.b\},p1/z,\[x1,#14,mul vl\]!'
>  .*: Error: immediate offset out of range -16 to 14 at operand 3 -- `ld2b \{z0\.b,z1\.b\},p1/z,\[x1,#16,mul vl\]'
>  .*: Error: immediate offset out of range -24 to 21 at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#-27,mul vl\]'
>  .*: Error: immediate offset out of range -24 to 21 at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#-26,mul vl\]'
>  .*: Error: immediate offset out of range -24 to 21 at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#-25,mul vl\]'
>  .*: Error: constant offset required at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#foo,mul vl\]'
> -.*: Error: immediate value should be a multiple of 3 at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#1,mul vl\]'
> -.*: Error: immediate value should be a multiple of 3 at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#2,mul vl\]'
> +.*: Error: immediate value must be a multiple of 3 at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#1,mul vl\]'
> +.*: Error: immediate value must be a multiple of 3 at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#2,mul vl\]'
>  .*: Error: invalid addressing mode at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#21,mul vl\]!'
>  .*: Error: immediate offset out of range -24 to 21 at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#24,mul vl\]'
>  .*: Error: immediate offset out of range -32 to 28 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#-36,mul vl\]'
> @@ -314,9 +314,9 @@
>  .*: Error: immediate offset out of range -32 to 28 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#-34,mul vl\]'
>  .*: Error: immediate offset out of range -32 to 28 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#-33,mul vl\]'
>  .*: Error: constant offset required at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#foo,mul vl\]'
> -.*: Error: immediate value should be a multiple of 4 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#1,mul vl\]'
> -.*: Error: immediate value should be a multiple of 4 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#2,mul vl\]'
> -.*: Error: immediate value should be a multiple of 4 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#3,mul vl\]'
> +.*: Error: immediate value must be a multiple of 4 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#1,mul vl\]'
> +.*: Error: immediate value must be a multiple of 4 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#2,mul vl\]'
> +.*: Error: immediate value must be a multiple of 4 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#3,mul vl\]'
>  .*: Error: invalid addressing mode at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#28,mul vl\]!'
>  .*: Error: immediate offset out of range -32 to 28 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#32,mul vl\]'
>  .*: Error: immediate offset out of range -32 to 31 at operand 3 -- `prfb pldl1keep,p1,\[x1,#-33,mul vl\]'
> @@ -338,7 +338,7 @@
>  .*: Error: immediate offset out of range 0 to 126 at operand 3 -- `ld1rh z0\.h,p1/z,\[x1,#-2\]'
>  .*: Error: immediate offset out of range 0 to 126 at operand 3 -- `ld1rh z0\.h,p1/z,\[x1,#-1\]'
>  .*: Error: constant offset required at operand 3 -- `ld1rh z0\.h,p1/z,\[x1,#foo\]'
> -.*: Error: immediate value should be a multiple of 2 at operand 3 -- `ld1rh z0\.h,p1/z,\[x1,#1\]'
> +.*: Error: immediate value must be a multiple of 2 at operand 3 -- `ld1rh z0\.h,p1/z,\[x1,#1\]'
>  .*: Error: invalid addressing mode at operand 3 -- `ld1rh z0\.h,p1/z,\[x1,#2,mul vl\]'
>  .*: Error: invalid addressing mode at operand 3 -- `ld1rh z0\.h,p1/z,\[x1,#126\]!'
>  .*: Error: invalid addressing mode at operand 3 -- `ld1rh z0\.h,p1/z,\[x1\],#126'
> @@ -346,8 +346,8 @@
>  .*: Error: immediate offset out of range 0 to 252 at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#-4\]'
>  .*: Error: immediate offset out of range 0 to 252 at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#-1\]'
>  .*: Error: constant offset required at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#foo\]'
> -.*: Error: immediate value should be a multiple of 4 at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#1\]'
> -.*: Error: immediate value should be a multiple of 4 at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#2\]'
> +.*: Error: immediate value must be a multiple of 4 at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#1\]'
> +.*: Error: immediate value must be a multiple of 4 at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#2\]'
>  .*: Error: invalid addressing mode at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#4,mul vl\]'
>  .*: Error: invalid addressing mode at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#252\]!'
>  .*: Error: invalid addressing mode at operand 3 -- `ld1rw z0\.s,p1/z,\[x1\],#252'
> @@ -355,9 +355,9 @@
>  .*: Error: immediate offset out of range 0 to 504 at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#-8\]'
>  .*: Error: immediate offset out of range 0 to 504 at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#-1\]'
>  .*: Error: constant offset required at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#foo\]'
> -.*: Error: immediate value should be a multiple of 8 at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#1\]'
> -.*: Error: immediate value should be a multiple of 8 at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#2\]'
> -.*: Error: immediate value should be a multiple of 8 at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#4\]'
> +.*: Error: immediate value must be a multiple of 8 at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#1\]'
> +.*: Error: immediate value must be a multiple of 8 at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#2\]'
> +.*: Error: immediate value must be a multiple of 8 at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#4\]'
>  .*: Error: invalid addressing mode at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#8,mul vl\]'
>  .*: Error: invalid addressing mode at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#504\]!'
>  .*: Error: invalid addressing mode at operand 3 -- `ld1rd z0\.d,p1/z,\[x1\],#504'
> @@ -457,22 +457,22 @@
>  .*: Error: immediate offset out of range 0 to 62 at operand 3 -- `ld1h z0\.d,p1/z,\[z2\.d,#-2\]'
>  .*: Error: immediate offset out of range 0 to 62 at operand 3 -- `ld1h z0\.d,p1/z,\[z2\.d,#-1\]'
>  .*: Error: constant offset required at operand 3 -- `ld1h z0\.d,p1/z,\[z2\.d,#foo\]'
> -.*: Error: immediate value should be a multiple of 2 at operand 3 -- `ld1h z0\.d,p1/z,\[z2\.d,#1\]'
> +.*: Error: immediate value must be a multiple of 2 at operand 3 -- `ld1h z0\.d,p1/z,\[z2\.d,#1\]'
>  .*: Error: invalid addressing mode at operand 3 -- `ld1h z0\.d,p1/z,\[z2\.d,#2,mul vl\]'
>  .*: Error: immediate offset out of range 0 to 62 at operand 3 -- `ld1h z0\.d,p1/z,\[z2\.d,#64\]'
>  .*: Error: immediate offset out of range 0 to 124 at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#-4\]'
>  .*: Error: immediate offset out of range 0 to 124 at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#-1\]'
>  .*: Error: constant offset required at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#foo\]'
> -.*: Error: immediate value should be a multiple of 4 at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#1\]'
> -.*: Error: immediate value should be a multiple of 4 at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#2\]'
> +.*: Error: immediate value must be a multiple of 4 at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#1\]'
> +.*: Error: immediate value must be a multiple of 4 at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#2\]'
>  .*: Error: invalid addressing mode at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#4,mul vl\]'
>  .*: Error: immediate offset out of range 0 to 124 at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#128\]'
>  .*: Error: immediate offset out of range 0 to 248 at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#-8\]'
>  .*: Error: immediate offset out of range 0 to 248 at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#-1\]'
>  .*: Error: constant offset required at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#foo\]'
> -.*: Error: immediate value should be a multiple of 8 at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#1\]'
> -.*: Error: immediate value should be a multiple of 8 at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#2\]'
> -.*: Error: immediate value should be a multiple of 8 at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#4\]'
> +.*: Error: immediate value must be a multiple of 8 at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#1\]'
> +.*: Error: immediate value must be a multiple of 8 at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#2\]'
> +.*: Error: immediate value must be a multiple of 8 at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#4\]'
>  .*: Error: invalid addressing mode at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#8,mul vl\]'
>  .*: Error: immediate offset out of range 0 to 248 at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#256\]'
>  .*: Error: shift amount out of range 0 to 63 at operand 2 -- `adr z0\.s,\[z1\.s,z2\.s,lsl#-1\]'
> @@ -835,32 +835,32 @@
>  .*: Error: floating-point value must be 0\.0 or 1\.0 at operand 4 -- `fmax z0\.s,p1/m,z0\.s,#1\.5'
>  .*: Error: invalid floating-point constant at operand 4 -- `fmax z0\.s,p1/m,z0\.s,#2'
>  .*: Error: floating-point value must be 0\.0 or 1\.0 at operand 4 -- `fmax z0\.s,p1/m,z0\.s,#2\.0'
> -.*: Error: operand 2 should be an enumeration value such as POW2 -- `ptrue p1\.b,vl0'
> -.*: Error: operand 2 should be an enumeration value such as POW2 -- `ptrue p1\.b,vl255'
> -.*: Error: operand 2 should be an enumeration value such as POW2 -- `ptrue p1\.b,#-1'
> -.*: Error: operand 2 should be an enumeration value such as POW2 -- `ptrue p1\.b,#32'
> +.*: Error: operand 2 must be an enumeration value such as POW2 -- `ptrue p1\.b,vl0'
> +.*: Error: operand 2 must be an enumeration value such as POW2 -- `ptrue p1\.b,vl255'
> +.*: Error: operand 2 must be an enumeration value such as POW2 -- `ptrue p1\.b,#-1'
> +.*: Error: operand 2 must be an enumeration value such as POW2 -- `ptrue p1\.b,#32'
>  .*: Error: immediate operand required at operand 2 -- `ptrue p1\.b,x0'
>  .*: Error: immediate operand required at operand 2 -- `ptrue p1\.b,z0\.s'
> -.*: Error: operand 2 should be an enumeration value such as POW2 -- `cntb x0,vl0'
> -.*: Error: operand 2 should be an enumeration value such as POW2 -- `cntb x0,vl255'
> -.*: Error: operand 2 should be an enumeration value such as POW2 -- `cntb x0,#-1'
> -.*: Error: operand 2 should be an enumeration value such as POW2 -- `cntb x0,#32'
> +.*: Error: operand 2 must be an enumeration value such as POW2 -- `cntb x0,vl0'
> +.*: Error: operand 2 must be an enumeration value such as POW2 -- `cntb x0,vl255'
> +.*: Error: operand 2 must be an enumeration value such as POW2 -- `cntb x0,#-1'
> +.*: Error: operand 2 must be an enumeration value such as POW2 -- `cntb x0,#32'
>  .*: Error: immediate operand required at operand 2 -- `cntb x0,x0'
>  .*: Error: immediate operand required at operand 2 -- `cntb x0,z0\.s'
> -.*: Error: operand 2 should be an enumeration value such as POW2 -- `cntb x0,mul#1'
> +.*: Error: operand 2 must be an enumeration value such as POW2 -- `cntb x0,mul#1'
>  .*: Error: multiplier out of range 1 to 16 at operand 2 -- `cntb x0,pow2,mul#0'
>  .*: Error: multiplier out of range 1 to 16 at operand 2 -- `cntb x0,pow2,mul#17'
>  .*: Error: shift expression expected at operand 2 -- `cntb x0,pow2,#1'
> -.*: Error: operand 1 should be an enumeration value such as PLDL1KEEP -- `prfb pldl0keep,p1,\[x0\]'
> -.*: Error: operand 1 should be an enumeration value such as PLDL1KEEP -- `prfb pldl4keep,p1,\[x0\]'
> -.*: Error: operand 1 should be an enumeration value such as PLDL1KEEP -- `prfb #-1,p1,\[x0\]'
> -.*: Error: operand 1 should be an enumeration value such as PLDL1KEEP -- `prfb #16,p1,\[x0\]'
> +.*: Error: operand 1 must be an enumeration value such as PLDL1KEEP -- `prfb pldl0keep,p1,\[x0\]'
> +.*: Error: operand 1 must be an enumeration value such as PLDL1KEEP -- `prfb pldl4keep,p1,\[x0\]'
> +.*: Error: operand 1 must be an enumeration value such as PLDL1KEEP -- `prfb #-1,p1,\[x0\]'
> +.*: Error: operand 1 must be an enumeration value such as PLDL1KEEP -- `prfb #16,p1,\[x0\]'
>  .*: Error: immediate operand required at operand 1 -- `prfb x0,p1,\[x0\]'
>  .*: Error: immediate operand required at operand 1 -- `prfb z0\.s,p1,\[x0\]'
>  .*: Error: immediate value out of range 0 to 7 at operand 3 -- `lsl z0\.b,z0\.b,#-1'
>  .*: Error: immediate value out of range 0 to 7 at operand 3 -- `lsl z0\.b,z0\.b,#8'
>  .*: Error: immediate value out of range 0 to 7 at operand 3 -- `lsl z0\.b,z0\.b,#9'
> -.*: Error: operand 3 should be an SVE vector register -- `lsl z0\.b,z0\.b,x0'
> +.*: Error: operand 3 must be an SVE vector register -- `lsl z0\.b,z0\.b,x0'
>  .*: Error: immediate value out of range 0 to 15 at operand 3 -- `lsl z0\.h,z0\.h,#-1'
>  .*: Error: immediate value out of range 0 to 15 at operand 3 -- `lsl z0\.h,z0\.h,#16'
>  .*: Error: immediate value out of range 0 to 15 at operand 3 -- `lsl z0\.h,z0\.h,#17'
> @@ -873,7 +873,7 @@
>  .*: Error: immediate value out of range 0 to 7 at operand 4 -- `lsl z0\.b,p1/m,z0\.b,#-1'
>  .*: Error: immediate value out of range 0 to 7 at operand 4 -- `lsl z0\.b,p1/m,z0\.b,#8'
>  .*: Error: immediate value out of range 0 to 7 at operand 4 -- `lsl z0\.b,p1/m,z0\.b,#9'
> -.*: Error: operand 4 should be an SVE vector register -- `lsl z0\.b,p1/m,z0\.b,x0'
> +.*: Error: operand 4 must be an SVE vector register -- `lsl z0\.b,p1/m,z0\.b,x0'
>  .*: Error: immediate value out of range 0 to 15 at operand 4 -- `lsl z0\.h,p1/m,z0\.h,#-1'
>  .*: Error: immediate value out of range 0 to 15 at operand 4 -- `lsl z0\.h,p1/m,z0\.h,#16'
>  .*: Error: immediate value out of range 0 to 15 at operand 4 -- `lsl z0\.h,p1/m,z0\.h,#17'
> @@ -886,7 +886,7 @@
>  .*: Error: immediate value out of range 1 to 8 at operand 3 -- `lsr z0\.b,z0\.b,#-1'
>  .*: Error: immediate value out of range 1 to 8 at operand 3 -- `lsr z0\.b,z0\.b,#0'
>  .*: Error: immediate value out of range 1 to 8 at operand 3 -- `lsr z0\.b,z0\.b,#9'
> -.*: Error: operand 3 should be an SVE vector register -- `lsr z0\.b,z0\.b,x0'
> +.*: Error: operand 3 must be an SVE vector register -- `lsr z0\.b,z0\.b,x0'
>  .*: Error: immediate value out of range 1 to 16 at operand 3 -- `lsr z0\.h,z0\.h,#-1'
>  .*: Error: immediate value out of range 1 to 16 at operand 3 -- `lsr z0\.h,z0\.h,#0'
>  .*: Error: immediate value out of range 1 to 16 at operand 3 -- `lsr z0\.h,z0\.h,#17'
> @@ -899,7 +899,7 @@
>  .*: Error: immediate value out of range 1 to 8 at operand 4 -- `lsr z0\.b,p1/m,z0\.b,#-1'
>  .*: Error: immediate value out of range 1 to 8 at operand 4 -- `lsr z0\.b,p1/m,z0\.b,#0'
>  .*: Error: immediate value out of range 1 to 8 at operand 4 -- `lsr z0\.b,p1/m,z0\.b,#9'
> -.*: Error: operand 4 should be an SVE vector register -- `lsr z0\.b,p1/m,z0\.b,x0'
> +.*: Error: operand 4 must be an SVE vector register -- `lsr z0\.b,p1/m,z0\.b,x0'
>  .*: Error: immediate value out of range 1 to 16 at operand 4 -- `lsr z0\.h,p1/m,z0\.h,#-1'
>  .*: Error: immediate value out of range 1 to 16 at operand 4 -- `lsr z0\.h,p1/m,z0\.h,#0'
>  .*: Error: immediate value out of range 1 to 16 at operand 4 -- `lsr z0\.h,p1/m,z0\.h,#17'
> @@ -915,8 +915,8 @@
>  .*: Error: immediate value out of range -16 to 15 at operand 3 -- `index z0\.s,#0,#16'
>  .*: Error: immediate value out of range -32 to 31 at operand 3 -- `addpl x0,sp,#-33'
>  .*: Error: immediate value out of range -32 to 31 at operand 3 -- `addpl sp,x0,#32'
> -.*: Error: operand 2 should be an integer register or SP -- `addpl x0,xzr,#1'
> -.*: Error: operand 1 should be an integer or stack pointer register -- `addpl xzr,x0,#1'
> +.*: Error: operand 2 must be an integer register or SP -- `addpl x0,xzr,#1'
> +.*: Error: operand 1 must be an integer or stack pointer register -- `addpl xzr,x0,#1'
>  .*: Error: immediate value out of range -128 to 127 at operand 3 -- `mul z0\.b,z0\.b,#-129'
>  .*: Error: immediate value out of range -128 to 127 at operand 3 -- `mul z0\.b,z0\.b,#128'
>  .*: Error: immediate value out of range -128 to 127 at operand 3 -- `mul z0\.s,z0\.s,#-129'
> diff --git a/gas/testsuite/gas/aarch64/sve-reg-diagnostic.l b/gas/testsuite/gas/aarch64/sve-reg-diagnostic.l
> index 6c46b40..b0ade28 100644
> --- a/gas/testsuite/gas/aarch64/sve-reg-diagnostic.l
> +++ b/gas/testsuite/gas/aarch64/sve-reg-diagnostic.l
> @@ -1,6 +1,6 @@
>  .*: Assembler messages:
> -.*: Error: operand 3 should be a SIMD vector register -- `cmeq v0\.4s,v1\.4s,x0'
> -.*: Error: operand 3 should be a SIMD vector register -- `cmeq v0\.4s,v1\.4s,s0'
> +.*: Error: operand 3 must be a SIMD vector register -- `cmeq v0\.4s,v1\.4s,x0'
> +.*: Error: operand 3 must be a SIMD vector register -- `cmeq v0\.4s,v1\.4s,s0'
>  .*: Error: immediate zero expected at operand 3 -- `cmeq v0\.4s,v1\.4s,p0\.b'
>  .*: Error: immediate zero expected at operand 3 -- `cmeq v0\.4s,v1\.4s,#p0\.b'
>  .*: Error: 64-bit integer or SP register expected at operand 2 -- `ldr x1,\[s0\]'
> @@ -19,6 +19,6 @@
>  .*: Error: immediate out of range at operand 3 -- `and x0,x0,#z0\.s'
>  .*: Error: immediate out of range at operand 3 -- `and x0,x0,p0'
>  .*: Error: immediate out of range at operand 3 -- `and x0,x0,#p0'
> -.*: Error: operand 3 should be an integer register -- `lsl x0,x0,s0'
> +.*: Error: operand 3 must be an integer register -- `lsl x0,x0,s0'
>  .*: Error: immediate operand required at operand 1 -- `svc x0'
>  .*: Error: immediate operand required at operand 1 -- `svc s0'
> diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c
> index b07429d..0f0795b 100644
> --- a/opcodes/aarch64-opc.c
> +++ b/opcodes/aarch64-opc.c
> @@ -1914,7 +1914,7 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx,
>  	  if (opnd->shifter.amount != 0 && opnd->shifter.amount != 12)
>  	    {
>  	      set_other_error (mismatch_detail, idx,
> -			       _("shift amount expected to be 0 or 12"));
> +			       _("shift amount must be 0 or 12"));
>  	      return 0;
>  	    }
>  	  if (!value_fit_unsigned_field_p (opnd->imm.value, 12))
> @@ -1937,7 +1937,7 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx,
>  	  if (!value_aligned_p (opnd->shifter.amount, 16))
>  	    {
>  	      set_other_error (mismatch_detail, idx,
> -			       _("shift amount should be a multiple of 16"));
> +			       _("shift amount must be a multiple of 16"));
>  	      return 0;
>  	    }
>  	  if (!value_in_range_p (opnd->shifter.amount, 0, size * 8 - 16))
> @@ -2174,7 +2174,7 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx,
>  	      if (opnd->shifter.amount != 8 && opnd->shifter.amount != 16)
>  		{
>  		  set_other_error (mismatch_detail, idx,
> -				   _("shift amount expected to be 0 or 16"));
> +				   _("shift amount must be 0 or 16"));
>  		  return 0;
>  		}
>  	      break;
> 

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2016-09-20 13:52 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-16 12:13 [AArch64] Use "must" rather than "should" in error messages Richard Sandiford
2016-09-20 13:52 ` Richard Earnshaw (lists)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).