[binutils-gdb] MIPS/GAS/testsuite: Split mul test into 32-bit and 64-bit parts

Maciej W. Rozycki macro@sourceware.org
Fri Jul 19 08:51:00 GMT 2024


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=37b83106809d3a6c23d74d0bc5c13b3814fc3d19

commit 37b83106809d3a6c23d74d0bc5c13b3814fc3d19
Author: Maciej W. Rozycki <macro@redhat.com>
Date:   Fri Jul 19 09:42:56 2024 +0100

    MIPS/GAS/testsuite: Split mul test into 32-bit and 64-bit parts
    
    Enable full 32-bit and 64-bit multiplication macro verification, by
    splitting the 'mul' test into two parts respectively, and run them
    across all the compatible architectures.

Diff:
---
 gas/testsuite/gas/mips/allegrex@mul.d              | 62 +++++++++++++++
 gas/testsuite/gas/mips/micromips@mul.d             | 22 ------
 gas/testsuite/gas/mips/micromips@mul64.d           | 33 ++++++++
 gas/testsuite/gas/mips/mips.exp                    |  4 +-
 gas/testsuite/gas/mips/mips1@mul.d                 | 71 +++++++++++++++++
 gas/testsuite/gas/mips/mips2@mul.d                 |  5 ++
 gas/testsuite/gas/mips/mips3@mul.d                 | 90 +---------------------
 gas/testsuite/gas/mips/mips3@mul64.d               | 33 ++++++++
 gas/testsuite/gas/mips/mips4@mul.d                 |  2 +-
 gas/testsuite/gas/mips/mips4@mul64.d               |  5 ++
 gas/testsuite/gas/mips/mips5@mul.d                 |  2 +-
 gas/testsuite/gas/mips/mips5@mul64.d               |  5 ++
 gas/testsuite/gas/mips/mul.d                       | 19 -----
 gas/testsuite/gas/mips/mul.s                       |  6 --
 gas/testsuite/gas/mips/mul64.d                     | 29 +++++++
 gas/testsuite/gas/mips/mul64.s                     | 10 +++
 gas/testsuite/gas/mips/octeon@mul64.d              | 29 +++++++
 gas/testsuite/gas/mips/r10000@mul.d                | 78 +------------------
 gas/testsuite/gas/mips/r10000@mul64.d              | 30 ++++++++
 gas/testsuite/gas/mips/r3000@mul.d                 |  5 ++
 gas/testsuite/gas/mips/r3900@mul.d                 |  5 ++
 gas/testsuite/gas/mips/r4000@mul.d                 |  2 +-
 gas/testsuite/gas/mips/r4000@mul64.d               |  5 ++
 .../gas/mips/{octeon@mul.d => r5900@mul.d}         | 22 +-----
 gas/testsuite/gas/mips/vr5400@mul.d                | 22 ------
 gas/testsuite/gas/mips/vr5400@mul64.d              | 33 ++++++++
 26 files changed, 370 insertions(+), 259 deletions(-)

diff --git a/gas/testsuite/gas/mips/allegrex@mul.d b/gas/testsuite/gas/mips/allegrex@mul.d
new file mode 100644
index 00000000000..7479f0b7c70
--- /dev/null
+++ b/gas/testsuite/gas/mips/allegrex@mul.d
@@ -0,0 +1,62 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS mul
+#source: mul.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> multu	a0,a1
+0+0004 <[^>]*> mflo	a0
+0+0008 <[^>]*> multu	a1,a2
+0+000c <[^>]*> mflo	a0
+0+0010 <[^>]*> li	at,0
+0+0014 <[^>]*> mult	a1,at
+0+0018 <[^>]*> mflo	a0
+0+001c <[^>]*> li	at,1
+0+0020 <[^>]*> mult	a1,at
+0+0024 <[^>]*> mflo	a0
+0+0028 <[^>]*> li	at,0x8000
+0+002c <[^>]*> mult	a1,at
+0+0030 <[^>]*> mflo	a0
+0+0034 <[^>]*> li	at,-32768
+0+0038 <[^>]*> mult	a1,at
+0+003c <[^>]*> mflo	a0
+0+0040 <[^>]*> lui	at,0x1
+0+0044 <[^>]*> mult	a1,at
+0+0048 <[^>]*> mflo	a0
+0+004c <[^>]*> lui	at,0x1
+0+0050 <[^>]*> ori	at,at,0xa5a5
+0+0054 <[^>]*> mult	a1,at
+0+0058 <[^>]*> mflo	a0
+0+005c <[^>]*> mult	a0,a1
+0+0060 <[^>]*> mflo	a0
+0+0064 <[^>]*> sra	a0,a0,0x1f
+0+0068 <[^>]*> mfhi	at
+0+006c <[^>]*> beq	a0,at,0+78 <foo\+(0x|)78>
+0+0070 <[^>]*> nop
+0+0074 <[^>]*> break	(0x0,0x6|0x6)
+0+0078 <[^>]*> mflo	a0
+0+007c <[^>]*> mult	a1,a2
+0+0080 <[^>]*> mflo	a0
+0+0084 <[^>]*> sra	a0,a0,0x1f
+0+0088 <[^>]*> mfhi	at
+0+008c <[^>]*> beq	a0,at,0+98 <foo\+(0x|)98>
+0+0090 <[^>]*> nop
+0+0094 <[^>]*> break	(0x0,0x6|0x6)
+0+0098 <[^>]*> mflo	a0
+0+009c <[^>]*> multu	a0,a1
+0+00a0 <[^>]*> mfhi	at
+0+00a4 <[^>]*> mflo	a0
+0+00a8 <[^>]*> beqz	at,0+b4 <foo\+(0x|)b4>
+0+00ac <[^>]*> nop
+0+00b0 <[^>]*> break	(0x0,0x6|0x6)
+0+00b4 <[^>]*> multu	a1,a2
+0+00b8 <[^>]*> mfhi	at
+0+00bc <[^>]*> mflo	a0
+0+00c0 <[^>]*> beqz	at,0+cc <foo\+(0x|)cc>
+0+00c4 <[^>]*> nop
+0+00c8 <[^>]*> break	(0x0,0x6|0x6)
+	...
diff --git a/gas/testsuite/gas/mips/micromips@mul.d b/gas/testsuite/gas/mips/micromips@mul.d
index 0ee40c097e1..c940bd5ba02 100644
--- a/gas/testsuite/gas/mips/micromips@mul.d
+++ b/gas/testsuite/gas/mips/micromips@mul.d
@@ -61,27 +61,5 @@ Disassembly of section \.text:
 			[0-9a-f]+: R_MICROMIPS_PC16_S1	\.L\^_3
 [0-9a-f]+ <[^>]*> 0c00      	nop
 [0-9a-f]+ <[^>]*> 4686      	break	0x6
