MIPS16/opcodes: Use hexadecimal interpretation for the `e' operand code
Make the `e' operand code used with raw EXTEND instructions use the hexadecimal rather than decimal format, for consistency with what is actually produced by code in `print_insn_mips16' dedicated to EXTEND disassembly. Due to that special handling the operand code is only interpreted for assembly however, which accepts either format either way, so there is no functional change here. opcodes/ * mips16-opc.c (decode_mips16_operand) <'e'>: Use HINT rather than UINT. gas/ * 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.
This commit is contained in:
parent
55af478400
commit
f17ecb4bac
@ -1,3 +1,9 @@
|
||||
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
|
||||
|
@ -1295,6 +1295,7 @@ if { [istarget mips*-*-vxworks*] } {
|
||||
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"
|
||||
|
16
gas/testsuite/gas/mips/mips16-extend.d
Normal file
16
gas/testsuite/gas/mips/mips16-extend.d
Normal file
@ -0,0 +1,16 @@
|
||||
#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
|
||||
\.\.\.
|
23
gas/testsuite/gas/mips/mips16-extend.s
Normal file
23
gas/testsuite/gas/mips/mips16-extend.s
Normal file
@ -0,0 +1,23 @@
|
||||
.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
|
@ -1,3 +1,8 @@
|
||||
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
|
||||
|
@ -61,7 +61,7 @@ decode_mips16_operand (char type, bfd_boolean extended_p)
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user