]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
MIPS/GAS/testsuite: Run the mul macro test across architectures
authorMaciej W. Rozycki <macro@redhat.com>
Fri, 19 Jul 2024 08:42:56 +0000 (09:42 +0100)
committerMaciej W. Rozycki <macro@redhat.com>
Fri, 19 Jul 2024 08:42:56 +0000 (09:42 +0100)
The multiplication macros expand differently based on the ISA chosen, so
run the 'mul' macro test across compatible architectures, adopting the
'mul-ilocks' test orphaned by commit 23fce1e31156 ("MIPS16 intermix test
failure"), <https://sourceware.org/ml/binutils/2009-01/msg00335.html>,
and providing coverage for the expansion variants.

Only run from MIPS III up for now and remove the ISA override from the
source, so that the 64-bit instructions are covered for individual
64-bit architectures.

gas/testsuite/gas/mips/micromips@mul.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips.exp
gas/testsuite/gas/mips/mips3@mul.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips4@mul.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips5@mul.d [new file with mode: 0644]
gas/testsuite/gas/mips/mul.d
gas/testsuite/gas/mips/mul.s
gas/testsuite/gas/mips/octeon@mul.d [new file with mode: 0644]
gas/testsuite/gas/mips/r10000@mul.d [moved from gas/testsuite/gas/mips/mul-ilocks.d with 97% similarity]
gas/testsuite/gas/mips/r4000@mul.d [new file with mode: 0644]
gas/testsuite/gas/mips/vr5400@mul.d [new file with mode: 0644]

diff --git a/gas/testsuite/gas/mips/micromips@mul.d b/gas/testsuite/gas/mips/micromips@mul.d
new file mode 100644 (file)
index 0000000..0ee40c0
--- /dev/null
@@ -0,0 +1,87 @@
+#as: -32
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS mul
+#source: mul.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 00a4 2210    mul     a0,a0,a1
+[0-9a-f]+ <[^>]*> 00c5 2210    mul     a0,a1,a2
+[0-9a-f]+ <[^>]*> 3020 0000    li      at,0
+[0-9a-f]+ <[^>]*> 0025 8b3c    mult    a1,at
+[0-9a-f]+ <[^>]*> 4644         mflo    a0
+[0-9a-f]+ <[^>]*> 3020 0001    li      at,1
+[0-9a-f]+ <[^>]*> 0025 8b3c    mult    a1,at
+[0-9a-f]+ <[^>]*> 4644         mflo    a0
+[0-9a-f]+ <[^>]*> 5020 8000    li      at,0x8000
+[0-9a-f]+ <[^>]*> 0025 8b3c    mult    a1,at
+[0-9a-f]+ <[^>]*> 4644         mflo    a0
+[0-9a-f]+ <[^>]*> 3020 8000    li      at,-32768
+[0-9a-f]+ <[^>]*> 0025 8b3c    mult    a1,at
+[0-9a-f]+ <[^>]*> 4644         mflo    a0
+[0-9a-f]+ <[^>]*> 41a1 0001    lui     at,0x1
+[0-9a-f]+ <[^>]*> 0025 8b3c    mult    a1,at
+[0-9a-f]+ <[^>]*> 4644         mflo    a0
+[0-9a-f]+ <[^>]*> 41a1 0001    lui     at,0x1
+[0-9a-f]+ <[^>]*> 5021 a5a5    ori     at,at,0xa5a5
+[0-9a-f]+ <[^>]*> 0025 8b3c    mult    a1,at
+[0-9a-f]+ <[^>]*> 4644         mflo    a0
+[0-9a-f]+ <[^>]*> 00a4 8b3c    mult    a0,a1
+[0-9a-f]+ <[^>]*> 4644         mflo    a0
+[0-9a-f]+ <[^>]*> 0084 f880    sra     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]+ <[^>]*> 00c5 8b3c    mult    a1,a2
+[0-9a-f]+ <[^>]*> 4644         mflo    a0
+[0-9a-f]+ <[^>]*> 0084 f880    sra     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\^_1
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 4686         break   0x6
+[0-9a-f]+ <\.L\^_1> 4644       mflo    a0
+[0-9a-f]+ <[^>]*> 00a4 9b3c    multu   a0,a1
+[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\^_2
+[0-9a-f]+ <[^>]*> 0c00         nop
+[0-9a-f]+ <[^>]*> 4686         break   0x6
+[0-9a-f]+ <\.L\^_2> 00c5 9b3c  multu   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\^_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
+       \.\.\.
+       \.\.\.
index 7ba674a68f8d099e26a218b2dc04067c9c41acb0..8f0f4581a0af3a214c7edbbcef558b2e2ad380fe 100644 (file)
@@ -888,7 +888,8 @@ 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 "mul"
+    run_dump_test_arches "mul"         [mips_arch_list_matching mips3 !r5900 \
+                                               !mips64r6]
 
     run_dump_test_arches "rol"         [mips_arch_list_matching mips1 !ror]
     run_dump_test_arches "rol-hw"      [mips_arch_list_matching ror]
diff --git a/gas/testsuite/gas/mips/mips3@mul.d b/gas/testsuite/gas/mips/mips3@mul.d
new file mode 100644 (file)
index 0000000..3f95822
--- /dev/null
@@ -0,0 +1,93 @@
+#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)
+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)
+       ...
diff --git a/gas/testsuite/gas/mips/mips4@mul.d b/gas/testsuite/gas/mips/mips4@mul.d
new file mode 100644 (file)
index 0000000..fc7c125
--- /dev/null
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS mul
+#source: mul.s
+#dump: mips3@mul.d
diff --git a/gas/testsuite/gas/mips/mips5@mul.d b/gas/testsuite/gas/mips/mips5@mul.d
new file mode 100644 (file)
index 0000000..fc7c125
--- /dev/null
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS mul
+#source: mul.s
+#dump: mips3@mul.d
index 1c4f78419f44bd3ff268f3cd892fe1afb97dcabc..4484159c30d689cad56193c9cd809d966bcd6fcc 100644 (file)
@@ -1,92 +1,78 @@
-#objdump: -dr --prefix-addresses -mmips:4000
-#as: -march=r4000 -mtune=r4000
+#as: -32
+#objdump: -dr --prefix-addresses
 #name: MIPS mul
 
 # 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
