From 709aa065e1bd6988cf21c975a50abc2e002c6277 Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Sat, 29 May 2021 03:26:32 +0200 Subject: [PATCH] MIPS/GAS/testsuite: Add tests for coprocessor access instructions Cover basic CP0, CP2, CP3 move, load and store instructions across the relevant ISA levels. Omit CP0 move and CP1 instructions as they are covered elsewhere. gas/ * testsuite/gas/mips/cp0c.d: New test. * testsuite/gas/mips/cp0m.d: New test. * testsuite/gas/mips/r3900@cp0m.d: New test. * testsuite/gas/mips/cp2.d: New test. * testsuite/gas/mips/micromips@cp2.d: New test. * testsuite/gas/mips/cp2m.d: New test. * testsuite/gas/mips/mipsr6@cp2m.d: New test. * testsuite/gas/mips/micromips@cp2m.d: New test. * testsuite/gas/mips/cp2d.d: New test. * testsuite/gas/mips/mipsr6@cp2d.d: New test. * testsuite/gas/mips/micromips@cp2d.d: New test. * testsuite/gas/mips/cp2-64.d: New test. * testsuite/gas/mips/micromips@cp2-64.d: New test. * testsuite/gas/mips/cp3.d: New test. * testsuite/gas/mips/cp3m.d: New test. * testsuite/gas/mips/cp3d.d: New test. * testsuite/gas/mips/cp0c.s: New test source. * testsuite/gas/mips/cp0m.s: New test source. * testsuite/gas/mips/cp2.s: New test source. * testsuite/gas/mips/cp2m.s: New test source. * testsuite/gas/mips/cp2d.s: New test source. * testsuite/gas/mips/cp2-64.s: New test source. * testsuite/gas/mips/cp3.s: New test source. * testsuite/gas/mips/cp3m.s: New test source. * testsuite/gas/mips/cp3d.s: New test source. * testsuite/gas/mips/mips.exp: Run the new tests. --- gas/ChangeLog | 29 +++++ gas/testsuite/gas/mips/cp0c.d | 72 +++++++++++ gas/testsuite/gas/mips/cp0c.s | 72 +++++++++++ gas/testsuite/gas/mips/cp0m.d | 72 +++++++++++ gas/testsuite/gas/mips/cp0m.s | 72 +++++++++++ gas/testsuite/gas/mips/cp2-64.d | 72 +++++++++++ gas/testsuite/gas/mips/cp2-64.s | 72 +++++++++++ gas/testsuite/gas/mips/cp2.d | 136 +++++++++++++++++++++ gas/testsuite/gas/mips/cp2.s | 138 ++++++++++++++++++++++ gas/testsuite/gas/mips/cp2d.d | 72 +++++++++++ gas/testsuite/gas/mips/cp2d.s | 71 +++++++++++ gas/testsuite/gas/mips/cp2m.d | 72 +++++++++++ gas/testsuite/gas/mips/cp2m.s | 72 +++++++++++ gas/testsuite/gas/mips/cp3.d | 136 +++++++++++++++++++++ gas/testsuite/gas/mips/cp3.s | 138 ++++++++++++++++++++++ gas/testsuite/gas/mips/cp3d.d | 72 +++++++++++ gas/testsuite/gas/mips/cp3d.s | 72 +++++++++++ gas/testsuite/gas/mips/cp3m.d | 72 +++++++++++ gas/testsuite/gas/mips/cp3m.s | 72 +++++++++++ gas/testsuite/gas/mips/micromips@cp2-64.d | 73 ++++++++++++ gas/testsuite/gas/mips/micromips@cp2.d | 137 +++++++++++++++++++++ gas/testsuite/gas/mips/micromips@cp2d.d | 73 ++++++++++++ gas/testsuite/gas/mips/micromips@cp2m.d | 73 ++++++++++++ gas/testsuite/gas/mips/mips.exp | 21 ++++ gas/testsuite/gas/mips/mipsr6@cp2d.d | 73 ++++++++++++ gas/testsuite/gas/mips/mipsr6@cp2m.d | 73 ++++++++++++ gas/testsuite/gas/mips/r3900@cp0m.d | 73 ++++++++++++ 27 files changed, 2180 insertions(+) create mode 100644 gas/testsuite/gas/mips/cp0c.d create mode 100644 gas/testsuite/gas/mips/cp0c.s create mode 100644 gas/testsuite/gas/mips/cp0m.d create mode 100644 gas/testsuite/gas/mips/cp0m.s create mode 100644 gas/testsuite/gas/mips/cp2-64.d create mode 100644 gas/testsuite/gas/mips/cp2-64.s create mode 100644 gas/testsuite/gas/mips/cp2.d create mode 100644 gas/testsuite/gas/mips/cp2.s create mode 100644 gas/testsuite/gas/mips/cp2d.d create mode 100644 gas/testsuite/gas/mips/cp2d.s create mode 100644 gas/testsuite/gas/mips/cp2m.d create mode 100644 gas/testsuite/gas/mips/cp2m.s create mode 100644 gas/testsuite/gas/mips/cp3.d create mode 100644 gas/testsuite/gas/mips/cp3.s create mode 100644 gas/testsuite/gas/mips/cp3d.d create mode 100644 gas/testsuite/gas/mips/cp3d.s create mode 100644 gas/testsuite/gas/mips/cp3m.d create mode 100644 gas/testsuite/gas/mips/cp3m.s create mode 100644 gas/testsuite/gas/mips/micromips@cp2-64.d create mode 100644 gas/testsuite/gas/mips/micromips@cp2.d create mode 100644 gas/testsuite/gas/mips/micromips@cp2d.d create mode 100644 gas/testsuite/gas/mips/micromips@cp2m.d create mode 100644 gas/testsuite/gas/mips/mipsr6@cp2d.d create mode 100644 gas/testsuite/gas/mips/mipsr6@cp2m.d create mode 100644 gas/testsuite/gas/mips/r3900@cp0m.d diff --git a/gas/ChangeLog b/gas/ChangeLog index 0d5f7a85a96..77dd8f740a6 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,32 @@ +2021-05-29 Maciej W. Rozycki + + * testsuite/gas/mips/cp0c.d: New test. + * testsuite/gas/mips/cp0m.d: New test. + * testsuite/gas/mips/r3900@cp0m.d: New test. + * testsuite/gas/mips/cp2.d: New test. + * testsuite/gas/mips/micromips@cp2.d: New test. + * testsuite/gas/mips/cp2m.d: New test. + * testsuite/gas/mips/mipsr6@cp2m.d: New test. + * testsuite/gas/mips/micromips@cp2m.d: New test. + * testsuite/gas/mips/cp2d.d: New test. + * testsuite/gas/mips/mipsr6@cp2d.d: New test. + * testsuite/gas/mips/micromips@cp2d.d: New test. + * testsuite/gas/mips/cp2-64.d: New test. + * testsuite/gas/mips/micromips@cp2-64.d: New test. + * testsuite/gas/mips/cp3.d: New test. + * testsuite/gas/mips/cp3m.d: New test. + * testsuite/gas/mips/cp3d.d: New test. + * testsuite/gas/mips/cp0c.s: New test source. + * testsuite/gas/mips/cp0m.s: New test source. + * testsuite/gas/mips/cp2.s: New test source. + * testsuite/gas/mips/cp2m.s: New test source. + * testsuite/gas/mips/cp2d.s: New test source. + * testsuite/gas/mips/cp2-64.s: New test source. + * testsuite/gas/mips/cp3.s: New test source. + * testsuite/gas/mips/cp3m.s: New test source. + * testsuite/gas/mips/cp3d.s: New test source. + * testsuite/gas/mips/mips.exp: Run the new tests. + 2021-05-29 Maciej W. Rozycki * tc-mips.c (convert_reg_type) : New case. diff --git a/gas/testsuite/gas/mips/cp0c.d b/gas/testsuite/gas/mips/cp0c.d new file mode 100644 index 00000000000..1432ed99cf1 --- /dev/null +++ b/gas/testsuite/gas/mips/cp0c.d @@ -0,0 +1,72 @@ +#objdump: -d --prefix-addresses --show-raw-insn +#name: MIPS CP0 control register move instructions +#as: -32 + +.*: +file format .*mips.* + +Disassembly of section \.text: +[0-9a-f]+ <[^>]*> 40c00000 ctc0 zero,\$0 +[0-9a-f]+ <[^>]*> 40c00800 ctc0 zero,\$1 +[0-9a-f]+ <[^>]*> 40c01000 ctc0 zero,\$2 +[0-9a-f]+ <[^>]*> 40c01800 ctc0 zero,\$3 +[0-9a-f]+ <[^>]*> 40c02000 ctc0 zero,\$4 +[0-9a-f]+ <[^>]*> 40c02800 ctc0 zero,\$5 +[0-9a-f]+ <[^>]*> 40c03000 ctc0 zero,\$6 +[0-9a-f]+ <[^>]*> 40c03800 ctc0 zero,\$7 +[0-9a-f]+ <[^>]*> 40c04000 ctc0 zero,\$8 +[0-9a-f]+ <[^>]*> 40c04800 ctc0 zero,\$9 +[0-9a-f]+ <[^>]*> 40c05000 ctc0 zero,\$10 +[0-9a-f]+ <[^>]*> 40c05800 ctc0 zero,\$11 +[0-9a-f]+ <[^>]*> 40c06000 ctc0 zero,\$12 +[0-9a-f]+ <[^>]*> 40c06800 ctc0 zero,\$13 +[0-9a-f]+ <[^>]*> 40c07000 ctc0 zero,\$14 +[0-9a-f]+ <[^>]*> 40c07800 ctc0 zero,\$15 +[0-9a-f]+ <[^>]*> 40c08000 ctc0 zero,\$16 +[0-9a-f]+ <[^>]*> 40c08800 ctc0 zero,\$17 +[0-9a-f]+ <[^>]*> 40c09000 ctc0 zero,\$18 +[0-9a-f]+ <[^>]*> 40c09800 ctc0 zero,\$19 +[0-9a-f]+ <[^>]*> 40c0a000 ctc0 zero,\$20 +[0-9a-f]+ <[^>]*> 40c0a800 ctc0 zero,\$21 +[0-9a-f]+ <[^>]*> 40c0b000 ctc0 zero,\$22 +[0-9a-f]+ <[^>]*> 40c0b800 ctc0 zero,\$23 +[0-9a-f]+ <[^>]*> 40c0c000 ctc0 zero,\$24 +[0-9a-f]+ <[^>]*> 40c0c800 ctc0 zero,\$25 +[0-9a-f]+ <[^>]*> 40c0d000 ctc0 zero,\$26 +[0-9a-f]+ <[^>]*> 40c0d800 ctc0 zero,\$27 +[0-9a-f]+ <[^>]*> 40c0e000 ctc0 zero,\$28 +[0-9a-f]+ <[^>]*> 40c0e800 ctc0 zero,\$29 +[0-9a-f]+ <[^>]*> 40c0f000 ctc0 zero,\$30 +[0-9a-f]+ <[^>]*> 40c0f800 ctc0 zero,\$31 +[0-9a-f]+ <[^>]*> 40400000 cfc0 zero,\$0 +[0-9a-f]+ <[^>]*> 40400800 cfc0 zero,\$1 +[0-9a-f]+ <[^>]*> 40401000 cfc0 zero,\$2 +[0-9a-f]+ <[^>]*> 40401800 cfc0 zero,\$3 +[0-9a-f]+ <[^>]*> 40402000 cfc0 zero,\$4 +[0-9a-f]+ <[^>]*> 40402800 cfc0 zero,\$5 +[0-9a-f]+ <[^>]*> 40403000 cfc0 zero,\$6 +[0-9a-f]+ <[^>]*> 40403800 cfc0 zero,\$7 +[0-9a-f]+ <[^>]*> 40404000 cfc0 zero,\$8 +[0-9a-f]+ <[^>]*> 40404800 cfc0 zero,\$9 +[0-9a-f]+ <[^>]*> 40405000 cfc0 zero,\$10 +[0-9a-f]+ <[^>]*> 40405800 cfc0 zero,\$11 +[0-9a-f]+ <[^>]*> 40406000 cfc0 zero,\$12 +[0-9a-f]+ <[^>]*> 40406800 cfc0 zero,\$13 +[0-9a-f]+ <[^>]*> 40407000 cfc0 zero,\$14 +[0-9a-f]+ <[^>]*> 40407800 cfc0 zero,\$15 +[0-9a-f]+ <[^>]*> 40408000 cfc0 zero,\$16 +[0-9a-f]+ <[^>]*> 40408800 cfc0 zero,\$17 +[0-9a-f]+ <[^>]*> 40409000 cfc0 zero,\$18 +[0-9a-f]+ <[^>]*> 40409800 cfc0 zero,\$19 +[0-9a-f]+ <[^>]*> 4040a000 cfc0 zero,\$20 +[0-9a-f]+ <[^>]*> 4040a800 cfc0 zero,\$21 +[0-9a-f]+ <[^>]*> 4040b000 cfc0 zero,\$22 +[0-9a-f]+ <[^>]*> 4040b800 cfc0 zero,\$23 +[0-9a-f]+ <[^>]*> 4040c000 cfc0 zero,\$24 +[0-9a-f]+ <[^>]*> 4040c800 cfc0 zero,\$25 +[0-9a-f]+ <[^>]*> 4040d000 cfc0 zero,\$26 +[0-9a-f]+ <[^>]*> 4040d800 cfc0 zero,\$27 +[0-9a-f]+ <[^>]*> 4040e000 cfc0 zero,\$28 +[0-9a-f]+ <[^>]*> 4040e800 cfc0 zero,\$29 +[0-9a-f]+ <[^>]*> 4040f000 cfc0 zero,\$30 +[0-9a-f]+ <[^>]*> 4040f800 cfc0 zero,\$31 + \.\.\. diff --git a/gas/testsuite/gas/mips/cp0c.s b/gas/testsuite/gas/mips/cp0c.s new file mode 100644 index 00000000000..ec67ee5dc36 --- /dev/null +++ b/gas/testsuite/gas/mips/cp0c.s @@ -0,0 +1,72 @@ + .text + .set noreorder +foo: + ctc0 $0, $0 + ctc0 $0, $1 + ctc0 $0, $2 + ctc0 $0, $3 + ctc0 $0, $4 + ctc0 $0, $5 + ctc0 $0, $6 + ctc0 $0, $7 + ctc0 $0, $8 + ctc0 $0, $9 + ctc0 $0, $10 + ctc0 $0, $11 + ctc0 $0, $12 + ctc0 $0, $13 + ctc0 $0, $14 + ctc0 $0, $15 + ctc0 $0, $16 + ctc0 $0, $17 + ctc0 $0, $18 + ctc0 $0, $19 + ctc0 $0, $20 + ctc0 $0, $21 + ctc0 $0, $22 + ctc0 $0, $23 + ctc0 $0, $24 + ctc0 $0, $25 + ctc0 $0, $26 + ctc0 $0, $27 + ctc0 $0, $28 + ctc0 $0, $29 + ctc0 $0, $30 + ctc0 $0, $31 + + cfc0 $0, $0 + cfc0 $0, $1 + cfc0 $0, $2 + cfc0 $0, $3 + cfc0 $0, $4 + cfc0 $0, $5 + cfc0 $0, $6 + cfc0 $0, $7 + cfc0 $0, $8 + cfc0 $0, $9 + cfc0 $0, $10 + cfc0 $0, $11 + cfc0 $0, $12 + cfc0 $0, $13 + cfc0 $0, $14 + cfc0 $0, $15 + cfc0 $0, $16 + cfc0 $0, $17 + cfc0 $0, $18 + cfc0 $0, $19 + cfc0 $0, $20 + cfc0 $0, $21 + cfc0 $0, $22 + cfc0 $0, $23 + cfc0 $0, $24 + cfc0 $0, $25 + cfc0 $0, $26 + cfc0 $0, $27 + cfc0 $0, $28 + cfc0 $0, $29 + cfc0 $0, $30 + cfc0 $0, $31 + +# Force some (non-delay-slot) zero bytes, to make 'objdump' print ... + .align 4, 0 + .space 16 diff --git a/gas/testsuite/gas/mips/cp0m.d b/gas/testsuite/gas/mips/cp0m.d new file mode 100644 index 00000000000..9eb8f0faa1e --- /dev/null +++ b/gas/testsuite/gas/mips/cp0m.d @@ -0,0 +1,72 @@ +#objdump: -d --prefix-addresses --show-raw-insn +#name: MIPS CP0 memory access instructions +#as: -32 + +.*: +file format .*mips.* + +Disassembly of section \.text: +[0-9a-f]+ <[^>]*> c0000000 lwc0 c0_index,0\(zero\) +[0-9a-f]+ <[^>]*> c0010000 lwc0 c0_random,0\(zero\) +[0-9a-f]+ <[^>]*> c0020000 lwc0 c0_entrylo,0\(zero\) +[0-9a-f]+ <[^>]*> c0030000 lwc0 \$3,0\(zero\) +[0-9a-f]+ <[^>]*> c0040000 lwc0 c0_context,0\(zero\) +[0-9a-f]+ <[^>]*> c0050000 lwc0 \$5,0\(zero\) +[0-9a-f]+ <[^>]*> c0060000 lwc0 \$6,0\(zero\) +[0-9a-f]+ <[^>]*> c0070000 lwc0 \$7,0\(zero\) +[0-9a-f]+ <[^>]*> c0080000 lwc0 c0_badvaddr,0\(zero\) +[0-9a-f]+ <[^>]*> c0090000 lwc0 \$9,0\(zero\) +[0-9a-f]+ <[^>]*> c00a0000 lwc0 c0_entryhi,0\(zero\) +[0-9a-f]+ <[^>]*> c00b0000 lwc0 \$11,0\(zero\) +[0-9a-f]+ <[^>]*> c00c0000 lwc0 c0_sr,0\(zero\) +[0-9a-f]+ <[^>]*> c00d0000 lwc0 c0_cause,0\(zero\) +[0-9a-f]+ <[^>]*> c00e0000 lwc0 c0_epc,0\(zero\) +[0-9a-f]+ <[^>]*> c00f0000 lwc0 c0_prid,0\(zero\) +[0-9a-f]+ <[^>]*> c0100000 lwc0 \$16,0\(zero\) +[0-9a-f]+ <[^>]*> c0110000 lwc0 \$17,0\(zero\) +[0-9a-f]+ <[^>]*> c0120000 lwc0 \$18,0\(zero\) +[0-9a-f]+ <[^>]*> c0130000 lwc0 \$19,0\(zero\) +[0-9a-f]+ <[^>]*> c0140000 lwc0 \$20,0\(zero\) +[0-9a-f]+ <[^>]*> c0150000 lwc0 \$21,0\(zero\) +[0-9a-f]+ <[^>]*> c0160000 lwc0 \$22,0\(zero\) +[0-9a-f]+ <[^>]*> c0170000 lwc0 \$23,0\(zero\) +[0-9a-f]+ <[^>]*> c0180000 lwc0 \$24,0\(zero\) +[0-9a-f]+ <[^>]*> c0190000 lwc0 \$25,0\(zero\) +[0-9a-f]+ <[^>]*> c01a0000 lwc0 \$26,0\(zero\) +[0-9a-f]+ <[^>]*> c01b0000 lwc0 \$27,0\(zero\) +[0-9a-f]+ <[^>]*> c01c0000 lwc0 \$28,0\(zero\) +[0-9a-f]+ <[^>]*> c01d0000 lwc0 \$29,0\(zero\) +[0-9a-f]+ <[^>]*> c01e0000 lwc0 \$30,0\(zero\) +[0-9a-f]+ <[^>]*> c01f0000 lwc0 \$31,0\(zero\) +[0-9a-f]+ <[^>]*> e0000000 swc0 c0_index,0\(zero\) +[0-9a-f]+ <[^>]*> e0010000 swc0 c0_random,0\(zero\) +[0-9a-f]+ <[^>]*> e0020000 swc0 c0_entrylo,0\(zero\) +[0-9a-f]+ <[^>]*> e0030000 swc0 \$3,0\(zero\) +[0-9a-f]+ <[^>]*> e0040000 swc0 c0_context,0\(zero\) +[0-9a-f]+ <[^>]*> e0050000 swc0 \$5,0\(zero\) +[0-9a-f]+ <[^>]*> e0060000 swc0 \$6,0\(zero\) +[0-9a-f]+ <[^>]*> e0070000 swc0 \$7,0\(zero\) +[0-9a-f]+ <[^>]*> e0080000 swc0 c0_badvaddr,0\(zero\) +[0-9a-f]+ <[^>]*> e0090000 swc0 \$9,0\(zero\) +[0-9a-f]+ <[^>]*> e00a0000 swc0 c0_entryhi,0\(zero\) +[0-9a-f]+ <[^>]*> e00b0000 swc0 \$11,0\(zero\) +[0-9a-f]+ <[^>]*> e00c0000 swc0 c0_sr,0\(zero\) +[0-9a-f]+ <[^>]*> e00d0000 swc0 c0_cause,0\(zero\) +[0-9a-f]+ <[^>]*> e00e0000 swc0 c0_epc,0\(zero\) +[0-9a-f]+ <[^>]*> e00f0000 swc0 c0_prid,0\(zero\) +[0-9a-f]+ <[^>]*> e0100000 swc0 \$16,0\(zero\) +[0-9a-f]+ <[^>]*> e0110000 swc0 \$17,0\(zero\) +[0-9a-f]+ <[^>]*> e0120000 swc0 \$18,0\(zero\) +[0-9a-f]+ <[^>]*> e0130000 swc0 \$19,0\(zero\) +[0-9a-f]+ <[^>]*> e0140000 swc0 \$20,0\(zero\) +[0-9a-f]+ <[^>]*> e0150000 swc0 \$21,0\(zero\) +[0-9a-f]+ <[^>]*> e0160000 swc0 \$22,0\(zero\) +[0-9a-f]+ <[^>]*> e0170000 swc0 \$23,0\(zero\) +[0-9a-f]+ <[^>]*> e0180000 swc0 \$24,0\(zero\) +[0-9a-f]+ <[^>]*> e0190000 swc0 \$25,0\(zero\) +[0-9a-f]+ <[^>]*> e01a0000 swc0 \$26,0\(zero\) +[0-9a-f]+ <[^>]*> e01b0000 swc0 \$27,0\(zero\) +[0-9a-f]+ <[^>]*> e01c0000 swc0 \$28,0\(zero\) +[0-9a-f]+ <[^>]*> e01d0000 swc0 \$29,0\(zero\) +[0-9a-f]+ <[^>]*> e01e0000 swc0 \$30,0\(zero\) +[0-9a-f]+ <[^>]*> e01f0000 swc0 \$31,0\(zero\) + \.\.\. diff --git a/gas/testsuite/gas/mips/cp0m.s b/gas/testsuite/gas/mips/cp0m.s new file mode 100644 index 00000000000..15603dd124b --- /dev/null +++ b/gas/testsuite/gas/mips/cp0m.s @@ -0,0 +1,72 @@ + .text + .set noreorder +foo: + lwc0 $0, 0($0) + lwc0 $1, 0($0) + lwc0 $2, 0($0) + lwc0 $3, 0($0) + lwc0 $4, 0($0) + lwc0 $5, 0($0) + lwc0 $6, 0($0) + lwc0 $7, 0($0) + lwc0 $8, 0($0) + lwc0 $9, 0($0) + lwc0 $10, 0($0) + lwc0 $11, 0($0) + lwc0 $12, 0($0) + lwc0 $13, 0($0) + lwc0 $14, 0($0) + lwc0 $15, 0($0) + lwc0 $16, 0($0) + lwc0 $17, 0($0) + lwc0 $18, 0($0) + lwc0 $19, 0($0) + lwc0 $20, 0($0) + lwc0 $21, 0($0) + lwc0 $22, 0($0) + lwc0 $23, 0($0) + lwc0 $24, 0($0) + lwc0 $25, 0($0) + lwc0 $26, 0($0) + lwc0 $27, 0($0) + lwc0 $28, 0($0) + lwc0 $29, 0($0) + lwc0 $30, 0($0) + lwc0 $31, 0($0) + + swc0 $0, 0($0) + swc0 $1, 0($0) + swc0 $2, 0($0) + swc0 $3, 0($0) + swc0 $4, 0($0) + swc0 $5, 0($0) + swc0 $6, 0($0) + swc0 $7, 0($0) + swc0 $8, 0($0) + swc0 $9, 0($0) + swc0 $10, 0($0) + swc0 $11, 0($0) + swc0 $12, 0($0) + swc0 $13, 0($0) + swc0 $14, 0($0) + swc0 $15, 0($0) + swc0 $16, 0($0) + swc0 $17, 0($0) + swc0 $18, 0($0) + swc0 $19, 0($0) + swc0 $20, 0($0) + swc0 $21, 0($0) + swc0 $22, 0($0) + swc0 $23, 0($0) + swc0 $24, 0($0) + swc0 $25, 0($0) + swc0 $26, 0($0) + swc0 $27, 0($0) + swc0 $28, 0($0) + swc0 $29, 0($0) + swc0 $30, 0($0) + swc0 $31, 0($0) + +# Force some (non-delay-slot) zero bytes, to make 'objdump' print ... + .align 4, 0 + .space 16 diff --git a/gas/testsuite/gas/mips/cp2-64.d b/gas/testsuite/gas/mips/cp2-64.d new file mode 100644 index 00000000000..57fa131ac6e --- /dev/null +++ b/gas/testsuite/gas/mips/cp2-64.d @@ -0,0 +1,72 @@ +#objdump: -d --prefix-addresses --show-raw-insn +#name: MIPS CP2 64-bit move instructions +#as: -32 + +.*: +file format .*mips.* + +Disassembly of section \.text: +[0-9a-f]+ <[^>]*> 48a00000 dmtc2 zero,\$0 +[0-9a-f]+ <[^>]*> 48a00800 dmtc2 zero,\$1 +[0-9a-f]+ <[^>]*> 48a01000 dmtc2 zero,\$2 +[0-9a-f]+ <[^>]*> 48a01800 dmtc2 zero,\$3 +[0-9a-f]+ <[^>]*> 48a02000 dmtc2 zero,\$4 +[0-9a-f]+ <[^>]*> 48a02800 dmtc2 zero,\$5 +[0-9a-f]+ <[^>]*> 48a03000 dmtc2 zero,\$6 +[0-9a-f]+ <[^>]*> 48a03800 dmtc2 zero,\$7 +[0-9a-f]+ <[^>]*> 48a04000 dmtc2 zero,\$8 +[0-9a-f]+ <[^>]*> 48a04800 dmtc2 zero,\$9 +[0-9a-f]+ <[^>]*> 48a05000 dmtc2 zero,\$10 +[0-9a-f]+ <[^>]*> 48a05800 dmtc2 zero,\$11 +[0-9a-f]+ <[^>]*> 48a06000 dmtc2 zero,\$12 +[0-9a-f]+ <[^>]*> 48a06800 dmtc2 zero,\$13 +[0-9a-f]+ <[^>]*> 48a07000 dmtc2 zero,\$14 +[0-9a-f]+ <[^>]*> 48a07800 dmtc2 zero,\$15 +[0-9a-f]+ <[^>]*> 48a08000 dmtc2 zero,\$16 +[0-9a-f]+ <[^>]*> 48a08800 dmtc2 zero,\$17 +[0-9a-f]+ <[^>]*> 48a09000 dmtc2 zero,\$18 +[0-9a-f]+ <[^>]*> 48a09800 dmtc2 zero,\$19 +[0-9a-f]+ <[^>]*> 48a0a000 dmtc2 zero,\$20 +[0-9a-f]+ <[^>]*> 48a0a800 dmtc2 zero,\$21 +[0-9a-f]+ <[^>]*> 48a0b000 dmtc2 zero,\$22 +[0-9a-f]+ <[^>]*> 48a0b800 dmtc2 zero,\$23 +[0-9a-f]+ <[^>]*> 48a0c000 dmtc2 zero,\$24 +[0-9a-f]+ <[^>]*> 48a0c800 dmtc2 zero,\$25 +[0-9a-f]+ <[^>]*> 48a0d000 dmtc2 zero,\$26 +[0-9a-f]+ <[^>]*> 48a0d800 dmtc2 zero,\$27 +[0-9a-f]+ <[^>]*> 48a0e000 dmtc2 zero,\$28 +[0-9a-f]+ <[^>]*> 48a0e800 dmtc2 zero,\$29 +[0-9a-f]+ <[^>]*> 48a0f000 dmtc2 zero,\$30 +[0-9a-f]+ <[^>]*> 48a0f800 dmtc2 zero,\$31 +[0-9a-f]+ <[^>]*> 48200000 dmfc2 zero,\$0 +[0-9a-f]+ <[^>]*> 48200800 dmfc2 zero,\$1 +[0-9a-f]+ <[^>]*> 48201000 dmfc2 zero,\$2 +[0-9a-f]+ <[^>]*> 48201800 dmfc2 zero,\$3 +[0-9a-f]+ <[^>]*> 48202000 dmfc2 zero,\$4 +[0-9a-f]+ <[^>]*> 48202800 dmfc2 zero,\$5 +[0-9a-f]+ <[^>]*> 48203000 dmfc2 zero,\$6 +[0-9a-f]+ <[^>]*> 48203800 dmfc2 zero,\$7 +[0-9a-f]+ <[^>]*> 48204000 dmfc2 zero,\$8 +[0-9a-f]+ <[^>]*> 48204800 dmfc2 zero,\$9 +[0-9a-f]+ <[^>]*> 48205000 dmfc2 zero,\$10 +[0-9a-f]+ <[^>]*> 48205800 dmfc2 zero,\$11 +[0-9a-f]+ <[^>]*> 48206000 dmfc2 zero,\$12 +[0-9a-f]+ <[^>]*> 48206800 dmfc2 zero,\$13 +[0-9a-f]+ <[^>]*> 48207000 dmfc2 zero,\$14 +[0-9a-f]+ <[^>]*> 48207800 dmfc2 zero,\$15 +[0-9a-f]+ <[^>]*> 48208000 dmfc2 zero,\$16 +[0-9a-f]+ <[^>]*> 48208800 dmfc2 zero,\$17 +[0-9a-f]+ <[^>]*> 48209000 dmfc2 zero,\$18 +[0-9a-f]+ <[^>]*> 48209800 dmfc2 zero,\$19 +[0-9a-f]+ <[^>]*> 4820a000 dmfc2 zero,\$20 +[0-9a-f]+ <[^>]*> 4820a800 dmfc2 zero,\$21 +[0-9a-f]+ <[^>]*> 4820b000 dmfc2 zero,\$22 +[0-9a-f]+ <[^>]*> 4820b800 dmfc2 zero,\$23 +[0-9a-f]+ <[^>]*> 4820c000 dmfc2 zero,\$24 +[0-9a-f]+ <[^>]*> 4820c800 dmfc2 zero,\$25 +[0-9a-f]+ <[^>]*> 4820d000 dmfc2 zero,\$26 +[0-9a-f]+ <[^>]*> 4820d800 dmfc2 zero,\$27 +[0-9a-f]+ <[^>]*> 4820e000 dmfc2 zero,\$28 +[0-9a-f]+ <[^>]*> 4820e800 dmfc2 zero,\$29 +[0-9a-f]+ <[^>]*> 4820f000 dmfc2 zero,\$30 +[0-9a-f]+ <[^>]*> 4820f800 dmfc2 zero,\$31 + \.\.\. diff --git a/gas/testsuite/gas/mips/cp2-64.s b/gas/testsuite/gas/mips/cp2-64.s new file mode 100644 index 00000000000..5d674831002 --- /dev/null +++ b/gas/testsuite/gas/mips/cp2-64.s @@ -0,0 +1,72 @@ + .text + .set noreorder +foo: + dmtc2 $0, $0 + dmtc2 $0, $1 + dmtc2 $0, $2 + dmtc2 $0, $3 + dmtc2 $0, $4 + dmtc2 $0, $5 + dmtc2 $0, $6 + dmtc2 $0, $7 + dmtc2 $0, $8 + dmtc2 $0, $9 + dmtc2 $0, $10 + dmtc2 $0, $11 + dmtc2 $0, $12 + dmtc2 $0, $13 + dmtc2 $0, $14 + dmtc2 $0, $15 + dmtc2 $0, $16 + dmtc2 $0, $17 + dmtc2 $0, $18 + dmtc2 $0, $19 + dmtc2 $0, $20 + dmtc2 $0, $21 + dmtc2 $0, $22 + dmtc2 $0, $23 + dmtc2 $0, $24 + dmtc2 $0, $25 + dmtc2 $0, $26 + dmtc2 $0, $27 + dmtc2 $0, $28 + dmtc2 $0, $29 + dmtc2 $0, $30 + dmtc2 $0, $31 + + dmfc2 $0, $0 + dmfc2 $0, $1 + dmfc2 $0, $2 + dmfc2 $0, $3 + dmfc2 $0, $4 + dmfc2 $0, $5 + dmfc2 $0, $6 + dmfc2 $0, $7 + dmfc2 $0, $8 + dmfc2 $0, $9 + dmfc2 $0, $10 + dmfc2 $0, $11 + dmfc2 $0, $12 + dmfc2 $0, $13 + dmfc2 $0, $14 + dmfc2 $0, $15 + dmfc2 $0, $16 + dmfc2 $0, $17 + dmfc2 $0, $18 + dmfc2 $0, $19 + dmfc2 $0, $20 + dmfc2 $0, $21 + dmfc2 $0, $22 + dmfc2 $0, $23 + dmfc2 $0, $24 + dmfc2 $0, $25 + dmfc2 $0, $26 + dmfc2 $0, $27 + dmfc2 $0, $28 + dmfc2 $0, $29 + dmfc2 $0, $30 + dmfc2 $0, $31 + +# Force some (non-delay-slot) zero bytes, to make 'objdump' print ... + .align 4, 0 + .space 16 diff --git a/gas/testsuite/gas/mips/cp2.d b/gas/testsuite/gas/mips/cp2.d new file mode 100644 index 00000000000..95189536bc9 --- /dev/null +++ b/gas/testsuite/gas/mips/cp2.d @@ -0,0 +1,136 @@ +#objdump: -d --prefix-addresses --show-raw-insn +#name: MIPS CP2 register move instructions +#as: -32 + +.*: +file format .*mips.* + +Disassembly of section \.text: +[0-9a-f]+ <[^>]*> 48800000 mtc2 zero,\$0 +[0-9a-f]+ <[^>]*> 48800800 mtc2 zero,\$1 +[0-9a-f]+ <[^>]*> 48801000 mtc2 zero,\$2 +[0-9a-f]+ <[^>]*> 48801800 mtc2 zero,\$3 +[0-9a-f]+ <[^>]*> 48802000 mtc2 zero,\$4 +[0-9a-f]+ <[^>]*> 48802800 mtc2 zero,\$5 +[0-9a-f]+ <[^>]*> 48803000 mtc2 zero,\$6 +[0-9a-f]+ <[^>]*> 48803800 mtc2 zero,\$7 +[0-9a-f]+ <[^>]*> 48804000 mtc2 zero,\$8 +[0-9a-f]+ <[^>]*> 48804800 mtc2 zero,\$9 +[0-9a-f]+ <[^>]*> 48805000 mtc2 zero,\$10 +[0-9a-f]+ <[^>]*> 48805800 mtc2 zero,\$11 +[0-9a-f]+ <[^>]*> 48806000 mtc2 zero,\$12 +[0-9a-f]+ <[^>]*> 48806800 mtc2 zero,\$13 +[0-9a-f]+ <[^>]*> 48807000 mtc2 zero,\$14 +[0-9a-f]+ <[^>]*> 48807800 mtc2 zero,\$15 +[0-9a-f]+ <[^>]*> 48808000 mtc2 zero,\$16 +[0-9a-f]+ <[^>]*> 48808800 mtc2 zero,\$17 +[0-9a-f]+ <[^>]*> 48809000 mtc2 zero,\$18 +[0-9a-f]+ <[^>]*> 48809800 mtc2 zero,\$19 +[0-9a-f]+ <[^>]*> 4880a000 mtc2 zero,\$20 +[0-9a-f]+ <[^>]*> 4880a800 mtc2 zero,\$21 +[0-9a-f]+ <[^>]*> 4880b000 mtc2 zero,\$22 +[0-9a-f]+ <[^>]*> 4880b800 mtc2 zero,\$23 +[0-9a-f]+ <[^>]*> 4880c000 mtc2 zero,\$24 +[0-9a-f]+ <[^>]*> 4880c800 mtc2 zero,\$25 +[0-9a-f]+ <[^>]*> 4880d000 mtc2 zero,\$26 +[0-9a-f]+ <[^>]*> 4880d800 mtc2 zero,\$27 +[0-9a-f]+ <[^>]*> 4880e000 mtc2 zero,\$28 +[0-9a-f]+ <[^>]*> 4880e800 mtc2 zero,\$29 +[0-9a-f]+ <[^>]*> 4880f000 mtc2 zero,\$30 +[0-9a-f]+ <[^>]*> 4880f800 mtc2 zero,\$31 +[0-9a-f]+ <[^>]*> 48000000 mfc2 zero,\$0 +[0-9a-f]+ <[^>]*> 48000800 mfc2 zero,\$1 +[0-9a-f]+ <[^>]*> 48001000 mfc2 zero,\$2 +[0-9a-f]+ <[^>]*> 48001800 mfc2 zero,\$3 +[0-9a-f]+ <[^>]*> 48002000 mfc2 zero,\$4 +[0-9a-f]+ <[^>]*> 48002800 mfc2 zero,\$5 +[0-9a-f]+ <[^>]*> 48003000 mfc2 zero,\$6 +[0-9a-f]+ <[^>]*> 48003800 mfc2 zero,\$7 +[0-9a-f]+ <[^>]*> 48004000 mfc2 zero,\$8 +[0-9a-f]+ <[^>]*> 48004800 mfc2 zero,\$9 +[0-9a-f]+ <[^>]*> 48005000 mfc2 zero,\$10 +[0-9a-f]+ <[^>]*> 48005800 mfc2 zero,\$11 +[0-9a-f]+ <[^>]*> 48006000 mfc2 zero,\$12 +[0-9a-f]+ <[^>]*> 48006800 mfc2 zero,\$13 +[0-9a-f]+ <[^>]*> 48007000 mfc2 zero,\$14 +[0-9a-f]+ <[^>]*> 48007800 mfc2 zero,\$15 +[0-9a-f]+ <[^>]*> 48008000 mfc2 zero,\$16 +[0-9a-f]+ <[^>]*> 48008800 mfc2 zero,\$17 +[0-9a-f]+ <[^>]*> 48009000 mfc2 zero,\$18 +[0-9a-f]+ <[^>]*> 48009800 mfc2 zero,\$19 +[0-9a-f]+ <[^>]*> 4800a000 mfc2 zero,\$20 +[0-9a-f]+ <[^>]*> 4800a800 mfc2 zero,\$21 +[0-9a-f]+ <[^>]*> 4800b000 mfc2 zero,\$22 +[0-9a-f]+ <[^>]*> 4800b800 mfc2 zero,\$23 +[0-9a-f]+ <[^>]*> 4800c000 mfc2 zero,\$24 +[0-9a-f]+ <[^>]*> 4800c800 mfc2 zero,\$25 +[0-9a-f]+ <[^>]*> 4800d000 mfc2 zero,\$26 +[0-9a-f]+ <[^>]*> 4800d800 mfc2 zero,\$27 +[0-9a-f]+ <[^>]*> 4800e000 mfc2 zero,\$28 +[0-9a-f]+ <[^>]*> 4800e800 mfc2 zero,\$29 +[0-9a-f]+ <[^>]*> 4800f000 mfc2 zero,\$30 +[0-9a-f]+ <[^>]*> 4800f800 mfc2 zero,\$31 +[0-9a-f]+ <[^>]*> 48c00000 ctc2 zero,\$0 +[0-9a-f]+ <[^>]*> 48c00800 ctc2 zero,\$1 +[0-9a-f]+ <[^>]*> 48c01000 ctc2 zero,\$2 +[0-9a-f]+ <[^>]*> 48c01800 ctc2 zero,\$3 +[0-9a-f]+ <[^>]*> 48c02000 ctc2 zero,\$4 +[0-9a-f]+ <[^>]*> 48c02800 ctc2 zero,\$5 +[0-9a-f]+ <[^>]*> 48c03000 ctc2 zero,\$6 +[0-9a-f]+ <[^>]*> 48c03800 ctc2 zero,\$7 +[0-9a-f]+ <[^>]*> 48c04000 ctc2 zero,\$8 +[0-9a-f]+ <[^>]*> 48c04800 ctc2 zero,\$9 +[0-9a-f]+ <[^>]*> 48c05000 ctc2 zero,\$10 +[0-9a-f]+ <[^>]*> 48c05800 ctc2 zero,\$11 +[0-9a-f]+ <[^>]*> 48c06000 ctc2 zero,\$12 +[0-9a-f]+ <[^>]*> 48c06800 ctc2 zero,\$13 +[0-9a-f]+ <[^>]*> 48c07000 ctc2 zero,\$14 +[0-9a-f]+ <[^>]*> 48c07800 ctc2 zero,\$15 +[0-9a-f]+ <[^>]*> 48c08000 ctc2 zero,\$16 +[0-9a-f]+ <[^>]*> 48c08800 ctc2 zero,\$17 +[0-9a-f]+ <[^>]*> 48c09000 ctc2 zero,\$18 +[0-9a-f]+ <[^>]*> 48c09800 ctc2 zero,\$19 +[0-9a-f]+ <[^>]*> 48c0a000 ctc2 zero,\$20 +[0-9a-f]+ <[^>]*> 48c0a800 ctc2 zero,\$21 +[0-9a-f]+ <[^>]*> 48c0b000 ctc2 zero,\$22 +[0-9a-f]+ <[^>]*> 48c0b800 ctc2 zero,\$23 +[0-9a-f]+ <[^>]*> 48c0c000 ctc2 zero,\$24 +[0-9a-f]+ <[^>]*> 48c0c800 ctc2 zero,\$25 +[0-9a-f]+ <[^>]*> 48c0d000 ctc2 zero,\$26 +[0-9a-f]+ <[^>]*> 48c0d800 ctc2 zero,\$27 +[0-9a-f]+ <[^>]*> 48c0e000 ctc2 zero,\$28 +[0-9a-f]+ <[^>]*> 48c0e800 ctc2 zero,\$29 +[0-9a-f]+ <[^>]*> 48c0f000 ctc2 zero,\$30 +[0-9a-f]+ <[^>]*> 48c0f800 ctc2 zero,\$31 +[0-9a-f]+ <[^>]*> 48400000 cfc2 zero,\$0 +[0-9a-f]+ <[^>]*> 48400800 cfc2 zero,\$1 +[0-9a-f]+ <[^>]*> 48401000 cfc2 zero,\$2 +[0-9a-f]+ <[^>]*> 48401800 cfc2 zero,\$3 +[0-9a-f]+ <[^>]*> 48402000 cfc2 zero,\$4 +[0-9a-f]+ <[^>]*> 48402800 cfc2 zero,\$5 +[0-9a-f]+ <[^>]*> 48403000 cfc2 zero,\$6 +[0-9a-f]+ <[^>]*> 48403800 cfc2 zero,\$7 +[0-9a-f]+ <[^>]*> 48404000 cfc2 zero,\$8 +[0-9a-f]+ <[^>]*> 48404800 cfc2 zero,\$9 +[0-9a-f]+ <[^>]*> 48405000 cfc2 zero,\$10 +[0-9a-f]+ <[^>]*> 48405800 cfc2 zero,\$11 +[0-9a-f]+ <[^>]*> 48406000 cfc2 zero,\$12 +[0-9a-f]+ <[^>]*> 48406800 cfc2 zero,\$13 +[0-9a-f]+ <[^>]*> 48407000 cfc2 zero,\$14 +[0-9a-f]+ <[^>]*> 48407800 cfc2 zero,\$15 +[0-9a-f]+ <[^>]*> 48408000 cfc2 zero,\$16 +[0-9a-f]+ <[^>]*> 48408800 cfc2 zero,\$17 +[0-9a-f]+ <[^>]*> 48409000 cfc2 zero,\$18 +[0-9a-f]+ <[^>]*> 48409800 cfc2 zero,\$19 +[0-9a-f]+ <[^>]*> 4840a000 cfc2 zero,\$20 +[0-9a-f]+ <[^>]*> 4840a800 cfc2 zero,\$21 +[0-9a-f]+ <[^>]*> 4840b000 cfc2 zero,\$22 +[0-9a-f]+ <[^>]*> 4840b800 cfc2 zero,\$23 +[0-9a-f]+ <[^>]*> 4840c000 cfc2 zero,\$24 +[0-9a-f]+ <[^>]*> 4840c800 cfc2 zero,\$25 +[0-9a-f]+ <[^>]*> 4840d000 cfc2 zero,\$26 +[0-9a-f]+ <[^>]*> 4840d800 cfc2 zero,\$27 +[0-9a-f]+ <[^>]*> 4840e000 cfc2 zero,\$28 +[0-9a-f]+ <[^>]*> 4840e800 cfc2 zero,\$29 +[0-9a-f]+ <[^>]*> 4840f000 cfc2 zero,\$30 +[0-9a-f]+ <[^>]*> 4840f800 cfc2 zero,\$31 + \.\.\. diff --git a/gas/testsuite/gas/mips/cp2.s b/gas/testsuite/gas/mips/cp2.s new file mode 100644 index 00000000000..35a9b669f11 --- /dev/null +++ b/gas/testsuite/gas/mips/cp2.s @@ -0,0 +1,138 @@ + .text + .set noreorder +foo: + mtc2 $0, $0 + mtc2 $0, $1 + mtc2 $0, $2 + mtc2 $0, $3 + mtc2 $0, $4 + mtc2 $0, $5 + mtc2 $0, $6 + mtc2 $0, $7 + mtc2 $0, $8 + mtc2 $0, $9 + mtc2 $0, $10 + mtc2 $0, $11 + mtc2 $0, $12 + mtc2 $0, $13 + mtc2 $0, $14 + mtc2 $0, $15 + mtc2 $0, $16 + mtc2 $0, $17 + mtc2 $0, $18 + mtc2 $0, $19 + mtc2 $0, $20 + mtc2 $0, $21 + mtc2 $0, $22 + mtc2 $0, $23 + mtc2 $0, $24 + mtc2 $0, $25 + mtc2 $0, $26 + mtc2 $0, $27 + mtc2 $0, $28 + mtc2 $0, $29 + mtc2 $0, $30 + mtc2 $0, $31 + + mfc2 $0, $0 + mfc2 $0, $1 + mfc2 $0, $2 + mfc2 $0, $3 + mfc2 $0, $4 + mfc2 $0, $5 + mfc2 $0, $6 + mfc2 $0, $7 + mfc2 $0, $8 + mfc2 $0, $9 + mfc2 $0, $10 + mfc2 $0, $11 + mfc2 $0, $12 + mfc2 $0, $13 + mfc2 $0, $14 + mfc2 $0, $15 + mfc2 $0, $16 + mfc2 $0, $17 + mfc2 $0, $18 + mfc2 $0, $19 + mfc2 $0, $20 + mfc2 $0, $21 + mfc2 $0, $22 + mfc2 $0, $23 + mfc2 $0, $24 + mfc2 $0, $25 + mfc2 $0, $26 + mfc2 $0, $27 + mfc2 $0, $28 + mfc2 $0, $29 + mfc2 $0, $30 + mfc2 $0, $31 + + ctc2 $0, $0 + ctc2 $0, $1 + ctc2 $0, $2 + ctc2 $0, $3 + ctc2 $0, $4 + ctc2 $0, $5 + ctc2 $0, $6 + ctc2 $0, $7 + ctc2 $0, $8 + ctc2 $0, $9 + ctc2 $0, $10 + ctc2 $0, $11 + ctc2 $0, $12 + ctc2 $0, $13 + ctc2 $0, $14 + ctc2 $0, $15 + ctc2 $0, $16 + ctc2 $0, $17 + ctc2 $0, $18 + ctc2 $0, $19 + ctc2 $0, $20 + ctc2 $0, $21 + ctc2 $0, $22 + ctc2 $0, $23 + ctc2 $0, $24 + ctc2 $0, $25 + ctc2 $0, $26 + ctc2 $0, $27 + ctc2 $0, $28 + ctc2 $0, $29 + ctc2 $0, $30 + ctc2 $0, $31 + + cfc2 $0, $0 + cfc2 $0, $1 + cfc2 $0, $2 + cfc2 $0, $3 + cfc2 $0, $4 + cfc2 $0, $5 + cfc2 $0, $6 + cfc2 $0, $7 + cfc2 $0, $8 + cfc2 $0, $9 + cfc2 $0, $10 + cfc2 $0, $11 + cfc2 $0, $12 + cfc2 $0, $13 + cfc2 $0, $14 + cfc2 $0, $15 + cfc2 $0, $16 + cfc2 $0, $17 + cfc2 $0, $18 + cfc2 $0, $19 + cfc2 $0, $20 + cfc2 $0, $21 + cfc2 $0, $22 + cfc2 $0, $23 + cfc2 $0, $24 + cfc2 $0, $25 + cfc2 $0, $26 + cfc2 $0, $27 + cfc2 $0, $28 + cfc2 $0, $29 + cfc2 $0, $30 + cfc2 $0, $31 + +# Force some (non-delay-slot) zero bytes, to make 'objdump' print ... + .align 4, 0 + .space 16 diff --git a/gas/testsuite/gas/mips/cp2d.d b/gas/testsuite/gas/mips/cp2d.d new file mode 100644 index 00000000000..034211bbd31 --- /dev/null +++ b/gas/testsuite/gas/mips/cp2d.d @@ -0,0 +1,72 @@ +#objdump: -d --prefix-addresses --show-raw-insn +#name: MIPS CP2 doubleword memory access instructions +#as: -32 + +.*: +file format .*mips.* + +Disassembly of section \.text: +[0-9a-f]+ <[^>]*> d8000000 ldc2 \$0,0\(zero\) +[0-9a-f]+ <[^>]*> d8010000 ldc2 \$1,0\(zero\) +[0-9a-f]+ <[^>]*> d8020000 ldc2 \$2,0\(zero\) +[0-9a-f]+ <[^>]*> d8030000 ldc2 \$3,0\(zero\) +[0-9a-f]+ <[^>]*> d8040000 ldc2 \$4,0\(zero\) +[0-9a-f]+ <[^>]*> d8050000 ldc2 \$5,0\(zero\) +[0-9a-f]+ <[^>]*> d8060000 ldc2 \$6,0\(zero\) +[0-9a-f]+ <[^>]*> d8070000 ldc2 \$7,0\(zero\) +[0-9a-f]+ <[^>]*> d8080000 ldc2 \$8,0\(zero\) +[0-9a-f]+ <[^>]*> d8090000 ldc2 \$9,0\(zero\) +[0-9a-f]+ <[^>]*> d80a0000 ldc2 \$10,0\(zero\) +[0-9a-f]+ <[^>]*> d80b0000 ldc2 \$11,0\(zero\) +[0-9a-f]+ <[^>]*> d80c0000 ldc2 \$12,0\(zero\) +[0-9a-f]+ <[^>]*> d80d0000 ldc2 \$13,0\(zero\) +[0-9a-f]+ <[^>]*> d80e0000 ldc2 \$14,0\(zero\) +[0-9a-f]+ <[^>]*> d80f0000 ldc2 \$15,0\(zero\) +[0-9a-f]+ <[^>]*> d8100000 ldc2 \$16,0\(zero\) +[0-9a-f]+ <[^>]*> d8110000 ldc2 \$17,0\(zero\) +[0-9a-f]+ <[^>]*> d8120000 ldc2 \$18,0\(zero\) +[0-9a-f]+ <[^>]*> d8130000 ldc2 \$19,0\(zero\) +[0-9a-f]+ <[^>]*> d8140000 ldc2 \$20,0\(zero\) +[0-9a-f]+ <[^>]*> d8150000 ldc2 \$21,0\(zero\) +[0-9a-f]+ <[^>]*> d8160000 ldc2 \$22,0\(zero\) +[0-9a-f]+ <[^>]*> d8170000 ldc2 \$23,0\(zero\) +[0-9a-f]+ <[^>]*> d8180000 ldc2 \$24,0\(zero\) +[0-9a-f]+ <[^>]*> d8190000 ldc2 \$25,0\(zero\) +[0-9a-f]+ <[^>]*> d81a0000 ldc2 \$26,0\(zero\) +[0-9a-f]+ <[^>]*> d81b0000 ldc2 \$27,0\(zero\) +[0-9a-f]+ <[^>]*> d81c0000 ldc2 \$28,0\(zero\) +[0-9a-f]+ <[^>]*> d81d0000 ldc2 \$29,0\(zero\) +[0-9a-f]+ <[^>]*> d81e0000 ldc2 \$30,0\(zero\) +[0-9a-f]+ <[^>]*> d81f0000 ldc2 \$31,0\(zero\) +[0-9a-f]+ <[^>]*> f8000000 sdc2 \$0,0\(zero\) +[0-9a-f]+ <[^>]*> f8010000 sdc2 \$1,0\(zero\) +[0-9a-f]+ <[^>]*> f8020000 sdc2 \$2,0\(zero\) +[0-9a-f]+ <[^>]*> f8030000 sdc2 \$3,0\(zero\) +[0-9a-f]+ <[^>]*> f8040000 sdc2 \$4,0\(zero\) +[0-9a-f]+ <[^>]*> f8050000 sdc2 \$5,0\(zero\) +[0-9a-f]+ <[^>]*> f8060000 sdc2 \$6,0\(zero\) +[0-9a-f]+ <[^>]*> f8070000 sdc2 \$7,0\(zero\) +[0-9a-f]+ <[^>]*> f8080000 sdc2 \$8,0\(zero\) +[0-9a-f]+ <[^>]*> f8090000 sdc2 \$9,0\(zero\) +[0-9a-f]+ <[^>]*> f80a0000 sdc2 \$10,0\(zero\) +[0-9a-f]+ <[^>]*> f80b0000 sdc2 \$11,0\(zero\) +[0-9a-f]+ <[^>]*> f80c0000 sdc2 \$12,0\(zero\) +[0-9a-f]+ <[^>]*> f80d0000 sdc2 \$13,0\(zero\) +[0-9a-f]+ <[^>]*> f80e0000 sdc2 \$14,0\(zero\) +[0-9a-f]+ <[^>]*> f80f0000 sdc2 \$15,0\(zero\) +[0-9a-f]+ <[^>]*> f8100000 sdc2 \$16,0\(zero\) +[0-9a-f]+ <[^>]*> f8110000 sdc2 \$17,0\(zero\) +[0-9a-f]+ <[^>]*> f8120000 sdc2 \$18,0\(zero\) +[0-9a-f]+ <[^>]*> f8130000 sdc2 \$19,0\(zero\) +[0-9a-f]+ <[^>]*> f8140000 sdc2 \$20,0\(zero\) +[0-9a-f]+ <[^>]*> f8150000 sdc2 \$21,0\(zero\) +[0-9a-f]+ <[^>]*> f8160000 sdc2 \$22,0\(zero\) +[0-9a-f]+ <[^>]*> f8170000 sdc2 \$23,0\(zero\) +[0-9a-f]+ <[^>]*> f8180000 sdc2 \$24,0\(zero\) +[0-9a-f]+ <[^>]*> f8190000 sdc2 \$25,0\(zero\) +[0-9a-f]+ <[^>]*> f81a0000 sdc2 \$26,0\(zero\) +[0-9a-f]+ <[^>]*> f81b0000 sdc2 \$27,0\(zero\) +[0-9a-f]+ <[^>]*> f81c0000 sdc2 \$28,0\(zero\) +[0-9a-f]+ <[^>]*> f81d0000 sdc2 \$29,0\(zero\) +[0-9a-f]+ <[^>]*> f81e0000 sdc2 \$30,0\(zero\) +[0-9a-f]+ <[^>]*> f81f0000 sdc2 \$31,0\(zero\) + \.\.\. diff --git a/gas/testsuite/gas/mips/cp2d.s b/gas/testsuite/gas/mips/cp2d.s new file mode 100644 index 00000000000..c6cca98648b --- /dev/null +++ b/gas/testsuite/gas/mips/cp2d.s @@ -0,0 +1,71 @@ + .text +foo: + ldc2 $0, 0($0) + ldc2 $1, 0($0) + ldc2 $2, 0($0) + ldc2 $3, 0($0) + ldc2 $4, 0($0) + ldc2 $5, 0($0) + ldc2 $6, 0($0) + ldc2 $7, 0($0) + ldc2 $8, 0($0) + ldc2 $9, 0($0) + ldc2 $10, 0($0) + ldc2 $11, 0($0) + ldc2 $12, 0($0) + ldc2 $13, 0($0) + ldc2 $14, 0($0) + ldc2 $15, 0($0) + ldc2 $16, 0($0) + ldc2 $17, 0($0) + ldc2 $18, 0($0) + ldc2 $19, 0($0) + ldc2 $20, 0($0) + ldc2 $21, 0($0) + ldc2 $22, 0($0) + ldc2 $23, 0($0) + ldc2 $24, 0($0) + ldc2 $25, 0($0) + ldc2 $26, 0($0) + ldc2 $27, 0($0) + ldc2 $28, 0($0) + ldc2 $29, 0($0) + ldc2 $30, 0($0) + ldc2 $31, 0($0) + + sdc2 $0, 0($0) + sdc2 $1, 0($0) + sdc2 $2, 0($0) + sdc2 $3, 0($0) + sdc2 $4, 0($0) + sdc2 $5, 0($0) + sdc2 $6, 0($0) + sdc2 $7, 0($0) + sdc2 $8, 0($0) + sdc2 $9, 0($0) + sdc2 $10, 0($0) + sdc2 $11, 0($0) + sdc2 $12, 0($0) + sdc2 $13, 0($0) + sdc2 $14, 0($0) + sdc2 $15, 0($0) + sdc2 $16, 0($0) + sdc2 $17, 0($0) + sdc2 $18, 0($0) + sdc2 $19, 0($0) + sdc2 $20, 0($0) + sdc2 $21, 0($0) + sdc2 $22, 0($0) + sdc2 $23, 0($0) + sdc2 $24, 0($0) + sdc2 $25, 0($0) + sdc2 $26, 0($0) + sdc2 $27, 0($0) + sdc2 $28, 0($0) + sdc2 $29, 0($0) + sdc2 $30, 0($0) + sdc2 $31, 0($0) + +# Force some (non-delay-slot) zero bytes, to make 'objdump' print ... + .align 4, 0 + .space 16 diff --git a/gas/testsuite/gas/mips/cp2m.d b/gas/testsuite/gas/mips/cp2m.d new file mode 100644 index 00000000000..9147fb010d0 --- /dev/null +++ b/gas/testsuite/gas/mips/cp2m.d @@ -0,0 +1,72 @@ +#objdump: -d --prefix-addresses --show-raw-insn +#name: MIPS CP2 memory access instructions +#as: -32 + +.*: +file format .*mips.* + +Disassembly of section \.text: +[0-9a-f]+ <[^>]*> c8000000 lwc2 \$0,0\(zero\) +[0-9a-f]+ <[^>]*> c8010000 lwc2 \$1,0\(zero\) +[0-9a-f]+ <[^>]*> c8020000 lwc2 \$2,0\(zero\) +[0-9a-f]+ <[^>]*> c8030000 lwc2 \$3,0\(zero\) +[0-9a-f]+ <[^>]*> c8040000 lwc2 \$4,0\(zero\) +[0-9a-f]+ <[^>]*> c8050000 lwc2 \$5,0\(zero\) +[0-9a-f]+ <[^>]*> c8060000 lwc2 \$6,0\(zero\) +[0-9a-f]+ <[^>]*> c8070000 lwc2 \$7,0\(zero\) +[0-9a-f]+ <[^>]*> c8080000 lwc2 \$8,0\(zero\) +[0-9a-f]+ <[^>]*> c8090000 lwc2 \$9,0\(zero\) +[0-9a-f]+ <[^>]*> c80a0000 lwc2 \$10,0\(zero\) +[0-9a-f]+ <[^>]*> c80b0000 lwc2 \$11,0\(zero\) +[0-9a-f]+ <[^>]*> c80c0000 lwc2 \$12,0\(zero\) +[0-9a-f]+ <[^>]*> c80d0000 lwc2 \$13,0\(zero\) +[0-9a-f]+ <[^>]*> c80e0000 lwc2 \$14,0\(zero\) +[0-9a-f]+ <[^>]*> c80f0000 lwc2 \$15,0\(zero\) +[0-9a-f]+ <[^>]*> c8100000 lwc2 \$16,0\(zero\) +[0-9a-f]+ <[^>]*> c8110000 lwc2 \$17,0\(zero\) +[0-9a-f]+ <[^>]*> c8120000 lwc2 \$18,0\(zero\) +[0-9a-f]+ <[^>]*> c8130000 lwc2 \$19,0\(zero\) +[0-9a-f]+ <[^>]*> c8140000 lwc2 \$20,0\(zero\) +[0-9a-f]+ <[^>]*> c8150000 lwc2 \$21,0\(zero\) +[0-9a-f]+ <[^>]*> c8160000 lwc2 \$22,0\(zero\) +[0-9a-f]+ <[^>]*> c8170000 lwc2 \$23,0\(zero\) +[0-9a-f]+ <[^>]*> c8180000 lwc2 \$24,0\(zero\) +[0-9a-f]+ <[^>]*> c8190000 lwc2 \$25,0\(zero\) +[0-9a-f]+ <[^>]*> c81a0000 lwc2 \$26,0\(zero\) +[0-9a-f]+ <[^>]*> c81b0000 lwc2 \$27,0\(zero\) +[0-9a-f]+ <[^>]*> c81c0000 lwc2 \$28,0\(zero\) +[0-9a-f]+ <[^>]*> c81d0000 lwc2 \$29,0\(zero\) +[0-9a-f]+ <[^>]*> c81e0000 lwc2 \$30,0\(zero\) +[0-9a-f]+ <[^>]*> c81f0000 lwc2 \$31,0\(zero\) +[0-9a-f]+ <[^>]*> e8000000 swc2 \$0,0\(zero\) +[0-9a-f]+ <[^>]*> e8010000 swc2 \$1,0\(zero\) +[0-9a-f]+ <[^>]*> e8020000 swc2 \$2,0\(zero\) +[0-9a-f]+ <[^>]*> e8030000 swc2 \$3,0\(zero\) +[0-9a-f]+ <[^>]*> e8040000 swc2 \$4,0\(zero\) +[0-9a-f]+ <[^>]*> e8050000 swc2 \$5,0\(zero\) +[0-9a-f]+ <[^>]*> e8060000 swc2 \$6,0\(zero\) +[0-9a-f]+ <[^>]*> e8070000 swc2 \$7,0\(zero\) +[0-9a-f]+ <[^>]*> e8080000 swc2 \$8,0\(zero\) +[0-9a-f]+ <[^>]*> e8090000 swc2 \$9,0\(zero\) +[0-9a-f]+ <[^>]*> e80a0000 swc2 \$10,0\(zero\) +[0-9a-f]+ <[^>]*> e80b0000 swc2 \$11,0\(zero\) +[0-9a-f]+ <[^>]*> e80c0000 swc2 \$12,0\(zero\) +[0-9a-f]+ <[^>]*> e80d0000 swc2 \$13,0\(zero\) +[0-9a-f]+ <[^>]*> e80e0000 swc2 \$14,0\(zero\) +[0-9a-f]+ <[^>]*> e80f0000 swc2 \$15,0\(zero\) +[0-9a-f]+ <[^>]*> e8100000 swc2 \$16,0\(zero\) +[0-9a-f]+ <[^>]*> e8110000 swc2 \$17,0\(zero\) +[0-9a-f]+ <[^>]*> e8120000 swc2 \$18,0\(zero\) +[0-9a-f]+ <[^>]*> e8130000 swc2 \$19,0\(zero\) +[0-9a-f]+ <[^>]*> e8140000 swc2 \$20,0\(zero\) +[0-9a-f]+ <[^>]*> e8150000 swc2 \$21,0\(zero\) +[0-9a-f]+ <[^>]*> e8160000 swc2 \$22,0\(zero\) +[0-9a-f]+ <[^>]*> e8170000 swc2 \$23,0\(zero\) +[0-9a-f]+ <[^>]*> e8180000 swc2 \$24,0\(zero\) +[0-9a-f]+ <[^>]*> e8190000 swc2 \$25,0\(zero\) +[0-9a-f]+ <[^>]*> e81a0000 swc2 \$26,0\(zero\) +[0-9a-f]+ <[^>]*> e81b0000 swc2 \$27,0\(zero\) +[0-9a-f]+ <[^>]*> e81c0000 swc2 \$28,0\(zero\) +[0-9a-f]+ <[^>]*> e81d0000 swc2 \$29,0\(zero\) +[0-9a-f]+ <[^>]*> e81e0000 swc2 \$30,0\(zero\) +[0-9a-f]+ <[^>]*> e81f0000 swc2 \$31,0\(zero\) + \.\.\. diff --git a/gas/testsuite/gas/mips/cp2m.s b/gas/testsuite/gas/mips/cp2m.s new file mode 100644 index 00000000000..f540543cf37 --- /dev/null +++ b/gas/testsuite/gas/mips/cp2m.s @@ -0,0 +1,72 @@ + .text + .set noreorder +foo: + lwc2 $0, 0($0) + lwc2 $1, 0($0) + lwc2 $2, 0($0) + lwc2 $3, 0($0) + lwc2 $4, 0($0) + lwc2 $5, 0($0) + lwc2 $6, 0($0) + lwc2 $7, 0($0) + lwc2 $8, 0($0) + lwc2 $9, 0($0) + lwc2 $10, 0($0) + lwc2 $11, 0($0) + lwc2 $12, 0($0) + lwc2 $13, 0($0) + lwc2 $14, 0($0) + lwc2 $15, 0($0) + lwc2 $16, 0($0) + lwc2 $17, 0($0) + lwc2 $18, 0($0) + lwc2 $19, 0($0) + lwc2 $20, 0($0) + lwc2 $21, 0($0) + lwc2 $22, 0($0) + lwc2 $23, 0($0) + lwc2 $24, 0($0) + lwc2 $25, 0($0) + lwc2 $26, 0($0) + lwc2 $27, 0($0) + lwc2 $28, 0($0) + lwc2 $29, 0($0) + lwc2 $30, 0($0) + lwc2 $31, 0($0) + + swc2 $0, 0($0) + swc2 $1, 0($0) + swc2 $2, 0($0) + swc2 $3, 0($0) + swc2 $4, 0($0) + swc2 $5, 0($0) + swc2 $6, 0($0) + swc2 $7, 0($0) + swc2 $8, 0($0) + swc2 $9, 0($0) + swc2 $10, 0($0) + swc2 $11, 0($0) + swc2 $12, 0($0) + swc2 $13, 0($0) + swc2 $14, 0($0) + swc2 $15, 0($0) + swc2 $16, 0($0) + swc2 $17, 0($0) + swc2 $18, 0($0) + swc2 $19, 0($0) + swc2 $20, 0($0) + swc2 $21, 0($0) + swc2 $22, 0($0) + swc2 $23, 0($0) + swc2 $24, 0($0) + swc2 $25, 0($0) + swc2 $26, 0($0) + swc2 $27, 0($0) + swc2 $28, 0($0) + swc2 $29, 0($0) + swc2 $30, 0($0) + swc2 $31, 0($0) + +# Force some (non-delay-slot) zero bytes, to make 'objdump' print ... + .align 4, 0 + .space 16 diff --git a/gas/testsuite/gas/mips/cp3.d b/gas/testsuite/gas/mips/cp3.d new file mode 100644 index 00000000000..827c92d680b --- /dev/null +++ b/gas/testsuite/gas/mips/cp3.d @@ -0,0 +1,136 @@ +#objdump: -d --prefix-addresses --show-raw-insn +#name: MIPS CP3 register move instructions +#as: -32 + +.*: +file format .*mips.* + +Disassembly of section \.text: +[0-9a-f]+ <[^>]*> 4c800000 mtc3 zero,\$0 +[0-9a-f]+ <[^>]*> 4c800800 mtc3 zero,\$1 +[0-9a-f]+ <[^>]*> 4c801000 mtc3 zero,\$2 +[0-9a-f]+ <[^>]*> 4c801800 mtc3 zero,\$3 +[0-9a-f]+ <[^>]*> 4c802000 mtc3 zero,\$4 +[0-9a-f]+ <[^>]*> 4c802800 mtc3 zero,\$5 +[0-9a-f]+ <[^>]*> 4c803000 mtc3 zero,\$6 +[0-9a-f]+ <[^>]*> 4c803800 mtc3 zero,\$7 +[0-9a-f]+ <[^>]*> 4c804000 mtc3 zero,\$8 +[0-9a-f]+ <[^>]*> 4c804800 mtc3 zero,\$9 +[0-9a-f]+ <[^>]*> 4c805000 mtc3 zero,\$10 +[0-9a-f]+ <[^>]*> 4c805800 mtc3 zero,\$11 +[0-9a-f]+ <[^>]*> 4c806000 mtc3 zero,\$12 +[0-9a-f]+ <[^>]*> 4c806800 mtc3 zero,\$13 +[0-9a-f]+ <[^>]*> 4c807000 mtc3 zero,\$14 +[0-9a-f]+ <[^>]*> 4c807800 mtc3 zero,\$15 +[0-9a-f]+ <[^>]*> 4c808000 mtc3 zero,\$16 +[0-9a-f]+ <[^>]*> 4c808800 mtc3 zero,\$17 +[0-9a-f]+ <[^>]*> 4c809000 mtc3 zero,\$18 +[0-9a-f]+ <[^>]*> 4c809800 mtc3 zero,\$19 +[0-9a-f]+ <[^>]*> 4c80a000 mtc3 zero,\$20 +[0-9a-f]+ <[^>]*> 4c80a800 mtc3 zero,\$21 +[0-9a-f]+ <[^>]*> 4c80b000 mtc3 zero,\$22 +[0-9a-f]+ <[^>]*> 4c80b800 mtc3 zero,\$23 +[0-9a-f]+ <[^>]*> 4c80c000 mtc3 zero,\$24 +[0-9a-f]+ <[^>]*> 4c80c800 mtc3 zero,\$25 +[0-9a-f]+ <[^>]*> 4c80d000 mtc3 zero,\$26 +[0-9a-f]+ <[^>]*> 4c80d800 mtc3 zero,\$27 +[0-9a-f]+ <[^>]*> 4c80e000 mtc3 zero,\$28 +[0-9a-f]+ <[^>]*> 4c80e800 mtc3 zero,\$29 +[0-9a-f]+ <[^>]*> 4c80f000 mtc3 zero,\$30 +[0-9a-f]+ <[^>]*> 4c80f800 mtc3 zero,\$31 +[0-9a-f]+ <[^>]*> 4c000000 mfc3 zero,\$0 +[0-9a-f]+ <[^>]*> 4c000800 mfc3 zero,\$1 +[0-9a-f]+ <[^>]*> 4c001000 mfc3 zero,\$2 +[0-9a-f]+ <[^>]*> 4c001800 mfc3 zero,\$3 +[0-9a-f]+ <[^>]*> 4c002000 mfc3 zero,\$4 +[0-9a-f]+ <[^>]*> 4c002800 mfc3 zero,\$5 +[0-9a-f]+ <[^>]*> 4c003000 mfc3 zero,\$6 +[0-9a-f]+ <[^>]*> 4c003800 mfc3 zero,\$7 +[0-9a-f]+ <[^>]*> 4c004000 mfc3 zero,\$8 +[0-9a-f]+ <[^>]*> 4c004800 mfc3 zero,\$9 +[0-9a-f]+ <[^>]*> 4c005000 mfc3 zero,\$10 +[0-9a-f]+ <[^>]*> 4c005800 mfc3 zero,\$11 +[0-9a-f]+ <[^>]*> 4c006000 mfc3 zero,\$12 +[0-9a-f]+ <[^>]*> 4c006800 mfc3 zero,\$13 +[0-9a-f]+ <[^>]*> 4c007000 mfc3 zero,\$14 +[0-9a-f]+ <[^>]*> 4c007800 mfc3 zero,\$15 +[0-9a-f]+ <[^>]*> 4c008000 mfc3 zero,\$16 +[0-9a-f]+ <[^>]*> 4c008800 mfc3 zero,\$17 +[0-9a-f]+ <[^>]*> 4c009000 mfc3 zero,\$18 +[0-9a-f]+ <[^>]*> 4c009800 mfc3 zero,\$19 +[0-9a-f]+ <[^>]*> 4c00a000 mfc3 zero,\$20 +[0-9a-f]+ <[^>]*> 4c00a800 mfc3 zero,\$21 +[0-9a-f]+ <[^>]*> 4c00b000 mfc3 zero,\$22 +[0-9a-f]+ <[^>]*> 4c00b800 mfc3 zero,\$23 +[0-9a-f]+ <[^>]*> 4c00c000 mfc3 zero,\$24 +[0-9a-f]+ <[^>]*> 4c00c800 mfc3 zero,\$25 +[0-9a-f]+ <[^>]*> 4c00d000 mfc3 zero,\$26 +[0-9a-f]+ <[^>]*> 4c00d800 mfc3 zero,\$27 +[0-9a-f]+ <[^>]*> 4c00e000 mfc3 zero,\$28 +[0-9a-f]+ <[^>]*> 4c00e800 mfc3 zero,\$29 +[0-9a-f]+ <[^>]*> 4c00f000 mfc3 zero,\$30 +[0-9a-f]+ <[^>]*> 4c00f800 mfc3 zero,\$31 +[0-9a-f]+ <[^>]*> 4cc00000 ctc3 zero,\$0 +[0-9a-f]+ <[^>]*> 4cc00800 ctc3 zero,\$1 +[0-9a-f]+ <[^>]*> 4cc01000 ctc3 zero,\$2 +[0-9a-f]+ <[^>]*> 4cc01800 ctc3 zero,\$3 +[0-9a-f]+ <[^>]*> 4cc02000 ctc3 zero,\$4 +[0-9a-f]+ <[^>]*> 4cc02800 ctc3 zero,\$5 +[0-9a-f]+ <[^>]*> 4cc03000 ctc3 zero,\$6 +[0-9a-f]+ <[^>]*> 4cc03800 ctc3 zero,\$7 +[0-9a-f]+ <[^>]*> 4cc04000 ctc3 zero,\$8 +[0-9a-f]+ <[^>]*> 4cc04800 ctc3 zero,\$9 +[0-9a-f]+ <[^>]*> 4cc05000 ctc3 zero,\$10 +[0-9a-f]+ <[^>]*> 4cc05800 ctc3 zero,\$11 +[0-9a-f]+ <[^>]*> 4cc06000 ctc3 zero,\$12 +[0-9a-f]+ <[^>]*> 4cc06800 ctc3 zero,\$13 +[0-9a-f]+ <[^>]*> 4cc07000 ctc3 zero,\$14 +[0-9a-f]+ <[^>]*> 4cc07800 ctc3 zero,\$15 +[0-9a-f]+ <[^>]*> 4cc08000 ctc3 zero,\$16 +[0-9a-f]+ <[^>]*> 4cc08800 ctc3 zero,\$17 +[0-9a-f]+ <[^>]*> 4cc09000 ctc3 zero,\$18 +[0-9a-f]+ <[^>]*> 4cc09800 ctc3 zero,\$19 +[0-9a-f]+ <[^>]*> 4cc0a000 ctc3 zero,\$20 +[0-9a-f]+ <[^>]*> 4cc0a800 ctc3 zero,\$21 +[0-9a-f]+ <[^>]*> 4cc0b000 ctc3 zero,\$22 +[0-9a-f]+ <[^>]*> 4cc0b800 ctc3 zero,\$23 +[0-9a-f]+ <[^>]*> 4cc0c000 ctc3 zero,\$24 +[0-9a-f]+ <[^>]*> 4cc0c800 ctc3 zero,\$25 +[0-9a-f]+ <[^>]*> 4cc0d000 ctc3 zero,\$26 +[0-9a-f]+ <[^>]*> 4cc0d800 ctc3 zero,\$27 +[0-9a-f]+ <[^>]*> 4cc0e000 ctc3 zero,\$28 +[0-9a-f]+ <[^>]*> 4cc0e800 ctc3 zero,\$29 +[0-9a-f]+ <[^>]*> 4cc0f000 ctc3 zero,\$30 +[0-9a-f]+ <[^>]*> 4cc0f800 ctc3 zero,\$31 +[0-9a-f]+ <[^>]*> 4c400000 cfc3 zero,\$0 +[0-9a-f]+ <[^>]*> 4c400800 cfc3 zero,\$1 +[0-9a-f]+ <[^>]*> 4c401000 cfc3 zero,\$2 +[0-9a-f]+ <[^>]*> 4c401800 cfc3 zero,\$3 +[0-9a-f]+ <[^>]*> 4c402000 cfc3 zero,\$4 +[0-9a-f]+ <[^>]*> 4c402800 cfc3 zero,\$5 +[0-9a-f]+ <[^>]*> 4c403000 cfc3 zero,\$6 +[0-9a-f]+ <[^>]*> 4c403800 cfc3 zero,\$7 +[0-9a-f]+ <[^>]*> 4c404000 cfc3 zero,\$8 +[0-9a-f]+ <[^>]*> 4c404800 cfc3 zero,\$9 +[0-9a-f]+ <[^>]*> 4c405000 cfc3 zero,\$10 +[0-9a-f]+ <[^>]*> 4c405800 cfc3 zero,\$11 +[0-9a-f]+ <[^>]*> 4c406000 cfc3 zero,\$12 +[0-9a-f]+ <[^>]*> 4c406800 cfc3 zero,\$13 +[0-9a-f]+ <[^>]*> 4c407000 cfc3 zero,\$14 +[0-9a-f]+ <[^>]*> 4c407800 cfc3 zero,\$15 +[0-9a-f]+ <[^>]*> 4c408000 cfc3 zero,\$16 +[0-9a-f]+ <[^>]*> 4c408800 cfc3 zero,\$17 +[0-9a-f]+ <[^>]*> 4c409000 cfc3 zero,\$18 +[0-9a-f]+ <[^>]*> 4c409800 cfc3 zero,\$19 +[0-9a-f]+ <[^>]*> 4c40a000 cfc3 zero,\$20 +[0-9a-f]+ <[^>]*> 4c40a800 cfc3 zero,\$21 +[0-9a-f]+ <[^>]*> 4c40b000 cfc3 zero,\$22 +[0-9a-f]+ <[^>]*> 4c40b800 cfc3 zero,\$23 +[0-9a-f]+ <[^>]*> 4c40c000 cfc3 zero,\$24 +[0-9a-f]+ <[^>]*> 4c40c800 cfc3 zero,\$25 +[0-9a-f]+ <[^>]*> 4c40d000 cfc3 zero,\$26 +[0-9a-f]+ <[^>]*> 4c40d800 cfc3 zero,\$27 +[0-9a-f]+ <[^>]*> 4c40e000 cfc3 zero,\$28 +[0-9a-f]+ <[^>]*> 4c40e800 cfc3 zero,\$29 +[0-9a-f]+ <[^>]*> 4c40f000 cfc3 zero,\$30 +[0-9a-f]+ <[^>]*> 4c40f800 cfc3 zero,\$31 + \.\.\. diff --git a/gas/testsuite/gas/mips/cp3.s b/gas/testsuite/gas/mips/cp3.s new file mode 100644 index 00000000000..5fa8504ea8c --- /dev/null +++ b/gas/testsuite/gas/mips/cp3.s @@ -0,0 +1,138 @@ + .text + .set noreorder +foo: + mtc3 $0, $0 + mtc3 $0, $1 + mtc3 $0, $2 + mtc3 $0, $3 + mtc3 $0, $4 + mtc3 $0, $5 + mtc3 $0, $6 + mtc3 $0, $7 + mtc3 $0, $8 + mtc3 $0, $9 + mtc3 $0, $10 + mtc3 $0, $11 + mtc3 $0, $12 + mtc3 $0, $13 + mtc3 $0, $14 + mtc3 $0, $15 + mtc3 $0, $16 + mtc3 $0, $17 + mtc3 $0, $18 + mtc3 $0, $19 + mtc3 $0, $20 + mtc3 $0, $21 + mtc3 $0, $22 + mtc3 $0, $23 + mtc3 $0, $24 + mtc3 $0, $25 + mtc3 $0, $26 + mtc3 $0, $27 + mtc3 $0, $28 + mtc3 $0, $29 + mtc3 $0, $30 + mtc3 $0, $31 + + mfc3 $0, $0 + mfc3 $0, $1 + mfc3 $0, $2 + mfc3 $0, $3 + mfc3 $0, $4 + mfc3 $0, $5 + mfc3 $0, $6 + mfc3 $0, $7 + mfc3 $0, $8 + mfc3 $0, $9 + mfc3 $0, $10 + mfc3 $0, $11 + mfc3 $0, $12 + mfc3 $0, $13 + mfc3 $0, $14 + mfc3 $0, $15 + mfc3 $0, $16 + mfc3 $0, $17 + mfc3 $0, $18 + mfc3 $0, $19 + mfc3 $0, $20 + mfc3 $0, $21 + mfc3 $0, $22 + mfc3 $0, $23 + mfc3 $0, $24 + mfc3 $0, $25 + mfc3 $0, $26 + mfc3 $0, $27 + mfc3 $0, $28 + mfc3 $0, $29 + mfc3 $0, $30 + mfc3 $0, $31 + + ctc3 $0, $0 + ctc3 $0, $1 + ctc3 $0, $2 + ctc3 $0, $3 + ctc3 $0, $4 + ctc3 $0, $5 + ctc3 $0, $6 + ctc3 $0, $7 + ctc3 $0, $8 + ctc3 $0, $9 + ctc3 $0, $10 + ctc3 $0, $11 + ctc3 $0, $12 + ctc3 $0, $13 + ctc3 $0, $14 + ctc3 $0, $15 + ctc3 $0, $16 + ctc3 $0, $17 + ctc3 $0, $18 + ctc3 $0, $19 + ctc3 $0, $20 + ctc3 $0, $21 + ctc3 $0, $22 + ctc3 $0, $23 + ctc3 $0, $24 + ctc3 $0, $25 + ctc3 $0, $26 + ctc3 $0, $27 + ctc3 $0, $28 + ctc3 $0, $29 + ctc3 $0, $30 + ctc3 $0, $31 + + cfc3 $0, $0 + cfc3 $0, $1 + cfc3 $0, $2 + cfc3 $0, $3 + cfc3 $0, $4 + cfc3 $0, $5 + cfc3 $0, $6 + cfc3 $0, $7 + cfc3 $0, $8 + cfc3 $0, $9 + cfc3 $0, $10 + cfc3 $0, $11 + cfc3 $0, $12 + cfc3 $0, $13 + cfc3 $0, $14 + cfc3 $0, $15 + cfc3 $0, $16 + cfc3 $0, $17 + cfc3 $0, $18 + cfc3 $0, $19 + cfc3 $0, $20 + cfc3 $0, $21 + cfc3 $0, $22 + cfc3 $0, $23 + cfc3 $0, $24 + cfc3 $0, $25 + cfc3 $0, $26 + cfc3 $0, $27 + cfc3 $0, $28 + cfc3 $0, $29 + cfc3 $0, $30 + cfc3 $0, $31 + +# Force some (non-delay-slot) zero bytes, to make 'objdump' print ... + .align 4, 0 + .space 16 diff --git a/gas/testsuite/gas/mips/cp3d.d b/gas/testsuite/gas/mips/cp3d.d new file mode 100644 index 00000000000..7c9309374bd --- /dev/null +++ b/gas/testsuite/gas/mips/cp3d.d @@ -0,0 +1,72 @@ +#objdump: -d --prefix-addresses --show-raw-insn +#name: MIPS CP3 doubleword memory access instructions +#as: -32 + +.*: +file format .*mips.* + +Disassembly of section \.text: +[0-9a-f]+ <[^>]*> dc000000 ldc3 \$0,0\(zero\) +[0-9a-f]+ <[^>]*> dc010000 ldc3 \$1,0\(zero\) +[0-9a-f]+ <[^>]*> dc020000 ldc3 \$2,0\(zero\) +[0-9a-f]+ <[^>]*> dc030000 ldc3 \$3,0\(zero\) +[0-9a-f]+ <[^>]*> dc040000 ldc3 \$4,0\(zero\) +[0-9a-f]+ <[^>]*> dc050000 ldc3 \$5,0\(zero\) +[0-9a-f]+ <[^>]*> dc060000 ldc3 \$6,0\(zero\) +[0-9a-f]+ <[^>]*> dc070000 ldc3 \$7,0\(zero\) +[0-9a-f]+ <[^>]*> dc080000 ldc3 \$8,0\(zero\) +[0-9a-f]+ <[^>]*> dc090000 ldc3 \$9,0\(zero\) +[0-9a-f]+ <[^>]*> dc0a0000 ldc3 \$10,0\(zero\) +[0-9a-f]+ <[^>]*> dc0b0000 ldc3 \$11,0\(zero\) +[0-9a-f]+ <[^>]*> dc0c0000 ldc3 \$12,0\(zero\) +[0-9a-f]+ <[^>]*> dc0d0000 ldc3 \$13,0\(zero\) +[0-9a-f]+ <[^>]*> dc0e0000 ldc3 \$14,0\(zero\) +[0-9a-f]+ <[^>]*> dc0f0000 ldc3 \$15,0\(zero\) +[0-9a-f]+ <[^>]*> dc100000 ldc3 \$16,0\(zero\) +[0-9a-f]+ <[^>]*> dc110000 ldc3 \$17,0\(zero\) +[0-9a-f]+ <[^>]*> dc120000 ldc3 \$18,0\(zero\) +[0-9a-f]+ <[^>]*> dc130000 ldc3 \$19,0\(zero\) +[0-9a-f]+ <[^>]*> dc140000 ldc3 \$20,0\(zero\) +[0-9a-f]+ <[^>]*> dc150000 ldc3 \$21,0\(zero\) +[0-9a-f]+ <[^>]*> dc160000 ldc3 \$22,0\(zero\) +[0-9a-f]+ <[^>]*> dc170000 ldc3 \$23,0\(zero\) +[0-9a-f]+ <[^>]*> dc180000 ldc3 \$24,0\(zero\) +[0-9a-f]+ <[^>]*> dc190000 ldc3 \$25,0\(zero\) +[0-9a-f]+ <[^>]*> dc1a0000 ldc3 \$26,0\(zero\) +[0-9a-f]+ <[^>]*> dc1b0000 ldc3 \$27,0\(zero\) +[0-9a-f]+ <[^>]*> dc1c0000 ldc3 \$28,0\(zero\) +[0-9a-f]+ <[^>]*> dc1d0000 ldc3 \$29,0\(zero\) +[0-9a-f]+ <[^>]*> dc1e0000 ldc3 \$30,0\(zero\) +[0-9a-f]+ <[^>]*> dc1f0000 ldc3 \$31,0\(zero\) +[0-9a-f]+ <[^>]*> fc000000 sdc3 \$0,0\(zero\) +[0-9a-f]+ <[^>]*> fc010000 sdc3 \$1,0\(zero\) +[0-9a-f]+ <[^>]*> fc020000 sdc3 \$2,0\(zero\) +[0-9a-f]+ <[^>]*> fc030000 sdc3 \$3,0\(zero\) +[0-9a-f]+ <[^>]*> fc040000 sdc3 \$4,0\(zero\) +[0-9a-f]+ <[^>]*> fc050000 sdc3 \$5,0\(zero\) +[0-9a-f]+ <[^>]*> fc060000 sdc3 \$6,0\(zero\) +[0-9a-f]+ <[^>]*> fc070000 sdc3 \$7,0\(zero\) +[0-9a-f]+ <[^>]*> fc080000 sdc3 \$8,0\(zero\) +[0-9a-f]+ <[^>]*> fc090000 sdc3 \$9,0\(zero\) +[0-9a-f]+ <[^>]*> fc0a0000 sdc3 \$10,0\(zero\) +[0-9a-f]+ <[^>]*> fc0b0000 sdc3 \$11,0\(zero\) +[0-9a-f]+ <[^>]*> fc0c0000 sdc3 \$12,0\(zero\) +[0-9a-f]+ <[^>]*> fc0d0000 sdc3 \$13,0\(zero\) +[0-9a-f]+ <[^>]*> fc0e0000 sdc3 \$14,0\(zero\) +[0-9a-f]+ <[^>]*> fc0f0000 sdc3 \$15,0\(zero\) +[0-9a-f]+ <[^>]*> fc100000 sdc3 \$16,0\(zero\) +[0-9a-f]+ <[^>]*> fc110000 sdc3 \$17,0\(zero\) +[0-9a-f]+ <[^>]*> fc120000 sdc3 \$18,0\(zero\) +[0-9a-f]+ <[^>]*> fc130000 sdc3 \$19,0\(zero\) +[0-9a-f]+ <[^>]*> fc140000 sdc3 \$20,0\(zero\) +[0-9a-f]+ <[^>]*> fc150000 sdc3 \$21,0\(zero\) +[0-9a-f]+ <[^>]*> fc160000 sdc3 \$22,0\(zero\) +[0-9a-f]+ <[^>]*> fc170000 sdc3 \$23,0\(zero\) +[0-9a-f]+ <[^>]*> fc180000 sdc3 \$24,0\(zero\) +[0-9a-f]+ <[^>]*> fc190000 sdc3 \$25,0\(zero\) +[0-9a-f]+ <[^>]*> fc1a0000 sdc3 \$26,0\(zero\) +[0-9a-f]+ <[^>]*> fc1b0000 sdc3 \$27,0\(zero\) +[0-9a-f]+ <[^>]*> fc1c0000 sdc3 \$28,0\(zero\) +[0-9a-f]+ <[^>]*> fc1d0000 sdc3 \$29,0\(zero\) +[0-9a-f]+ <[^>]*> fc1e0000 sdc3 \$30,0\(zero\) +[0-9a-f]+ <[^>]*> fc1f0000 sdc3 \$31,0\(zero\) + \.\.\. diff --git a/gas/testsuite/gas/mips/cp3d.s b/gas/testsuite/gas/mips/cp3d.s new file mode 100644 index 00000000000..f4816ca0986 --- /dev/null +++ b/gas/testsuite/gas/mips/cp3d.s @@ -0,0 +1,72 @@ + .text + .set noreorder +foo: + ldc3 $0, 0($0) + ldc3 $1, 0($0) + ldc3 $2, 0($0) + ldc3 $3, 0($0) + ldc3 $4, 0($0) + ldc3 $5, 0($0) + ldc3 $6, 0($0) + ldc3 $7, 0($0) + ldc3 $8, 0($0) + ldc3 $9, 0($0) + ldc3 $10, 0($0) + ldc3 $11, 0($0) + ldc3 $12, 0($0) + ldc3 $13, 0($0) + ldc3 $14, 0($0) + ldc3 $15, 0($0) + ldc3 $16, 0($0) + ldc3 $17, 0($0) + ldc3 $18, 0($0) + ldc3 $19, 0($0) + ldc3 $20, 0($0) + ldc3 $21, 0($0) + ldc3 $22, 0($0) + ldc3 $23, 0($0) + ldc3 $24, 0($0) + ldc3 $25, 0($0) + ldc3 $26, 0($0) + ldc3 $27, 0($0) + ldc3 $28, 0($0) + ldc3 $29, 0($0) + ldc3 $30, 0($0) + ldc3 $31, 0($0) + + sdc3 $0, 0($0) + sdc3 $1, 0($0) + sdc3 $2, 0($0) + sdc3 $3, 0($0) + sdc3 $4, 0($0) + sdc3 $5, 0($0) + sdc3 $6, 0($0) + sdc3 $7, 0($0) + sdc3 $8, 0($0) + sdc3 $9, 0($0) + sdc3 $10, 0($0) + sdc3 $11, 0($0) + sdc3 $12, 0($0) + sdc3 $13, 0($0) + sdc3 $14, 0($0) + sdc3 $15, 0($0) + sdc3 $16, 0($0) + sdc3 $17, 0($0) + sdc3 $18, 0($0) + sdc3 $19, 0($0) + sdc3 $20, 0($0) + sdc3 $21, 0($0) + sdc3 $22, 0($0) + sdc3 $23, 0($0) + sdc3 $24, 0($0) + sdc3 $25, 0($0) + sdc3 $26, 0($0) + sdc3 $27, 0($0) + sdc3 $28, 0($0) + sdc3 $29, 0($0) + sdc3 $30, 0($0) + sdc3 $31, 0($0) + +# Force some (non-delay-slot) zero bytes, to make 'objdump' print ... + .align 4, 0 + .space 16 diff --git a/gas/testsuite/gas/mips/cp3m.d b/gas/testsuite/gas/mips/cp3m.d new file mode 100644 index 00000000000..094d6f6f0ed --- /dev/null +++ b/gas/testsuite/gas/mips/cp3m.d @@ -0,0 +1,72 @@ +#objdump: -d --prefix-addresses --show-raw-insn +#name: MIPS CP3 memory access instructions +#as: -32 + +.*: +file format .*mips.* + +Disassembly of section \.text: +[0-9a-f]+ <[^>]*> cc000000 lwc3 \$0,0\(zero\) +[0-9a-f]+ <[^>]*> cc010000 lwc3 \$1,0\(zero\) +[0-9a-f]+ <[^>]*> cc020000 lwc3 \$2,0\(zero\) +[0-9a-f]+ <[^>]*> cc030000 lwc3 \$3,0\(zero\) +[0-9a-f]+ <[^>]*> cc040000 lwc3 \$4,0\(zero\) +[0-9a-f]+ <[^>]*> cc050000 lwc3 \$5,0\(zero\) +[0-9a-f]+ <[^>]*> cc060000 lwc3 \$6,0\(zero\) +[0-9a-f]+ <[^>]*> cc070000 lwc3 \$7,0\(zero\) +[0-9a-f]+ <[^>]*> cc080000 lwc3 \$8,0\(zero\) +[0-9a-f]+ <[^>]*> cc090000 lwc3 \$9,0\(zero\) +[0-9a-f]+ <[^>]*> cc0a0000 lwc3 \$10,0\(zero\) +[0-9a-f]+ <[^>]*> cc0b0000 lwc3 \$11,0\(zero\) +[0-9a-f]+ <[^>]*> cc0c0000 lwc3 \$12,0\(zero\) +[0-9a-f]+ <[^>]*> cc0d0000 lwc3 \$13,0\(zero\) +[0-9a-f]+ <[^>]*> cc0e0000 lwc3 \$14,0\(zero\) +[0-9a-f]+ <[^>]*> cc0f0000 lwc3 \$15,0\(zero\) +[0-9a-f]+ <[^>]*> cc100000 lwc3 \$16,0\(zero\) +[0-9a-f]+ <[^>]*> cc110000 lwc3 \$17,0\(zero\) +[0-9a-f]+ <[^>]*> cc120000 lwc3 \$18,0\(zero\) +[0-9a-f]+ <[^>]*> cc130000 lwc3 \$19,0\(zero\) +[0-9a-f]+ <[^>]*> cc140000 lwc3 \$20,0\(zero\) +[0-9a-f]+ <[^>]*> cc150000 lwc3 \$21,0\(zero\) +[0-9a-f]+ <[^>]*> cc160000 lwc3 \$22,0\(zero\) +[0-9a-f]+ <[^>]*> cc170000 lwc3 \$23,0\(zero\) +[0-9a-f]+ <[^>]*> cc180000 lwc3 \$24,0\(zero\) +[0-9a-f]+ <[^>]*> cc190000 lwc3 \$25,0\(zero\) +[0-9a-f]+ <[^>]*> cc1a0000 lwc3 \$26,0\(zero\) +[0-9a-f]+ <[^>]*> cc1b0000 lwc3 \$27,0\(zero\) +[0-9a-f]+ <[^>]*> cc1c0000 lwc3 \$28,0\(zero\) +[0-9a-f]+ <[^>]*> cc1d0000 lwc3 \$29,0\(zero\) +[0-9a-f]+ <[^>]*> cc1e0000 lwc3 \$30,0\(zero\) +[0-9a-f]+ <[^>]*> cc1f0000 lwc3 \$31,0\(zero\) +[0-9a-f]+ <[^>]*> ec000000 swc3 \$0,0\(zero\) +[0-9a-f]+ <[^>]*> ec010000 swc3 \$1,0\(zero\) +[0-9a-f]+ <[^>]*> ec020000 swc3 \$2,0\(zero\) +[0-9a-f]+ <[^>]*> ec030000 swc3 \$3,0\(zero\) +[0-9a-f]+ <[^>]*> ec040000 swc3 \$4,0\(zero\) +[0-9a-f]+ <[^>]*> ec050000 swc3 \$5,0\(zero\) +[0-9a-f]+ <[^>]*> ec060000 swc3 \$6,0\(zero\) +[0-9a-f]+ <[^>]*> ec070000 swc3 \$7,0\(zero\) +[0-9a-f]+ <[^>]*> ec080000 swc3 \$8,0\(zero\) +[0-9a-f]+ <[^>]*> ec090000 swc3 \$9,0\(zero\) +[0-9a-f]+ <[^>]*> ec0a0000 swc3 \$10,0\(zero\) +[0-9a-f]+ <[^>]*> ec0b0000 swc3 \$11,0\(zero\) +[0-9a-f]+ <[^>]*> ec0c0000 swc3 \$12,0\(zero\) +[0-9a-f]+ <[^>]*> ec0d0000 swc3 \$13,0\(zero\) +[0-9a-f]+ <[^>]*> ec0e0000 swc3 \$14,0\(zero\) +[0-9a-f]+ <[^>]*> ec0f0000 swc3 \$15,0\(zero\) +[0-9a-f]+ <[^>]*> ec100000 swc3 \$16,0\(zero\) +[0-9a-f]+ <[^>]*> ec110000 swc3 \$17,0\(zero\) +[0-9a-f]+ <[^>]*> ec120000 swc3 \$18,0\(zero\) +[0-9a-f]+ <[^>]*> ec130000 swc3 \$19,0\(zero\) +[0-9a-f]+ <[^>]*> ec140000 swc3 \$20,0\(zero\) +[0-9a-f]+ <[^>]*> ec150000 swc3 \$21,0\(zero\) +[0-9a-f]+ <[^>]*> ec160000 swc3 \$22,0\(zero\) +[0-9a-f]+ <[^>]*> ec170000 swc3 \$23,0\(zero\) +[0-9a-f]+ <[^>]*> ec180000 swc3 \$24,0\(zero\) +[0-9a-f]+ <[^>]*> ec190000 swc3 \$25,0\(zero\) +[0-9a-f]+ <[^>]*> ec1a0000 swc3 \$26,0\(zero\) +[0-9a-f]+ <[^>]*> ec1b0000 swc3 \$27,0\(zero\) +[0-9a-f]+ <[^>]*> ec1c0000 swc3 \$28,0\(zero\) +[0-9a-f]+ <[^>]*> ec1d0000 swc3 \$29,0\(zero\) +[0-9a-f]+ <[^>]*> ec1e0000 swc3 \$30,0\(zero\) +[0-9a-f]+ <[^>]*> ec1f0000 swc3 \$31,0\(zero\) + \.\.\. diff --git a/gas/testsuite/gas/mips/cp3m.s b/gas/testsuite/gas/mips/cp3m.s new file mode 100644 index 00000000000..0b23db7cd7b --- /dev/null +++ b/gas/testsuite/gas/mips/cp3m.s @@ -0,0 +1,72 @@ + .text + .set noreorder +foo: + lwc3 $0, 0($0) + lwc3 $1, 0($0) + lwc3 $2, 0($0) + lwc3 $3, 0($0) + lwc3 $4, 0($0) + lwc3 $5, 0($0) + lwc3 $6, 0($0) + lwc3 $7, 0($0) + lwc3 $8, 0($0) + lwc3 $9, 0($0) + lwc3 $10, 0($0) + lwc3 $11, 0($0) + lwc3 $12, 0($0) + lwc3 $13, 0($0) + lwc3 $14, 0($0) + lwc3 $15, 0($0) + lwc3 $16, 0($0) + lwc3 $17, 0($0) + lwc3 $18, 0($0) + lwc3 $19, 0($0) + lwc3 $20, 0($0) + lwc3 $21, 0($0) + lwc3 $22, 0($0) + lwc3 $23, 0($0) + lwc3 $24, 0($0) + lwc3 $25, 0($0) + lwc3 $26, 0($0) + lwc3 $27, 0($0) + lwc3 $28, 0($0) + lwc3 $29, 0($0) + lwc3 $30, 0($0) + lwc3 $31, 0($0) + + swc3 $0, 0($0) + swc3 $1, 0($0) + swc3 $2, 0($0) + swc3 $3, 0($0) + swc3 $4, 0($0) + swc3 $5, 0($0) + swc3 $6, 0($0) + swc3 $7, 0($0) + swc3 $8, 0($0) + swc3 $9, 0($0) + swc3 $10, 0($0) + swc3 $11, 0($0) + swc3 $12, 0($0) + swc3 $13, 0($0) + swc3 $14, 0($0) + swc3 $15, 0($0) + swc3 $16, 0($0) + swc3 $17, 0($0) + swc3 $18, 0($0) + swc3 $19, 0($0) + swc3 $20, 0($0) + swc3 $21, 0($0) + swc3 $22, 0($0) + swc3 $23, 0($0) + swc3 $24, 0($0) + swc3 $25, 0($0) + swc3 $26, 0($0) + swc3 $27, 0($0) + swc3 $28, 0($0) + swc3 $29, 0($0) + swc3 $30, 0($0) + swc3 $31, 0($0) + +# Force some (non-delay-slot) zero bytes, to make 'objdump' print ... + .align 4, 0 + .space 16 diff --git a/gas/testsuite/gas/mips/micromips@cp2-64.d b/gas/testsuite/gas/mips/micromips@cp2-64.d new file mode 100644 index 00000000000..133883e2528 --- /dev/null +++ b/gas/testsuite/gas/mips/micromips@cp2-64.d @@ -0,0 +1,73 @@ +#objdump: -d --prefix-addresses --show-raw-insn +#name: MIPS CP2 64-bit move instructions +#as: -32 +#source: cp2-64\.s + +.*: +file format .*mips.* + +Disassembly of section \.text: +[0-9a-f]+ <[^>]*> 0000 7d3c dmtc2 zero,\$0 +[0-9a-f]+ <[^>]*> 0001 7d3c dmtc2 zero,\$1 +[0-9a-f]+ <[^>]*> 0002 7d3c dmtc2 zero,\$2 +[0-9a-f]+ <[^>]*> 0003 7d3c dmtc2 zero,\$3 +[0-9a-f]+ <[^>]*> 0004 7d3c dmtc2 zero,\$4 +[0-9a-f]+ <[^>]*> 0005 7d3c dmtc2 zero,\$5 +[0-9a-f]+ <[^>]*> 0006 7d3c dmtc2 zero,\$6 +[0-9a-f]+ <[^>]*> 0007 7d3c dmtc2 zero,\$7 +[0-9a-f]+ <[^>]*> 0008 7d3c dmtc2 zero,\$8 +[0-9a-f]+ <[^>]*> 0009 7d3c dmtc2 zero,\$9 +[0-9a-f]+ <[^>]*> 000a 7d3c dmtc2 zero,\$10 +[0-9a-f]+ <[^>]*> 000b 7d3c dmtc2 zero,\$11 +[0-9a-f]+ <[^>]*> 000c 7d3c dmtc2 zero,\$12 +[0-9a-f]+ <[^>]*> 000d 7d3c dmtc2 zero,\$13 +[0-9a-f]+ <[^>]*> 000e 7d3c dmtc2 zero,\$14 +[0-9a-f]+ <[^>]*> 000f 7d3c dmtc2 zero,\$15 +[0-9a-f]+ <[^>]*> 0010 7d3c dmtc2 zero,\$16 +[0-9a-f]+ <[^>]*> 0011 7d3c dmtc2 zero,\$17 +[0-9a-f]+ <[^>]*> 0012 7d3c dmtc2 zero,\$18 +[0-9a-f]+ <[^>]*> 0013 7d3c dmtc2 zero,\$19 +[0-9a-f]+ <[^>]*> 0014 7d3c dmtc2 zero,\$20 +[0-9a-f]+ <[^>]*> 0015 7d3c dmtc2 zero,\$21 +[0-9a-f]+ <[^>]*> 0016 7d3c dmtc2 zero,\$22 +[0-9a-f]+ <[^>]*> 0017 7d3c dmtc2 zero,\$23 +[0-9a-f]+ <[^>]*> 0018 7d3c dmtc2 zero,\$24 +[0-9a-f]+ <[^>]*> 0019 7d3c dmtc2 zero,\$25 +[0-9a-f]+ <[^>]*> 001a 7d3c dmtc2 zero,\$26 +[0-9a-f]+ <[^>]*> 001b 7d3c dmtc2 zero,\$27 +[0-9a-f]+ <[^>]*> 001c 7d3c dmtc2 zero,\$28 +[0-9a-f]+ <[^>]*> 001d 7d3c dmtc2 zero,\$29 +[0-9a-f]+ <[^>]*> 001e 7d3c dmtc2 zero,\$30 +[0-9a-f]+ <[^>]*> 001f 7d3c dmtc2 zero,\$31 +[0-9a-f]+ <[^>]*> 0000 6d3c dmfc2 zero,\$0 +[0-9a-f]+ <[^>]*> 0001 6d3c dmfc2 zero,\$1 +[0-9a-f]+ <[^>]*> 0002 6d3c dmfc2 zero,\$2 +[0-9a-f]+ <[^>]*> 0003 6d3c dmfc2 zero,\$3 +[0-9a-f]+ <[^>]*> 0004 6d3c dmfc2 zero,\$4 +[0-9a-f]+ <[^>]*> 0005 6d3c dmfc2 zero,\$5 +[0-9a-f]+ <[^>]*> 0006 6d3c dmfc2 zero,\$6 +[0-9a-f]+ <[^>]*> 0007 6d3c dmfc2 zero,\$7 +[0-9a-f]+ <[^>]*> 0008 6d3c dmfc2 zero,\$8 +[0-9a-f]+ <[^>]*> 0009 6d3c dmfc2 zero,\$9 +[0-9a-f]+ <[^>]*> 000a 6d3c dmfc2 zero,\$10 +[0-9a-f]+ <[^>]*> 000b 6d3c dmfc2 zero,\$11 +[0-9a-f]+ <[^>]*> 000c 6d3c dmfc2 zero,\$12 +[0-9a-f]+ <[^>]*> 000d 6d3c dmfc2 zero,\$13 +[0-9a-f]+ <[^>]*> 000e 6d3c dmfc2 zero,\$14 +[0-9a-f]+ <[^>]*> 000f 6d3c dmfc2 zero,\$15 +[0-9a-f]+ <[^>]*> 0010 6d3c dmfc2 zero,\$16 +[0-9a-f]+ <[^>]*> 0011 6d3c dmfc2 zero,\$17 +[0-9a-f]+ <[^>]*> 0012 6d3c dmfc2 zero,\$18 +[0-9a-f]+ <[^>]*> 0013 6d3c dmfc2 zero,\$19 +[0-9a-f]+ <[^>]*> 0014 6d3c dmfc2 zero,\$20 +[0-9a-f]+ <[^>]*> 0015 6d3c dmfc2 zero,\$21 +[0-9a-f]+ <[^>]*> 0016 6d3c dmfc2 zero,\$22 +[0-9a-f]+ <[^>]*> 0017 6d3c dmfc2 zero,\$23 +[0-9a-f]+ <[^>]*> 0018 6d3c dmfc2 zero,\$24 +[0-9a-f]+ <[^>]*> 0019 6d3c dmfc2 zero,\$25 +[0-9a-f]+ <[^>]*> 001a 6d3c dmfc2 zero,\$26 +[0-9a-f]+ <[^>]*> 001b 6d3c dmfc2 zero,\$27 +[0-9a-f]+ <[^>]*> 001c 6d3c dmfc2 zero,\$28 +[0-9a-f]+ <[^>]*> 001d 6d3c dmfc2 zero,\$29 +[0-9a-f]+ <[^>]*> 001e 6d3c dmfc2 zero,\$30 +[0-9a-f]+ <[^>]*> 001f 6d3c dmfc2 zero,\$31 + \.\.\. diff --git a/gas/testsuite/gas/mips/micromips@cp2.d b/gas/testsuite/gas/mips/micromips@cp2.d new file mode 100644 index 00000000000..b43787ef4fb --- /dev/null +++ b/gas/testsuite/gas/mips/micromips@cp2.d @@ -0,0 +1,137 @@ +#objdump: -d --prefix-addresses --show-raw-insn +#name: MIPS CP2 register move instructions +#as: -32 +#source: cp2.s + +.*: +file format .*mips.* + +Disassembly of section \.text: +[0-9a-f]+ <[^>]*> 0000 5d3c mtc2 zero,\$0 +[0-9a-f]+ <[^>]*> 0001 5d3c mtc2 zero,\$1 +[0-9a-f]+ <[^>]*> 0002 5d3c mtc2 zero,\$2 +[0-9a-f]+ <[^>]*> 0003 5d3c mtc2 zero,\$3 +[0-9a-f]+ <[^>]*> 0004 5d3c mtc2 zero,\$4 +[0-9a-f]+ <[^>]*> 0005 5d3c mtc2 zero,\$5 +[0-9a-f]+ <[^>]*> 0006 5d3c mtc2 zero,\$6 +[0-9a-f]+ <[^>]*> 0007 5d3c mtc2 zero,\$7 +[0-9a-f]+ <[^>]*> 0008 5d3c mtc2 zero,\$8 +[0-9a-f]+ <[^>]*> 0009 5d3c mtc2 zero,\$9 +[0-9a-f]+ <[^>]*> 000a 5d3c mtc2 zero,\$10 +[0-9a-f]+ <[^>]*> 000b 5d3c mtc2 zero,\$11 +[0-9a-f]+ <[^>]*> 000c 5d3c mtc2 zero,\$12 +[0-9a-f]+ <[^>]*> 000d 5d3c mtc2 zero,\$13 +[0-9a-f]+ <[^>]*> 000e 5d3c mtc2 zero,\$14 +[0-9a-f]+ <[^>]*> 000f 5d3c mtc2 zero,\$15 +[0-9a-f]+ <[^>]*> 0010 5d3c mtc2 zero,\$16 +[0-9a-f]+ <[^>]*> 0011 5d3c mtc2 zero,\$17 +[0-9a-f]+ <[^>]*> 0012 5d3c mtc2 zero,\$18 +[0-9a-f]+ <[^>]*> 0013 5d3c mtc2 zero,\$19 +[0-9a-f]+ <[^>]*> 0014 5d3c mtc2 zero,\$20 +[0-9a-f]+ <[^>]*> 0015 5d3c mtc2 zero,\$21 +[0-9a-f]+ <[^>]*> 0016 5d3c mtc2 zero,\$22 +[0-9a-f]+ <[^>]*> 0017 5d3c mtc2 zero,\$23 +[0-9a-f]+ <[^>]*> 0018 5d3c mtc2 zero,\$24 +[0-9a-f]+ <[^>]*> 0019 5d3c mtc2 zero,\$25 +[0-9a-f]+ <[^>]*> 001a 5d3c mtc2 zero,\$26 +[0-9a-f]+ <[^>]*> 001b 5d3c mtc2 zero,\$27 +[0-9a-f]+ <[^>]*> 001c 5d3c mtc2 zero,\$28 +[0-9a-f]+ <[^>]*> 001d 5d3c mtc2 zero,\$29 +[0-9a-f]+ <[^>]*> 001e 5d3c mtc2 zero,\$30 +[0-9a-f]+ <[^>]*> 001f 5d3c mtc2 zero,\$31 +[0-9a-f]+ <[^>]*> 0000 4d3c mfc2 zero,\$0 +[0-9a-f]+ <[^>]*> 0001 4d3c mfc2 zero,\$1 +[0-9a-f]+ <[^>]*> 0002 4d3c mfc2 zero,\$2 +[0-9a-f]+ <[^>]*> 0003 4d3c mfc2 zero,\$3 +[0-9a-f]+ <[^>]*> 0004 4d3c mfc2 zero,\$4 +[0-9a-f]+ <[^>]*> 0005 4d3c mfc2 zero,\$5 +[0-9a-f]+ <[^>]*> 0006 4d3c mfc2 zero,\$6 +[0-9a-f]+ <[^>]*> 0007 4d3c mfc2 zero,\$7 +[0-9a-f]+ <[^>]*> 0008 4d3c mfc2 zero,\$8 +[0-9a-f]+ <[^>]*> 0009 4d3c mfc2 zero,\$9 +[0-9a-f]+ <[^>]*> 000a 4d3c mfc2 zero,\$10 +[0-9a-f]+ <[^>]*> 000b 4d3c mfc2 zero,\$11 +[0-9a-f]+ <[^>]*> 000c 4d3c mfc2 zero,\$12 +[0-9a-f]+ <[^>]*> 000d 4d3c mfc2 zero,\$13 +[0-9a-f]+ <[^>]*> 000e 4d3c mfc2 zero,\$14 +[0-9a-f]+ <[^>]*> 000f 4d3c mfc2 zero,\$15 +[0-9a-f]+ <[^>]*> 0010 4d3c mfc2 zero,\$16 +[0-9a-f]+ <[^>]*> 0011 4d3c mfc2 zero,\$17 +[0-9a-f]+ <[^>]*> 0012 4d3c mfc2 zero,\$18 +[0-9a-f]+ <[^>]*> 0013 4d3c mfc2 zero,\$19 +[0-9a-f]+ <[^>]*> 0014 4d3c mfc2 zero,\$20 +[0-9a-f]+ <[^>]*> 0015 4d3c mfc2 zero,\$21 +[0-9a-f]+ <[^>]*> 0016 4d3c mfc2 zero,\$22 +[0-9a-f]+ <[^>]*> 0017 4d3c mfc2 zero,\$23 +[0-9a-f]+ <[^>]*> 0018 4d3c mfc2 zero,\$24 +[0-9a-f]+ <[^>]*> 0019 4d3c mfc2 zero,\$25 +[0-9a-f]+ <[^>]*> 001a 4d3c mfc2 zero,\$26 +[0-9a-f]+ <[^>]*> 001b 4d3c mfc2 zero,\$27 +[0-9a-f]+ <[^>]*> 001c 4d3c mfc2 zero,\$28 +[0-9a-f]+ <[^>]*> 001d 4d3c mfc2 zero,\$29 +[0-9a-f]+ <[^>]*> 001e 4d3c mfc2 zero,\$30 +[0-9a-f]+ <[^>]*> 001f 4d3c mfc2 zero,\$31 +[0-9a-f]+ <[^>]*> 0000 dd3c ctc2 zero,\$0 +[0-9a-f]+ <[^>]*> 0001 dd3c ctc2 zero,\$1 +[0-9a-f]+ <[^>]*> 0002 dd3c ctc2 zero,\$2 +[0-9a-f]+ <[^>]*> 0003 dd3c ctc2 zero,\$3 +[0-9a-f]+ <[^>]*> 0004 dd3c ctc2 zero,\$4 +[0-9a-f]+ <[^>]*> 0005 dd3c ctc2 zero,\$5 +[0-9a-f]+ <[^>]*> 0006 dd3c ctc2 zero,\$6 +[0-9a-f]+ <[^>]*> 0007 dd3c ctc2 zero,\$7 +[0-9a-f]+ <[^>]*> 0008 dd3c ctc2 zero,\$8 +[0-9a-f]+ <[^>]*> 0009 dd3c ctc2 zero,\$9 +[0-9a-f]+ <[^>]*> 000a dd3c ctc2 zero,\$10 +[0-9a-f]+ <[^>]*> 000b dd3c ctc2 zero,\$11 +[0-9a-f]+ <[^>]*> 000c dd3c ctc2 zero,\$12 +[0-9a-f]+ <[^>]*> 000d dd3c ctc2 zero,\$13 +[0-9a-f]+ <[^>]*> 000e dd3c ctc2 zero,\$14 +[0-9a-f]+ <[^>]*> 000f dd3c ctc2 zero,\$15 +[0-9a-f]+ <[^>]*> 0010 dd3c ctc2 zero,\$16 +[0-9a-f]+ <[^>]*> 0011 dd3c ctc2 zero,\$17 +[0-9a-f]+ <[^>]*> 0012 dd3c ctc2 zero,\$18 +[0-9a-f]+ <[^>]*> 0013 dd3c ctc2 zero,\$19 +[0-9a-f]+ <[^>]*> 0014 dd3c ctc2 zero,\$20 +[0-9a-f]+ <[^>]*> 0015 dd3c ctc2 zero,\$21 +[0-9a-f]+ <[^>]*> 0016 dd3c ctc2 zero,\$22 +[0-9a-f]+ <[^>]*> 0017 dd3c ctc2 zero,\$23 +[0-9a-f]+ <[^>]*> 0018 dd3c ctc2 zero,\$24 +[0-9a-f]+ <[^>]*> 0019 dd3c ctc2 zero,\$25 +[0-9a-f]+ <[^>]*> 001a dd3c ctc2 zero,\$26 +[0-9a-f]+ <[^>]*> 001b dd3c ctc2 zero,\$27 +[0-9a-f]+ <[^>]*> 001c dd3c ctc2 zero,\$28 +[0-9a-f]+ <[^>]*> 001d dd3c ctc2 zero,\$29 +[0-9a-f]+ <[^>]*> 001e dd3c ctc2 zero,\$30 +[0-9a-f]+ <[^>]*> 001f dd3c ctc2 zero,\$31 +[0-9a-f]+ <[^>]*> 0000 cd3c cfc2 zero,\$0 +[0-9a-f]+ <[^>]*> 0001 cd3c cfc2 zero,\$1 +[0-9a-f]+ <[^>]*> 0002 cd3c cfc2 zero,\$2 +[0-9a-f]+ <[^>]*> 0003 cd3c cfc2 zero,\$3 +[0-9a-f]+ <[^>]*> 0004 cd3c cfc2 zero,\$4 +[0-9a-f]+ <[^>]*> 0005 cd3c cfc2 zero,\$5 +[0-9a-f]+ <[^>]*> 0006 cd3c cfc2 zero,\$6 +[0-9a-f]+ <[^>]*> 0007 cd3c cfc2 zero,\$7 +[0-9a-f]+ <[^>]*> 0008 cd3c cfc2 zero,\$8 +[0-9a-f]+ <[^>]*> 0009 cd3c cfc2 zero,\$9 +[0-9a-f]+ <[^>]*> 000a cd3c cfc2 zero,\$10 +[0-9a-f]+ <[^>]*> 000b cd3c cfc2 zero,\$11 +[0-9a-f]+ <[^>]*> 000c cd3c cfc2 zero,\$12 +[0-9a-f]+ <[^>]*> 000d cd3c cfc2 zero,\$13 +[0-9a-f]+ <[^>]*> 000e cd3c cfc2 zero,\$14 +[0-9a-f]+ <[^>]*> 000f cd3c cfc2 zero,\$15 +[0-9a-f]+ <[^>]*> 0010 cd3c cfc2 zero,\$16 +[0-9a-f]+ <[^>]*> 0011 cd3c cfc2 zero,\$17 +[0-9a-f]+ <[^>]*> 0012 cd3c cfc2 zero,\$18 +[0-9a-f]+ <[^>]*> 0013 cd3c cfc2 zero,\$19 +[0-9a-f]+ <[^>]*> 0014 cd3c cfc2 zero,\$20 +[0-9a-f]+ <[^>]*> 0015 cd3c cfc2 zero,\$21 +[0-9a-f]+ <[^>]*> 0016 cd3c cfc2 zero,\$22 +[0-9a-f]+ <[^>]*> 0017 cd3c cfc2 zero,\$23 +[0-9a-f]+ <[^>]*> 0018 cd3c cfc2 zero,\$24 +[0-9a-f]+ <[^>]*> 0019 cd3c cfc2 zero,\$25 +[0-9a-f]+ <[^>]*> 001a cd3c cfc2 zero,\$26 +[0-9a-f]+ <[^>]*> 001b cd3c cfc2 zero,\$27 +[0-9a-f]+ <[^>]*> 001c cd3c cfc2 zero,\$28 +[0-9a-f]+ <[^>]*> 001d cd3c cfc2 zero,\$29 +[0-9a-f]+ <[^>]*> 001e cd3c cfc2 zero,\$30 +[0-9a-f]+ <[^>]*> 001f cd3c cfc2 zero,\$31 + \.\.\. diff --git a/gas/testsuite/gas/mips/micromips@cp2d.d b/gas/testsuite/gas/mips/micromips@cp2d.d new file mode 100644 index 00000000000..30af12ba19c --- /dev/null +++ b/gas/testsuite/gas/mips/micromips@cp2d.d @@ -0,0 +1,73 @@ +#objdump: -d --prefix-addresses --show-raw-insn +#name: MIPS CP2 doubleword memory access instructions +#as: -32 +#source: cp2d\.s + +.*: +file format .*mips.* + +Disassembly of section \.text: +[0-9a-f]+ <[^>]*> 2000 2000 ldc2 \$0,0\(zero\) +[0-9a-f]+ <[^>]*> 2020 2000 ldc2 \$1,0\(zero\) +[0-9a-f]+ <[^>]*> 2040 2000 ldc2 \$2,0\(zero\) +[0-9a-f]+ <[^>]*> 2060 2000 ldc2 \$3,0\(zero\) +[0-9a-f]+ <[^>]*> 2080 2000 ldc2 \$4,0\(zero\) +[0-9a-f]+ <[^>]*> 20a0 2000 ldc2 \$5,0\(zero\) +[0-9a-f]+ <[^>]*> 20c0 2000 ldc2 \$6,0\(zero\) +[0-9a-f]+ <[^>]*> 20e0 2000 ldc2 \$7,0\(zero\) +[0-9a-f]+ <[^>]*> 2100 2000 ldc2 \$8,0\(zero\) +[0-9a-f]+ <[^>]*> 2120 2000 ldc2 \$9,0\(zero\) +[0-9a-f]+ <[^>]*> 2140 2000 ldc2 \$10,0\(zero\) +[0-9a-f]+ <[^>]*> 2160 2000 ldc2 \$11,0\(zero\) +[0-9a-f]+ <[^>]*> 2180 2000 ldc2 \$12,0\(zero\) +[0-9a-f]+ <[^>]*> 21a0 2000 ldc2 \$13,0\(zero\) +[0-9a-f]+ <[^>]*> 21c0 2000 ldc2 \$14,0\(zero\) +[0-9a-f]+ <[^>]*> 21e0 2000 ldc2 \$15,0\(zero\) +[0-9a-f]+ <[^>]*> 2200 2000 ldc2 \$16,0\(zero\) +[0-9a-f]+ <[^>]*> 2220 2000 ldc2 \$17,0\(zero\) +[0-9a-f]+ <[^>]*> 2240 2000 ldc2 \$18,0\(zero\) +[0-9a-f]+ <[^>]*> 2260 2000 ldc2 \$19,0\(zero\) +[0-9a-f]+ <[^>]*> 2280 2000 ldc2 \$20,0\(zero\) +[0-9a-f]+ <[^>]*> 22a0 2000 ldc2 \$21,0\(zero\) +[0-9a-f]+ <[^>]*> 22c0 2000 ldc2 \$22,0\(zero\) +[0-9a-f]+ <[^>]*> 22e0 2000 ldc2 \$23,0\(zero\) +[0-9a-f]+ <[^>]*> 2300 2000 ldc2 \$24,0\(zero\) +[0-9a-f]+ <[^>]*> 2320 2000 ldc2 \$25,0\(zero\) +[0-9a-f]+ <[^>]*> 2340 2000 ldc2 \$26,0\(zero\) +[0-9a-f]+ <[^>]*> 2360 2000 ldc2 \$27,0\(zero\) +[0-9a-f]+ <[^>]*> 2380 2000 ldc2 \$28,0\(zero\) +[0-9a-f]+ <[^>]*> 23a0 2000 ldc2 \$29,0\(zero\) +[0-9a-f]+ <[^>]*> 23c0 2000 ldc2 \$30,0\(zero\) +[0-9a-f]+ <[^>]*> 23e0 2000 ldc2 \$31,0\(zero\) +[0-9a-f]+ <[^>]*> 2000 a000 sdc2 \$0,0\(zero\) +[0-9a-f]+ <[^>]*> 2020 a000 sdc2 \$1,0\(zero\) +[0-9a-f]+ <[^>]*> 2040 a000 sdc2 \$2,0\(zero\) +[0-9a-f]+ <[^>]*> 2060 a000 sdc2 \$3,0\(zero\) +[0-9a-f]+ <[^>]*> 2080 a000 sdc2 \$4,0\(zero\) +[0-9a-f]+ <[^>]*> 20a0 a000 sdc2 \$5,0\(zero\) +[0-9a-f]+ <[^>]*> 20c0 a000 sdc2 \$6,0\(zero\) +[0-9a-f]+ <[^>]*> 20e0 a000 sdc2 \$7,0\(zero\) +[0-9a-f]+ <[^>]*> 2100 a000 sdc2 \$8,0\(zero\) +[0-9a-f]+ <[^>]*> 2120 a000 sdc2 \$9,0\(zero\) +[0-9a-f]+ <[^>]*> 2140 a000 sdc2 \$10,0\(zero\) +[0-9a-f]+ <[^>]*> 2160 a000 sdc2 \$11,0\(zero\) +[0-9a-f]+ <[^>]*> 2180 a000 sdc2 \$12,0\(zero\) +[0-9a-f]+ <[^>]*> 21a0 a000 sdc2 \$13,0\(zero\) +[0-9a-f]+ <[^>]*> 21c0 a000 sdc2 \$14,0\(zero\) +[0-9a-f]+ <[^>]*> 21e0 a000 sdc2 \$15,0\(zero\) +[0-9a-f]+ <[^>]*> 2200 a000 sdc2 \$16,0\(zero\) +[0-9a-f]+ <[^>]*> 2220 a000 sdc2 \$17,0\(zero\) +[0-9a-f]+ <[^>]*> 2240 a000 sdc2 \$18,0\(zero\) +[0-9a-f]+ <[^>]*> 2260 a000 sdc2 \$19,0\(zero\) +[0-9a-f]+ <[^>]*> 2280 a000 sdc2 \$20,0\(zero\) +[0-9a-f]+ <[^>]*> 22a0 a000 sdc2 \$21,0\(zero\) +[0-9a-f]+ <[^>]*> 22c0 a000 sdc2 \$22,0\(zero\) +[0-9a-f]+ <[^>]*> 22e0 a000 sdc2 \$23,0\(zero\) +[0-9a-f]+ <[^>]*> 2300 a000 sdc2 \$24,0\(zero\) +[0-9a-f]+ <[^>]*> 2320 a000 sdc2 \$25,0\(zero\) +[0-9a-f]+ <[^>]*> 2340 a000 sdc2 \$26,0\(zero\) +[0-9a-f]+ <[^>]*> 2360 a000 sdc2 \$27,0\(zero\) +[0-9a-f]+ <[^>]*> 2380 a000 sdc2 \$28,0\(zero\) +[0-9a-f]+ <[^>]*> 23a0 a000 sdc2 \$29,0\(zero\) +[0-9a-f]+ <[^>]*> 23c0 a000 sdc2 \$30,0\(zero\) +[0-9a-f]+ <[^>]*> 23e0 a000 sdc2 \$31,0\(zero\) + \.\.\. diff --git a/gas/testsuite/gas/mips/micromips@cp2m.d b/gas/testsuite/gas/mips/micromips@cp2m.d new file mode 100644 index 00000000000..0ea78e25656 --- /dev/null +++ b/gas/testsuite/gas/mips/micromips@cp2m.d @@ -0,0 +1,73 @@ +#objdump: -d --prefix-addresses --show-raw-insn +#name: MIPS CP2 memory access instructions +#as: -32 +#source: cp2m.s + +.*: +file format .*mips.* + +Disassembly of section \.text: +[0-9a-f]+ <[^>]*> 2000 0000 lwc2 \$0,0\(zero\) +[0-9a-f]+ <[^>]*> 2020 0000 lwc2 \$1,0\(zero\) +[0-9a-f]+ <[^>]*> 2040 0000 lwc2 \$2,0\(zero\) +[0-9a-f]+ <[^>]*> 2060 0000 lwc2 \$3,0\(zero\) +[0-9a-f]+ <[^>]*> 2080 0000 lwc2 \$4,0\(zero\) +[0-9a-f]+ <[^>]*> 20a0 0000 lwc2 \$5,0\(zero\) +[0-9a-f]+ <[^>]*> 20c0 0000 lwc2 \$6,0\(zero\) +[0-9a-f]+ <[^>]*> 20e0 0000 lwc2 \$7,0\(zero\) +[0-9a-f]+ <[^>]*> 2100 0000 lwc2 \$8,0\(zero\) +[0-9a-f]+ <[^>]*> 2120 0000 lwc2 \$9,0\(zero\) +[0-9a-f]+ <[^>]*> 2140 0000 lwc2 \$10,0\(zero\) +[0-9a-f]+ <[^>]*> 2160 0000 lwc2 \$11,0\(zero\) +[0-9a-f]+ <[^>]*> 2180 0000 lwc2 \$12,0\(zero\) +[0-9a-f]+ <[^>]*> 21a0 0000 lwc2 \$13,0\(zero\) +[0-9a-f]+ <[^>]*> 21c0 0000 lwc2 \$14,0\(zero\) +[0-9a-f]+ <[^>]*> 21e0 0000 lwc2 \$15,0\(zero\) +[0-9a-f]+ <[^>]*> 2200 0000 lwc2 \$16,0\(zero\) +[0-9a-f]+ <[^>]*> 2220 0000 lwc2 \$17,0\(zero\) +[0-9a-f]+ <[^>]*> 2240 0000 lwc2 \$18,0\(zero\) +[0-9a-f]+ <[^>]*> 2260 0000 lwc2 \$19,0\(zero\) +[0-9a-f]+ <[^>]*> 2280 0000 lwc2 \$20,0\(zero\) +[0-9a-f]+ <[^>]*> 22a0 0000 lwc2 \$21,0\(zero\) +[0-9a-f]+ <[^>]*> 22c0 0000 lwc2 \$22,0\(zero\) +[0-9a-f]+ <[^>]*> 22e0 0000 lwc2 \$23,0\(zero\) +[0-9a-f]+ <[^>]*> 2300 0000 lwc2 \$24,0\(zero\) +[0-9a-f]+ <[^>]*> 2320 0000 lwc2 \$25,0\(zero\) +[0-9a-f]+ <[^>]*> 2340 0000 lwc2 \$26,0\(zero\) +[0-9a-f]+ <[^>]*> 2360 0000 lwc2 \$27,0\(zero\) +[0-9a-f]+ <[^>]*> 2380 0000 lwc2 \$28,0\(zero\) +[0-9a-f]+ <[^>]*> 23a0 0000 lwc2 \$29,0\(zero\) +[0-9a-f]+ <[^>]*> 23c0 0000 lwc2 \$30,0\(zero\) +[0-9a-f]+ <[^>]*> 23e0 0000 lwc2 \$31,0\(zero\) +[0-9a-f]+ <[^>]*> 2000 8000 swc2 \$0,0\(zero\) +[0-9a-f]+ <[^>]*> 2020 8000 swc2 \$1,0\(zero\) +[0-9a-f]+ <[^>]*> 2040 8000 swc2 \$2,0\(zero\) +[0-9a-f]+ <[^>]*> 2060 8000 swc2 \$3,0\(zero\) +[0-9a-f]+ <[^>]*> 2080 8000 swc2 \$4,0\(zero\) +[0-9a-f]+ <[^>]*> 20a0 8000 swc2 \$5,0\(zero\) +[0-9a-f]+ <[^>]*> 20c0 8000 swc2 \$6,0\(zero\) +[0-9a-f]+ <[^>]*> 20e0 8000 swc2 \$7,0\(zero\) +[0-9a-f]+ <[^>]*> 2100 8000 swc2 \$8,0\(zero\) +[0-9a-f]+ <[^>]*> 2120 8000 swc2 \$9,0\(zero\) +[0-9a-f]+ <[^>]*> 2140 8000 swc2 \$10,0\(zero\) +[0-9a-f]+ <[^>]*> 2160 8000 swc2 \$11,0\(zero\) +[0-9a-f]+ <[^>]*> 2180 8000 swc2 \$12,0\(zero\) +[0-9a-f]+ <[^>]*> 21a0 8000 swc2 \$13,0\(zero\) +[0-9a-f]+ <[^>]*> 21c0 8000 swc2 \$14,0\(zero\) +[0-9a-f]+ <[^>]*> 21e0 8000 swc2 \$15,0\(zero\) +[0-9a-f]+ <[^>]*> 2200 8000 swc2 \$16,0\(zero\) +[0-9a-f]+ <[^>]*> 2220 8000 swc2 \$17,0\(zero\) +[0-9a-f]+ <[^>]*> 2240 8000 swc2 \$18,0\(zero\) +[0-9a-f]+ <[^>]*> 2260 8000 swc2 \$19,0\(zero\) +[0-9a-f]+ <[^>]*> 2280 8000 swc2 \$20,0\(zero\) +[0-9a-f]+ <[^>]*> 22a0 8000 swc2 \$21,0\(zero\) +[0-9a-f]+ <[^>]*> 22c0 8000 swc2 \$22,0\(zero\) +[0-9a-f]+ <[^>]*> 22e0 8000 swc2 \$23,0\(zero\) +[0-9a-f]+ <[^>]*> 2300 8000 swc2 \$24,0\(zero\) +[0-9a-f]+ <[^>]*> 2320 8000 swc2 \$25,0\(zero\) +[0-9a-f]+ <[^>]*> 2340 8000 swc2 \$26,0\(zero\) +[0-9a-f]+ <[^>]*> 2360 8000 swc2 \$27,0\(zero\) +[0-9a-f]+ <[^>]*> 2380 8000 swc2 \$28,0\(zero\) +[0-9a-f]+ <[^>]*> 23a0 8000 swc2 \$29,0\(zero\) +[0-9a-f]+ <[^>]*> 23c0 8000 swc2 \$30,0\(zero\) +[0-9a-f]+ <[^>]*> 23e0 8000 swc2 \$31,0\(zero\) + \.\.\. diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp index 8f3c7d9b907..5bbd7617306 100644 --- a/gas/testsuite/gas/mips/mips.exp +++ b/gas/testsuite/gas/mips/mips.exp @@ -1333,6 +1333,11 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test "cp0sel-names-mips64r2" run_dump_test "cp0sel-names-sb1" + run_dump_test_arches "cp0c" [mips_arch_list_matching mips1 \ + !mips32 !micromips] + run_dump_test_arches "cp0m" [mips_arch_list_matching mips1 \ + !mips2 !micromips] + run_dump_test "cp1-names-numeric" run_dump_test "cp1-names-r3000" run_dump_test "cp1-names-r4000" \ @@ -1345,6 +1350,22 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test "cp1-names-mips64r2" run_dump_test "cp1-names-sb1" + run_dump_test_arches "cp2" [mips_arch_list_matching mips1 \ + !vr5400 !r5900 !octeon] + run_dump_test_arches "cp2-64" [mips_arch_list_matching mips3 \ + !vr5400 !r5900 !octeon] + run_dump_test_arches "cp2m" [mips_arch_list_matching mips1 \ + !vr5400 !r5900 !octeon] + run_dump_test_arches "cp2d" [mips_arch_list_matching mips2 \ + !vr5400 !r5900 !octeon] + + run_dump_test_arches "cp3" [mips_arch_list_matching mips1 \ + !mips3 !mips32r2 !micromips] + run_dump_test_arches "cp3m" [mips_arch_list_matching mips1 \ + !mips3 !mips32 !micromips] + run_dump_test_arches "cp3d" [mips_arch_list_matching mips2 \ + !mips3 !mips32 !micromips] + run_dump_test "hwr-names-numeric" run_dump_test "hwr-names-mips32r2" run_dump_test "hwr-names-mips64r2" diff --git a/gas/testsuite/gas/mips/mipsr6@cp2d.d b/gas/testsuite/gas/mips/mipsr6@cp2d.d new file mode 100644 index 00000000000..1c6191b7c8e --- /dev/null +++ b/gas/testsuite/gas/mips/mipsr6@cp2d.d @@ -0,0 +1,73 @@ +#objdump: -d --prefix-addresses --show-raw-insn +#name: MIPS CP2 doubleword memory access instructions +#as: -32 +#source: cp2d\.s + +.*: +file format .*mips.* + +Disassembly of section \.text: +[0-9a-f]+ <[^>]*> 49c00000 ldc2 \$0,0\(zero\) +[0-9a-f]+ <[^>]*> 49c10000 ldc2 \$1,0\(zero\) +[0-9a-f]+ <[^>]*> 49c20000 ldc2 \$2,0\(zero\) +[0-9a-f]+ <[^>]*> 49c30000 ldc2 \$3,0\(zero\) +[0-9a-f]+ <[^>]*> 49c40000 ldc2 \$4,0\(zero\) +[0-9a-f]+ <[^>]*> 49c50000 ldc2 \$5,0\(zero\) +[0-9a-f]+ <[^>]*> 49c60000 ldc2 \$6,0\(zero\) +[0-9a-f]+ <[^>]*> 49c70000 ldc2 \$7,0\(zero\) +[0-9a-f]+ <[^>]*> 49c80000 ldc2 \$8,0\(zero\) +[0-9a-f]+ <[^>]*> 49c90000 ldc2 \$9,0\(zero\) +[0-9a-f]+ <[^>]*> 49ca0000 ldc2 \$10,0\(zero\) +[0-9a-f]+ <[^>]*> 49cb0000 ldc2 \$11,0\(zero\) +[0-9a-f]+ <[^>]*> 49cc0000 ldc2 \$12,0\(zero\) +[0-9a-f]+ <[^>]*> 49cd0000 ldc2 \$13,0\(zero\) +[0-9a-f]+ <[^>]*> 49ce0000 ldc2 \$14,0\(zero\) +[0-9a-f]+ <[^>]*> 49cf0000 ldc2 \$15,0\(zero\) +[0-9a-f]+ <[^>]*> 49d00000 ldc2 \$16,0\(zero\) +[0-9a-f]+ <[^>]*> 49d10000 ldc2 \$17,0\(zero\) +[0-9a-f]+ <[^>]*> 49d20000 ldc2 \$18,0\(zero\) +[0-9a-f]+ <[^>]*> 49d30000 ldc2 \$19,0\(zero\) +[0-9a-f]+ <[^>]*> 49d40000 ldc2 \$20,0\(zero\) +[0-9a-f]+ <[^>]*> 49d50000 ldc2 \$21,0\(zero\) +[0-9a-f]+ <[^>]*> 49d60000 ldc2 \$22,0\(zero\) +[0-9a-f]+ <[^>]*> 49d70000 ldc2 \$23,0\(zero\) +[0-9a-f]+ <[^>]*> 49d80000 ldc2 \$24,0\(zero\) +[0-9a-f]+ <[^>]*> 49d90000 ldc2 \$25,0\(zero\) +[0-9a-f]+ <[^>]*> 49da0000 ldc2 \$26,0\(zero\) +[0-9a-f]+ <[^>]*> 49db0000 ldc2 \$27,0\(zero\) +[0-9a-f]+ <[^>]*> 49dc0000 ldc2 \$28,0\(zero\) +[0-9a-f]+ <[^>]*> 49dd0000 ldc2 \$29,0\(zero\) +[0-9a-f]+ <[^>]*> 49de0000 ldc2 \$30,0\(zero\) +[0-9a-f]+ <[^>]*> 49df0000 ldc2 \$31,0\(zero\) +[0-9a-f]+ <[^>]*> 49e00000 sdc2 \$0,0\(zero\) +[0-9a-f]+ <[^>]*> 49e10000 sdc2 \$1,0\(zero\) +[0-9a-f]+ <[^>]*> 49e20000 sdc2 \$2,0\(zero\) +[0-9a-f]+ <[^>]*> 49e30000 sdc2 \$3,0\(zero\) +[0-9a-f]+ <[^>]*> 49e40000 sdc2 \$4,0\(zero\) +[0-9a-f]+ <[^>]*> 49e50000 sdc2 \$5,0\(zero\) +[0-9a-f]+ <[^>]*> 49e60000 sdc2 \$6,0\(zero\) +[0-9a-f]+ <[^>]*> 49e70000 sdc2 \$7,0\(zero\) +[0-9a-f]+ <[^>]*> 49e80000 sdc2 \$8,0\(zero\) +[0-9a-f]+ <[^>]*> 49e90000 sdc2 \$9,0\(zero\) +[0-9a-f]+ <[^>]*> 49ea0000 sdc2 \$10,0\(zero\) +[0-9a-f]+ <[^>]*> 49eb0000 sdc2 \$11,0\(zero\) +[0-9a-f]+ <[^>]*> 49ec0000 sdc2 \$12,0\(zero\) +[0-9a-f]+ <[^>]*> 49ed0000 sdc2 \$13,0\(zero\) +[0-9a-f]+ <[^>]*> 49ee0000 sdc2 \$14,0\(zero\) +[0-9a-f]+ <[^>]*> 49ef0000 sdc2 \$15,0\(zero\) +[0-9a-f]+ <[^>]*> 49f00000 sdc2 \$16,0\(zero\) +[0-9a-f]+ <[^>]*> 49f10000 sdc2 \$17,0\(zero\) +[0-9a-f]+ <[^>]*> 49f20000 sdc2 \$18,0\(zero\) +[0-9a-f]+ <[^>]*> 49f30000 sdc2 \$19,0\(zero\) +[0-9a-f]+ <[^>]*> 49f40000 sdc2 \$20,0\(zero\) +[0-9a-f]+ <[^>]*> 49f50000 sdc2 \$21,0\(zero\) +[0-9a-f]+ <[^>]*> 49f60000 sdc2 \$22,0\(zero\) +[0-9a-f]+ <[^>]*> 49f70000 sdc2 \$23,0\(zero\) +[0-9a-f]+ <[^>]*> 49f80000 sdc2 \$24,0\(zero\) +[0-9a-f]+ <[^>]*> 49f90000 sdc2 \$25,0\(zero\) +[0-9a-f]+ <[^>]*> 49fa0000 sdc2 \$26,0\(zero\) +[0-9a-f]+ <[^>]*> 49fb0000 sdc2 \$27,0\(zero\) +[0-9a-f]+ <[^>]*> 49fc0000 sdc2 \$28,0\(zero\) +[0-9a-f]+ <[^>]*> 49fd0000 sdc2 \$29,0\(zero\) +[0-9a-f]+ <[^>]*> 49fe0000 sdc2 \$30,0\(zero\) +[0-9a-f]+ <[^>]*> 49ff0000 sdc2 \$31,0\(zero\) + \.\.\. diff --git a/gas/testsuite/gas/mips/mipsr6@cp2m.d b/gas/testsuite/gas/mips/mipsr6@cp2m.d new file mode 100644 index 00000000000..c0be32276ff --- /dev/null +++ b/gas/testsuite/gas/mips/mipsr6@cp2m.d @@ -0,0 +1,73 @@ +#objdump: -d --prefix-addresses --show-raw-insn +#name: MIPS CP2 memory access instructions +#as: -32 +#source: cp2m.s + +.*: +file format .*mips.* + +Disassembly of section \.text: +[0-9a-f]+ <[^>]*> 49400000 lwc2 \$0,0\(zero\) +[0-9a-f]+ <[^>]*> 49410000 lwc2 \$1,0\(zero\) +[0-9a-f]+ <[^>]*> 49420000 lwc2 \$2,0\(zero\) +[0-9a-f]+ <[^>]*> 49430000 lwc2 \$3,0\(zero\) +[0-9a-f]+ <[^>]*> 49440000 lwc2 \$4,0\(zero\) +[0-9a-f]+ <[^>]*> 49450000 lwc2 \$5,0\(zero\) +[0-9a-f]+ <[^>]*> 49460000 lwc2 \$6,0\(zero\) +[0-9a-f]+ <[^>]*> 49470000 lwc2 \$7,0\(zero\) +[0-9a-f]+ <[^>]*> 49480000 lwc2 \$8,0\(zero\) +[0-9a-f]+ <[^>]*> 49490000 lwc2 \$9,0\(zero\) +[0-9a-f]+ <[^>]*> 494a0000 lwc2 \$10,0\(zero\) +[0-9a-f]+ <[^>]*> 494b0000 lwc2 \$11,0\(zero\) +[0-9a-f]+ <[^>]*> 494c0000 lwc2 \$12,0\(zero\) +[0-9a-f]+ <[^>]*> 494d0000 lwc2 \$13,0\(zero\) +[0-9a-f]+ <[^>]*> 494e0000 lwc2 \$14,0\(zero\) +[0-9a-f]+ <[^>]*> 494f0000 lwc2 \$15,0\(zero\) +[0-9a-f]+ <[^>]*> 49500000 lwc2 \$16,0\(zero\) +[0-9a-f]+ <[^>]*> 49510000 lwc2 \$17,0\(zero\) +[0-9a-f]+ <[^>]*> 49520000 lwc2 \$18,0\(zero\) +[0-9a-f]+ <[^>]*> 49530000 lwc2 \$19,0\(zero\) +[0-9a-f]+ <[^>]*> 49540000 lwc2 \$20,0\(zero\) +[0-9a-f]+ <[^>]*> 49550000 lwc2 \$21,0\(zero\) +[0-9a-f]+ <[^>]*> 49560000 lwc2 \$22,0\(zero\) +[0-9a-f]+ <[^>]*> 49570000 lwc2 \$23,0\(zero\) +[0-9a-f]+ <[^>]*> 49580000 lwc2 \$24,0\(zero\) +[0-9a-f]+ <[^>]*> 49590000 lwc2 \$25,0\(zero\) +[0-9a-f]+ <[^>]*> 495a0000 lwc2 \$26,0\(zero\) +[0-9a-f]+ <[^>]*> 495b0000 lwc2 \$27,0\(zero\) +[0-9a-f]+ <[^>]*> 495c0000 lwc2 \$28,0\(zero\) +[0-9a-f]+ <[^>]*> 495d0000 lwc2 \$29,0\(zero\) +[0-9a-f]+ <[^>]*> 495e0000 lwc2 \$30,0\(zero\) +[0-9a-f]+ <[^>]*> 495f0000 lwc2 \$31,0\(zero\) +[0-9a-f]+ <[^>]*> 49600000 swc2 \$0,0\(zero\) +[0-9a-f]+ <[^>]*> 49610000 swc2 \$1,0\(zero\) +[0-9a-f]+ <[^>]*> 49620000 swc2 \$2,0\(zero\) +[0-9a-f]+ <[^>]*> 49630000 swc2 \$3,0\(zero\) +[0-9a-f]+ <[^>]*> 49640000 swc2 \$4,0\(zero\) +[0-9a-f]+ <[^>]*> 49650000 swc2 \$5,0\(zero\) +[0-9a-f]+ <[^>]*> 49660000 swc2 \$6,0\(zero\) +[0-9a-f]+ <[^>]*> 49670000 swc2 \$7,0\(zero\) +[0-9a-f]+ <[^>]*> 49680000 swc2 \$8,0\(zero\) +[0-9a-f]+ <[^>]*> 49690000 swc2 \$9,0\(zero\) +[0-9a-f]+ <[^>]*> 496a0000 swc2 \$10,0\(zero\) +[0-9a-f]+ <[^>]*> 496b0000 swc2 \$11,0\(zero\) +[0-9a-f]+ <[^>]*> 496c0000 swc2 \$12,0\(zero\) +[0-9a-f]+ <[^>]*> 496d0000 swc2 \$13,0\(zero\) +[0-9a-f]+ <[^>]*> 496e0000 swc2 \$14,0\(zero\) +[0-9a-f]+ <[^>]*> 496f0000 swc2 \$15,0\(zero\) +[0-9a-f]+ <[^>]*> 49700000 swc2 \$16,0\(zero\) +[0-9a-f]+ <[^>]*> 49710000 swc2 \$17,0\(zero\) +[0-9a-f]+ <[^>]*> 49720000 swc2 \$18,0\(zero\) +[0-9a-f]+ <[^>]*> 49730000 swc2 \$19,0\(zero\) +[0-9a-f]+ <[^>]*> 49740000 swc2 \$20,0\(zero\) +[0-9a-f]+ <[^>]*> 49750000 swc2 \$21,0\(zero\) +[0-9a-f]+ <[^>]*> 49760000 swc2 \$22,0\(zero\) +[0-9a-f]+ <[^>]*> 49770000 swc2 \$23,0\(zero\) +[0-9a-f]+ <[^>]*> 49780000 swc2 \$24,0\(zero\) +[0-9a-f]+ <[^>]*> 49790000 swc2 \$25,0\(zero\) +[0-9a-f]+ <[^>]*> 497a0000 swc2 \$26,0\(zero\) +[0-9a-f]+ <[^>]*> 497b0000 swc2 \$27,0\(zero\) +[0-9a-f]+ <[^>]*> 497c0000 swc2 \$28,0\(zero\) +[0-9a-f]+ <[^>]*> 497d0000 swc2 \$29,0\(zero\) +[0-9a-f]+ <[^>]*> 497e0000 swc2 \$30,0\(zero\) +[0-9a-f]+ <[^>]*> 497f0000 swc2 \$31,0\(zero\) + \.\.\. diff --git a/gas/testsuite/gas/mips/r3900@cp0m.d b/gas/testsuite/gas/mips/r3900@cp0m.d new file mode 100644 index 00000000000..bfd6cf694d9 --- /dev/null +++ b/gas/testsuite/gas/mips/r3900@cp0m.d @@ -0,0 +1,73 @@ +#objdump: -d --prefix-addresses --show-raw-insn +#name: MIPS CP0 memory access instructions +#as: -32 +#source: cp0m.s + +.*: +file format .*mips.* + +Disassembly of section \.text: +[0-9a-f]+ <[^>]*> c0000000 lwc0 \$0,0\(zero\) +[0-9a-f]+ <[^>]*> c0010000 lwc0 \$1,0\(zero\) +[0-9a-f]+ <[^>]*> c0020000 lwc0 \$2,0\(zero\) +[0-9a-f]+ <[^>]*> c0030000 lwc0 c0_config,0\(zero\) +[0-9a-f]+ <[^>]*> c0040000 lwc0 \$4,0\(zero\) +[0-9a-f]+ <[^>]*> c0050000 lwc0 \$5,0\(zero\) +[0-9a-f]+ <[^>]*> c0060000 lwc0 \$6,0\(zero\) +[0-9a-f]+ <[^>]*> c0070000 lwc0 c0_cache,0\(zero\) +[0-9a-f]+ <[^>]*> c0080000 lwc0 c0_badvaddr,0\(zero\) +[0-9a-f]+ <[^>]*> c0090000 lwc0 \$9,0\(zero\) +[0-9a-f]+ <[^>]*> c00a0000 lwc0 \$10,0\(zero\) +[0-9a-f]+ <[^>]*> c00b0000 lwc0 \$11,0\(zero\) +[0-9a-f]+ <[^>]*> c00c0000 lwc0 c0_sr,0\(zero\) +[0-9a-f]+ <[^>]*> c00d0000 lwc0 c0_cause,0\(zero\) +[0-9a-f]+ <[^>]*> c00e0000 lwc0 c0_epc,0\(zero\) +[0-9a-f]+ <[^>]*> c00f0000 lwc0 c0_prid,0\(zero\) +[0-9a-f]+ <[^>]*> c0100000 lwc0 c0_debug,0\(zero\) +[0-9a-f]+ <[^>]*> c0110000 lwc0 c0_depc,0\(zero\) +[0-9a-f]+ <[^>]*> c0120000 lwc0 \$18,0\(zero\) +[0-9a-f]+ <[^>]*> c0130000 lwc0 \$19,0\(zero\) +[0-9a-f]+ <[^>]*> c0140000 lwc0 \$20,0\(zero\) +[0-9a-f]+ <[^>]*> c0150000 lwc0 \$21,0\(zero\) +[0-9a-f]+ <[^>]*> c0160000 lwc0 \$22,0\(zero\) +[0-9a-f]+ <[^>]*> c0170000 lwc0 \$23,0\(zero\) +[0-9a-f]+ <[^>]*> c0180000 lwc0 \$24,0\(zero\) +[0-9a-f]+ <[^>]*> c0190000 lwc0 \$25,0\(zero\) +[0-9a-f]+ <[^>]*> c01a0000 lwc0 \$26,0\(zero\) +[0-9a-f]+ <[^>]*> c01b0000 lwc0 \$27,0\(zero\) +[0-9a-f]+ <[^>]*> c01c0000 lwc0 \$28,0\(zero\) +[0-9a-f]+ <[^>]*> c01d0000 lwc0 \$29,0\(zero\) +[0-9a-f]+ <[^>]*> c01e0000 lwc0 \$30,0\(zero\) +[0-9a-f]+ <[^>]*> c01f0000 lwc0 \$31,0\(zero\) +[0-9a-f]+ <[^>]*> e0000000 swc0 \$0,0\(zero\) +[0-9a-f]+ <[^>]*> e0010000 swc0 \$1,0\(zero\) +[0-9a-f]+ <[^>]*> e0020000 swc0 \$2,0\(zero\) +[0-9a-f]+ <[^>]*> e0030000 swc0 c0_config,0\(zero\) +[0-9a-f]+ <[^>]*> e0040000 swc0 \$4,0\(zero\) +[0-9a-f]+ <[^>]*> e0050000 swc0 \$5,0\(zero\) +[0-9a-f]+ <[^>]*> e0060000 swc0 \$6,0\(zero\) +[0-9a-f]+ <[^>]*> e0070000 swc0 c0_cache,0\(zero\) +[0-9a-f]+ <[^>]*> e0080000 swc0 c0_badvaddr,0\(zero\) +[0-9a-f]+ <[^>]*> e0090000 swc0 \$9,0\(zero\) +[0-9a-f]+ <[^>]*> e00a0000 swc0 \$10,0\(zero\) +[0-9a-f]+ <[^>]*> e00b0000 swc0 \$11,0\(zero\) +[0-9a-f]+ <[^>]*> e00c0000 swc0 c0_sr,0\(zero\) +[0-9a-f]+ <[^>]*> e00d0000 swc0 c0_cause,0\(zero\) +[0-9a-f]+ <[^>]*> e00e0000 swc0 c0_epc,0\(zero\) +[0-9a-f]+ <[^>]*> e00f0000 swc0 c0_prid,0\(zero\) +[0-9a-f]+ <[^>]*> e0100000 swc0 c0_debug,0\(zero\) +[0-9a-f]+ <[^>]*> e0110000 swc0 c0_depc,0\(zero\) +[0-9a-f]+ <[^>]*> e0120000 swc0 \$18,0\(zero\) +[0-9a-f]+ <[^>]*> e0130000 swc0 \$19,0\(zero\) +[0-9a-f]+ <[^>]*> e0140000 swc0 \$20,0\(zero\) +[0-9a-f]+ <[^>]*> e0150000 swc0 \$21,0\(zero\) +[0-9a-f]+ <[^>]*> e0160000 swc0 \$22,0\(zero\) +[0-9a-f]+ <[^>]*> e0170000 swc0 \$23,0\(zero\) +[0-9a-f]+ <[^>]*> e0180000 swc0 \$24,0\(zero\) +[0-9a-f]+ <[^>]*> e0190000 swc0 \$25,0\(zero\) +[0-9a-f]+ <[^>]*> e01a0000 swc0 \$26,0\(zero\) +[0-9a-f]+ <[^>]*> e01b0000 swc0 \$27,0\(zero\) +[0-9a-f]+ <[^>]*> e01c0000 swc0 \$28,0\(zero\) +[0-9a-f]+ <[^>]*> e01d0000 swc0 \$29,0\(zero\) +[0-9a-f]+ <[^>]*> e01e0000 swc0 \$30,0\(zero\) +[0-9a-f]+ <[^>]*> e01f0000 swc0 \$31,0\(zero\) + \.\.\. -- 2.30.2