From ab3b8fcfdb06695d27eaec4eedb019ada4a5713e Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Wed, 21 Sep 2016 17:11:04 +0100 Subject: [PATCH] [AArch64] Use "must" rather than "should" in error messages 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". 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. --- gas/ChangeLog | 10 ++ gas/config/tc-aarch64.c | 8 +- gas/testsuite/gas/aarch64/diagnostic.l | 50 +++++----- gas/testsuite/gas/aarch64/legacy_reg_names.l | 4 +- gas/testsuite/gas/aarch64/sve-invalid.l | 92 +++++++++---------- .../gas/aarch64/sve-reg-diagnostic.l | 6 +- opcodes/ChangeLog | 5 + opcodes/aarch64-opc.c | 6 +- 8 files changed, 98 insertions(+), 83 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index b5f8425e573..1830ea2b113 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,13 @@ +2016-09-21 Richard Sandiford + + * 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. + 2016-09-21 Richard Sandiford * config/tc-aarch64.c (opcode_lookup): Search for the end of diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index bc39fe99cb9..9963c61c8ae 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 f8bbbc2a6fe..427a36aad69 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 239b4580262..791bad33a69 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 1cb06c529eb..5ecb9932f80 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 6c46b401f8d..b0ade281acc 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/ChangeLog b/opcodes/ChangeLog index cb610be0000..63271f2dd89 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2016-09-21 Richard Sandiford + + * aarch64-opc.c (operand_general_constraint_met_p): Use "must be" + rather than "should be" or "expected to be" in error messages. + 2016-09-21 Richard Sandiford * aarch64-dis.c (remove_dot_suffix): New function, split out from... diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c index b07429db5f0..0f0795bf404 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; -- 2.30.2