+Disassembly of section \.text:
+0+0000 <[^>]*> mul     a0,a0,a1
+0+0004 <[^>]*> mul     a0,a1,a2
+0+0008 <[^>]*> li      at,0
+0+000c <[^>]*> mult    a1,at
+0+0010 <[^>]*> mflo    a0
+0+0014 <[^>]*> li      at,1
+0+0018 <[^>]*> mult    a1,at
+0+001c <[^>]*> mflo    a0
+0+0020 <[^>]*> li      at,0x8000
+0+0024 <[^>]*> mult    a1,at
+0+0028 <[^>]*> mflo    a0
+0+002c <[^>]*> li      at,-32768
 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+0038 <[^>]*> lui     at,0x1
+0+003c <[^>]*> mult    a1,at
+0+0040 <[^>]*> mflo    a0
+0+0044 <[^>]*> lui     at,0x1
+0+0048 <[^>]*> ori     at,at,0xa5a5
+0+004c <[^>]*> mult    a1,at
+0+0050 <[^>]*> mflo    a0
+0+0054 <[^>]*> mult    a0,a1
+0+0058 <[^>]*> mflo    a0
+0+005c <[^>]*> sra     a0,a0,0x1f
+0+0060 <[^>]*> mfhi    at
+0+0064 <[^>]*> beq     a0,at,0+70 <foo\+(0x|)70>
+0+0068 <[^>]*> nop
+0+006c <[^>]*> break   (0x0,0x6|0x6)
+0+0070 <[^>]*> mflo    a0
+0+0074 <[^>]*> mult    a1,a2
+0+0078 <[^>]*> mflo    a0
+0+007c <[^>]*> sra     a0,a0,0x1f
+0+0080 <[^>]*> mfhi    at
+0+0084 <[^>]*> beq     a0,at,0+90 <foo\+(0x|)90>
+0+0088 <[^>]*> nop
+0+008c <[^>]*> break   (0x0,0x6|0x6)
+0+0090 <[^>]*> mflo    a0
+0+0094 <[^>]*> multu   a0,a1
+0+0098 <[^>]*> mfhi    at
 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+00a0 <[^>]*> beqz    at,0+ac <foo\+(0x|)ac>
