+2016-12-09 Maciej W. Rozycki <macro@imgtec.com>
+
+ * testsuite/gas/mips/mips16-extend.d: New test.
+ * testsuite/gas/mips/mips16-extend.s: New test source.
+ * testsuite/gas/mips/mips.exp: Run the new test.
+
2016-12-08 Maciej W. Rozycki <macro@imgtec.com>
* config/tc-arc.c (arc_show_cpu_list): Rename `spaces' local
run_dump_test "mips16e-64"
run_list_test "mips16e-64" "-march=mips32 -32"
run_dump_test "mips16-intermix"
+ run_dump_test "mips16-extend"
run_dump_test "vxworks1"
run_dump_test "vxworks1-xgot"
--- /dev/null
+#objdump: -d --prefix-addresses --show-raw-insn
+#name: MIPS16 explicit EXTEND encoding
+#as: -32
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> f000 0000 addiu s0,sp,0
+[0-9a-f]+ <[^>]*> f001 0000 addiu s0,sp,2048
+[0-9a-f]+ <[^>]*> f5a5 0000 addiu s0,sp,11680
+[0-9a-f]+ <[^>]*> f7ff 0000 addiu s0,sp,-32
+[0-9a-f]+ <[^>]*> f123 0000 addiu s0,sp,6432
+[0-9a-f]+ <[^>]*> f432 0000 addiu s0,sp,-27616
+[0-9a-f]+ <[^>]*> f789 0000 addiu s0,sp,20352
+[0-9a-f]+ <[^>]*> f7ff 0000 addiu s0,sp,-32
+ \.\.\.
--- /dev/null
+ .set mips16
+ .set noreorder
+foo:
+ extend 0
+ addiu $16, $29, 0
+ extend 1
+ addiu $16, $29, 0
+ extend 1445
+ addiu $16, $29, 0
+ extend 2047
+ addiu $16, $29, 0
+ extend 0x123
+ addiu $16, $29, 0
+ extend 0x432
+ addiu $16, $29, 0
+ extend 0x789
+ addiu $16, $29, 0
+ extend 0x7ff
+ addiu $16, $29, 0
+
+# Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
+ .align 4, 0
+ .space 16
2016-12-09 Maciej W. Rozycki <macro@imgtec.com>
+ * mips16-opc.c (decode_mips16_operand) <'e'>: Use HINT rather
+ than UINT.
+
+2016-12-09 Maciej W. Rozycki <macro@imgtec.com>
+
* mips-dis.c (print_insn_mips16): Use a tab rather than a space
to separate `extend' and its uninterpreted argument output.
Separate hexadecimal halves of undecoded extended instructions
case 'Z': MAPPED_REG (3, 0, GP, reg_m16_map);
case 'a': JUMP (26, 0, 2);
- case 'e': UINT (11, 0);
+ case 'e': HINT (11, 0);
case 'i': JALX (26, 0, 2);
case 'l': SPECIAL (6, 5, ENTRY_EXIT_LIST);
case 'm': SPECIAL (7, 0, SAVE_RESTORE_LIST);