aboutsummaryrefslogtreecommitdiff
path: root/binutils/testsuite
diff options
context:
space:
mode:
Diffstat (limited to 'binutils/testsuite')
-rw-r--r--binutils/testsuite/binutils-all/mips/mips.exp1
-rw-r--r--binutils/testsuite/binutils-all/mips/mips16-extend-insn.d335
-rw-r--r--binutils/testsuite/binutils-all/mips/mips16-extend-insn.s630
3 files changed, 966 insertions, 0 deletions
diff --git a/binutils/testsuite/binutils-all/mips/mips.exp b/binutils/testsuite/binutils-all/mips/mips.exp
index 143fbc4..8393fc0 100644
--- a/binutils/testsuite/binutils-all/mips/mips.exp
+++ b/binutils/testsuite/binutils-all/mips/mips.exp
@@ -29,4 +29,5 @@ if [is_elf_format] {
run_dump_test "mips16-undecoded"
run_dump_test "mips16-pcrel"
run_dump_test "mips16-extend-noinsn"
+ run_dump_test "mips16-extend-insn"
}
diff --git a/binutils/testsuite/binutils-all/mips/mips16-extend-insn.d b/binutils/testsuite/binutils-all/mips/mips16-extend-insn.d
new file mode 100644
index 0000000..fc170c6
--- /dev/null
+++ b/binutils/testsuite/binutils-all/mips/mips16-extend-insn.d
@@ -0,0 +1,335 @@
+#PROG: objcopy
+#objdump: -d --prefix-addresses --show-raw-insn
+#name: MIPS16 extensible and non-extensible instruction disassembly
+#as: -32 -mips64
+
+# Verify interpreted and separate respectively EXTEND prefix disassembly
+# for extensible and non-extensible instructions.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> f123 0000 addiu s0,sp,6432
+[0-9a-f]+ <[^>]*> f123 0020 addiu s0,sp,6432
+[0-9a-f]+ <[^>]*> f123 0040 addiu s0,sp,6432
+[0-9a-f]+ <[^>]*> f123 0060 addiu s0,sp,6432
+[0-9a-f]+ <[^>]*> f123 0080 addiu s0,sp,6432
+[0-9a-f]+ <[^>]*> f123 00a0 addiu s0,sp,6432
+[0-9a-f]+ <[^>]*> f123 00c0 addiu s0,sp,6432
+[0-9a-f]+ <[^>]*> f123 00e0 addiu s0,sp,6432
+[0-9a-f]+ <[^>]*> f123 0800 la s0,00001940 <foo\+0x1940>
+[0-9a-f]+ <[^>]*> f123 0820 la s0,00001944 <foo\+0x1944>
+[0-9a-f]+ <[^>]*> f123 0840 la s0,00001948 <foo\+0x1948>
+[0-9a-f]+ <[^>]*> f123 0860 la s0,0000194c <foo\+0x194c>
+[0-9a-f]+ <[^>]*> f123 0880 la s0,00001950 <foo\+0x1950>
+[0-9a-f]+ <[^>]*> f123 08a0 la s0,00001954 <foo\+0x1954>
+[0-9a-f]+ <[^>]*> f123 08c0 la s0,00001958 <foo\+0x1958>
+[0-9a-f]+ <[^>]*> f123 08e0 la s0,0000195c <foo\+0x195c>
+[0-9a-f]+ <[^>]*> f123 1000 b 00003284 <foo\+0x3284>
+[0-9a-f]+ <[^>]*> f123 1020 b 00003288 <foo\+0x3288>
+[0-9a-f]+ <[^>]*> f123 1040 b 0000328c <foo\+0x328c>
+[0-9a-f]+ <[^>]*> f123 1060 b 00003290 <foo\+0x3290>
+[0-9a-f]+ <[^>]*> f123 1080 b 00003294 <foo\+0x3294>
+[0-9a-f]+ <[^>]*> f123 10a0 b 00003298 <foo\+0x3298>
+[0-9a-f]+ <[^>]*> f123 10c0 b 0000329c <foo\+0x329c>
+[0-9a-f]+ <[^>]*> f123 10e0 b 000032a0 <foo\+0x32a0>
+[0-9a-f]+ <[^>]*> f123 2000 beqz s0,000032a4 <foo\+0x32a4>
+[0-9a-f]+ <[^>]*> f123 2020 beqz s0,000032a8 <foo\+0x32a8>
+[0-9a-f]+ <[^>]*> f123 2040 beqz s0,000032ac <foo\+0x32ac>
+[0-9a-f]+ <[^>]*> f123 2060 beqz s0,000032b0 <foo\+0x32b0>
+[0-9a-f]+ <[^>]*> f123 2080 beqz s0,000032b4 <foo\+0x32b4>
+[0-9a-f]+ <[^>]*> f123 20a0 beqz s0,000032b8 <foo\+0x32b8>
+[0-9a-f]+ <[^>]*> f123 20c0 beqz s0,000032bc <foo\+0x32bc>
+[0-9a-f]+ <[^>]*> f123 20e0 beqz s0,000032c0 <foo\+0x32c0>
+[0-9a-f]+ <[^>]*> f123 2800 bnez s0,000032c4 <foo\+0x32c4>
+[0-9a-f]+ <[^>]*> f123 2820 bnez s0,000032c8 <foo\+0x32c8>
+[0-9a-f]+ <[^>]*> f123 2840 bnez s0,000032cc <foo\+0x32cc>
+[0-9a-f]+ <[^>]*> f123 2860 bnez s0,000032d0 <foo\+0x32d0>
+[0-9a-f]+ <[^>]*> f123 2880 bnez s0,000032d4 <foo\+0x32d4>
+[0-9a-f]+ <[^>]*> f123 28a0 bnez s0,000032d8 <foo\+0x32d8>
+[0-9a-f]+ <[^>]*> f123 28c0 bnez s0,000032dc <foo\+0x32dc>
+[0-9a-f]+ <[^>]*> f123 28e0 bnez s0,000032e0 <foo\+0x32e0>
+[0-9a-f]+ <[^>]*> f123 3000 sll s0,4
+[0-9a-f]+ <[^>]*> f123 3004 sll s0,4
+[0-9a-f]+ <[^>]*> f123 3008 sll s0,4
+[0-9a-f]+ <[^>]*> f123 300c sll s0,4
+[0-9a-f]+ <[^>]*> f123 3010 sll s0,4
+[0-9a-f]+ <[^>]*> f123 3014 sll s0,4
+[0-9a-f]+ <[^>]*> f123 3018 sll s0,4
+[0-9a-f]+ <[^>]*> f123 301c sll s0,4
+[0-9a-f]+ <[^>]*> f123 3001 dsll s0,36
+[0-9a-f]+ <[^>]*> f123 3005 dsll s0,36
+[0-9a-f]+ <[^>]*> f123 3009 dsll s0,36
+[0-9a-f]+ <[^>]*> f123 300d dsll s0,36
+[0-9a-f]+ <[^>]*> f123 3011 dsll s0,36
+[0-9a-f]+ <[^>]*> f123 3015 dsll s0,36
+[0-9a-f]+ <[^>]*> f123 3019 dsll s0,36
+[0-9a-f]+ <[^>]*> f123 301d dsll s0,36
+[0-9a-f]+ <[^>]*> f123 3002 srl s0,4
+[0-9a-f]+ <[^>]*> f123 3006 srl s0,4
+[0-9a-f]+ <[^>]*> f123 300a srl s0,4
+[0-9a-f]+ <[^>]*> f123 300e srl s0,4
+[0-9a-f]+ <[^>]*> f123 3012 srl s0,4
+[0-9a-f]+ <[^>]*> f123 3016 srl s0,4
+[0-9a-f]+ <[^>]*> f123 301a srl s0,4
+[0-9a-f]+ <[^>]*> f123 301e srl s0,4
+[0-9a-f]+ <[^>]*> f123 3003 sra s0,4
+[0-9a-f]+ <[^>]*> f123 3007 sra s0,4
+[0-9a-f]+ <[^>]*> f123 300b sra s0,4
+[0-9a-f]+ <[^>]*> f123 300f sra s0,4
+[0-9a-f]+ <[^>]*> f123 3013 sra s0,4
+[0-9a-f]+ <[^>]*> f123 3017 sra s0,4
+[0-9a-f]+ <[^>]*> f123 301b sra s0,4
+[0-9a-f]+ <[^>]*> f123 301f sra s0,4
+[0-9a-f]+ <[^>]*> f123 3800 ld s0,6432\(s0\)
+[0-9a-f]+ <[^>]*> f123 4000 addiu s0,s0,6432
+[0-9a-f]+ <[^>]*> f123 4010 daddiu s0,s0,6432
+[0-9a-f]+ <[^>]*> f123 4800 addiu s0,6432
+[0-9a-f]+ <[^>]*> f123 4820 addiu s0,6432
+[0-9a-f]+ <[^>]*> f123 4840 addiu s0,6432
+[0-9a-f]+ <[^>]*> f123 4860 addiu s0,6432
+[0-9a-f]+ <[^>]*> f123 4880 addiu s0,6432
+[0-9a-f]+ <[^>]*> f123 48a0 addiu s0,6432
+[0-9a-f]+ <[^>]*> f123 48c0 addiu s0,6432
+[0-9a-f]+ <[^>]*> f123 48e0 addiu s0,6432
+[0-9a-f]+ <[^>]*> f123 5000 slti s0,6432
+[0-9a-f]+ <[^>]*> f123 5020 slti s0,6432
+[0-9a-f]+ <[^>]*> f123 5040 slti s0,6432
+[0-9a-f]+ <[^>]*> f123 5060 slti s0,6432
+[0-9a-f]+ <[^>]*> f123 5080 slti s0,6432
+[0-9a-f]+ <[^>]*> f123 50a0 slti s0,6432
+[0-9a-f]+ <[^>]*> f123 50c0 slti s0,6432
+[0-9a-f]+ <[^>]*> f123 50e0 slti s0,6432
+[0-9a-f]+ <[^>]*> f123 5800 sltiu s0,6432
+[0-9a-f]+ <[^>]*> f123 5820 sltiu s0,6432
+[0-9a-f]+ <[^>]*> f123 5840 sltiu s0,6432
+[0-9a-f]+ <[^>]*> f123 5860 sltiu s0,6432
+[0-9a-f]+ <[^>]*> f123 5880 sltiu s0,6432
+[0-9a-f]+ <[^>]*> f123 58a0 sltiu s0,6432
+[0-9a-f]+ <[^>]*> f123 58c0 sltiu s0,6432
+[0-9a-f]+ <[^>]*> f123 58e0 sltiu s0,6432
+[0-9a-f]+ <[^>]*> f123 6000 bteqz 000033d0 <foo\+0x33d0>
+[0-9a-f]+ <[^>]*> f123 6020 bteqz 000033d4 <foo\+0x33d4>
+[0-9a-f]+ <[^>]*> f123 6040 bteqz 000033d8 <foo\+0x33d8>
+[0-9a-f]+ <[^>]*> f123 6060 bteqz 000033dc <foo\+0x33dc>
+[0-9a-f]+ <[^>]*> f123 6080 bteqz 000033e0 <foo\+0x33e0>
+[0-9a-f]+ <[^>]*> f123 60a0 bteqz 000033e4 <foo\+0x33e4>
+[0-9a-f]+ <[^>]*> f123 60c0 bteqz 000033e8 <foo\+0x33e8>
+[0-9a-f]+ <[^>]*> f123 60e0 bteqz 000033ec <foo\+0x33ec>
+[0-9a-f]+ <[^>]*> f123 6100 btnez 000033f0 <foo\+0x33f0>
+[0-9a-f]+ <[^>]*> f123 6120 btnez 000033f4 <foo\+0x33f4>
+[0-9a-f]+ <[^>]*> f123 6140 btnez 000033f8 <foo\+0x33f8>
+[0-9a-f]+ <[^>]*> f123 6160 btnez 000033fc <foo\+0x33fc>
+[0-9a-f]+ <[^>]*> f123 6180 btnez 00003400 <foo\+0x3400>
+[0-9a-f]+ <[^>]*> f123 61a0 btnez 00003404 <foo\+0x3404>
+[0-9a-f]+ <[^>]*> f123 61c0 btnez 00003408 <foo\+0x3408>
+[0-9a-f]+ <[^>]*> f123 61e0 btnez 0000340c <foo\+0x340c>
+[0-9a-f]+ <[^>]*> f123 6200 sw ra,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 6220 sw ra,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 6240 sw ra,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 6280 sw ra,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 62a0 sw ra,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 62c0 sw ra,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 62e0 sw ra,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 6200 sw ra,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 6300 addiu sp,6432
+[0-9a-f]+ <[^>]*> f123 6320 addiu sp,6432
+[0-9a-f]+ <[^>]*> f123 6340 addiu sp,6432
+[0-9a-f]+ <[^>]*> f123 6360 addiu sp,6432
+[0-9a-f]+ <[^>]*> f123 6380 addiu sp,6432
+[0-9a-f]+ <[^>]*> f123 63a0 addiu sp,6432
+[0-9a-f]+ <[^>]*> f123 63c0 addiu sp,6432
+[0-9a-f]+ <[^>]*> f123 63e0 addiu sp,6432
+[0-9a-f]+ <[^>]*> f123 6400 restore 256,s2,a1-a3
+[0-9a-f]+ <[^>]*> f123 6480 save 256,s2,a1-a3
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> 6500 nop
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> 6501 move zero,s1
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> 6700 move s0,zero
+[0-9a-f]+ <[^>]*> f123 6800 li s0,6432
+[0-9a-f]+ <[^>]*> f123 6820 li s0,6432
+[0-9a-f]+ <[^>]*> f123 6840 li s0,6432
+[0-9a-f]+ <[^>]*> f123 6860 li s0,6432
+[0-9a-f]+ <[^>]*> f123 6880 li s0,6432
+[0-9a-f]+ <[^>]*> f123 68a0 li s0,6432
+[0-9a-f]+ <[^>]*> f123 68c0 li s0,6432
+[0-9a-f]+ <[^>]*> f123 68e0 li s0,6432
+[0-9a-f]+ <[^>]*> f123 7000 cmpi s0,6432
+[0-9a-f]+ <[^>]*> f123 7020 cmpi s0,6432
+[0-9a-f]+ <[^>]*> f123 7040 cmpi s0,6432
+[0-9a-f]+ <[^>]*> f123 7060 cmpi s0,6432
+[0-9a-f]+ <[^>]*> f123 7080 cmpi s0,6432
+[0-9a-f]+ <[^>]*> f123 70a0 cmpi s0,6432
+[0-9a-f]+ <[^>]*> f123 70c0 cmpi s0,6432
+[0-9a-f]+ <[^>]*> f123 70e0 cmpi s0,6432
+[0-9a-f]+ <[^>]*> f123 7800 sd s0,6432\(s0\)
+[0-9a-f]+ <[^>]*> f123 8000 lb s0,6432\(s0\)
+[0-9a-f]+ <[^>]*> f123 8800 lh s0,6432\(s0\)
+[0-9a-f]+ <[^>]*> f123 9000 lw s0,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 9020 lw s0,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 9040 lw s0,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 9060 lw s0,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 9080 lw s0,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 90a0 lw s0,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 90c0 lw s0,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 90e0 lw s0,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 9800 lw s0,6432\(s0\)
+[0-9a-f]+ <[^>]*> f123 a000 lbu s0,6432\(s0\)
+[0-9a-f]+ <[^>]*> f123 a800 lhu s0,6432\(s0\)
+[0-9a-f]+ <[^>]*> f123 b000 lw s0,00001bb8 <foo\+0x1bb8>
+[0-9a-f]+ <[^>]*> f123 b020 lw s0,00001bbc <foo\+0x1bbc>
+[0-9a-f]+ <[^>]*> f123 b040 lw s0,00001bc0 <foo\+0x1bc0>
+[0-9a-f]+ <[^>]*> f123 b060 lw s0,00001bc4 <foo\+0x1bc4>
+[0-9a-f]+ <[^>]*> f123 b080 lw s0,00001bc8 <foo\+0x1bc8>
+[0-9a-f]+ <[^>]*> f123 b0a0 lw s0,00001bcc <foo\+0x1bcc>
+[0-9a-f]+ <[^>]*> f123 b0c0 lw s0,00001bd0 <foo\+0x1bd0>
+[0-9a-f]+ <[^>]*> f123 b0e0 lw s0,00001bd4 <foo\+0x1bd4>
+[0-9a-f]+ <[^>]*> f123 b800 lwu s0,6432\(s0\)
+[0-9a-f]+ <[^>]*> f123 c000 sb s0,6432\(s0\)
+[0-9a-f]+ <[^>]*> f123 c800 sh s0,6432\(s0\)
+[0-9a-f]+ <[^>]*> f123 d000 sw s0,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 d020 sw s0,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 d040 sw s0,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 d060 sw s0,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 d080 sw s0,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 d0a0 sw s0,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 d0c0 sw s0,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 d0e0 sw s0,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 d800 sw s0,6432\(s0\)
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e000 daddu s0,s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e001 addu s0,s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e002 dsubu s0,s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e003 subu s0,s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e800 jr s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e820 jr ra
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e840 jalr s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e880 jrc s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e8a0 jrc ra
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e8c0 jalrc s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e801 sdbbp 0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e802 slt s0,s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e803 sltu s0,s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e804 sllv s0,s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e805 break 0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e806 srlv s0,s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e807 srav s0,s0
+[0-9a-f]+ <[^>]*> f123 e808 dsrl s0,36
+[0-9a-f]+ <[^>]*> f123 e908 dsrl s0,36
+[0-9a-f]+ <[^>]*> f123 ea08 dsrl s0,36
+[0-9a-f]+ <[^>]*> f123 eb08 dsrl s0,36
+[0-9a-f]+ <[^>]*> f123 ec08 dsrl s0,36
+[0-9a-f]+ <[^>]*> f123 ed08 dsrl s0,36
+[0-9a-f]+ <[^>]*> f123 ee08 dsrl s0,36
+[0-9a-f]+ <[^>]*> f123 ef08 dsrl s0,36
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e809 entry
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e829 entry ra
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> ed09 exit \$f0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> ee09 exit \$f0-\$f1
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> ef09 exit
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e80a cmp s0,s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e80b neg s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e80c and s0,s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e80d or s0,s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e80e xor s0,s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e80f not s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e810 mfhi s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e811 zeb s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e831 zeh s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e851 zew s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e891 seb s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e8b1 seh s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e8d1 sew s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e812 mflo s0
+[0-9a-f]+ <[^>]*> f123 e813 dsra s0,36
+[0-9a-f]+ <[^>]*> f123 e913 dsra s0,36
+[0-9a-f]+ <[^>]*> f123 ea13 dsra s0,36
+[0-9a-f]+ <[^>]*> f123 eb13 dsra s0,36
+[0-9a-f]+ <[^>]*> f123 ec13 dsra s0,36
+[0-9a-f]+ <[^>]*> f123 ed13 dsra s0,36
+[0-9a-f]+ <[^>]*> f123 ee13 dsra s0,36
+[0-9a-f]+ <[^>]*> f123 ef13 dsra s0,36
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e814 dsllv s0,s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e816 dsrlv s0,s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e817 dsrav s0,s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e818 mult s0,s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e819 multu s0,s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e81a div zero,s0,s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e81b divu zero,s0,s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e81c dmult s0,s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e81d dmultu s0,s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e81e ddiv zero,s0,s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> e81f ddivu zero,s0,s0
+[0-9a-f]+ <[^>]*> f123 extend 0x123
+[0-9a-f]+ <[^>]*> f000 extend 0x0
+[0-9a-f]+ <[^>]*> f123 f800 ld s0,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 f900 sd s0,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 fa00 sd ra,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 fa20 sd ra,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 fa40 sd ra,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 fa60 sd ra,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 fa80 sd ra,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 faa0 sd ra,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 fac0 sd ra,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 fae0 sd ra,6432\(sp\)
+[0-9a-f]+ <[^>]*> f123 fb00 daddiu sp,6432
+[0-9a-f]+ <[^>]*> f123 fb20 daddiu sp,6432
+[0-9a-f]+ <[^>]*> f123 fb40 daddiu sp,6432
+[0-9a-f]+ <[^>]*> f123 fb60 daddiu sp,6432
+[0-9a-f]+ <[^>]*> f123 fb80 daddiu sp,6432
+[0-9a-f]+ <[^>]*> f123 fba0 daddiu sp,6432
+[0-9a-f]+ <[^>]*> f123 fbc0 daddiu sp,6432
+[0-9a-f]+ <[^>]*> f123 fbe0 daddiu sp,6432
+[0-9a-f]+ <[^>]*> f123 fc00 ld s0,00001d50 <foo\+0x1d50>
+[0-9a-f]+ <[^>]*> f123 fd00 daddiu s0,6432
+[0-9a-f]+ <[^>]*> f123 fe00 dla s0,00001d58 <foo\+0x1d58>
+[0-9a-f]+ <[^>]*> f123 ff00 daddiu s0,sp,6432
+ \.\.\.
diff --git a/binutils/testsuite/binutils-all/mips/mips16-extend-insn.s b/binutils/testsuite/binutils-all/mips/mips16-extend-insn.s
new file mode 100644
index 0000000..bb86f22
--- /dev/null
+++ b/binutils/testsuite/binutils-all/mips/mips16-extend-insn.s
@@ -0,0 +1,630 @@
+ .set mips16
+ .set noreorder
+foo:
+ extend 0x123 # ADDIUSP
+ addiu $16, $29, 0
+ extend 0x123
+ addiu $16, $29, 128
+ extend 0x123
+ addiu $16, $29, 256
+ extend 0x123
+ addiu $16, $29, 384
+ extend 0x123
+ addiu $16, $29, 512
+ extend 0x123
+ addiu $16, $29, 640
+ extend 0x123
+ addiu $16, $29, 768
+ extend 0x123
+ addiu $16, $29, 896
+
+ extend 0x123 # ADDIUPC
+ addiu $16, $pc, 0
+ extend 0x123
+ addiu $16, $pc, 128
+ extend 0x123
+ addiu $16, $pc, 256
+ extend 0x123
+ addiu $16, $pc, 384
+ extend 0x123
+ addiu $16, $pc, 512
+ extend 0x123
+ addiu $16, $pc, 640
+ extend 0x123
+ addiu $16, $pc, 768
+ extend 0x123
+ addiu $16, $pc, 896
+
+ extend 0x123 # B
+ b . + 2
+ extend 0x123
+ b . + 66
+ extend 0x123
+ b . + 130
+ extend 0x123
+ b . + 194
+ extend 0x123
+ b . + 258
+ extend 0x123
+ b . + 322
+ extend 0x123
+ b . + 386
+ extend 0x123
+ b . + 450
+
+ extend 0x123 # BEQZ
+ beqz $16, . + 2
+ extend 0x123
+ beqz $16, . + 66
+ extend 0x123
+ beqz $16, . + 130
+ extend 0x123
+ beqz $16, . + 194
+ extend 0x123
+ beqz $16, . - 254
+ extend 0x123
+ beqz $16, . - 190
+ extend 0x123
+ beqz $16, . - 126
+ extend 0x123
+ beqz $16, . - 62
+
+ extend 0x123 # BNEZ
+ bnez $16, . + 2
+ extend 0x123
+ bnez $16, . + 66
+ extend 0x123
+ bnez $16, . + 130
+ extend 0x123
+ bnez $16, . + 194
+ extend 0x123
+ bnez $16, . - 254
+ extend 0x123
+ bnez $16, . - 190
+ extend 0x123
+ bnez $16, . - 126
+ extend 0x123
+ bnez $16, . - 62
+
+ extend 0x123 # SHIFT # SLL
+ sll $16, $16, 8
+ extend 0x123
+ sll $16, $16, 1
+ extend 0x123
+ sll $16, $16, 2
+ extend 0x123
+ sll $16, $16, 3
+ extend 0x123
+ sll $16, $16, 4
+ extend 0x123
+ sll $16, $16, 5
+ extend 0x123
+ sll $16, $16, 6
+ extend 0x123
+ sll $16, $16, 7
+
+ extend 0x123 # DSLL
+ dsll $16, $16, 8
+ extend 0x123
+ dsll $16, $16, 1
+ extend 0x123
+ dsll $16, $16, 2
+ extend 0x123
+ dsll $16, $16, 3
+ extend 0x123
+ dsll $16, $16, 4
+ extend 0x123
+ dsll $16, $16, 5
+ extend 0x123
+ dsll $16, $16, 6
+ extend 0x123
+ dsll $16, $16, 7
+
+ extend 0x123 # SRL
+ srl $16, $16, 8
+ extend 0x123
+ srl $16, $16, 1
+ extend 0x123
+ srl $16, $16, 2
+ extend 0x123
+ srl $16, $16, 3
+ extend 0x123
+ srl $16, $16, 4
+ extend 0x123
+ srl $16, $16, 5
+ extend 0x123
+ srl $16, $16, 6
+ extend 0x123
+ srl $16, $16, 7
+
+ extend 0x123 # SRA
+ sra $16, $16, 8
+ extend 0x123
+ sra $16, $16, 1
+ extend 0x123
+ sra $16, $16, 2
+ extend 0x123
+ sra $16, $16, 3
+ extend 0x123
+ sra $16, $16, 4
+ extend 0x123
+ sra $16, $16, 5
+ extend 0x123
+ sra $16, $16, 6
+ extend 0x123
+ sra $16, $16, 7
+
+ extend 0x123 # LD
+ ld $16, 0($16)
+
+ extend 0x123 # RRI-A # ADDIU
+ addiu $16, $16, 0
+ extend 0x123 # DADDIU
+ daddiu $16, $16, 0
+
+ extend 0x123 # ADDIU8
+ addiu $16, 0
+ extend 0x123
+ addiu $16, 32
+ extend 0x123
+ addiu $16, 64
+ extend 0x123
+ addiu $16, 96
+ extend 0x123
+ addiu $16, -128
+ extend 0x123
+ addiu $16, -96
+ extend 0x123
+ addiu $16, -64
+ extend 0x123
+ addiu $16, -32
+
+ extend 0x123 # SLTI
+ slti $16, 0
+ extend 0x123
+ slti $16, 32
+ extend 0x123
+ slti $16, 64
+ extend 0x123
+ slti $16, 96
+ extend 0x123
+ slti $16, 128
+ extend 0x123
+ slti $16, 160
+ extend 0x123
+ slti $16, 192
+ extend 0x123
+ slti $16, 224
+
+ extend 0x123 # SLTIU
+ sltiu $16, 0
+ extend 0x123
+ sltiu $16, 32
+ extend 0x123
+ sltiu $16, 64
+ extend 0x123
+ sltiu $16, 96
+ extend 0x123
+ sltiu $16, 128
+ extend 0x123
+ sltiu $16, 160
+ extend 0x123
+ sltiu $16, 192
+ extend 0x123
+ sltiu $16, 224
+
+ extend 0x123 # I8 # BTEQZ
+ bteqz . + 2
+ extend 0x123
+ bteqz . + 66
+ extend 0x123
+ bteqz . + 130
+ extend 0x123
+ bteqz . + 194
+ extend 0x123
+ bteqz . - 254
+ extend 0x123
+ bteqz . - 190
+ extend 0x123
+ bteqz . - 126
+ extend 0x123
+ bteqz . - 62
+
+ extend 0x123 # BTNEZ
+ btnez . + 2
+ extend 0x123
+ btnez . + 66
+ extend 0x123
+ btnez . + 130
+ extend 0x123
+ btnez . + 194
+ extend 0x123
+ btnez . - 254
+ extend 0x123
+ btnez . - 190
+ extend 0x123
+ btnez . - 126
+ extend 0x123
+ btnez . - 62
+
+ extend 0x123 # SWRASP
+ sw $31, 0($29)
+ extend 0x123
+ sw $31, 128($29)
+ extend 0x123
+ sw $31, 256($29)
+ extend 0x123
+ sw $31, 512($29)
+ extend 0x123
+ sw $31, 640($29)
+ extend 0x123
+ sw $31, 768($29)
+ extend 0x123
+ sw $31, 896($29)
+ extend 0x123
+ sw $31, 0($29)
+
+ extend 0x123 # ADJSP
+ addiu $29, 0
+ extend 0x123
+ addiu $29, 256
+ extend 0x123
+ addiu $29, 512
+ extend 0x123
+ addiu $29, 768
+ extend 0x123
+ addiu $29, -1024
+ extend 0x123
+ addiu $29, -768
+ extend 0x123
+ addiu $29, -512
+ extend 0x123
+ addiu $29, -256
+
+ extend 0x123 # SVRS # RESTORE
+ restore 128
+ extend 0x123 # SAVE
+ save 128
+
+ extend 0x123 # MOV32R
+ move $0, $16
+ extend 0x123
+ move $0, $17
+
+ extend 0x123 # MOVR32
+ move $16, $0
+
+ extend 0x123 # LI
+ li $16, 0
+ extend 0x123
+ li $16, 32
+ extend 0x123
+ li $16, 64
+ extend 0x123
+ li $16, 96
+ extend 0x123
+ li $16, 128
+ extend 0x123
+ li $16, 160
+ extend 0x123
+ li $16, 192
+ extend 0x123
+ li $16, 224
+
+ extend 0x123 # CMPI
+ cmpi $16, 0
+ extend 0x123
+ cmpi $16, 32
+ extend 0x123
+ cmpi $16, 64
+ extend 0x123
+ cmpi $16, 96
+ extend 0x123
+ cmpi $16, 128
+ extend 0x123
+ cmpi $16, 160
+ extend 0x123
+ cmpi $16, 192
+ extend 0x123
+ cmpi $16, 224
+
+ extend 0x123 # SD
+ sd $16, 0($16)
+
+ extend 0x123 # LB
+ lb $16, 0($16)
+
+ extend 0x123 # LH
+ lh $16, 0($16)
+
+ extend 0x123 # LWSP
+ lw $16, 0($29)
+ extend 0x123
+ lw $16, 128($29)
+ extend 0x123
+ lw $16, 256($29)
+ extend 0x123
+ lw $16, 384($29)
+ extend 0x123
+ lw $16, 512($29)
+ extend 0x123
+ lw $16, 640($29)
+ extend 0x123
+ lw $16, 768($29)
+ extend 0x123
+ lw $16, 896($29)
+
+ extend 0x123 # LW
+ lw $16, 0($16)
+
+ extend 0x123 # LBU
+ lbu $16, 0($16)
+
+ extend 0x123 # LHU
+ lhu $16, 0($16)
+
+ extend 0x123 # LWPC
+ lw $16, 0($pc)
+ extend 0x123
+ lw $16, 128($pc)
+ extend 0x123
+ lw $16, 256($pc)
+ extend 0x123
+ lw $16, 384($pc)
+ extend 0x123
+ lw $16, 512($pc)
+ extend 0x123
+ lw $16, 640($pc)
+ extend 0x123
+ lw $16, 768($pc)
+ extend 0x123
+ lw $16, 896($pc)
+
+ extend 0x123 # LWU
+ lwu $16, 0($16)
+
+ extend 0x123 # SB
+ sb $16, 0($16)
+
+ extend 0x123 # SH
+ sh $16, 0($16)
+
+ extend 0x123 # SWSP
+ sw $16, 0($29)
+ extend 0x123
+ sw $16, 128($29)
+ extend 0x123
+ sw $16, 256($29)
+ extend 0x123
+ sw $16, 384($29)
+ extend 0x123
+ sw $16, 512($29)
+ extend 0x123
+ sw $16, 640($29)
+ extend 0x123
+ sw $16, 768($29)
+ extend 0x123
+ sw $16, 896($29)
+
+ extend 0x123 # SW
+ sw $16, 0($16)
+
+ extend 0x123 # RRR # DADDU
+ daddu $16, $16, $16
+
+ extend 0x123 # ADDU
+ addu $16, $16, $16
+
+ extend 0x123 # DSUBU
+ dsubu $16, $16, $16
+
+ extend 0x123 # SUBU
+ subu $16, $16, $16
+
+ extend 0x123 # RR # J(AL)R(C) # JR rx
+ jr $16
+ extend 0x123 # JR ra
+ jr $31
+ extend 0x123 # JALR
+ jalr $16
+ extend 0x123 # JRC rx
+ jrc $16
+ extend 0x123 # JRC ra
+ jrc $31
+ extend 0x123 # JALRC
+ jalrc $16
+
+ extend 0x123 # SDBBP
+ sdbbp 0
+
+ extend 0x123 # SLT
+ slt $16, $16
+
+ extend 0x123 # SLTU
+ sltu $16, $16
+
+ extend 0x123 # SLLV
+ sllv $16, $16
+
+ extend 0x123 # BREAK
+ break 0
+
+ extend 0x123 # SRLV
+ srlv $16, $16
+
+ extend 0x123 # SRAV
+ srav $16, $16
+
+ extend 0x123 # DSRL
+ dsrl $16, 8
+ extend 0x123
+ dsrl $16, 1
+ extend 0x123
+ dsrl $16, 2
+ extend 0x123
+ dsrl $16, 3
+ extend 0x123
+ dsrl $16, 4
+ extend 0x123
+ dsrl $16, 5
+ extend 0x123
+ dsrl $16, 6
+ extend 0x123
+ dsrl $16, 7
+
+ extend 0x123 # ENTRY/EXIT
+ entry
+ extend 0x123
+ entry $31
+ extend 0x123
+ exit $f0
+ extend 0x123
+ exit $f0-$f1
+ extend 0x123
+ exit
+
+ extend 0x123 # CMP
+ cmp $16, $16
+
+ extend 0x123 # NEG
+ neg $16, $16
+
+ extend 0x123 # AND
+ and $16, $16
+
+ extend 0x123 # OR
+ or $16, $16
+
+ extend 0x123 # XOR
+ xor $16, $16
+
+ extend 0x123 # NOT
+ not $16, $16
+
+ extend 0x123 # MFHI
+ mfhi $16
+
+ extend 0x123 # CNVT # ZEB
+ zeb $16
+ extend 0x123 # ZEH
+ zeh $16
+ extend 0x123 # ZEW
+ zew $16
+ extend 0x123 # SEB
+ seb $16
+ extend 0x123 # SEH
+ seh $16
+ extend 0x123 # SEW
+ sew $16
+
+ extend 0x123 # MFLO
+ mflo $16
+
+ extend 0x123 # DSRA
+ dsra $16, 8
+ extend 0x123
+ dsra $16, 1
+ extend 0x123
+ dsra $16, 2
+ extend 0x123
+ dsra $16, 3
+ extend 0x123
+ dsra $16, 4
+ extend 0x123
+ dsra $16, 5
+ extend 0x123
+ dsra $16, 6
+ extend 0x123
+ dsra $16, 7
+
+ extend 0x123 # DSLLV
+ dsllv $16, $16
+
+ extend 0x123 # DSRLV
+ dsrlv $16, $16
+
+ extend 0x123 # DSRAV
+ dsrav $16, $16
+
+ extend 0x123 # MULT
+ mult $16, $16
+
+ extend 0x123 # MULTU
+ multu $16, $16
+
+ extend 0x123 # DIV
+ div $0, $16, $16
+
+ extend 0x123 # DIVU
+ divu $0, $16, $16
+
+ extend 0x123 # DMULT
+ dmult $16, $16
+
+ extend 0x123 # DMULTU
+ dmultu $16, $16
+
+ extend 0x123 # DDIV
+ ddiv $0, $16, $16
+
+ extend 0x123 # DDIVU
+ ddivu $0, $16, $16
+
+ extend 0x123 # EXTEND
+ extend 0
+
+ extend 0x123 # I64 # LDSP
+ ld $16, 0($29)
+
+ extend 0x123 # SDSP
+ sd $16, 0($29)
+
+ extend 0x123 # SDRASP
+ sd $31, 0($29)
+ extend 0x123
+ sd $31, 256($29)
+ extend 0x123
+ sd $31, 512($29)
+ extend 0x123
+ sd $31, 768($29)
+ extend 0x123
+ sd $31, 1024($29)
+ extend 0x123
+ sd $31, 1280($29)
+ extend 0x123
+ sd $31, 1536($29)
+ extend 0x123
+ sd $31, 1792($29)
+
+ extend 0x123 # DADJSP
+ daddiu $29, 0
+ extend 0x123
+ daddiu $29, 256
+ extend 0x123
+ daddiu $29, 512
+ extend 0x123
+ daddiu $29, 768
+ extend 0x123
+ daddiu $29, -1024
+ extend 0x123
+ daddiu $29, -768
+ extend 0x123
+ daddiu $29, -512
+ extend 0x123
+ daddiu $29, -256
+
+ extend 0x123 # LDPC
+ ld $16, 0($pc)
+
+ extend 0x123 # DADDIU5
+ daddiu $16, 0
+
+ extend 0x123 # DADDIUPC
+ daddiu $16, $pc, 0
+
+ extend 0x123 # DADDIUSP
+ daddiu $16, $sp, 0
+
+# Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
+ .align 4, 0
+ .space 16