summaryrefslogtreecommitdiff
path: root/gas/testsuite/gas/mips/micromips-size-0.l
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/gas/mips/micromips-size-0.l
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/gas/mips/micromips-size-0.l')
-rw-r--r--gas/testsuite/gas/mips/micromips-size-0.l10
1 files changed, 9 insertions, 1 deletions
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'