+0+00a4 <[^>]*> nop
+0+00a8 <[^>]*> break   (0x0,0x6|0x6)
+0+00ac <[^>]*> multu   a1,a2
+0+00b0 <[^>]*> mfhi    at
+0+00b4 <[^>]*> mflo    a0
+0+00b8 <[^>]*> beqz    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)
-       ...
+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)
+       \.\.\.
index b29e369f7b936a98f4217eac06c3ab1c5e858504..b037248c7499b341c294251119895363e5953fa0 100644 (file)
@@ -18,10 +18,10 @@ foo:
        mulou   $4,$5,$6
 
 # Sanity check the 64 bit versions.
-       .set    mips3
        dmul    $4,$5,$6
        dmul    $4,$5,1
        dmulo   $4,$5,$6
        dmulou  $4,$5,$6
 
-        .space 8
+       .align  4, 0
+       .space  16
diff --git a/gas/testsuite/gas/mips/octeon@mul.d b/gas/testsuite/gas/mips/octeon@mul.d
new file mode 100644 (file)
index 0000000..4e52718
--- /dev/null
@@ -0,0 +1,78 @@
+#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 <[^>]*> mul     a0,a0,a1
+0+0004 <[^>]*> mul     a0,a1,a2
+0+0008 <[^>]*> li      at,0
+0+000c <[^>]*> mult    a1,at
+0+0010 <[^>]*> mflo    a0
+0+0014 <[^>]*> li      at,1
+0+0018 <[^>]*> mult    a1,at
+0+001c <[^>]*> mflo    a0
+0+0020 <[^>]*> li      at,0x8000
+0+0024 <[^>]*> mult    a1,at
+0+0028 <[^>]*> mflo    a0
+0+002c <[^>]*> li      at,-32768
+0+0030 <[^>]*> mult    a1,at
+0+0034 <[^>]*> mflo    a0
+0+0038 <[^>]*> lui     at,0x1
+0+003c <[^>]*> mult    a1,at
+0+0040 <[^>]*> mflo    a0
+0+0044 <[^>]*> lui     at,0x1
+0+0048 <[^>]*> ori     at,at,0xa5a5
+0+004c <[^>]*> mult    a1,at
+0+0050 <[^>]*> mflo    a0
+0+0054 <[^>]*> mult    a0,a1
+0+0058 <[^>]*> mflo    a0
+0+005c <[^>]*> sra     a0,a0,0x1f
+0+0060 <[^>]*> mfhi    at
+0+0064 <[^>]*> beq     a0,at,0+70 <foo\+(0x|)70>
+0+0068 <[^>]*> nop
+0+006c <[^>]*> break   (0x0,0x6|0x6)
+0+0070 <[^>]*> mflo    a0
+0+0074 <[^>]*> mult    a1,a2
+0+0078 <[^>]*> mflo    a0
+0+007c <[^>]*> sra     a0,a0,0x1f
+0+0080 <[^>]*> mfhi    at
+0+0084 <[^>]*> beq     a0,at,0+90 <foo\+(0x|)90>
+0+0088 <[^>]*> nop
+0+008c <[^>]*> break   (0x0,0x6|0x6)
+0+0090 <[^>]*> mflo    a0
+0+0094 <[^>]*> multu   a0,a1
+0+0098 <[^>]*> mfhi    at
+0+009c <[^>]*> mflo    a0
+0+00a0 <[^>]*> beqz    at,0+ac <foo\+(0x|)ac>
+0+00a4 <[^>]*> nop
+0+00a8 <[^>]*> break   (0x0,0x6|0x6)
+0+00ac <[^>]*> multu   a1,a2
+0+00b0 <[^>]*> mfhi    at
+0+00b4 <[^>]*> mflo    a0
+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)
+       \.\.\.
similarity index 97%
rename from gas/testsuite/gas/mips/mul-ilocks.d
rename to gas/testsuite/gas/mips/r10000@mul.d
index 9450a04f76d1a4d5ee0754af2d11af1a921ed572..51b7c4bd325fcfd56619b373feb4b6168bf19caf 100644 (file)
@@ -1,6 +1,6 @@
+#as: -32
 #objdump: -dr --prefix-addresses
