This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[committed 3/3] MIPS: Add new Imagination interAptiv MR2 GAS and LD tests


Add GAS tests to verify Imagination interAptiv MR2 instruction assembly, 
disassembly and ELF object file flags.

Add LD tests to verify Imagination interAptiv MR2 ELF object file 
link-time compatibility and flag merging/propagation.  Use the framework 
enhancement added with commit 7575e6a752ec ("MIPS/LD/testsuite: 
mips-elf-flags: Add MIPS ABI Flags handling").

	gas/
	* testsuite/gas/mips/elf_mach_interaptiv-mr2.d: New test.
	* testsuite/gas/mips/save-err.d: New test.
	* testsuite/gas/mips/save-sub.d: New test.
	* testsuite/gas/mips/interaptiv-mr2@save.d: New test.
	* testsuite/gas/mips/mips1@save-sub.d: New test.
	* testsuite/gas/mips/mips2@save-sub.d: New test.
	* testsuite/gas/mips/mips3@save-sub.d: New test.
	* testsuite/gas/mips/mips4@save-sub.d: New test.
	* testsuite/gas/mips/mips5@save-sub.d: New test.
	* testsuite/gas/mips/mips32@save-sub.d: New test.
	* testsuite/gas/mips/mips64@save-sub.d: New test.
	* testsuite/gas/mips/mips16@save-sub.d: New test.
	* testsuite/gas/mips/mips16e@save-sub.d: New test.
	* testsuite/gas/mips/r3000@save-sub.d: New test.
	* testsuite/gas/mips/r3900@save-sub.d: New test.
	* testsuite/gas/mips/r4000@save-sub.d: New test.
	* testsuite/gas/mips/vr5400@save-sub.d: New test.
	* testsuite/gas/mips/interaptiv-mr2@save-sub.d: New test.
	* testsuite/gas/mips/sb1@save-sub.d: New test.
	* testsuite/gas/mips/octeon2@save-sub.d: New test.
	* testsuite/gas/mips/octeon3@save-sub.d: New test.
	* testsuite/gas/mips/xlr@save-sub.d: New test.
	* testsuite/gas/mips/r5900@save-sub.d: New test.
	* testsuite/gas/mips/mips16e2-copy.d: New test.
	* testsuite/gas/mips/mips16e2-copy-err.d: New test.
	* testsuite/gas/mips/save.d: Remove `MIPS16e' from the `name'
	option.  Adjust for trailing padding change.
	* testsuite/gas/mips/mips16e2-copy-err.l: New stderr output.
	* testsuite/gas/mips/save-sub.s: New test source.
	* testsuite/gas/mips/mips16e2-copy.s: New test source.
	* testsuite/gas/mips/mips16e2-copy-err.s: New test source.
	* testsuite/gas/mips/save.s: Update description, change trailing
	padding and remove trailing white space.
	* testsuite/gas/mips/mips.exp: Expand `save' and `save-err'
	tests across the regular MIPS interAptiv MR2 architecture.  Run
	the new tests.

	ld/
	* testsuite/ld-mips-elf/mips-elf-flags.exp: Add interAptiv MR2
	tests.
---
binutils-mips-interaptiv-mr2-test.diff
Index: binutils/gas/testsuite/gas/mips/elf_mach_interaptiv-mr2.d
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/elf_mach_interaptiv-mr2.d	2017-06-24 16:49:16.863788133 +0100
@@ -0,0 +1,24 @@
+#readelf: -Ah
+#name: ELF interAptiv MR2 markings
+#as: -32 -march=interaptiv-mr2
+#source: empty.s
+
+ELF Header:
+#...
+  Flags: +0x..93...., .*interaptiv-mr2.*
+#...
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS32r3
+GPR size: 32
+CPR1 size: 32
+CPR2 size: 0
+FP ABI: .*
+ISA Extension: Imagination interAptiv MR2
+ASEs:
+	DSP ASE
+	Enhanced VA Scheme
+	MT ASE
+FLAGS 1: .*
+FLAGS 2: .*
Index: binutils/gas/testsuite/gas/mips/interaptiv-mr2@save-sub.d
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/interaptiv-mr2@save-sub.d	2017-06-24 16:49:24.764599679 +0100
@@ -0,0 +1,44 @@
+#objdump: -dr
+#as: -32 -I$srcdir/$subdir
+#name: SAVE/RESTORE instruction subset disassembly
+#source: save-sub.s
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+00000000 <func>:
+   0:[ 	]+7000205f[ 	]+save[ 	]+8
+   4:[ 	]+7000309f[ 	]+save[ 	]+16,ra
+   8:[ 	]+700028df[ 	]+save[ 	]+24,s0
+   c:[ 	]+7000251f[ 	]+save[ 	]+32,s1
+  10:[ 	]+70002d5f[ 	]+save[ 	]+40,s0-s1
+  14:[ 	]+7000399f[ 	]+save[ 	]+48,ra,s0
+  18:[ 	]+700035df[ 	]+save[ 	]+56,ra,s1
+  1c:[ 	]+70003e1f[ 	]+save[ 	]+64,ra,s0-s1
+  20:[ 	]+70003e5f[ 	]+save[ 	]+72,ra,s0-s1
+  24:[ 	]+70003e9f[ 	]+save[ 	]+80,ra,s0-s1
+  28:[ 	]+70003edf[ 	]+save[ 	]+88,ra,s0-s1
+  2c:[ 	]+70083c1f[ 	]+save[ 	]+128,ra,s0-s1
+  30:[ 	]+7008205f[ 	]+save[ 	]+136
+  34:[ 	]+7008309f[ 	]+save[ 	]+144,ra
+  38:[ 	]+70082cdf[ 	]+save[ 	]+152,s0-s1
+  3c:[ 	]+7080221f[ 	]+save[ 	]+64,s2
+  40:[ 	]+7300225f[ 	]+save[ 	]+72,s2-s7
+  44:[ 	]+7380229f[ 	]+save[ 	]+80,s2-s8
+  48:[ 	]+73802edf[ 	]+save[ 	]+88,s0-s8
+  4c:[ 	]+7000a21f[ 	]+save[ 	]+64,a3
+  50:[ 	]+7009201f[ 	]+save[ 	]+128,a2-a3
+  54:[ 	]+7015a01f[ 	]+save[ 	]+256,a0-a3
+  58:[ 	]+7012201f[ 	]+save[ 	]+a0,256
+  5c:[ 	]+700c201f[ 	]+save[ 	]+a0-a1,128
+  60:[ 	]+7007221f[ 	]+save[ 	]+a0-a3,64
+  64:[ 	]+700aa01f[ 	]+save[ 	]+a0,128,a3
+  68:[ 	]+700ba01f[ 	]+save[ 	]+a0,128,a1-a3
+  6c:[ 	]+700d201f[ 	]+save[ 	]+a0-a1,128,a2-a3
+  70:[ 	]+700ea01f[ 	]+save[ 	]+a0-a2,128,a3
+  74:[ 	]+738d3c1f[ 	]+save[ 	]+a0-a1,128,ra,s0-s8,a2-a3
+  78:[ 	]+70081c1f[ 	]+restore[ 	]+128,ra,s0-s1
+  7c:[ 	]+7008105f[ 	]+restore[ 	]+136,ra
+  80:[ 	]+7080021f[ 	]+restore[ 	]+64,s2
+  84:[ 	]+738d1c1f[ 	]+restore[ 	]+a0-a1,128,ra,s0-s8,a2-a3
+	\.\.\.
Index: binutils/gas/testsuite/gas/mips/interaptiv-mr2@save.d
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/interaptiv-mr2@save.d	2017-06-24 16:49:24.774659636 +0100
@@ -0,0 +1,44 @@
+#objdump: -dr
+#as: -32
+#name: SAVE/RESTORE instructions
+#source: save.s
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+00000000 <func>:
+   0:[ 	]+7000205f[ 	]+save[ 	]+8
+   4:[ 	]+7000309f[ 	]+save[ 	]+16,ra
+   8:[ 	]+700028df[ 	]+save[ 	]+24,s0
+   c:[ 	]+7000251f[ 	]+save[ 	]+32,s1
+  10:[ 	]+70002d5f[ 	]+save[ 	]+40,s0-s1
+  14:[ 	]+7000399f[ 	]+save[ 	]+48,ra,s0
+  18:[ 	]+700035df[ 	]+save[ 	]+56,ra,s1
+  1c:[ 	]+70003e1f[ 	]+save[ 	]+64,ra,s0-s1
+  20:[ 	]+70003e5f[ 	]+save[ 	]+72,ra,s0-s1
+  24:[ 	]+70003e9f[ 	]+save[ 	]+80,ra,s0-s1
+  28:[ 	]+70003edf[ 	]+save[ 	]+88,ra,s0-s1
+  2c:[ 	]+70083c1f[ 	]+save[ 	]+128,ra,s0-s1
+  30:[ 	]+7008205f[ 	]+save[ 	]+136
+  34:[ 	]+7008309f[ 	]+save[ 	]+144,ra
+  38:[ 	]+70082cdf[ 	]+save[ 	]+152,s0-s1
+  3c:[ 	]+7080221f[ 	]+save[ 	]+64,s2
+  40:[ 	]+7300225f[ 	]+save[ 	]+72,s2-s7
+  44:[ 	]+7380229f[ 	]+save[ 	]+80,s2-s8
+  48:[ 	]+73802edf[ 	]+save[ 	]+88,s0-s8
+  4c:[ 	]+7000a21f[ 	]+save[ 	]+64,a3
+  50:[ 	]+7009201f[ 	]+save[ 	]+128,a2-a3
+  54:[ 	]+7015a01f[ 	]+save[ 	]+256,a0-a3
+  58:[ 	]+7012201f[ 	]+save[ 	]+a0,256
+  5c:[ 	]+700c201f[ 	]+save[ 	]+a0-a1,128
+  60:[ 	]+7007221f[ 	]+save[ 	]+a0-a3,64
+  64:[ 	]+700aa01f[ 	]+save[ 	]+a0,128,a3
+  68:[ 	]+700ba01f[ 	]+save[ 	]+a0,128,a1-a3
+  6c:[ 	]+700d201f[ 	]+save[ 	]+a0-a1,128,a2-a3
+  70:[ 	]+700ea01f[ 	]+save[ 	]+a0-a2,128,a3
+  74:[ 	]+738d3c1f[ 	]+save[ 	]+a0-a1,128,ra,s0-s8,a2-a3
+  78:[ 	]+70081c1f[ 	]+restore[ 	]+128,ra,s0-s1
+  7c:[ 	]+7008105f[ 	]+restore[ 	]+136,ra
+  80:[ 	]+7080021f[ 	]+restore[ 	]+64,s2
+  84:[ 	]+738d1c1f[ 	]+restore[ 	]+a0-a1,128,ra,s0-s8,a2-a3
+	\.\.\.
Index: binutils/gas/testsuite/gas/mips/mips.exp
===================================================================
--- binutils.orig/gas/testsuite/gas/mips/mips.exp	2017-06-24 16:48:13.631336282 +0100
+++ binutils/gas/testsuite/gas/mips/mips.exp	2017-06-24 16:49:24.836311344 +0100
@@ -1128,6 +1128,9 @@ if { [istarget mips*-*-vxworks*] } {
     run_dump_test "elf_ase_micromips"
     run_dump_test "elf_ase_micromips-2"
 
+    # Verify that machine markings are handled properly.
+    run_dump_test "elf_mach_interaptiv-mr2"
+
     run_dump_test "mips-gp32-fp32-pic"
     run_dump_test "mips-gp32-fp64-pic"
     run_dump_test "mips-gp64-fp32-pic"
@@ -1382,8 +1385,15 @@ if { [istarget mips*-*-vxworks*] } {
     run_dump_test "mips64-dsp"
     run_dump_test "mips32-mt"
 
-    run_dump_test_arches "save"		[mips_arch_list_matching mips16e-32]
-    run_dump_test_arches "save-err"	[mips_arch_list_matching mips16e-32]
+    run_dump_test_arches "save" [lsort -dictionary -unique [concat \
+				[mips_arch_list_matching mips16e-32] \
+				[mips_arch_list_matching interaptiv-mr2]]]
+    run_dump_test_arches "save-err" [lsort -dictionary -unique [concat \
+				[mips_arch_list_matching mips16e-32] \
+				[mips_arch_list_matching interaptiv-mr2]]]
+    run_dump_test_arches "save-sub" [lsort -dictionary -unique [concat \
+				[mips_arch_list_matching mips1 !micromips] \
+				[mips_arch_list_matching mips16-32]]]
 
     run_dump_test "mips16-dwarf2"
     if $has_newabi {
@@ -1393,6 +1403,8 @@ if { [istarget mips*-*-vxworks*] } {
 
     run_dump_test "mips16e-jrc"
     run_dump_test "mips16e2-lui"
+    run_dump_test "mips16e2-copy"
+    run_dump_test "mips16e2-copy-err"
 
     run_dump_test "mips16-intermix"
     run_dump_test "mips16-extend"
Index: binutils/gas/testsuite/gas/mips/mips16@save-sub.d
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/mips16@save-sub.d	2017-06-24 16:49:25.227140571 +0100
@@ -0,0 +1,65 @@
+#objdump: -dr
+#as: -32 -I$srcdir/$subdir
+#name: SAVE/RESTORE instruction subset disassembly
+#source: save-sub.s
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+00000000 <func>:
+   0:[ 	]+6481[ 	]+0x6481
+   2:[ 	]+64c2[ 	]+0x64c2
+   4:[ 	]+64a3[ 	]+0x64a3
+   6:[ 	]+6494[ 	]+0x6494
+   8:[ 	]+64b5[ 	]+0x64b5
+   a:[ 	]+64e6[ 	]+0x64e6
+   c:[ 	]+64d7[ 	]+0x64d7
+   e:[ 	]+64f8[ 	]+0x64f8
+  10:[ 	]+64f9[ 	]+0x64f9
+  12:[ 	]+64fa[ 	]+0x64fa
+  14:[ 	]+64fb[ 	]+0x64fb
+  16:[ 	]+64f0[ 	]+0x64f0
+  18:[ 	]+f010[ 	]+extend[ 	]0x10
+  1a:[ 	]+6481[ 	]+0x6481
+  1c:[ 	]+f010[ 	]+extend[ 	]0x10
+  1e:[ 	]+64c2[ 	]+0x64c2
+  20:[ 	]+f010[ 	]+extend[ 	]0x10
+  22:[ 	]+64b3[ 	]+0x64b3
+  24:[ 	]+f100[ 	]+extend[ 	]0x100
+  26:[ 	]+6488[ 	]+0x6488
+  28:[ 	]+f600[ 	]+extend[ 	]0x600
+  2a:[ 	]+6489[ 	]+0x6489
+  2c:[ 	]+f700[ 	]+extend[ 	]0x700
+  2e:[ 	]+648a[ 	]+0x648a
+  30:[ 	]+f700[ 	]+extend[ 	]0x700
+  32:[ 	]+64bb[ 	]+0x64bb
+  34:[ 	]+f001[ 	]+extend[ 	]0x1
+  36:[ 	]+6488[ 	]+0x6488
+  38:[ 	]+f012[ 	]+extend[ 	]0x12
+  3a:[ 	]+6480[ 	]+0x6480
+  3c:[ 	]+f02b[ 	]+extend[ 	]0x2b
+  3e:[ 	]+6480[ 	]+0x6480
+  40:[ 	]+f024[ 	]+extend[ 	]0x24
+  42:[ 	]+6480[ 	]+0x6480
+  44:[ 	]+f018[ 	]+extend[ 	]0x18
+  46:[ 	]+6480[ 	]+0x6480
+  48:[ 	]+f00e[ 	]+extend[ 	]0xe
+  4a:[ 	]+6488[ 	]+0x6488
+  4c:[ 	]+f015[ 	]+extend[ 	]0x15
+  4e:[ 	]+6480[ 	]+0x6480
+  50:[ 	]+f017[ 	]+extend[ 	]0x17
+  52:[ 	]+6480[ 	]+0x6480
+  54:[ 	]+f01a[ 	]+extend[ 	]0x1a
+  56:[ 	]+6480[ 	]+0x6480
+  58:[ 	]+f01d[ 	]+extend[ 	]0x1d
+  5a:[ 	]+6480[ 	]+0x6480
+  5c:[ 	]+f71a[ 	]+extend[ 	]0x71a
+  5e:[ 	]+64f0[ 	]+0x64f0
+  60:[ 	]+6470[ 	]+0x6470
+  62:[ 	]+f010[ 	]+extend[ 	]0x10
+  64:[ 	]+6441[ 	]+0x6441
+  66:[ 	]+f100[ 	]+extend[ 	]0x100
+  68:[ 	]+6408[ 	]+0x6408
+  6a:[ 	]+f71a[ 	]+extend[ 	]0x71a
+  6c:[ 	]+6470[ 	]+0x6470
+	\.\.\.
Index: binutils/gas/testsuite/gas/mips/mips16e2-copy-err.d
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/mips16e2-copy-err.d	2017-06-24 16:49:16.908475608 +0100
@@ -0,0 +1,3 @@
+#name: MIPS16e2 interAptiv MR2 COPYW/UCOPYW ASMACRO instruction errors
+#as: -32 -mips16 -march=interaptiv-mr2
+#error-output: mips16e2-copy-err.l
Index: binutils/gas/testsuite/gas/mips/mips16e2-copy-err.l
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/mips16e2-copy-err.l	2017-06-24 16:49:16.944162459 +0100
@@ -0,0 +1,29 @@
+.*: Assembler messages:
+.*:5: Error: operand 4 out of range `copyw \$2,\$2,0,0'
+.*:6: Error: operand 4 out of range `copyw \$2,\$2,0,5'
+.*:7: Error: operand 3 out of range `copyw \$2,\$2,-16,1'
+.*:8: Error: operand 3 out of range `copyw \$2,\$2,-15,1'
+.*:9: Error: operand 3 out of range `copyw \$2,\$2,-1,1'
+.*:10: Error: operand 3 out of range `copyw \$2,\$2,1,1'
+.*:11: Error: operand 3 out of range `copyw \$2,\$2,15,1'
+.*:12: Error: operand 3 out of range `copyw \$2,\$2,512,1'
+.*:13: Error: invalid operands `copyw \$2,\$1,0,1'
+.*:14: Error: invalid operands `copyw \$2,\$8,0,1'
+.*:15: Error: invalid operands `copyw \$1,\$2,0,1'
+.*:16: Error: invalid operands `copyw \$8,\$2,0,1'
+.*:17: Error: operand 3 out of range `copyw \$2,\$2,1,0'
+.*:18: Error: invalid operands `copyw \$8,\$1,1,0'
+.*:19: Error: operand 4 out of range `ucopyw \$2,\$2,0,0'
+.*:20: Error: operand 4 out of range `ucopyw \$2,\$2,0,5'
+.*:21: Error: operand 3 out of range `ucopyw \$2,\$2,-16,1'
+.*:22: Error: operand 3 out of range `ucopyw \$2,\$2,-15,1'
+.*:23: Error: operand 3 out of range `ucopyw \$2,\$2,-1,1'
+.*:24: Error: operand 3 out of range `ucopyw \$2,\$2,1,1'
+.*:25: Error: operand 3 out of range `ucopyw \$2,\$2,15,1'
+.*:26: Error: operand 3 out of range `ucopyw \$2,\$2,512,1'
+.*:27: Error: invalid operands `ucopyw \$2,\$1,0,1'
+.*:28: Error: invalid operands `ucopyw \$2,\$8,0,1'
+.*:29: Error: invalid operands `ucopyw \$1,\$2,0,1'
+.*:30: Error: invalid operands `ucopyw \$8,\$2,0,1'
+.*:31: Error: operand 3 out of range `ucopyw \$2,\$2,1,0'
+.*:32: Error: invalid operands `ucopyw \$8,\$1,1,0'
Index: binutils/gas/testsuite/gas/mips/mips16e2-copy-err.s
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/mips16e2-copy-err.s	2017-06-24 16:49:16.979906192 +0100
@@ -0,0 +1,36 @@
+# Verify interAptiv MR2 MIPS16e2 COPYW/UCOPYW ASMACRO instruction errors.
+
+	.text
+foo:
+	copyw	$2, $2, 0, 0
+	copyw	$2, $2, 0, 5
+	copyw	$2, $2, -16, 1
+	copyw	$2, $2, -15, 1
+	copyw	$2, $2, -1, 1
+	copyw	$2, $2, 1, 1
+	copyw	$2, $2, 15, 1
+	copyw	$2, $2, 512, 1
+	copyw	$2, $1, 0, 1
+	copyw	$2, $8, 0, 1
+	copyw	$1, $2, 0, 1
+	copyw	$8, $2, 0, 1
+	copyw	$2, $2, 1, 0
+	copyw	$8, $1, 1, 0
+	ucopyw	$2, $2, 0, 0
+	ucopyw	$2, $2, 0, 5
+	ucopyw	$2, $2, -16, 1
+	ucopyw	$2, $2, -15, 1
+	ucopyw	$2, $2, -1, 1
+	ucopyw	$2, $2, 1, 1
+	ucopyw	$2, $2, 15, 1
+	ucopyw	$2, $2, 512, 1
+	ucopyw	$2, $1, 0, 1
+	ucopyw	$2, $8, 0, 1
+	ucopyw	$1, $2, 0, 1
+	ucopyw	$8, $2, 0, 1
+	ucopyw	$2, $2, 1, 0
+	ucopyw	$8, $1, 1, 0
+
+# Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
+	.space	16
+	.align	4, 0
Index: binutils/gas/testsuite/gas/mips/mips16e2-copy.d
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/mips16e2-copy.d	2017-06-24 16:49:16.997361364 +0100
@@ -0,0 +1,32 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16e2 interAptiv MR2 COPYW/UCOPYW ASMACRO instructions
+#as: -32 -mips16 -march=interaptiv-mr2
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> f020 e260 	copyw	v0,v1,0,1
+[0-9a-f]+ <[^>]*> f021 e381 	copyw	v1,a0,16,2
+[0-9a-f]+ <[^>]*> f022 e4a2 	copyw	a0,a1,32,3
+[0-9a-f]+ <[^>]*> f024 e5c3 	copyw	a1,a2,64,4
+[0-9a-f]+ <[^>]*> f028 e6e0 	copyw	a2,a3,128,1
+[0-9a-f]+ <[^>]*> f030 e701 	copyw	a3,s0,256,2
+[0-9a-f]+ <[^>]*> f038 e022 	copyw	s0,s1,384,3
+[0-9a-f]+ <[^>]*> f03c e143 	copyw	s1,v0,448,4
+[0-9a-f]+ <[^>]*> f03e e260 	copyw	v0,v1,480,1
+[0-9a-f]+ <[^>]*> f03f e381 	copyw	v1,a0,496,2
+[0-9a-f]+ <[^>]*> f02a e4a2 	copyw	a0,a1,160,3
+[0-9a-f]+ <[^>]*> f035 e5c3 	copyw	a1,a2,336,4
+[0-9a-f]+ <[^>]*> f000 e6e0 	ucopyw	a2,a3,0,1
+[0-9a-f]+ <[^>]*> f001 e701 	ucopyw	a3,s0,16,2
+[0-9a-f]+ <[^>]*> f002 e022 	ucopyw	s0,s1,32,3
+[0-9a-f]+ <[^>]*> f004 e143 	ucopyw	s1,v0,64,4
+[0-9a-f]+ <[^>]*> f008 e260 	ucopyw	v0,v1,128,1
+[0-9a-f]+ <[^>]*> f010 e381 	ucopyw	v1,a0,256,2
+[0-9a-f]+ <[^>]*> f018 e4a2 	ucopyw	a0,a1,384,3
+[0-9a-f]+ <[^>]*> f01c e5c3 	ucopyw	a1,a2,448,4
+[0-9a-f]+ <[^>]*> f01e e6e0 	ucopyw	a2,a3,480,1
+[0-9a-f]+ <[^>]*> f01f e701 	ucopyw	a3,s0,496,2
+[0-9a-f]+ <[^>]*> f00a e022 	ucopyw	s0,s1,160,3
+[0-9a-f]+ <[^>]*> f015 e143 	ucopyw	s1,v0,336,4
+	\.\.\.
Index: binutils/gas/testsuite/gas/mips/mips16e2-copy.s
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/mips16e2-copy.s	2017-06-24 16:49:17.009624741 +0100
@@ -0,0 +1,32 @@
+# Verify the interAptiv MR2 MIPS16e2 COPYW/UCOPYW ASMACRO instructions.
+
+	.text
+foo:
+	copyw	$2, $3, 0, 1
+	copyw	$3, $4, 16, 2
+	copyw	$4, $5, 32, 3
+	copyw	$5, $6, 64, 4
+	copyw	$6, $7, 128, 1
+	copyw	$7, $16, 256, 2
+	copyw	$16, $17, 384, 3
+	copyw	$17, $2, 448, 4
+	copyw	$2, $3, 480, 1
+	copyw	$3, $4, 496, 2
+	copyw	$4, $5, 160, 3
+	copyw	$5, $6, 336, 4
+	ucopyw	$6, $7, 0, 1
+	ucopyw	$7, $16, 16, 2
+	ucopyw	$16, $17, 32, 3
+	ucopyw	$17, $2, 64, 4
+	ucopyw	$2, $3, 128, 1
+	ucopyw	$3, $4, 256, 2
+	ucopyw	$4, $5, 384, 3
+	ucopyw	$5, $6, 448, 4
+	ucopyw	$6, $7, 480, 1
+	ucopyw	$7, $16, 496, 2
+	ucopyw	$16, $17, 160, 3
+	ucopyw	$17, $2, 336, 4
+
+# Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
+	.space	16
+	.align	4, 0
Index: binutils/gas/testsuite/gas/mips/mips16e@save-sub.d
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/mips16e@save-sub.d	2017-06-24 16:49:25.290707533 +0100
@@ -0,0 +1,44 @@
+#objdump: -dr
+#as: -32 -I$srcdir/$subdir
+#name: SAVE/RESTORE instruction subset disassembly
+#source: save-sub.s
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+00000000 <func>:
+   0:[ 	]+6481[ 	]+save[ 	]+8
+   2:[ 	]+64c2[ 	]+save[ 	]+16,ra
+   4:[ 	]+64a3[ 	]+save[ 	]+24,s0
+   6:[ 	]+6494[ 	]+save[ 	]+32,s1
+   8:[ 	]+64b5[ 	]+save[ 	]+40,s0-s1
+   a:[ 	]+64e6[ 	]+save[ 	]+48,ra,s0
+   c:[ 	]+64d7[ 	]+save[ 	]+56,ra,s1
+   e:[ 	]+64f8[ 	]+save[ 	]+64,ra,s0-s1
+  10:[ 	]+64f9[ 	]+save[ 	]+72,ra,s0-s1
+  12:[ 	]+64fa[ 	]+save[ 	]+80,ra,s0-s1
+  14:[ 	]+64fb[ 	]+save[ 	]+88,ra,s0-s1
+  16:[ 	]+64f0[ 	]+save[ 	]+128,ra,s0-s1
+  18:[ 	]+f010 6481[ 	]+save[ 	]+136
+  1c:[ 	]+f010 64c2[ 	]+save[ 	]+144,ra
+  20:[ 	]+f010 64b3[ 	]+save[ 	]+152,s0-s1
+  24:[ 	]+f100 6488[ 	]+save[ 	]+64,s2
+  28:[ 	]+f600 6489[ 	]+save[ 	]+72,s2-s7
+  2c:[ 	]+f700 648a[ 	]+save[ 	]+80,s2-s8
+  30:[ 	]+f700 64bb[ 	]+save[ 	]+88,s0-s8
+  34:[ 	]+f001 6488[ 	]+save[ 	]+64,a3
+  38:[ 	]+f012 6480[ 	]+save[ 	]+128,a2-a3
+  3c:[ 	]+f02b 6480[ 	]+save[ 	]+256,a0-a3
+  40:[ 	]+f024 6480[ 	]+save[ 	]+a0,256
+  44:[ 	]+f018 6480[ 	]+save[ 	]+a0-a1,128
+  48:[ 	]+f00e 6488[ 	]+save[ 	]+a0-a3,64
+  4c:[ 	]+f015 6480[ 	]+save[ 	]+a0,128,a3
+  50:[ 	]+f017 6480[ 	]+save[ 	]+a0,128,a1-a3
+  54:[ 	]+f01a 6480[ 	]+save[ 	]+a0-a1,128,a2-a3
+  58:[ 	]+f01d 6480[ 	]+save[ 	]+a0-a2,128,a3
+  5c:[ 	]+f71a 64f0[ 	]+save[ 	]+a0-a1,128,ra,s0-s8,a2-a3
+  60:[ 	]+6470[ 	]+restore[ 	]+128,ra,s0-s1
+  62:[ 	]+f010 6441[ 	]+restore[ 	]+136,ra
+  66:[ 	]+f100 6408[ 	]+restore[ 	]+64,s2
+  6a:[ 	]+f71a 6470[ 	]+restore[ 	]+a0-a1,128,ra,s0-s8,a2-a3
+	\.\.\.
Index: binutils/gas/testsuite/gas/mips/mips1@save-sub.d
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/mips1@save-sub.d	2017-06-24 16:49:25.319487691 +0100
@@ -0,0 +1,44 @@
+#objdump: -dr
+#as: -32 -I$srcdir/$subdir
+#name: SAVE/RESTORE instruction subset disassembly
+#source: save-sub.s
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+00000000 <func>:
+   0:[ 	]+7000205f[ 	]+0x7000205f
+   4:[ 	]+7000309f[ 	]+0x7000309f
+   8:[ 	]+700028df[ 	]+0x700028df
+   c:[ 	]+7000251f[ 	]+0x7000251f
+  10:[ 	]+70002d5f[ 	]+0x70002d5f
+  14:[ 	]+7000399f[ 	]+0x7000399f
+  18:[ 	]+700035df[ 	]+0x700035df
+  1c:[ 	]+70003e1f[ 	]+0x70003e1f
+  20:[ 	]+70003e5f[ 	]+0x70003e5f
+  24:[ 	]+70003e9f[ 	]+0x70003e9f
+  28:[ 	]+70003edf[ 	]+0x70003edf
+  2c:[ 	]+70083c1f[ 	]+0x70083c1f
+  30:[ 	]+7008205f[ 	]+0x7008205f
+  34:[ 	]+7008309f[ 	]+0x7008309f
+  38:[ 	]+70082cdf[ 	]+0x70082cdf
+  3c:[ 	]+7080221f[ 	]+0x7080221f
+  40:[ 	]+7300225f[ 	]+0x7300225f
+  44:[ 	]+7380229f[ 	]+0x7380229f
+  48:[ 	]+73802edf[ 	]+0x73802edf
+  4c:[ 	]+7000a21f[ 	]+0x7000a21f
+  50:[ 	]+7009201f[ 	]+0x7009201f
+  54:[ 	]+7015a01f[ 	]+0x7015a01f
+  58:[ 	]+7012201f[ 	]+0x7012201f
+  5c:[ 	]+700c201f[ 	]+0x700c201f
+  60:[ 	]+7007221f[ 	]+0x7007221f
+  64:[ 	]+700aa01f[ 	]+0x700aa01f
+  68:[ 	]+700ba01f[ 	]+0x700ba01f
+  6c:[ 	]+700d201f[ 	]+0x700d201f
+  70:[ 	]+700ea01f[ 	]+0x700ea01f
+  74:[ 	]+738d3c1f[ 	]+0x738d3c1f
+  78:[ 	]+70081c1f[ 	]+0x70081c1f
+  7c:[ 	]+7008105f[ 	]+0x7008105f
+  80:[ 	]+7080021f[ 	]+0x7080021f
+  84:[ 	]+738d1c1f[ 	]+0x738d1c1f
+	\.\.\.
Index: binutils/gas/testsuite/gas/mips/mips2@save-sub.d
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/mips2@save-sub.d	2017-06-24 16:49:25.341138451 +0100
@@ -0,0 +1,5 @@
+#objdump: -dr
+#as: -32 -I$srcdir/$subdir
+#name: SAVE/RESTORE instruction subset disassembly
+#source: save-sub.s
+#dump: mips1@save-sub.d
Index: binutils/gas/testsuite/gas/mips/mips32@save-sub.d
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/mips32@save-sub.d	2017-06-24 16:49:25.364979758 +0100
@@ -0,0 +1,5 @@
+#objdump: -dr
+#as: -32 -I$srcdir/$subdir
+#name: SAVE/RESTORE instruction subset disassembly
+#source: save-sub.s
+#dump: mips1@save-sub.d
Index: binutils/gas/testsuite/gas/mips/mips3@save-sub.d
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/mips3@save-sub.d	2017-06-24 16:49:25.381378089 +0100
@@ -0,0 +1,5 @@
+#objdump: -dr
+#as: -32 -I$srcdir/$subdir
+#name: SAVE/RESTORE instruction subset disassembly
+#source: save-sub.s
+#dump: mips1@save-sub.d
Index: binutils/gas/testsuite/gas/mips/mips4@save-sub.d
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/mips4@save-sub.d	2017-06-24 16:49:25.406855013 +0100
@@ -0,0 +1,5 @@
+#objdump: -dr
+#as: -32 -I$srcdir/$subdir
+#name: SAVE/RESTORE instruction subset disassembly
+#source: save-sub.s
+#dump: mips1@save-sub.d
Index: binutils/gas/testsuite/gas/mips/mips5@save-sub.d
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/mips5@save-sub.d	2017-06-24 16:49:25.423244796 +0100
@@ -0,0 +1,5 @@
+#objdump: -dr
+#as: -32 -I$srcdir/$subdir
+#name: SAVE/RESTORE instruction subset disassembly
+#source: save-sub.s
+#dump: mips1@save-sub.d
Index: binutils/gas/testsuite/gas/mips/mips64@save-sub.d
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/mips64@save-sub.d	2017-06-24 16:49:25.446192572 +0100
@@ -0,0 +1,5 @@
+#objdump: -dr
+#as: -32 -I$srcdir/$subdir
+#name: SAVE/RESTORE instruction subset disassembly
+#source: save-sub.s
+#dump: mips1@save-sub.d
Index: binutils/gas/testsuite/gas/mips/octeon2@save-sub.d
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/octeon2@save-sub.d	2017-06-24 16:49:25.461659425 +0100
@@ -0,0 +1,44 @@
+#objdump: -dr
+#as: -32 -I$srcdir/$subdir
+#name: SAVE/RESTORE instruction subset disassembly
+#source: save-sub.s
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+00000000 <func>:
+   0:[ 	]+7000205f[ 	]+udi15[ 	]+zero,zero,a0,0x1
+   4:[ 	]+7000309f[ 	]+lai[ 	]+a2,\(zero\)
+   8:[ 	]+700028df[ 	]+laid[ 	]+a1,\(zero\)
+   c:[ 	]+7000251f[ 	]+udi15[ 	]+zero,zero,a0,0x14
+  10:[ 	]+70002d5f[ 	]+udi15[ 	]+zero,zero,a1,0x15
+  14:[ 	]+7000399f[ 	]+lad[ 	]+a3,\(zero\)
+  18:[ 	]+700035df[ 	]+lawd[ 	]+a2,\(zero\),zero
+  1c:[ 	]+70003e1f[ 	]+udi15[ 	]+zero,zero,a3,0x18
+  20:[ 	]+70003e5f[ 	]+udi15[ 	]+zero,zero,a3,0x19
+  24:[ 	]+70003e9f[ 	]+udi15[ 	]+zero,zero,a3,0x1a
+  28:[ 	]+70003edf[ 	]+udi15[ 	]+zero,zero,a3,0x1b
+  2c:[ 	]+70083c1f[ 	]+udi15[ 	]+zero,t0,a3,0x10
+  30:[ 	]+7008205f[ 	]+udi15[ 	]+zero,t0,a0,0x1
+  34:[ 	]+7008309f[ 	]+udi15[ 	]+zero,t0,a2,0x2
+  38:[ 	]+70082cdf[ 	]+laad[ 	]+a1,\(zero\),t0
+  3c:[ 	]+7080221f[ 	]+udi15[ 	]+a0,zero,a0,0x8
+  40:[ 	]+7300225f[ 	]+udi15[ 	]+t8,zero,a0,0x9
+  44:[ 	]+7380229f[ 	]+las[ 	]+a0,\(gp\)
+  48:[ 	]+73802edf[ 	]+udi15[ 	]+gp,zero,a1,0x1b
+  4c:[ 	]+7000a21f[ 	]+udi15[ 	]+zero,zero,s4,0x8
+  50:[ 	]+7009201f[ 	]+udi15[ 	]+zero,t1,a0,0x0
+  54:[ 	]+7015a01f[ 	]+udi15[ 	]+zero,s5,s4,0x0
+  58:[ 	]+7012201f[ 	]+udi15[ 	]+zero,s2,a0,0x0
+  5c:[ 	]+700c201f[ 	]+udi15[ 	]+zero,t4,a0,0x0
+  60:[ 	]+7007221f[ 	]+udi15[ 	]+zero,a3,a0,0x8
+  64:[ 	]+700aa01f[ 	]+udi15[ 	]+zero,t2,s4,0x0
+  68:[ 	]+700ba01f[ 	]+udi15[ 	]+zero,t3,s4,0x0
+  6c:[ 	]+700d201f[ 	]+udi15[ 	]+zero,t5,a0,0x0
+  70:[ 	]+700ea01f[ 	]+udi15[ 	]+zero,t6,s4,0x0
+  74:[ 	]+738d3c1f[ 	]+udi15[ 	]+gp,t5,a3,0x10
+  78:[ 	]+70081c1f[ 	]+udi15[ 	]+zero,t0,v1,0x10
+  7c:[ 	]+7008105f[ 	]+udi15[ 	]+zero,t0,v0,0x1
+  80:[ 	]+7080021f[ 	]+udi15[ 	]+a0,zero,zero,0x8
+  84:[ 	]+738d1c1f[ 	]+udi15[ 	]+gp,t5,v1,0x10
+	\.\.\.
Index: binutils/gas/testsuite/gas/mips/octeon3@save-sub.d
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/octeon3@save-sub.d	2017-06-24 16:49:25.471197558 +0100
@@ -0,0 +1,5 @@
+#objdump: -dr
+#as: -32 -I$srcdir/$subdir
+#name: SAVE/RESTORE instruction subset disassembly
+#source: save-sub.s
+#dump: octeon2@save-sub.d
Index: binutils/gas/testsuite/gas/mips/r3000@save-sub.d
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/r3000@save-sub.d	2017-06-24 16:49:25.504978813 +0100
@@ -0,0 +1,5 @@
+#objdump: -dr
+#as: -32 -I$srcdir/$subdir
+#name: SAVE/RESTORE instruction subset disassembly
+#source: save-sub.s
+#dump: mips1@save-sub.d
Index: binutils/gas/testsuite/gas/mips/r3900@save-sub.d
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/r3900@save-sub.d	2017-06-24 16:49:25.521682567 +0100
@@ -0,0 +1,5 @@
+#objdump: -dr
+#as: -32 -I$srcdir/$subdir
+#name: SAVE/RESTORE instruction subset disassembly
+#source: save-sub.s
+#dump: mips1@save-sub.d
Index: binutils/gas/testsuite/gas/mips/r4000@save-sub.d
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/r4000@save-sub.d	2017-06-24 16:49:25.531200542 +0100
@@ -0,0 +1,5 @@
+#objdump: -dr
+#as: -32 -I$srcdir/$subdir
+#name: SAVE/RESTORE instruction subset disassembly
+#source: save-sub.s
+#dump: mips1@save-sub.d
Index: binutils/gas/testsuite/gas/mips/r5900@save-sub.d
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/r5900@save-sub.d	2017-06-24 16:49:25.550619449 +0100
@@ -0,0 +1,5 @@
+#objdump: -dr
+#as: -32 -I$srcdir/$subdir
+#name: SAVE/RESTORE instruction subset disassembly
+#source: save-sub.s
+#dump: mips1@save-sub.d
Index: binutils/gas/testsuite/gas/mips/save-err.d
===================================================================
--- binutils.orig/gas/testsuite/gas/mips/save-err.d	2017-06-24 15:55:27.949375331 +0100
+++ binutils/gas/testsuite/gas/mips/save-err.d	2017-06-24 16:49:25.570114973 +0100
@@ -1,3 +1,3 @@
-#name: MIPS16e SAVE/RESTORE errors
+#name: SAVE/RESTORE instruction errors
 #as: -32
 #error-output: save-err.l
Index: binutils/gas/testsuite/gas/mips/save-sub.d
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/save-sub.d	2017-06-24 16:49:25.581272112 +0100
@@ -0,0 +1,43 @@
+#objdump: -dr
+#as: -32 -I$srcdir/$subdir
+#name: SAVE/RESTORE instruction subset disassembly
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+00000000 <func>:
+   0:[ 	]+7000205f[ 	]+udi15[ 	]+zero,zero,a0,0x1
+   4:[ 	]+7000309f[ 	]+udi15[ 	]+zero,zero,a2,0x2
+   8:[ 	]+700028df[ 	]+udi15[ 	]+zero,zero,a1,0x3
+   c:[ 	]+7000251f[ 	]+udi15[ 	]+zero,zero,a0,0x14
+  10:[ 	]+70002d5f[ 	]+udi15[ 	]+zero,zero,a1,0x15
+  14:[ 	]+7000399f[ 	]+udi15[ 	]+zero,zero,a3,0x6
+  18:[ 	]+700035df[ 	]+udi15[ 	]+zero,zero,a2,0x17
+  1c:[ 	]+70003e1f[ 	]+udi15[ 	]+zero,zero,a3,0x18
+  20:[ 	]+70003e5f[ 	]+udi15[ 	]+zero,zero,a3,0x19
+  24:[ 	]+70003e9f[ 	]+udi15[ 	]+zero,zero,a3,0x1a
+  28:[ 	]+70003edf[ 	]+udi15[ 	]+zero,zero,a3,0x1b
+  2c:[ 	]+70083c1f[ 	]+udi15[ 	]+zero,t0,a3,0x10
+  30:[ 	]+7008205f[ 	]+udi15[ 	]+zero,t0,a0,0x1
+  34:[ 	]+7008309f[ 	]+udi15[ 	]+zero,t0,a2,0x2
+  38:[ 	]+70082cdf[ 	]+udi15[ 	]+zero,t0,a1,0x13
+  3c:[ 	]+7080221f[ 	]+udi15[ 	]+a0,zero,a0,0x8
+  40:[ 	]+7300225f[ 	]+udi15[ 	]+t8,zero,a0,0x9
+  44:[ 	]+7380229f[ 	]+udi15[ 	]+gp,zero,a0,0xa
+  48:[ 	]+73802edf[ 	]+udi15[ 	]+gp,zero,a1,0x1b
+  4c:[ 	]+7000a21f[ 	]+udi15[ 	]+zero,zero,s4,0x8
+  50:[ 	]+7009201f[ 	]+udi15[ 	]+zero,t1,a0,0x0
+  54:[ 	]+7015a01f[ 	]+udi15[ 	]+zero,s5,s4,0x0
+  58:[ 	]+7012201f[ 	]+udi15[ 	]+zero,s2,a0,0x0
+  5c:[ 	]+700c201f[ 	]+udi15[ 	]+zero,t4,a0,0x0
+  60:[ 	]+7007221f[ 	]+udi15[ 	]+zero,a3,a0,0x8
+  64:[ 	]+700aa01f[ 	]+udi15[ 	]+zero,t2,s4,0x0
+  68:[ 	]+700ba01f[ 	]+udi15[ 	]+zero,t3,s4,0x0
+  6c:[ 	]+700d201f[ 	]+udi15[ 	]+zero,t5,a0,0x0
+  70:[ 	]+700ea01f[ 	]+udi15[ 	]+zero,t6,s4,0x0
+  74:[ 	]+738d3c1f[ 	]+udi15[ 	]+gp,t5,a3,0x10
+  78:[ 	]+70081c1f[ 	]+udi15[ 	]+zero,t0,v1,0x10
+  7c:[ 	]+7008105f[ 	]+udi15[ 	]+zero,t0,v0,0x1
+  80:[ 	]+7080021f[ 	]+udi15[ 	]+a0,zero,zero,0x8
+  84:[ 	]+738d1c1f[ 	]+udi15[ 	]+gp,t5,v1,0x10
+	\.\.\.
Index: binutils/gas/testsuite/gas/mips/save-sub.s
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/save-sub.s	2017-06-24 16:49:25.591463027 +0100
@@ -0,0 +1,2 @@
+	.set		arch=interaptiv-mr2
+	.include	"save.s"
Index: binutils/gas/testsuite/gas/mips/save.d
===================================================================
--- binutils.orig/gas/testsuite/gas/mips/save.d	2017-06-24 15:55:27.998984186 +0100
+++ binutils/gas/testsuite/gas/mips/save.d	2017-06-24 16:49:25.595555641 +0100
@@ -1,6 +1,6 @@
 #objdump: -dr
 #as: -32
-#name: MIPS16e SAVE/RESTORE
+#name: SAVE/RESTORE instructions
 
 .*: +file format .*mips.*
 
@@ -40,4 +40,4 @@
   62:[ 	]+f010 6441[ 	]+restore[ 	]+136,ra
   66:[ 	]+f100 6408[ 	]+restore[ 	]+64,s2
   6a:[ 	]+f71a 6470[ 	]+restore[ 	]+a0-a1,128,ra,s0-s8,a2-a3
-  6e:[ 	]+6500[ 	]+nop
+	\.\.\.
Index: binutils/gas/testsuite/gas/mips/save.s
===================================================================
--- binutils.orig/gas/testsuite/gas/mips/save.s	2017-06-24 15:55:28.016250011 +0100
+++ binutils/gas/testsuite/gas/mips/save.s	2017-06-24 16:49:25.602703755 +0100
@@ -1,4 +1,4 @@
-# Test the generation of the mips16e save instruction
+# Test the generation of the SAVE/RESTORE instructions.
 
 	.text
 func:
@@ -26,7 +26,7 @@
 	save	$18-$23,72
 	save	$18-$23,$30,80
 	save	$16-$23,$30,88
-	
+
 	# static areg
 	save    64,$7
 	save    128,$7,$6
@@ -49,6 +49,5 @@
 	restore	$31,136
 	restore	$18,64
 	restore	$4-$5,$16-$23,$30-$31,128,$6-$7
-	
-        .p2align 4
 
+	.p2align 4, 0
Index: binutils/gas/testsuite/gas/mips/sb1@save-sub.d
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/sb1@save-sub.d	2017-06-24 16:49:25.618095276 +0100
@@ -0,0 +1,5 @@
+#objdump: -dr
+#as: -32 -I$srcdir/$subdir
+#name: SAVE/RESTORE instruction subset disassembly
+#source: save-sub.s
+#dump: mips1@save-sub.d
Index: binutils/gas/testsuite/gas/mips/vr5400@save-sub.d
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/vr5400@save-sub.d	2017-06-24 16:49:25.638436201 +0100
@@ -0,0 +1,5 @@
+#objdump: -dr
+#as: -32 -I$srcdir/$subdir
+#name: SAVE/RESTORE instruction subset disassembly
+#source: save-sub.s
+#dump: mips1@save-sub.d
Index: binutils/gas/testsuite/gas/mips/xlr@save-sub.d
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/xlr@save-sub.d	2017-06-24 16:49:25.650807043 +0100
@@ -0,0 +1,5 @@
+#objdump: -dr
+#as: -32 -I$srcdir/$subdir
+#name: SAVE/RESTORE instruction subset disassembly
+#source: save-sub.s
+#dump: mips1@save-sub.d
Index: binutils/ld/testsuite/ld-mips-elf/mips-elf-flags.exp
===================================================================
--- binutils.orig/ld/testsuite/ld-mips-elf/mips-elf-flags.exp	2017-06-24 15:55:24.653700317 +0100
+++ binutils/ld/testsuite/ld-mips-elf/mips-elf-flags.exp	2017-06-24 16:49:17.085116796 +0100
@@ -199,6 +199,17 @@ isa_conflict { "-march=r5900 -32"      "
 isa_conflict { "-march=loongson2e -32" "-march=loongson2f -32" } loongson_2e loongson_2f
 isa_conflict { "-march=loongson3a -32" "-march=loongson2f -32" } loongson_3a loongson_2f
 
+isa_conflict { "-march=interaptiv-mr2 -32" \
+	       "-march=r4010 -32" } interaptiv-mr2 4010
+isa_conflict { "-march=interaptiv-mr2 -mnan=2008 -mfp64 -32" \
+	       "-mips32r6 -32" } interaptiv-mr2 isa32r6
+isa_conflict { "-march=interaptiv-mr2 -32" \
+	       "-mips3 -32" } interaptiv-mr2 4000
+isa_conflict { "-march=interaptiv-mr2 -32" \
+	       "-mips64r2 -32" } interaptiv-mr2 isa64r2
+isa_conflict { "-march=interaptiv-mr2 -32" \
+	       "-march=octeon -32" } interaptiv-mr2 octeon
+
 regsize_conflict { "-mips4 -mgp64 -mabi=o64"         "-mips2 -32" }
 regsize_conflict { "-mips4 -mabi=o64"                "-mips4 -mabi=32" }
 regsize_conflict { "-mips4 -mabi=eabi -mgp32"        "-mips4 -mabi=eabi -mgp64" }
@@ -225,3 +236,37 @@ good_combination { "-march=sb1 -mgp32 -3
 good_combination { "-mips32 -mabi=32"        "-march=sb1 -mabi=32" } { sb1 o32 }
 good_combination { "-mips64r2 -mabi=32"      "-mips32 -mabi=32" } { mips64r2 o32 }
 good_combination { "-mips5 -mabi=o64"        "-mips64r2 -mabi=o64" } { mips64r2 o64 }
+
+good_combination { "-march=interaptiv-mr2 -32" "-mips1 -32" } \
+		 { mips32r2 interaptiv-mr2 } \
+		 MIPS32r3 "Imagination interAptiv MR2" \
+		 { "DSP ASE" "Enhanced VA Scheme" "MT ASE" }
+good_combination { "-march=interaptiv-mr2 -32" "-mips32r2 -32" } \
+		 { mips32r2 interaptiv-mr2 } \
+		 MIPS32r3 "Imagination interAptiv MR2" \
+		 { "DSP ASE" "Enhanced VA Scheme" "MT ASE" }
+good_combination { "-march=interaptiv-mr2 -32" "-march=interaptiv -32" } \
+		 { mips32r2 interaptiv-mr2 } \
+		 MIPS32r3 "Imagination interAptiv MR2" \
+		 { "DSP ASE" "Enhanced VA Scheme" "MT ASE" }
+good_combination { "-march=interaptiv-mr2 -32" "-mips32r3 -32" } \
+		 { mips32r2 interaptiv-mr2 } \
+		 MIPS32r3 "Imagination interAptiv MR2" \
+		 { "DSP ASE" "Enhanced VA Scheme" "MT ASE" }
+good_combination { "-march=interaptiv-mr2 -32" "-mips32r3 -mips16 -32" } \
+		 { mips32r2 interaptiv-mr2 } \
+		 MIPS32r3 "Imagination interAptiv MR2" \
+		 { "DSP ASE" "Enhanced VA Scheme" "MT ASE" "MIPS16 ASE" }
+good_combination { "-march=interaptiv-mr2 -mips16 -32" "-mips32r3 -32" } \
+		 { mips32r2 interaptiv-mr2 } \
+		 MIPS32r3 "Imagination interAptiv MR2" \
+		 { "DSP ASE" "Enhanced VA Scheme" "MT ASE" \
+		   "MIPS16 ASE" "MIPS16e2 ASE" }
+good_combination { "-march=interaptiv-mr2 -32" "-mips32r5 -32" } \
+		 { mips32r2 interaptiv-mr2 } \
+		 MIPS32r5 "Imagination interAptiv MR2" \
+		 { "DSP ASE" "Enhanced VA Scheme" "MT ASE" }
+good_combination { "-march=interaptiv-mr2 -32" "-march=m5100 -32" } \
+		 { mips32r2 interaptiv-mr2 } \
+		 MIPS32r5 "Imagination interAptiv MR2" \
+		 { "DSP ASE" "Enhanced VA Scheme" "MT ASE" }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]