-[0-9a-f]+ <\.L\^_3> 58c5 9b3c 	dmultu	a1,a2
-[0-9a-f]+ <[^>]*> 4644      	mflo	a0
-[0-9a-f]+ <[^>]*> 3020 0001 	li	at,1
-[0-9a-f]+ <[^>]*> 5825 8b3c 	dmult	a1,at
-[0-9a-f]+ <[^>]*> 4644      	mflo	a0
-[0-9a-f]+ <[^>]*> 58c5 8b3c 	dmult	a1,a2
-[0-9a-f]+ <[^>]*> 4644      	mflo	a0
-[0-9a-f]+ <[^>]*> 5884 f888 	dsra32	a0,a0,0x1f
-[0-9a-f]+ <[^>]*> 4601      	mfhi	at
-[0-9a-f]+ <[^>]*> 9424 fffe 	beq	a0,at,[0-9a-f]+ <[^>]*>
-			[0-9a-f]+: R_MICROMIPS_PC16_S1	\.L\^_4
-[0-9a-f]+ <[^>]*> 0c00      	nop
-[0-9a-f]+ <[^>]*> 4686      	break	0x6
-[0-9a-f]+ <\.L\^_4> 4644      	mflo	a0
-[0-9a-f]+ <[^>]*> 58c5 9b3c 	dmultu	a1,a2
-[0-9a-f]+ <[^>]*> 4601      	mfhi	at
-[0-9a-f]+ <[^>]*> 4644      	mflo	a0
-[0-9a-f]+ <[^>]*> 9401 fffe 	beqz	at,[0-9a-f]+ <[^>]*>
-			[0-9a-f]+: R_MICROMIPS_PC16_S1	\.L\^_5
-[0-9a-f]+ <[^>]*> 0c00      	nop
-[0-9a-f]+ <[^>]*> 4686      	break	0x6
-[0-9a-f]+ <[^>]*> 0000 0000 	nop
 	\.\.\.
 	\.\.\.
