aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@orcam.me.uk>2021-05-29 03:26:32 +0200
committerMaciej W. Rozycki <macro@orcam.me.uk>2021-05-29 03:26:32 +0200
commita3fb396f2dc57f585a49091e12ec6c588c45e681 (patch)
tree3672573d24c85cb9157ad2c5f4a8b9ceb4945fe3 /gas
parent9623cc5d1fb947daf6a0eadb4f7662d0791f7893 (diff)
downloadgdb-a3fb396f2dc57f585a49091e12ec6c588c45e681.zip
gdb-a3fb396f2dc57f585a49091e12ec6c588c45e681.tar.gz
gdb-a3fb396f2dc57f585a49091e12ec6c588c45e681.tar.bz2
MIPS/opcodes: Add TX39 CP0 register names
The TX39 core has its distinct set of CP0 registers[1], so it needs a separate table to hold their names. Add a test case accordingly. References: [1] "32-Bit RISC Microprocessor TX39 Family Core Architecture User's Manual", Toshiba, Jul. 27, 1995, Section 2.2.2 "System control coprocessor (CP0) registers", pp. 9-10 opcodes/ * mips-dis.c (mips_cp0_names_r3900): New variable. (mips_arch_choices): Use it rather than `mips_cp0_names_numeric' for "r3900". gas/ * testsuite/gas/mips/cp0-names-r3900.d: New test. * testsuite/gas/mips/mips.exp: Run it.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/testsuite/gas/mips/cp0-names-r3900.d43
-rw-r--r--gas/testsuite/gas/mips/mips.exp1
3 files changed, 49 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 3b94c5d..4d7f814 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,10 @@
2021-05-29 Maciej W. Rozycki <macro@orcam.me.uk>
+ * testsuite/gas/mips/cp0-names-r3900.d: New test.
+ * testsuite/gas/mips/mips.exp: Run it.
+
+2021-05-29 Maciej W. Rozycki <macro@orcam.me.uk>
+
* testsuite/gas/mips/micromips.d: Update disassembly according
to "dmtc1" entry fix with opcodes.
* testsuite/gas/mips/micromips-compact.d: Likewise.
diff --git a/gas/testsuite/gas/mips/cp0-names-r3900.d b/gas/testsuite/gas/mips/cp0-names-r3900.d
new file mode 100644
index 0000000..fe971a8
--- /dev/null
+++ b/gas/testsuite/gas/mips/cp0-names-r3900.d
@@ -0,0 +1,43 @@
+#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=numeric,cp0-names=r3900
+#name: MIPS CP0 register disassembly (r3900)
+#as: -32 -march=r3900
+#source: cp0-names.s
+
+# Check objdump's handling of -M cp0-names=foo options.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 40800000 mtc0 \$0,\$0
+[0-9a-f]+ <[^>]*> 40800800 mtc0 \$0,\$1
+[0-9a-f]+ <[^>]*> 40801000 mtc0 \$0,\$2
+[0-9a-f]+ <[^>]*> 40801800 mtc0 \$0,c0_config
+[0-9a-f]+ <[^>]*> 40802000 mtc0 \$0,\$4
+[0-9a-f]+ <[^>]*> 40802800 mtc0 \$0,\$5
+[0-9a-f]+ <[^>]*> 40803000 mtc0 \$0,\$6
+[0-9a-f]+ <[^>]*> 40803800 mtc0 \$0,c0_cache
+[0-9a-f]+ <[^>]*> 40804000 mtc0 \$0,c0_badvaddr
+[0-9a-f]+ <[^>]*> 40804800 mtc0 \$0,\$9
+[0-9a-f]+ <[^>]*> 40805000 mtc0 \$0,\$10
+[0-9a-f]+ <[^>]*> 40805800 mtc0 \$0,\$11
+[0-9a-f]+ <[^>]*> 40806000 mtc0 \$0,c0_sr
+[0-9a-f]+ <[^>]*> 40806800 mtc0 \$0,c0_cause
+[0-9a-f]+ <[^>]*> 40807000 mtc0 \$0,c0_epc
+[0-9a-f]+ <[^>]*> 40807800 mtc0 \$0,c0_prid
+[0-9a-f]+ <[^>]*> 40808000 mtc0 \$0,c0_debug
+[0-9a-f]+ <[^>]*> 40808800 mtc0 \$0,c0_depc
+[0-9a-f]+ <[^>]*> 40809000 mtc0 \$0,\$18
+[0-9a-f]+ <[^>]*> 40809800 mtc0 \$0,\$19
+[0-9a-f]+ <[^>]*> 4080a000 mtc0 \$0,\$20
+[0-9a-f]+ <[^>]*> 4080a800 mtc0 \$0,\$21
+[0-9a-f]+ <[^>]*> 4080b000 mtc0 \$0,\$22
+[0-9a-f]+ <[^>]*> 4080b800 mtc0 \$0,\$23
+[0-9a-f]+ <[^>]*> 4080c000 mtc0 \$0,\$24
+[0-9a-f]+ <[^>]*> 4080c800 mtc0 \$0,\$25
+[0-9a-f]+ <[^>]*> 4080d000 mtc0 \$0,\$26
+[0-9a-f]+ <[^>]*> 4080d800 mtc0 \$0,\$27
+[0-9a-f]+ <[^>]*> 4080e000 mtc0 \$0,\$28
+[0-9a-f]+ <[^>]*> 4080e800 mtc0 \$0,\$29
+[0-9a-f]+ <[^>]*> 4080f000 mtc0 \$0,\$30
+[0-9a-f]+ <[^>]*> 4080f800 mtc0 \$0,\$31
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp
index d021f05..8f3c7d9 100644
--- a/gas/testsuite/gas/mips/mips.exp
+++ b/gas/testsuite/gas/mips/mips.exp
@@ -1315,6 +1315,7 @@ if { [istarget mips*-*-vxworks*] } {
run_dump_test "cp0-names-numeric"
run_dump_test "cp0-names-r3000"
+ run_dump_test "cp0-names-r3900"
run_dump_test "cp0-names-r4000" \
{ { {name} {(r4000)} } { {objdump} {-M cp0-names=r4000} } }
run_dump_test "cp0-names-r4000" \