summaryrefslogtreecommitdiff
path: root/gas/testsuite
diff options
context:
space:
mode:
authorRichard Sandiford <rsandifo@nildram.co.uk>2013-08-19 19:26:10 +0000
committerRichard Sandiford <rsandifo@nildram.co.uk>2013-08-19 19:26:10 +0000
commitd369f97b246e30a06bddeb34d1bc53ceaa657b3c (patch)
treecb6954438f5b5b1bc936c4fe5cbeeff0415d95f6 /gas/testsuite
parentb0b4b38dde3530b93dba703a7e926d25c7334cfc (diff)
downloadbinutils-redhat-d369f97b246e30a06bddeb34d1bc53ceaa657b3c.tar.gz
gas/
* config/tc-mips.c (mips_arg_info): Remove soft_match. (match_out_of_range, match_not_constant): New functions. (match_const_int): Remove fallback parameter and check for soft_match. Use match_not_constant. (match_mapped_int_operand, match_addiusp_operand) (match_perf_reg_operand, match_save_restore_list_operand) (match_mdmx_imm_reg_operand): Update accordingly. Use match_out_of_range and set_insn_error* instead of as_bad. (match_int_operand): Likewise. Use match_not_constant in the !allows_nonconst case. (match_float_constant): Report invalid float constants. (match_insn, match_mips16_insn): Remove soft_match code. Rely on match_float_constant to check for invalid constants. Fail the match if match_const_int or match_float_constant return false. (mips_ip): Update accordingly. (mips16_ip): Likewise. Undo null termination of instruction name once lookup is complete. gas/testsuite/ * gas/mips/ext-ill.l, gas/mips/lui-1.l, gas/mips/mips16e-64.l, gas/mips/mips32r2-ill-fp64.l, gas/mips/mips32r2-ill-nofp.l, gas/mips/mips32r2-ill.l, gas/mips/mips64r2-ill.l, gas/mips/octeon-ill.l, gas/mips/r5900-error-vu0.l, gas/mips/vr5400-ill.l: Adjust expected errors. * gas/mips/micromips-size-0.l, gas/mips/micromips-size-0.s: Likewise. Add new tests. * gas/mips/mips16e-save-err.s, gas/mips/mips16e-save-err.l: New test. * gas/mips/mips.exp: Run it.
Diffstat (limited to 'gas/testsuite')
-rw-r--r--gas/testsuite/ChangeLog12
-rw-r--r--gas/testsuite/gas/mips/ext-ill.l8
-rw-r--r--gas/testsuite/gas/mips/lui-1.l4
-rw-r--r--gas/testsuite/gas/mips/micromips-size-0.l10
-rw-r--r--gas/testsuite/gas/mips/micromips-size-0.s21
-rw-r--r--gas/testsuite/gas/mips/mips.exp1
-rw-r--r--gas/testsuite/gas/mips/mips16e-64.l4
-rw-r--r--gas/testsuite/gas/mips/mips16e-save-err.l13
-rw-r--r--gas/testsuite/gas/mips/mips16e-save-err.s18
-rw-r--r--gas/testsuite/gas/mips/mips32r2-ill-fp64.l24
-rw-r--r--gas/testsuite/gas/mips/mips32r2-ill-nofp.l24
-rw-r--r--gas/testsuite/gas/mips/mips32r2-ill.l24
-rw-r--r--gas/testsuite/gas/mips/mips64r2-ill.l80
-rw-r--r--gas/testsuite/gas/mips/octeon-ill.l48
-rw-r--r--gas/testsuite/gas/mips/r5900-error-vu0.l26
-rw-r--r--gas/testsuite/gas/mips/vr5400-ill.l8
16 files changed, 199 insertions, 126 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index b8d15d0f70..128facd549 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,5 +1,17 @@
2013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
+ * gas/mips/ext-ill.l, gas/mips/lui-1.l, gas/mips/mips16e-64.l,
+ gas/mips/mips32r2-ill-fp64.l, gas/mips/mips32r2-ill-nofp.l,
+ gas/mips/mips32r2-ill.l, gas/mips/mips64r2-ill.l,
+ gas/mips/octeon-ill.l, gas/mips/r5900-error-vu0.l,
+ gas/mips/vr5400-ill.l: Adjust expected errors.
+ * gas/mips/micromips-size-0.l,
+ gas/mips/micromips-size-0.s: Likewise. Add new tests.
+ * gas/mips/mips16e-save-err.s, gas/mips/mips16e-save-err.l: New test.
+ * gas/mips/mips.exp: Run it.
+
+2013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
+
* gas/mips/micromips-ill.l: Expect "floating-point expression required"
2013-08-06 Jürgen Urban <JuergenUrban@gmx.de>
diff --git a/gas/testsuite/gas/mips/ext-ill.l b/gas/testsuite/gas/mips/ext-ill.l
index b61f03c24b..606c047d9e 100644
--- a/gas/testsuite/gas/mips/ext-ill.l
+++ b/gas/testsuite/gas/mips/ext-ill.l
@@ -1,6 +1,6 @@
.*: Assembler messages:
-.*:5: Error: Invalid field specification \(position 1, size 0\)
+.*:5: Error: operand 4 out of range `ext \$2,\$3,1,0'
.*:6: Error: Invalid field specification \(position 1, size 0\)
-.*:7: Error: Invalid field specification \(position 31, size 2\)
-.*:8: Error: Invalid field specification \(position 1, size 32\)
-.*:9: Error: Invalid field specification \(position 33, size 0\)
+.*:7: Error: operand 4 out of range `dextm \$2,\$3,31,2'
+.*:8: Error: operand 4 out of range `dextm \$2,\$3,1,32'
+.*:9: Error: operand 4 out of range `dextu \$2,\$3,33,0'
diff --git a/gas/testsuite/gas/mips/lui-1.l b/gas/testsuite/gas/mips/lui-1.l
index 464bd75ffe..d2f0c2d830 100644
--- a/gas/testsuite/gas/mips/lui-1.l
+++ b/gas/testsuite/gas/mips/lui-1.l
@@ -1,5 +1,5 @@
.*\.s: Assembler messages:
-.*\.s:5: Error: Operand 2 of `lui' must be in the range \[0x0, 0xffff\], was -1.
-.*\.s:6: Error: Operand 2 of `lui' must be in the range \[0x0, 0xffff\], was 0x10000.
+.*\.s:5: Error: operand 2 out of range `lui \$2,-1'
+.*\.s:6: Error: operand 2 out of range `lui \$2,65536'
.*\.s:7: Error: bignum invalid
.*\.s:8: Error: register value used as expression
diff --git a/gas/testsuite/gas/mips/micromips-size-0.l b/gas/testsuite/gas/mips/micromips-size-0.l
index e7238b082b..e34d83b42f 100644
--- a/gas/testsuite/gas/mips/micromips-size-0.l
+++ b/gas/testsuite/gas/mips/micromips-size-0.l
@@ -26,7 +26,7 @@
.*:108: Warning: Wrong size instruction in a 32-bit branch delay slot
.*:110: Warning: Wrong size instruction in a 32-bit branch delay slot
.*:112: Error: Unrecognized 32-bit version of microMIPS opcode `addiusp32 256'
-.*:120: Error: Illegal operands `sll16 \$2,\$3,13'
+.*:120: Error: operand 3 out of range `sll16 \$2,\$3,13'
.*:123: Error: Illegal operands `sll16 \$10,\$11,5'
.*:128: Error: Unrecognized 16-bit version of microMIPS opcode `dsll16 \$2,\$3,5'
.*:130: Error: Unrecognized 16-bit version of microMIPS opcode `dsll3216 \$2,\$3,5'
@@ -34,3 +34,11 @@
.*:135: Error: Unrecognized 16-bit version of microMIPS opcode `dsll3216 \$2,\$3,13'
.*:138: Error: Unrecognized 16-bit version of microMIPS opcode `dsll16 \$10,\$11,5'
.*:140: Error: Unrecognized 16-bit version of microMIPS opcode `dsll3216 \$10,\$11,5'
+.*:145: Error: operand 3 out of range `addiu16 \$2,\$4,5'
+.*:146: Error: operand 3 out of range `addiu16 \$2,\$4,7'
+.*:149: Error: operand 3 out of range `andi16 \$2,\$4,5'
+.*:154: Error: operand 1 out of range `addiusp16 4'
+.*:155: Error: operand 1 out of range `addiusp16 7'
+.*:157: Error: operand 1 out of range `addiusp16 10'
+.*:160: Error: operand 1 out of range `addiusp16 1032'
+.*:162: Error: operand 1 out of range `addiusp16 -1036'
diff --git a/gas/testsuite/gas/mips/micromips-size-0.s b/gas/testsuite/gas/mips/micromips-size-0.s
index c58e54326e..bc2588d712 100644
--- a/gas/testsuite/gas/mips/micromips-size-0.s
+++ b/gas/testsuite/gas/mips/micromips-size-0.s
@@ -140,6 +140,27 @@ foo:
dsll3216 $10, $11, 5
dsll3232 $10, $11, 5
+# Test out-of-range mapped constants
+ addiu16 $2, $4, 4 # OK
+ addiu16 $2, $4, 5 # error
+ addiu16 $2, $4, 7 # error
+ addiu16 $2, $4, 8 # OK
+ andi16 $2, $4, 4 # OK
+ andi16 $2, $4, 5 # error
+ andi16 $2, $4, 7 # OK
+ andi16 $2, $4, 8 # OK
+
+# Test invalid ADDIUSP
+ addiusp16 4 # error
+ addiusp16 7 # error
+ addiusp16 8 # OK
+ addiusp16 10 # error
+ addiusp16 12 # OK
+ addiusp16 1028 # OK
+ addiusp16 1032 # error
+ addiusp16 -1032 # OK
+ addiusp16 -1036 # error
+
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.align 2
.space 8
diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp
index d4a0410c3d..4538aca94c 100644
--- a/gas/testsuite/gas/mips/mips.exp
+++ b/gas/testsuite/gas/mips/mips.exp
@@ -1039,6 +1039,7 @@ if { [istarget mips*-*-vxworks*] } {
run_dump_test "mips16e-jrc"
run_dump_test "mips16e-save"
+ run_list_test "mips16e-save-err" "-march=mips32 -32"
run_dump_test "mips16e-64"
run_list_test "mips16e-64" "-march=mips32 -32"
run_dump_test "mips16-intermix"
diff --git a/gas/testsuite/gas/mips/mips16e-64.l b/gas/testsuite/gas/mips/mips16e-64.l
index 1202212fe9..378959a6f8 100644
--- a/gas/testsuite/gas/mips/mips16e-64.l
+++ b/gas/testsuite/gas/mips/mips16e-64.l
@@ -1,3 +1,3 @@
.*: Assembler messages:
-.*: Error: Opcode not supported on this processor: .* (.*) `sew'
-.*: Error: Opcode not supported on this processor: .* (.*) `zew'
+.*: Error: Opcode not supported on this processor: .* (.*) `sew \$4'
+.*: Error: Opcode not supported on this processor: .* (.*) `zew \$4'
diff --git a/gas/testsuite/gas/mips/mips16e-save-err.l b/gas/testsuite/gas/mips/mips16e-save-err.l
new file mode 100644
index 0000000000..3403fc7a0d
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips16e-save-err.l
@@ -0,0 +1,13 @@
+.*: Assembler messages:
+.*:2: Error: Illegal operands `save \$3,100'
+.*:3: Error: missing frame size `save \$4'
+.*:4: Error: frame size specified twice `save \$4,100,200'
+.*:5: Error: operand 2 must be constant `save \$4,foo'
+.*:7: Error: invalid frame size `save \$4,1'
+.*:8: Error: invalid frame size `save \$4,7'
+.*:10: Error: invalid frame size `save \$4,12'
+.*:11: Error: invalid frame size `save \$4,2048'
+.*:12: Error: invalid frame size `save \$4,2052'
+.*:14: Error: Illegal operands `save \$4,\$6,0'
+.*:15: Error: Illegal operands `save 0,\$5,\$7'
+.*:18: Error: Illegal operands `save \$16,\$18,\$20,0'
diff --git a/gas/testsuite/gas/mips/mips16e-save-err.s b/gas/testsuite/gas/mips/mips16e-save-err.s
new file mode 100644
index 0000000000..afed6c6128
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips16e-save-err.s
@@ -0,0 +1,18 @@
+ .set mips16
+ save $3,100 # error
+ save $4 # error
+ save $4,100,200 # error
+ save $4,foo # error
+ save $4,0 # OK
+ save $4,1 # error
+ save $4,7 # error
+ save $4,8 # OK
+ save $4,12 # error
+ save $4,2048 # OK
+ save $4,2052 # error
+ save $4,0,$7 # error
+ save $4,$6,0 # error
+ save 0,$5,$7 # error
+ save $16,$18,0 # OK
+ save $16,$18,$19,0 # OK
+ save $16,$18,$20,0 # error
diff --git a/gas/testsuite/gas/mips/mips32r2-ill-fp64.l b/gas/testsuite/gas/mips/mips32r2-ill-fp64.l
index 3e0e30ee91..adffffde61 100644
--- a/gas/testsuite/gas/mips/mips32r2-ill-fp64.l
+++ b/gas/testsuite/gas/mips/mips32r2-ill-fp64.l
@@ -1,13 +1,13 @@
.*: Assembler messages:
-.*:12: Error: Operand 3 of `ext' must be in the range \[0, 31\], was -1.
-.*:15: Error: Operand 3 of `ext' must be in the range \[0, 31\], was 32.
-.*:18: Error: Invalid field specification \(position 0, size 0\)
-.*:21: Error: Invalid field specification \(position 0, size 33\)
-.*:24: Error: Invalid field specification \(position 0, size 0\)
-.*:27: Error: Invalid field specification \(position 31, size 2\)
-.*:30: Error: Operand 3 of `ins' must be in the range \[0, 31\], was -1.
-.*:33: Error: Operand 3 of `ins' must be in the range \[0, 31\], was 32.
-.*:36: Error: Invalid field specification \(position 0, size 0\)
-.*:39: Error: Invalid field specification \(position 0, size 33\)
-.*:42: Error: Invalid field specification \(position 0, size 0\)
-.*:45: Error: Invalid field specification \(position 31, size 2\)
+.*:12: Error: operand 3 out of range `ext \$4,\$5,-1,1'
+.*:15: Error: operand 3 out of range `ext \$4,\$5,32,1'
+.*:18: Error: operand 4 out of range `ext \$4,\$5,0,0'
+.*:21: Error: operand 4 out of range `ext \$4,\$5,0,33'
+.*:24: Error: operand 4 out of range `ext \$4,\$5,0,0'
+.*:27: Error: operand 4 out of range `ext \$4,\$5,31,2'
+.*:30: Error: operand 3 out of range `ins \$4,\$5,-1,1'
+.*:33: Error: operand 3 out of range `ins \$4,\$5,32,1'
+.*:36: Error: operand 4 out of range `ins \$4,\$5,0,0'
+.*:39: Error: operand 4 out of range `ins \$4,\$5,0,33'
+.*:42: Error: operand 4 out of range `ins \$4,\$5,0,0'
+.*:45: Error: operand 4 out of range `ins \$4,\$5,31,2'
diff --git a/gas/testsuite/gas/mips/mips32r2-ill-nofp.l b/gas/testsuite/gas/mips/mips32r2-ill-nofp.l
index 3e0e30ee91..adffffde61 100644
--- a/gas/testsuite/gas/mips/mips32r2-ill-nofp.l
+++ b/gas/testsuite/gas/mips/mips32r2-ill-nofp.l
@@ -1,13 +1,13 @@
.*: Assembler messages:
-.*:12: Error: Operand 3 of `ext' must be in the range \[0, 31\], was -1.
-.*:15: Error: Operand 3 of `ext' must be in the range \[0, 31\], was 32.
-.*:18: Error: Invalid field specification \(position 0, size 0\)
-.*:21: Error: Invalid field specification \(position 0, size 33\)
-.*:24: Error: Invalid field specification \(position 0, size 0\)
-.*:27: Error: Invalid field specification \(position 31, size 2\)
-.*:30: Error: Operand 3 of `ins' must be in the range \[0, 31\], was -1.
-.*:33: Error: Operand 3 of `ins' must be in the range \[0, 31\], was 32.
-.*:36: Error: Invalid field specification \(position 0, size 0\)
-.*:39: Error: Invalid field specification \(position 0, size 33\)
-.*:42: Error: Invalid field specification \(position 0, size 0\)
-.*:45: Error: Invalid field specification \(position 31, size 2\)
+.*:12: Error: operand 3 out of range `ext \$4,\$5,-1,1'
+.*:15: Error: operand 3 out of range `ext \$4,\$5,32,1'
+.*:18: Error: operand 4 out of range `ext \$4,\$5,0,0'
+.*:21: Error: operand 4 out of range `ext \$4,\$5,0,33'
+.*:24: Error: operand 4 out of range `ext \$4,\$5,0,0'
+.*:27: Error: operand 4 out of range `ext \$4,\$5,31,2'
+.*:30: Error: operand 3 out of range `ins \$4,\$5,-1,1'
+.*:33: Error: operand 3 out of range `ins \$4,\$5,32,1'
+.*:36: Error: operand 4 out of range `ins \$4,\$5,0,0'
+.*:39: Error: operand 4 out of range `ins \$4,\$5,0,33'
+.*:42: Error: operand 4 out of range `ins \$4,\$5,0,0'
+.*:45: Error: operand 4 out of range `ins \$4,\$5,31,2'
diff --git a/gas/testsuite/gas/mips/mips32r2-ill.l b/gas/testsuite/gas/mips/mips32r2-ill.l
index 7f9bedc7e7..48cc783c23 100644
--- a/gas/testsuite/gas/mips/mips32r2-ill.l
+++ b/gas/testsuite/gas/mips/mips32r2-ill.l
@@ -1,15 +1,15 @@
.*: Assembler messages:
-.*:12: Error: Operand 3 of `ext' must be in the range \[0, 31\], was -1.
-.*:15: Error: Operand 3 of `ext' must be in the range \[0, 31\], was 32.
-.*:18: Error: Invalid field specification \(position 0, size 0\)
-.*:21: Error: Invalid field specification \(position 0, size 33\)
-.*:24: Error: Invalid field specification \(position 0, size 0\)
-.*:27: Error: Invalid field specification \(position 31, size 2\)
-.*:30: Error: Operand 3 of `ins' must be in the range \[0, 31\], was -1.
-.*:33: Error: Operand 3 of `ins' must be in the range \[0, 31\], was 32.
-.*:36: Error: Invalid field specification \(position 0, size 0\)
-.*:39: Error: Invalid field specification \(position 0, size 33\)
-.*:42: Error: Invalid field specification \(position 0, size 0\)
-.*:45: Error: Invalid field specification \(position 31, size 2\)
+.*:12: Error: operand 3 out of range `ext \$4,\$5,-1,1'
+.*:15: Error: operand 3 out of range `ext \$4,\$5,32,1'
+.*:18: Error: operand 4 out of range `ext \$4,\$5,0,0'
+.*:21: Error: operand 4 out of range `ext \$4,\$5,0,33'
+.*:24: Error: operand 4 out of range `ext \$4,\$5,0,0'
+.*:27: Error: operand 4 out of range `ext \$4,\$5,31,2'
+.*:30: Error: operand 3 out of range `ins \$4,\$5,-1,1'
+.*:33: Error: operand 3 out of range `ins \$4,\$5,32,1'
+.*:36: Error: operand 4 out of range `ins \$4,\$5,0,0'
+.*:39: Error: operand 4 out of range `ins \$4,\$5,0,33'
+.*:42: Error: operand 4 out of range `ins \$4,\$5,0,0'
+.*:45: Error: operand 4 out of range `ins \$4,\$5,31,2'
.*:54: Warning: Float register should be even, was 1
.*:57: Warning: Float register should be even, was 1
diff --git a/gas/testsuite/gas/mips/mips64r2-ill.l b/gas/testsuite/gas/mips/mips64r2-ill.l
index 6cc6b35e8f..aa32a44461 100644
--- a/gas/testsuite/gas/mips/mips64r2-ill.l
+++ b/gas/testsuite/gas/mips/mips64r2-ill.l
@@ -7,22 +7,22 @@
.*:33: Error: Invalid field specification \(position 63, size 2\)
.*:34: Error: Invalid field specification \(position 63, size 63\)
.*:35: Error: Invalid field specification \(position 63, size 64\)
-.*:40: Error: Operand 3 of `dextm' must be in the range \[0, 31\], was -1.
-.*:43: Error: Operand 3 of `dextm' must be in the range \[0, 31\], was 32.
-.*:46: Error: Invalid field specification \(position 0, size 32\)
-.*:49: Error: Invalid field specification \(position 0, size 65\)
-.*:59: Error: Invalid field specification \(position 1, size 64\)
-.*:61: Error: Invalid field specification \(position 31, size 34\)
-.*:62: Error: Invalid field specification \(position 31, size 63\)
-.*:63: Error: Invalid field specification \(position 31, size 64\)
-.*:68: Error: Operand 3 of `dextu' must be in the range \[32, 63\], was 31.
-.*:71: Error: Operand 3 of `dextu' must be in the range \[32, 63\], was 64.
-.*:74: Error: Invalid field specification \(position 32, size 0\)
-.*:77: Error: Invalid field specification \(position 32, size 33\)
-.*:87: Error: Invalid field specification \(position 33, size 32\)
-.*:89: Error: Invalid field specification \(position 63, size 2\)
-.*:90: Error: Invalid field specification \(position 63, size 31\)
-.*:91: Error: Invalid field specification \(position 63, size 32\)
+.*:40: Error: operand 3 out of range `dextm \$4,\$5,-1,33'
+.*:43: Error: operand 3 out of range `dextm \$4,\$5,32,33'
+.*:46: Error: operand 4 out of range `dextm \$4,\$5,0,32'
+.*:49: Error: operand 4 out of range `dextm \$4,\$5,0,65'
+.*:59: Error: operand 4 out of range `dextm \$4,\$5,1,64'
+.*:61: Error: operand 4 out of range `dextm \$4,\$5,31,34'
+.*:62: Error: operand 4 out of range `dextm \$4,\$5,31,63'
+.*:63: Error: operand 4 out of range `dextm \$4,\$5,31,64'
+.*:68: Error: operand 3 out of range `dextu \$4,\$5,31,1'
+.*:71: Error: operand 3 out of range `dextu \$4,\$5,64,1'
+.*:74: Error: operand 4 out of range `dextu \$4,\$5,32,0'
+.*:77: Error: operand 4 out of range `dextu \$4,\$5,32,33'
+.*:87: Error: operand 4 out of range `dextu \$4,\$5,33,32'
+.*:89: Error: operand 4 out of range `dextu \$4,\$5,63,2'
+.*:90: Error: operand 4 out of range `dextu \$4,\$5,63,31'
+.*:91: Error: operand 4 out of range `dextu \$4,\$5,63,32'
.*:96: Error: Operand 3 of `dins' must be in the range \[0, 63\], was -1.
.*:99: Error: Operand 3 of `dins' must be in the range \[0, 63\], was 64.
.*:102: Error: Invalid field specification \(position 0, size 0\)
@@ -31,27 +31,27 @@
.*:117: Error: Invalid field specification \(position 63, size 2\)
.*:118: Error: Invalid field specification \(position 63, size 63\)
.*:119: Error: Invalid field specification \(position 63, size 64\)
-.*:124: Error: Operand 3 of `dinsm' must be in the range \[0, 31\], was -1.
-.*:127: Error: Operand 3 of `dinsm' must be in the range \[0, 31\], was 32.
-.*:130: Error: Invalid field specification \(position 31, size 1\)
-.*:133: Error: Invalid field specification \(position 0, size 65\)
-.*:136: Error: Invalid field specification \(position 0, size 2\)
-.*:137: Error: Invalid field specification \(position 0, size 3\)
-.*:140: Error: Invalid field specification \(position 1, size 2\)
-.*:141: Error: Invalid field specification \(position 1, size 3\)
-.*:143: Error: Invalid field specification \(position 1, size 64\)
-.*:144: Error: Invalid field specification \(position 30, size 2\)
-.*:146: Error: Invalid field specification \(position 30, size 63\)
-.*:147: Error: Invalid field specification \(position 30, size 64\)
-.*:150: Error: Invalid field specification \(position 31, size 63\)
-.*:151: Error: Invalid field specification \(position 31, size 64\)
-.*:156: Error: Operand 3 of `dinsu' must be in the range \[32, 63\], was 31.
-.*:159: Error: Operand 3 of `dinsu' must be in the range \[32, 63\], was 64.
-.*:162: Error: Invalid field specification \(position 32, size 0\)
-.*:165: Error: Invalid field specification \(position 32, size 33\)
-.*:175: Error: Invalid field specification \(position 33, size 32\)
-.*:178: Error: Invalid field specification \(position 62, size 31\)
-.*:179: Error: Invalid field specification \(position 62, size 32\)
-.*:181: Error: Invalid field specification \(position 63, size 2\)
-.*:182: Error: Invalid field specification \(position 63, size 31\)
-.*:183: Error: Invalid field specification \(position 63, size 32\)
+.*:124: Error: operand 3 out of range `dinsm \$4,\$5,-1,33'
+.*:127: Error: operand 3 out of range `dinsm \$4,\$5,32,33'
+.*:130: Error: operand 4 out of range `dinsm \$4,\$5,31,1'
+.*:133: Error: operand 4 out of range `dinsm \$4,\$5,0,65'
+.*:136: Error: operand 4 out of range `dinsm \$4,\$5,0,2'
+.*:137: Error: operand 4 out of range `dinsm \$4,\$5,0,3'
+.*:140: Error: operand 4 out of range `dinsm \$4,\$5,1,2'
+.*:141: Error: operand 4 out of range `dinsm \$4,\$5,1,3'
+.*:143: Error: operand 4 out of range `dinsm \$4,\$5,1,64'
+.*:144: Error: operand 4 out of range `dinsm \$4,\$5,30,2'
+.*:146: Error: operand 4 out of range `dinsm \$4,\$5,30,63'
+.*:147: Error: operand 4 out of range `dinsm \$4,\$5,30,64'
+.*:150: Error: operand 4 out of range `dinsm \$4,\$5,31,63'
+.*:151: Error: operand 4 out of range `dinsm \$4,\$5,31,64'
+.*:156: Error: operand 3 out of range `dinsu \$4,\$5,31,1'
+.*:159: Error: operand 3 out of range `dinsu \$4,\$5,64,1'
+.*:162: Error: operand 4 out of range `dinsu \$4,\$5,32,0'
+.*:165: Error: operand 4 out of range `dinsu \$4,\$5,32,33'
+.*:175: Error: operand 4 out of range `dinsu \$4,\$5,33,32'
+.*:178: Error: operand 4 out of range `dinsu \$4,\$5,62,31'
+.*:179: Error: operand 4 out of range `dinsu \$4,\$5,62,32'
+.*:181: Error: operand 4 out of range `dinsu \$4,\$5,63,2'
+.*:182: Error: operand 4 out of range `dinsu \$4,\$5,63,31'
+.*:183: Error: operand 4 out of range `dinsu \$4,\$5,63,32'
diff --git a/gas/testsuite/gas/mips/octeon-ill.l b/gas/testsuite/gas/mips/octeon-ill.l
index 6ff4fde6d1..1664e31d08 100644
--- a/gas/testsuite/gas/mips/octeon-ill.l
+++ b/gas/testsuite/gas/mips/octeon-ill.l
@@ -1,13 +1,13 @@
.*: Assembler messages:
-.*:5: Error: Operand 2 of `bbit032' must be in the range \[0, 31\], was 51.
-.*:7: Error: Operand 2 of `bbit0' must be in the range \[0, 31\], was 71.
-.*:10: Error: Operand 2 of `bbit132' must be in the range \[0, 31\], was 49.
-.*:12: Error: Operand 2 of `bbit1' must be in the range \[0, 31\], was 74.
-.*:15: Error: Invalid field specification \(position 0, size 37\)
-.*:17: Error: Operand 3 of `cins32' must be in the range \[0, 31\], was 39.
-.*:18: Error: Invalid field specification \(position 7, size 25\)
-.*:20: Error: Operand 3 of `cins' must be in the range \[0, 31\], was 64.
-.*:21: Error: Invalid field specification \(position 50, size 14\)
+.*:5: Error: operand 2 out of range `bbit032 \$23,51,foo'
+.*:7: Error: operand 2 out of range `bbit0 \$23,71,foo'
+.*:10: Error: operand 2 out of range `bbit132 \$23,49,foo'
+.*:12: Error: operand 2 out of range `bbit1 \$23,74,foo'
+.*:15: Error: operand 3 out of range `cins \$2,0,37'
+.*:17: Error: operand 3 out of range `cins32 \$19,\$31,39,12'
+.*:18: Error: operand 4 out of range `cins32 \$17,\$20,7,25'
+.*:20: Error: operand 3 out of range `cins \$24,\$10,64,8'
+.*:21: Error: operand 4 out of range `cins \$21,\$30,50,14'
.*:23: Error: Opcode not supported on this processor.*
.*:24: Error: Opcode not supported on this processor.*
.*:25: Error: Opcode not supported on this processor.*
@@ -28,18 +28,18 @@
.*:41: Error: Opcode not supported on this processor.*
.*:42: Error: Opcode not supported on this processor.*
.*:43: Error: Opcode not supported on this processor.*
-.*:45: Error: Illegal operands `dmfc2 \$2,0x10000'
-.*:46: Error: Illegal operands `dmtc2 \$2,0x12345'
-.*:47: Error: Illegal operands `dmfc2 \$9,\$12'
-.*:48: Error: Illegal operands `dmfc2 \$4,\$15,4'
-.*:49: Error: Illegal operands `dmtc2 \$16,\$8'
-.*:50: Error: Illegal operands `dmtc2 \$22,\$7,\$4'
-.*:52: Error: Invalid field specification \(position 26, size 32\)
-.*:54: Error: Operand 3 of `exts32' must be in the range \[0, 31\], was 32.
-.*:55: Error: Invalid field specification \(position 3, size 29\)
-.*:57: Error: Operand 3 of `exts' must be in the range \[0, 31\], was 70.
-.*:58: Error: Invalid field specification \(position 39, size 25\)
-.*:60: Error: Operand 3 of `seqi' must be in the range \[-512, 511\], was 512.
-.*:61: Error: Operand 2 of `seqi' must be in the range \[-512, 511\], was -771.
-.*:62: Error: Operand 3 of `snei' must be in the range \[-512, 511\], was 615.
-.*:63: Error: Operand 2 of `snei' must be in the range \[-512, 511\], was -513.
+.*:45: Error: operand 2 out of range `dmfc2 \$2,0x10000'
+.*:46: Error: operand 2 out of range `dmtc2 \$2,0x12345'
+.*:47: Error: operand 2 must be constant `dmfc2 \$9,\$12'
+.*:48: Error: operand 2 must be constant `dmfc2 \$4,\$15,4'
+.*:49: Error: operand 2 must be constant `dmtc2 \$16,\$8'
+.*:50: Error: operand 2 must be constant `dmtc2 \$22,\$7,\$4'
+.*:52: Error: operand 3 out of range `exts \$26,26,32'
+.*:54: Error: operand 3 out of range `exts32 \$7,\$21,32,10'
+.*:55: Error: operand 4 out of range `exts32 \$31,\$13,3,29'
+.*:57: Error: operand 3 out of range `exts \$14,\$29,70,14'
+.*:58: Error: operand 4 out of range `exts \$20,\$16,39,25'
+.*:60: Error: operand 3 out of range `seqi \$14,\$13,512'
+.*:61: Error: operand 2 out of range `seqi \$19,-771'
+.*:62: Error: operand 3 out of range `snei \$18,\$30,615'
+.*:63: Error: operand 2 out of range `snei \$17,-513'
diff --git a/gas/testsuite/gas/mips/r5900-error-vu0.l b/gas/testsuite/gas/mips/r5900-error-vu0.l
index d012caa009..b462d95ecc 100644
--- a/gas/testsuite/gas/mips/r5900-error-vu0.l
+++ b/gas/testsuite/gas/mips/r5900-error-vu0.l
@@ -94,14 +94,14 @@
.*: Error: Illegal operands `vaddz\.xyzw \$vf31xyzw,\$vf0xyzw,\$vf0x'
.*: Error: Illegal operands `vaddz\.xyzw \$vf31xyzw,\$vf15xyzw,\$vf7y'
.*: Error: Illegal operands `vaddz\.xyzw \$vf31xyzw,\$vf31xyzw,\$vf31w'
-.*: Error: Operand 1 of `vcallms' must be in the range \[0x0, 0x3fff8\], was \-1\.
-.*: Error: Operand 1 of `vcallms' must be in the range \[0x0, 0x3fff8\], was \-128\.
-.*: Error: Operand 1 of `vcallms' must be a factor of 8, was 0x1\.
-.*: Error: Operand 1 of `vcallms' must be a factor of 8, was 0x7\.
-.*: Error: Operand 1 of `vcallms' must be a factor of 8, was 0x4\.
-.*: Error: Operand 1 of `vcallms' must be a factor of 8, was 0x2\.
-.*: Error: Operand 1 of `vcallms' must be in the range \[0x0, 0x3fff8\], was 0x40000\.
-.*: Error: Operand 1 of `vcallms' must be in the range \[0x0, 0x3fff8\], was 0x40008\.
+.*: Error: operand 1 out of range `vcallms -1'
+.*: Error: operand 1 out of range `vcallms -0x0080'
+.*: Error: operand 1 out of range `vcallms 0x1'
+.*: Error: operand 1 out of range `vcallms 0x7'
+.*: Error: operand 1 out of range `vcallms 0x4'
+.*: Error: operand 1 out of range `vcallms 0x2'
+.*: Error: operand 1 out of range `vcallms 0x40000'
+.*: Error: operand 1 out of range `vcallms 0x40008'
.*: Error: Illegal operands `vclipw\.xyz \$vf0xyz,\$vf0x'
.*: Error: Illegal operands `vclipw\.xyz \$vf0xyz,\$vf31y'
.*: Error: Illegal operands `vclipw\.xyz \$vf1xyz,\$vf2z'
@@ -123,11 +123,11 @@
.*: Error: Illegal operands `vftoi15\.xyzw \$vf0xyzw,\$vf0xyz'
.*: Error: Illegal operands `vftoi15\.y \$vf1y,\$vf2x'
.*: Error: Illegal operands `vftoi15\.y \$vf31y,\$vf0w'
-.*: Error: Operand 3 of `viaddi' must be in the range \[\-16, 15\], was \-17\.
-.*: Error: Operand 3 of `viaddi' must be in the range \[\-16, 15\], was 16\.
-.*: Error: Operand 3 of `viaddi' must be in the range \[\-16, 15\], was 17\.
-.*: Error: Operand 3 of `viaddi' must be in the range \[\-16, 15\], was 32\.
-.*: Error: Operand 3 of `viaddi' must be in the range \[\-16, 15\], was 31\.
+.*: Error: operand 3 out of range `viaddi \$vi0,\$vi0,-17'
+.*: Error: operand 3 out of range `viaddi \$vi1,\$vi2,16'
+.*: Error: operand 3 out of range `viaddi \$vi31,\$vi0,17'
+.*: Error: operand 3 out of range `viaddi \$vi31,\$vi15,32'
+.*: Error: operand 3 out of range `viaddi \$vi31,\$vi31,31'
.*: Error: Illegal operands `viand \$vi0xyzw,\$vi0,\$vi0'
.*: Error: Illegal operands `viand \$vi0,\$vi0xyzw,\$vi31'
.*: Error: Illegal operands `viand \$vi0,\$vi31,\$vi0xyzw'
diff --git a/gas/testsuite/gas/mips/vr5400-ill.l b/gas/testsuite/gas/mips/vr5400-ill.l
index 0554c8aa52..065e5c1776 100644
--- a/gas/testsuite/gas/mips/vr5400-ill.l
+++ b/gas/testsuite/gas/mips/vr5400-ill.l
@@ -1,8 +1,8 @@
.*: Assembler messages:
-.*:3: Error: Operand 3 of `sll.ob' must be scalar
-.*:7: Error: Operand 3 of `srl.ob' must be scalar
-.*:10: Error: Operand 2 of `rzu.ob' must be an immediate
-.*:11: Error: Operand 2 of `rzu.ob' must be an immediate
+.*:3: Error: operand 3 must be scalar `sll.ob \$f2,\$f4,\$f6'
+.*:7: Error: operand 3 must be scalar `srl.ob \$f2,\$f4,\$f6'
+.*:10: Error: operand 2 must be an immediate `rzu.ob \$f2,\$f6\[1\]'
+.*:11: Error: operand 2 must be an immediate `rzu.ob \$f2,\$f6'
.*:14: Error: Illegal operands `add.ob \$v2,\$f4,\$f6'
.*:15: Error: Illegal operands `add.ob \$f2,\$v4,\$f6'
.*:16: Error: Illegal operands `add.ob \$f2,\$f4,\$v6'