-#name: MIPS mul-ilocks
-#as: -march=r4000 -mtune=r4000
+#name: MIPS mul
 #source: mul.s
 
 # Test the mul macro.
diff --git a/gas/testsuite/gas/mips/r4000@mul.d b/gas/testsuite/gas/mips/r4000@mul.d
new file mode 100644 (file)
index 0000000..fc7c125
--- /dev/null
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS mul
+#source: mul.s
+#dump: mips3@mul.d
diff --git a/gas/testsuite/gas/mips/vr5400@mul.d b/gas/testsuite/gas/mips/vr5400@mul.d
new file mode 100644 (file)
index 0000000..c03407d
--- /dev/null
@@ -0,0 +1,91 @@
+#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 <[^>]*> mul     a0,a1,a2
+0+0014 <[^>]*> li      at,0
+0+0018 <[^>]*> mult    a1,at
+0+001c <[^>]*> mflo    a0
+0+0020 <[^>]*> li      at,1
+0+0024 <[^>]*> nop
+0+0028 <[^>]*> mult    a1,at
+0+002c <[^>]*> mflo    a0
+0+0030 <[^>]*> li      at,0x8000
+0+0034 <[^>]*> nop
+0+0038 <[^>]*> mult    a1,at
+0+003c <[^>]*> mflo    a0
+0+0040 <[^>]*> li      at,-32768
+0+0044 <[^>]*> nop
+0+0048 <[^>]*> mult    a1,at
+0+004c <[^>]*> mflo    a0
+0+0050 <[^>]*> lui     at,0x1
+0+0054 <[^>]*> nop
+0+0058 <[^>]*> mult    a1,at
+0+005c <[^>]*> mflo    a0
+0+0060 <[^>]*> lui     at,0x1
+0+0064 <[^>]*> ori     at,at,0xa5a5
+0+0068 <[^>]*> mult    a1,at
+0+006c <[^>]*> mflo    a0
+       \.\.\.
+0+0078 <[^>]*> mult    a0,a1
+0+007c <[^>]*> mflo    a0
+0+0080 <[^>]*> sra     a0,a0,0x1f
+0+0084 <[^>]*> mfhi    at
+0+0088 <[^>]*> beq     a0,at,0+94 <foo\+(0x|)94>
+0+008c <[^>]*> nop
+0+0090 <[^>]*> break   (0x0,0x6|0x6)
+0+0094 <[^>]*> mflo    a0
+       \.\.\.
+0+00a0 <[^>]*> mult    a1,a2
+0+00a4 <[^>]*> mflo    a0
+0+00a8 <[^>]*> sra     a0,a0,0x1f
+0+00ac <[^>]*> mfhi    at
+0+00b0 <[^>]*> beq     a0,at,0+bc <foo\+(0x|)bc>
+0+00b4 <[^>]*> nop
+0+00b8 <[^>]*> break   (0x0,0x6|0x6)
+0+00bc <[^>]*> mflo    a0
+       \.\.\.
+0+00c8 <[^>]*> multu   a0,a1
+0+00cc <[^>]*> mfhi    at
+0+00d0 <[^>]*> mflo    a0
+0+00d4 <[^>]*> beqz    at,0+e0 <foo\+(0x|)e0>
+0+00d8 <[^>]*> nop
+0+00dc <[^>]*> break   (0x0,0x6|0x6)
+0+00e0 <[^>]*> multu   a1,a2
+0+00e4 <[^>]*> mfhi    at
+0+00e8 <[^>]*> mflo    a0
+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)
+       \.\.\.