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 | 37b83106809d3a6c23d74d0bc5c13b3814fc3d19 (patch) | |
tree | 07e40161146d49715da098cf8d5251c1a684d9bf /gas | |
parent | 37ed5bd27afcd49de89f8e23971737d4be8dff60 (diff) | |
download | gdb-37b83106809d3a6c23d74d0bc5c13b3814fc3d19.zip gdb-37b83106809d3a6c23d74d0bc5c13b3814fc3d19.tar.gz gdb-37b83106809d3a6c23d74d0bc5c13b3814fc3d19.tar.bz2 |
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.
Diffstat (limited to 'gas')
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 0000000..7479f0b --- /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 0ee40c0..c940bd5 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 0000000..0075c43 --- /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 8f0f458..b981b64 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 0000000..8cbd1da --- /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 0000000..fd1ce2f --- /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 3f95822..fd1ce2f 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 0000000..7ca7bdb --- /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 fc7c125..fd1ce2f 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 0000000..5e6d8ac --- /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 fc7c125..fd1ce2f 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 0000000..5e6d8ac --- /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 4484159..ffd866a 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 b037248..75f665d 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 0000000..16a77d7 --- /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 0000000..407e990 --- /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 0000000..2cd37a9 --- /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 51b7c4b..9990e36 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 0000000..4227e42 --- /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 0000000..fd1ce2f --- /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 0000000..fd1ce2f --- /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 fc7c125..fd1ce2f 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 0000000..5e6d8ac --- /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 index 4e52718..1d643fd 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 c03407d..0e49a04 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 0000000..0594ee2 --- /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) + \.\.\. |