diff options
author | Maciej W. Rozycki <macro@redhat.com> | 2024-07-19 09:42:56 +0100 |
---|---|---|
committer | Maciej W. Rozycki <macro@redhat.com> | 2024-07-19 09:42:56 +0100 |
commit | 37ed5bd27afcd49de89f8e23971737d4be8dff60 (patch) | |
tree | 31a4978a235392679ba337a251ce6f54570a5a3c /gas | |
parent | dec718565a5cc22f3664c552d5618fdf21480c10 (diff) | |
download | gdb-37ed5bd27afcd49de89f8e23971737d4be8dff60.zip gdb-37ed5bd27afcd49de89f8e23971737d4be8dff60.tar.gz gdb-37ed5bd27afcd49de89f8e23971737d4be8dff60.tar.bz2 |
MIPS/GAS/testsuite: Run the mul macro test across architectures
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.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/testsuite/gas/mips/micromips@mul.d | 87 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/mips.exp | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/mips3@mul.d | 93 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/mips4@mul.d | 5 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/mips5@mul.d | 5 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/mul.d | 148 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/mul.s | 4 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/octeon@mul.d | 78 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/r10000@mul.d (renamed from gas/testsuite/gas/mips/mul-ilocks.d) | 4 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/r4000@mul.d | 5 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/vr5400@mul.d | 91 |
11 files changed, 437 insertions, 86 deletions
diff --git a/gas/testsuite/gas/mips/micromips@mul.d b/gas/testsuite/gas/mips/micromips@mul.d new file mode 100644 index 0000000..0ee40c0 --- /dev/null +++ b/gas/testsuite/gas/mips/micromips@mul.d @@ -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 + \.\.\. + \.\.\. diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp index 7ba674a..8f0f458 100644 --- a/gas/testsuite/gas/mips/mips.exp +++ b/gas/testsuite/gas/mips/mips.exp @@ -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 index 0000000..3f95822 --- /dev/null +++ b/gas/testsuite/gas/mips/mips3@mul.d @@ -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 index 0000000..fc7c125 --- /dev/null +++ b/gas/testsuite/gas/mips/mips4@mul.d @@ -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 index 0000000..fc7c125 --- /dev/null +++ b/gas/testsuite/gas/mips/mips5@mul.d @@ -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/mul.d b/gas/testsuite/gas/mips/mul.d index 1c4f784..4484159 100644 --- a/gas/testsuite/gas/mips/mul.d +++ b/gas/testsuite/gas/mips/mul.d @@ -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) + \.\.\. diff --git a/gas/testsuite/gas/mips/mul.s b/gas/testsuite/gas/mips/mul.s index b29e369..b037248 100644 --- a/gas/testsuite/gas/mips/mul.s +++ b/gas/testsuite/gas/mips/mul.s @@ -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 index 0000000..4e52718 --- /dev/null +++ b/gas/testsuite/gas/mips/octeon@mul.d @@ -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) + \.\.\. diff --git a/gas/testsuite/gas/mips/mul-ilocks.d b/gas/testsuite/gas/mips/r10000@mul.d index 9450a04..51b7c4b 100644 --- a/gas/testsuite/gas/mips/mul-ilocks.d +++ b/gas/testsuite/gas/mips/r10000@mul.d @@ -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 index 0000000..fc7c125 --- /dev/null +++ b/gas/testsuite/gas/mips/r4000@mul.d @@ -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 index 0000000..c03407d --- /dev/null +++ b/gas/testsuite/gas/mips/vr5400@mul.d @@ -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) + \.\.\. |