diff options
-rw-r--r-- | gas/ChangeLog | 10 | ||||
-rw-r--r-- | gas/config/tc-aarch64.c | 8 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/diagnostic.l | 50 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/legacy_reg_names.l | 4 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/sve-invalid.l | 92 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/sve-reg-diagnostic.l | 6 | ||||
-rw-r--r-- | opcodes/ChangeLog | 5 | ||||
-rw-r--r-- | opcodes/aarch64-opc.c | 6 |
8 files changed, 98 insertions, 83 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index b5f8425..1830ea2 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,15 @@ 2016-09-21 Richard Sandiford <richard.sandiford@arm.com> + * 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 <richard.sandiford@arm.com> + * config/tc-aarch64.c (opcode_lookup): Search for the end of a condition name, rather than assuming that it will have exactly 2 characters. 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/ChangeLog b/opcodes/ChangeLog index cb610be..63271f2 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,5 +1,10 @@ 2016-09-21 Richard Sandiford <richard.sandiford@arm.com> + * 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 <richard.sandiford@arm.com> + * aarch64-dis.c (remove_dot_suffix): New function, split out from... (print_mnemonic_name): ...here. (print_comment): New function. 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; |