diff --git a/gas/testsuite/gas/mips/micromips@mul64.d b/gas/testsuite/gas/mips/micromips@mul64.d
new file mode 100644
index 00000000000..0075c435491
--- /dev/null
+++ b/gas/testsuite/gas/mips/micromips@mul64.d
@@ -0,0 +1,33 @@
+#as: -32
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS 64-bit mul
+#source: mul64.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 58c5 9b3c 	dmultu	a1,a2
+[0-9a-f]+ <[^>]*> 4644      	mflo	a0
+[0-9a-f]+ <[^>]*> 3020 0001 	li	at,1
+[0-9a-f]+ <[^>]*> 5825 8b3c 	dmult	a1,at
+[0-9a-f]+ <[^>]*> 4644      	mflo	a0
+[0-9a-f]+ <[^>]*> 58c5 8b3c 	dmult	a1,a2
+[0-9a-f]+ <[^>]*> 4644      	mflo	a0
+[0-9a-f]+ <[^>]*> 5884 f888 	dsra32	a0,a0,0x1f
+[0-9a-f]+ <[^>]*> 4601      	mfhi	at
+[0-9a-f]+ <[^>]*> 9424 fffe 	beq	a0,at,[0-9a-f]+ <[^>]*>
+			[0-9a-f]+: R_MICROMIPS_PC16_S1	\.L\^_0
+[0-9a-f]+ <[^>]*> 0c00      	nop
+[0-9a-f]+ <[^>]*> 4686      	break	0x6
+[0-9a-f]+ <\.L\^_0> 4644      	mflo	a0
+[0-9a-f]+ <[^>]*> 58c5 9b3c 	dmultu	a1,a2
+[0-9a-f]+ <[^>]*> 4601      	mfhi	at
+[0-9a-f]+ <[^>]*> 4644      	mflo	a0
+[0-9a-f]+ <[^>]*> 9401 fffe 	beqz	at,[0-9a-f]+ <[^>]*>
+			[0-9a-f]+: R_MICROMIPS_PC16_S1	\.L\^_1
+[0-9a-f]+ <[^>]*> 0c00      	nop
+[0-9a-f]+ <[^>]*> 4686      	break	0x6
+	\.\.\.
+	\.\.\.
diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp
index 8f0f4581a0a..b981b640a09 100644
--- a/gas/testsuite/gas/mips/mips.exp
+++ b/gas/testsuite/gas/mips/mips.exp
@@ -888,7 +888,9 @@ if { [istarget mips*-*-vxworks*] } {
 					[mips_arch_list_matching fpisa5]
     run_dump_test_arches "mips5-fp" "-mabi=o64" \
 					[mips_arch_list_matching fpisa5 gpr64]
-    run_dump_test_arches "mul"		[mips_arch_list_matching mips3 !r5900 \
+    run_dump_test_arches "mul"		[mips_arch_list_matching mips1 \
+						!mips32r6]
+    run_dump_test_arches "mul64"	[mips_arch_list_matching mips3 !r5900 \
 						!mips64r6]
 
     run_dump_test_arches "rol"		[mips_arch_list_matching mips1 !ror]
diff --git a/gas/testsuite/gas/mips/mips1@mul.d b/gas/testsuite/gas/mips/mips1@mul.d
new file mode 100644
index 00000000000..8cbd1da4b34
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips1@mul.d
@@ -0,0 +1,71 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS mul
+#source: mul.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> multu	a0,a1
+0+0004 <[^>]*> mflo	a0
+	...
+0+0010 <[^>]*> multu	a1,a2
+0+0014 <[^>]*> mflo	a0
+0+0018 <[^>]*> li	at,0
+0+001c <[^>]*> nop
+0+0020 <[^>]*> mult	a1,at
+0+0024 <[^>]*> mflo	a0
+0+0028 <[^>]*> li	at,1
+0+002c <[^>]*> nop
+0+0030 <[^>]*> mult	a1,at
+0+0034 <[^>]*> mflo	a0
+0+0038 <[^>]*> li	at,0x8000
+0+003c <[^>]*> nop
+0+0040 <[^>]*> mult	a1,at
+0+0044 <[^>]*> mflo	a0
+0+0048 <[^>]*> li	at,-32768
+0+004c <[^>]*> nop
+0+0050 <[^>]*> mult	a1,at
+0+0054 <[^>]*> mflo	a0
+0+0058 <[^>]*> lui	at,0x1
+0+005c <[^>]*> nop
+0+0060 <[^>]*> mult	a1,at
+0+0064 <[^>]*> mflo	a0
+0+0068 <[^>]*> lui	at,0x1
+0+006c <[^>]*> ori	at,at,0xa5a5
+0+0070 <[^>]*> mult	a1,at
+0+0074 <[^>]*> mflo	a0
+	...
+0+0080 <[^>]*> mult	a0,a1
+0+0084 <[^>]*> mflo	a0
+0+0088 <[^>]*> sra	a0,a0,0x1f
+0+008c <[^>]*> mfhi	at
+0+0090 <[^>]*> beq	a0,at,0+9c <foo\+(0x|)9c>
+0+0094 <[^>]*> nop
+0+0098 <[^>]*> break	(0x0,0x6|0x6)
+0+009c <[^>]*> mflo	a0
+	...
+0+00a8 <[^>]*> mult	a1,a2
+0+00ac <[^>]*> mflo	a0
+0+00b0 <[^>]*> sra	a0,a0,0x1f
+0+00b4 <[^>]*> mfhi	at
+0+00b8 <[^>]*> beq	a0,at,0+c4 <foo\+(0x|)c4>
+0+00bc <[^>]*> nop
+0+00c0 <[^>]*> break	(0x0,0x6|0x6)
+0+00c4 <[^>]*> mflo	a0
+	...
+0+00d0 <[^>]*> multu	a0,a1
+0+00d4 <[^>]*> mfhi	at
+0+00d8 <[^>]*> mflo	a0
+0+00dc <[^>]*> beqz	at,0+e8 <foo\+(0x|)e8>
+0+00e0 <[^>]*> nop
+0+00e4 <[^>]*> break	(0x0,0x6|0x6)
+0+00e8 <[^>]*> multu	a1,a2
+0+00ec <[^>]*> mfhi	at
+0+00f0 <[^>]*> mflo	a0
+0+00f4 <[^>]*> beqz	at,0+100 <foo\+(0x|)100>
+0+00f8 <[^>]*> nop
+0+00fc <[^>]*> break	(0x0,0x6|0x6)
+	...
diff --git a/gas/testsuite/gas/mips/mips2@mul.d b/gas/testsuite/gas/mips/mips2@mul.d
new file mode 100644
index 00000000000..fd1ce2f5346
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips2@mul.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS mul
+#source: mul.s
+#dump: mips1@mul.d
diff --git a/gas/testsuite/gas/mips/mips3@mul.d b/gas/testsuite/gas/mips/mips3@mul.d
index 3f95822995d..fd1ce2f5346 100644
--- a/gas/testsuite/gas/mips/mips3@mul.d
+++ b/gas/testsuite/gas/mips/mips3@mul.d
@@ -2,92 +2,4 @@
 #objdump: -dr --prefix-addresses
 #name: MIPS mul
 #source: mul.s
-
-# Test the mul macro.
-
-.*: +file format .*mips.*
-
-Disassembly of section .text:
-0+0000 <[^>]*> multu	a0,a1
-0+0004 <[^>]*> mflo	a0
-	...
-0+0010 <[^>]*> multu	a1,a2
-0+0014 <[^>]*> mflo	a0
-0+0018 <[^>]*> li	at,0
-0+001c <[^>]*> nop
-0+0020 <[^>]*> mult	a1,at
-0+0024 <[^>]*> mflo	a0
-0+0028 <[^>]*> li	at,1
-0+002c <[^>]*> nop
-0+0030 <[^>]*> mult	a1,at
-0+0034 <[^>]*> mflo	a0
-0+0038 <[^>]*> li	at,0x8000
-0+003c <[^>]*> nop
-0+0040 <[^>]*> mult	a1,at
-0+0044 <[^>]*> mflo	a0
-0+0048 <[^>]*> li	at,-32768
-0+004c <[^>]*> nop
-0+0050 <[^>]*> mult	a1,at
-0+0054 <[^>]*> mflo	a0
-0+0058 <[^>]*> lui	at,0x1
-0+005c <[^>]*> nop
-0+0060 <[^>]*> mult	a1,at
-0+0064 <[^>]*> mflo	a0
-0+0068 <[^>]*> lui	at,0x1
-0+006c <[^>]*> ori	at,at,0xa5a5
-0+0070 <[^>]*> mult	a1,at
-0+0074 <[^>]*> mflo	a0
-	...
-0+0080 <[^>]*> mult	a0,a1
-0+0084 <[^>]*> mflo	a0
-0+0088 <[^>]*> sra	a0,a0,0x1f
-0+008c <[^>]*> mfhi	at
-0+0090 <[^>]*> beq	a0,at,0+9c <foo\+(0x|)9c>
-0+0094 <[^>]*> nop
-0+0098 <[^>]*> break	(0x0,0x6|0x6)
-0+009c <[^>]*> mflo	a0
-	...
-0+00a8 <[^>]*> mult	a1,a2
-0+00ac <[^>]*> mflo	a0
-0+00b0 <[^>]*> sra	a0,a0,0x1f
-0+00b4 <[^>]*> mfhi	at
-0+00b8 <[^>]*> beq	a0,at,0+c4 <foo\+(0x|)c4>
-0+00bc <[^>]*> nop
-0+00c0 <[^>]*> break	(0x0,0x6|0x6)
-0+00c4 <[^>]*> mflo	a0
-	...
-0+00d0 <[^>]*> multu	a0,a1
-0+00d4 <[^>]*> mfhi	at
-0+00d8 <[^>]*> mflo	a0
-0+00dc <[^>]*> beqz	at,0+e8 <foo\+(0x|)e8>
-0+00e0 <[^>]*> nop
-0+00e4 <[^>]*> break	(0x0,0x6|0x6)
-0+00e8 <[^>]*> multu	a1,a2
-0+00ec <[^>]*> mfhi	at
-0+00f0 <[^>]*> mflo	a0
-0+00f4 <[^>]*> beqz	at,0+100 <foo\+(0x|)100>
-0+00f8 <[^>]*> nop
-0+00fc <[^>]*> break	(0x0,0x6|0x6)
-0+0100 <[^>]*> dmultu	a1,a2
-0+0104 <[^>]*> mflo	a0
-0+0108 <[^>]*> li	at,1
-0+010c <[^>]*> nop
-0+0110 <[^>]*> dmult	a1,at
-0+0114 <[^>]*> mflo	a0
-	...
-0+0120 <[^>]*> dmult	a1,a2
-0+0124 <[^>]*> mflo	a0
-0+0128 <[^>]*> dsra32	a0,a0,0x1f
-0+012c <[^>]*> mfhi	at
-0+0130 <[^>]*> beq	a0,at,0+13c <foo\+(0x|)13c>
-0+0134 <[^>]*> nop
-0+0138 <[^>]*> break	(0x0,0x6|0x6)
-0+013c <[^>]*> mflo	a0
-	...
-0+0148 <[^>]*> dmultu	a1,a2
-0+014c <[^>]*> mfhi	at
-0+0150 <[^>]*> mflo	a0
-0+0154 <[^>]*> beqz	at,0+160 <foo\+(0x|)160>
-0+0158 <[^>]*> nop
-0+015c <[^>]*> break	(0x0,0x6|0x6)
-	...
+#dump: mips1@mul.d
diff --git a/gas/testsuite/gas/mips/mips3@mul64.d b/gas/testsuite/gas/mips/mips3@mul64.d
new file mode 100644
index 00000000000..7ca7bdb2f49
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips3@mul64.d
@@ -0,0 +1,33 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS 64-bit mul
+#source: mul64.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> dmultu	a1,a2
+0+0004 <[^>]*> mflo	a0
+0+0008 <[^>]*> li	at,1
+0+000c <[^>]*> nop
+0+0010 <[^>]*> dmult	a1,at
+0+0014 <[^>]*> mflo	a0
+	...
+0+0020 <[^>]*> dmult	a1,a2
+0+0024 <[^>]*> mflo	a0
+0+0028 <[^>]*> dsra32	a0,a0,0x1f
+0+002c <[^>]*> mfhi	at
+0+0030 <[^>]*> beq	a0,at,0+3c <foo\+(0x|)3c>
+0+0034 <[^>]*> nop
+0+0038 <[^>]*> break	(0x0,0x6|0x6)
+0+003c <[^>]*> mflo	a0
+	...
+0+0048 <[^>]*> dmultu	a1,a2
+0+004c <[^>]*> mfhi	at
+0+0050 <[^>]*> mflo	a0
+0+0054 <[^>]*> beqz	at,0+60 <foo\+(0x|)60>
+0+0058 <[^>]*> nop
+0+005c <[^>]*> break	(0x0,0x6|0x6)
+	...
diff --git a/gas/testsuite/gas/mips/mips4@mul.d b/gas/testsuite/gas/mips/mips4@mul.d
index fc7c1252d40..fd1ce2f5346 100644
--- a/gas/testsuite/gas/mips/mips4@mul.d
+++ b/gas/testsuite/gas/mips/mips4@mul.d
@@ -2,4 +2,4 @@
 #objdump: -dr --prefix-addresses
 #name: MIPS mul
 #source: mul.s
-#dump: mips3@mul.d
+#dump: mips1@mul.d
diff --git a/gas/testsuite/gas/mips/mips4@mul64.d b/gas/testsuite/gas/mips/mips4@mul64.d
new file mode 100644
index 00000000000..5e6d8ace233
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips4@mul64.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS 64-bit mul
+#source: mul64.s
+#dump: mips3@mul64.d
diff --git a/gas/testsuite/gas/mips/mips5@mul.d b/gas/testsuite/gas/mips/mips5@mul.d
index fc7c1252d40..fd1ce2f5346 100644
--- a/gas/testsuite/gas/mips/mips5@mul.d
+++ b/gas/testsuite/gas/mips/mips5@mul.d
@@ -2,4 +2,4 @@
 #objdump: -dr --prefix-addresses
 #name: MIPS mul
 #source: mul.s
-#dump: mips3@mul.d
+#dump: mips1@mul.d
diff --git a/gas/testsuite/gas/mips/mips5@mul64.d b/gas/testsuite/gas/mips/mips5@mul64.d
new file mode 100644
index 00000000000..5e6d8ace233
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips5@mul64.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS 64-bit mul
+#source: mul64.s
+#dump: mips3@mul64.d
diff --git a/gas/testsuite/gas/mips/mul.d b/gas/testsuite/gas/mips/mul.d
index 4484159c30d..ffd866ab43f 100644
--- a/gas/testsuite/gas/mips/mul.d
+++ b/gas/testsuite/gas/mips/mul.d
@@ -56,23 +56,4 @@ Disassembly of section \.text:
 0+00b8 <[^>]*> beqz	at,0+c4 <foo\+(0x|)c4>
 0+00bc <[^>]*> nop
 0+00c0 <[^>]*> break	(0x0,0x6|0x6)
-0+00c4 <[^>]*> dmultu	a1,a2
-0+00c8 <[^>]*> mflo	a0
-0+00cc <[^>]*> li	at,1
-0+00d0 <[^>]*> dmult	a1,at
-0+00d4 <[^>]*> mflo	a0
-0+00d8 <[^>]*> dmult	a1,a2
-0+00dc <[^>]*> mflo	a0
-0+00e0 <[^>]*> dsra32	a0,a0,0x1f
-0+00e4 <[^>]*> mfhi	at
-0+00e8 <[^>]*> beq	a0,at,0+f4 <foo\+(0x|)f4>
-0+00ec <[^>]*> nop
-0+00f0 <[^>]*> break	(0x0,0x6|0x6)
-0+00f4 <[^>]*> mflo	a0
-0+00f8 <[^>]*> dmultu	a1,a2
-0+00fc <[^>]*> mfhi	at
-0+0100 <[^>]*> mflo	a0
-0+0104 <[^>]*> beqz	at,0+110 <foo\+(0x|)110>
-0+0108 <[^>]*> nop
-0+010c <[^>]*> break	(0x0,0x6|0x6)
 	\.\.\.
diff --git a/gas/testsuite/gas/mips/mul.s b/gas/testsuite/gas/mips/mul.s
index b037248c749..75f665d87cd 100644
--- a/gas/testsuite/gas/mips/mul.s
+++ b/gas/testsuite/gas/mips/mul.s
@@ -17,11 +17,5 @@ foo:
 	mulou	$4,$5
 	mulou	$4,$5,$6
 
-# Sanity check the 64 bit versions.
-	dmul	$4,$5,$6
-	dmul	$4,$5,1
-	dmulo	$4,$5,$6
-	dmulou	$4,$5,$6
-
 	.align	4, 0
 	.space	16
diff --git a/gas/testsuite/gas/mips/mul64.d b/gas/testsuite/gas/mips/mul64.d
new file mode 100644
index 00000000000..16a77d76bbd
--- /dev/null
+++ b/gas/testsuite/gas/mips/mul64.d
@@ -0,0 +1,29 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS 64-bit mul
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+0+0000 <[^>]*> dmultu	a1,a2
+0+0004 <[^>]*> mflo	a0
+0+0008 <[^>]*> li	at,1
+0+000c <[^>]*> dmult	a1,at
+0+0010 <[^>]*> mflo	a0
+0+0014 <[^>]*> dmult	a1,a2
+0+0018 <[^>]*> mflo	a0
+0+001c <[^>]*> dsra32	a0,a0,0x1f
+0+0020 <[^>]*> mfhi	at
+0+0024 <[^>]*> beq	a0,at,0+30 <foo\+(0x|)30>
+0+0028 <[^>]*> nop
+0+002c <[^>]*> break	(0x0,0x6|0x6)
+0+0030 <[^>]*> mflo	a0
+0+0034 <[^>]*> dmultu	a1,a2
+0+0038 <[^>]*> mfhi	at
+0+003c <[^>]*> mflo	a0
+0+0040 <[^>]*> beqz	at,0+4c <foo\+(0x|)4c>
+0+0044 <[^>]*> nop
+0+0048 <[^>]*> break	(0x0,0x6|0x6)
+	\.\.\.
diff --git a/gas/testsuite/gas/mips/mul64.s b/gas/testsuite/gas/mips/mul64.s
new file mode 100644
index 00000000000..407e9901e16
--- /dev/null
+++ b/gas/testsuite/gas/mips/mul64.s
@@ -0,0 +1,10 @@
+# Sanity check the 64 bit mul macro versions.
+
+foo:
+	dmul	$4,$5,$6
+	dmul	$4,$5,1
+	dmulo	$4,$5,$6
+	dmulou	$4,$5,$6
+
+	.align	4, 0
+	.space	16
diff --git a/gas/testsuite/gas/mips/octeon@mul64.d b/gas/testsuite/gas/mips/octeon@mul64.d
new file mode 100644
index 00000000000..2cd37a9620c
--- /dev/null
+++ b/gas/testsuite/gas/mips/octeon@mul64.d
@@ -0,0 +1,29 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS 64-bit mul
+#source: mul64.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+0+0000 <[^>]*> dmul	a0,a1,a2
+0+0004 <[^>]*> li	at,1
+0+0008 <[^>]*> dmult	a1,at
+0+000c <[^>]*> mflo	a0
+0+0010 <[^>]*> dmult	a1,a2
+0+0014 <[^>]*> mflo	a0
+0+0018 <[^>]*> dsra32	a0,a0,0x1f
+0+001c <[^>]*> mfhi	at
+0+0020 <[^>]*> beq	a0,at,0+2c <foo\+(0x|)2c>
+0+0024 <[^>]*> nop
+0+0028 <[^>]*> break	(0x0,0x6|0x6)
+0+002c <[^>]*> mflo	a0
+0+0030 <[^>]*> dmultu	a1,a2
+0+0034 <[^>]*> mfhi	at
+0+0038 <[^>]*> mflo	a0
+0+003c <[^>]*> beqz	at,0+48 <foo\+(0x|)48>
+0+0040 <[^>]*> nop
+0+0044 <[^>]*> break	(0x0,0x6|0x6)
+	\.\.\.
diff --git a/gas/testsuite/gas/mips/r10000@mul.d b/gas/testsuite/gas/mips/r10000@mul.d
index 51b7c4bd325..9990e362e48 100644
--- a/gas/testsuite/gas/mips/r10000@mul.d
+++ b/gas/testsuite/gas/mips/r10000@mul.d
@@ -2,80 +2,4 @@
 #objdump: -dr --prefix-addresses
 #name: MIPS mul
 #source: mul.s
-
-# Test the mul macro.
-
-.*: +file format .*mips.*
-
-Disassembly of section .text:
-0+0000 <[^>]*> multu	a0,a1
-0+0004 <[^>]*> mflo	a0
-0+0008 <[^>]*> multu	a1,a2
-0+000c <[^>]*> mflo	a0
-0+0010 <[^>]*> li	at,0
-0+0014 <[^>]*> mult	a1,at
-0+0018 <[^>]*> mflo	a0
-0+001c <[^>]*> li	at,1
-0+0020 <[^>]*> mult	a1,at
-0+0024 <[^>]*> mflo	a0
-0+0028 <[^>]*> li	at,0x8000
-0+002c <[^>]*> mult	a1,at
-0+0030 <[^>]*> mflo	a0
-0+0034 <[^>]*> li	at,-32768
-0+0038 <[^>]*> mult	a1,at
-0+003c <[^>]*> mflo	a0
-0+0040 <[^>]*> lui	at,0x1
-0+0044 <[^>]*> mult	a1,at
-0+0048 <[^>]*> mflo	a0
-0+004c <[^>]*> lui	at,0x1
-0+0050 <[^>]*> ori	at,at,0xa5a5
-0+0054 <[^>]*> mult	a1,at
-0+0058 <[^>]*> mflo	a0
-0+005c <[^>]*> mult	a0,a1
-0+0060 <[^>]*> mflo	a0
-0+0064 <[^>]*> sra	a0,a0,0x1f
-0+0068 <[^>]*> mfhi	at
-0+006c <[^>]*> beq	a0,at,0+78 <foo\+(0x|)78>
-0+0070 <[^>]*> nop
-0+0074 <[^>]*> break	(0x0,0x6|0x6)
-0+0078 <[^>]*> mflo	a0
-0+007c <[^>]*> mult	a1,a2
-0+0080 <[^>]*> mflo	a0
-0+0084 <[^>]*> sra	a0,a0,0x1f
-0+0088 <[^>]*> mfhi	at
-0+008c <[^>]*> beq	a0,at,0+98 <foo\+(0x|)98>
-0+0090 <[^>]*> nop
-0+0094 <[^>]*> break	(0x0,0x6|0x6)
-0+0098 <[^>]*> mflo	a0
-0+009c <[^>]*> multu	a0,a1
-0+00a0 <[^>]*> mfhi	at
-0+00a4 <[^>]*> mflo	a0
-0+00a8 <[^>]*> beqz	at,0+b4 <foo\+(0x|)b4>
-0+00ac <[^>]*> nop
-0+00b0 <[^>]*> break	(0x0,0x6|0x6)
-0+00b4 <[^>]*> multu	a1,a2
-0+00b8 <[^>]*> mfhi	at
-0+00bc <[^>]*> mflo	a0
-0+00c0 <[^>]*> beqz	at,0+cc <foo\+(0x|)cc>
-0+00c4 <[^>]*> nop
-0+00c8 <[^>]*> break	(0x0,0x6|0x6)
-0+00cc <[^>]*> dmultu	a1,a2
-0+00d0 <[^>]*> mflo	a0
-0+00d4 <[^>]*> li	at,1
-0+00d8 <[^>]*> dmult	a1,at
-0+00dc <[^>]*> mflo	a0
-0+00e0 <[^>]*> dmult	a1,a2
-0+00e4 <[^>]*> mflo	a0
-0+00e8 <[^>]*> dsra32	a0,a0,0x1f
-0+00ec <[^>]*> mfhi	at
-0+00f0 <[^>]*> beq	a0,at,0+fc <foo\+(0x|)fc>
-0+00f4 <[^>]*> nop
-0+00f8 <[^>]*> break	(0x0,0x6|0x6)
-0+00fc <[^>]*> mflo	a0
-0+0100 <[^>]*> dmultu	a1,a2
-0+0104 <[^>]*> mfhi	at
-0+0108 <[^>]*> mflo	a0
-0+010c <[^>]*> beqz	at,0+118 <foo\+(0x|)118>
-0+0110 <[^>]*> nop
-0+0114 <[^>]*> break	(0x0,0x6|0x6)
-	...
+#dump: allegrex@mul.d
diff --git a/gas/testsuite/gas/mips/r10000@mul64.d b/gas/testsuite/gas/mips/r10000@mul64.d
new file mode 100644
index 00000000000..4227e427705
--- /dev/null
+++ b/gas/testsuite/gas/mips/r10000@mul64.d
@@ -0,0 +1,30 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS 64-bit mul
+#source: mul64.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> dmultu	a1,a2
+0+0004 <[^>]*> mflo	a0
+0+0008 <[^>]*> li	at,1
+0+000c <[^>]*> dmult	a1,at
+0+0010 <[^>]*> mflo	a0
+0+0014 <[^>]*> dmult	a1,a2
+0+0018 <[^>]*> mflo	a0
+0+001c <[^>]*> dsra32	a0,a0,0x1f
+0+0020 <[^>]*> mfhi	at
+0+0024 <[^>]*> beq	a0,at,0+30 <foo\+(0x|)30>
+0+0028 <[^>]*> nop
+0+002c <[^>]*> break	(0x0,0x6|0x6)
+0+0030 <[^>]*> mflo	a0
+0+0034 <[^>]*> dmultu	a1,a2
+0+0038 <[^>]*> mfhi	at
+0+003c <[^>]*> mflo	a0
+0+0040 <[^>]*> beqz	at,0+4c <foo\+(0x|)4c>
+0+0044 <[^>]*> nop
+0+0048 <[^>]*> break	(0x0,0x6|0x6)
+	...
diff --git a/gas/testsuite/gas/mips/r3000@mul.d b/gas/testsuite/gas/mips/r3000@mul.d
new file mode 100644
index 00000000000..fd1ce2f5346
--- /dev/null
+++ b/gas/testsuite/gas/mips/r3000@mul.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS mul
+#source: mul.s
+#dump: mips1@mul.d
diff --git a/gas/testsuite/gas/mips/r3900@mul.d b/gas/testsuite/gas/mips/r3900@mul.d
new file mode 100644
index 00000000000..fd1ce2f5346
--- /dev/null
+++ b/gas/testsuite/gas/mips/r3900@mul.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS mul
+#source: mul.s
+#dump: mips1@mul.d
diff --git a/gas/testsuite/gas/mips/r4000@mul.d b/gas/testsuite/gas/mips/r4000@mul.d
index fc7c1252d40..fd1ce2f5346 100644
--- a/gas/testsuite/gas/mips/r4000@mul.d
+++ b/gas/testsuite/gas/mips/r4000@mul.d
@@ -2,4 +2,4 @@
 #objdump: -dr --prefix-addresses
 #name: MIPS mul
 #source: mul.s
-#dump: mips3@mul.d
+#dump: mips1@mul.d
diff --git a/gas/testsuite/gas/mips/r4000@mul64.d b/gas/testsuite/gas/mips/r4000@mul64.d
new file mode 100644
index 00000000000..5e6d8ace233
--- /dev/null
+++ b/gas/testsuite/gas/mips/r4000@mul64.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS 64-bit mul
+#source: mul64.s
+#dump: mips3@mul64.d
diff --git a/gas/testsuite/gas/mips/octeon@mul.d b/gas/testsuite/gas/mips/r5900@mul.d
similarity index 71%
rename from gas/testsuite/gas/mips/octeon@mul.d
rename to gas/testsuite/gas/mips/r5900@mul.d
index 4e52718954d..1d643fdaabb 100644
--- a/gas/testsuite/gas/mips/octeon@mul.d
+++ b/gas/testsuite/gas/mips/r5900@mul.d
@@ -8,8 +8,8 @@
 .*: +file format .*mips.*
 
 Disassembly of section \.text:
-0+0000 <[^>]*> mul	a0,a0,a1
-0+0004 <[^>]*> mul	a0,a1,a2
+0+0000 <[^>]*> multu	a0,a0,a1
+0+0004 <[^>]*> multu	a0,a1,a2
 0+0008 <[^>]*> li	at,0
 0+000c <[^>]*> mult	a1,at
 0+0010 <[^>]*> mflo	a0
@@ -57,22 +57,4 @@ Disassembly of section \.text:
 0+00b8 <[^>]*> beqz	at,0+c4 <foo\+(0x|)c4>
 0+00bc <[^>]*> nop
 0+00c0 <[^>]*> break	(0x0,0x6|0x6)
-0+00c4 <[^>]*> dmul	a0,a1,a2
-0+00c8 <[^>]*> li	at,1
-0+00cc <[^>]*> dmult	a1,at
-0+00d0 <[^>]*> mflo	a0
-0+00d4 <[^>]*> dmult	a1,a2
-0+00d8 <[^>]*> mflo	a0
-0+00dc <[^>]*> dsra32	a0,a0,0x1f
-0+00e0 <[^>]*> mfhi	at
-0+00e4 <[^>]*> beq	a0,at,0+f0 <foo\+(0x|)f0>
-0+00e8 <[^>]*> nop
-0+00ec <[^>]*> break	(0x0,0x6|0x6)
-0+00f0 <[^>]*> mflo	a0
-0+00f4 <[^>]*> dmultu	a1,a2
-0+00f8 <[^>]*> mfhi	at
-0+00fc <[^>]*> mflo	a0
-0+0100 <[^>]*> beqz	at,0+10c <foo\+(0x|)10c>
-0+0104 <[^>]*> nop
-0+0108 <[^>]*> break	(0x0,0x6|0x6)
 	\.\.\.
diff --git a/gas/testsuite/gas/mips/vr5400@mul.d b/gas/testsuite/gas/mips/vr5400@mul.d
index c03407d58f1..0e49a047a41 100644
--- a/gas/testsuite/gas/mips/vr5400@mul.d
+++ b/gas/testsuite/gas/mips/vr5400@mul.d
@@ -66,26 +66,4 @@ Disassembly of section \.text:
 0+00ec <[^>]*> beqz	at,0+f8 <foo\+(0x|)f8>
 0+00f0 <[^>]*> nop
 0+00f4 <[^>]*> break	(0x0,0x6|0x6)
-0+00f8 <[^>]*> dmultu	a1,a2
-0+00fc <[^>]*> mflo	a0
-0+0100 <[^>]*> li	at,1
-0+0104 <[^>]*> nop
-0+0108 <[^>]*> dmult	a1,at
-0+010c <[^>]*> mflo	a0
-	\.\.\.
-0+0118 <[^>]*> dmult	a1,a2
-0+011c <[^>]*> mflo	a0
-0+0120 <[^>]*> dsra32	a0,a0,0x1f
-0+0124 <[^>]*> mfhi	at
-0+0128 <[^>]*> beq	a0,at,0+134 <foo\+(0x|)134>
-0+012c <[^>]*> nop
-0+0130 <[^>]*> break	(0x0,0x6|0x6)
-0+0134 <[^>]*> mflo	a0
-	\.\.\.
-0+0140 <[^>]*> dmultu	a1,a2
-0+0144 <[^>]*> mfhi	at
-0+0148 <[^>]*> mflo	a0
-0+014c <[^>]*> beqz	at,0+158 <foo\+(0x|)158>
-0+0150 <[^>]*> nop
-0+0154 <[^>]*> break	(0x0,0x6|0x6)
 	\.\.\.
diff --git a/gas/testsuite/gas/mips/vr5400@mul64.d b/gas/testsuite/gas/mips/vr5400@mul64.d
new file mode 100644
index 00000000000..0594ee2c406
--- /dev/null
+++ b/gas/testsuite/gas/mips/vr5400@mul64.d
@@ -0,0 +1,33 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS 64-bit mul
+#source: mul64.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+0+0000 <[^>]*> dmultu	a1,a2
+0+0004 <[^>]*> mflo	a0
+0+0008 <[^>]*> li	at,1
+0+000c <[^>]*> nop
+0+0010 <[^>]*> dmult	a1,at
+0+0014 <[^>]*> mflo	a0
+	\.\.\.
+0+0020 <[^>]*> dmult	a1,a2
+0+0024 <[^>]*> mflo	a0
+0+0028 <[^>]*> dsra32	a0,a0,0x1f
+0+002c <[^>]*> mfhi	at
+0+0030 <[^>]*> beq	a0,at,0+3c <foo\+(0x|)3c>
+0+0034 <[^>]*> nop
+0+0038 <[^>]*> break	(0x0,0x6|0x6)
+0+003c <[^>]*> mflo	a0
+	\.\.\.
+0+0048 <[^>]*> dmultu	a1,a2
+0+004c <[^>]*> mfhi	at
+0+0050 <[^>]*> mflo	a0
+0+0054 <[^>]*> beqz	at,0+60 <foo\+(0x|)60>
+0+0058 <[^>]*> nop
+0+005c <[^>]*> break	(0x0,0x6|0x6)
+	\.\.\.


More information about the Binutils-cvs mailing list