aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@linux-mips.org>2007-10-08 16:41:35 +0000
committerMaciej W. Rozycki <macro@linux-mips.org>2007-10-08 16:41:35 +0000
commitf409fd1e69832e0b86b1655710cec7997e1fea7a (patch)
tree10e34602cd7896047b75a31b0101715ed2c11825 /gas
parent741fe287568e6f0da4523c85a5cc5608d05b8335 (diff)
downloadfsf-binutils-gdb-f409fd1e69832e0b86b1655710cec7997e1fea7a.zip
fsf-binutils-gdb-f409fd1e69832e0b86b1655710cec7997e1fea7a.tar.gz
fsf-binutils-gdb-f409fd1e69832e0b86b1655710cec7997e1fea7a.tar.bz2
opcodes/:
* opcodes/mips-dis.c (mips_cp0_names_r3000): New definition. (mips_cp0_names_r4000): Likewise. (mips_arch_choices): Link to the above as appropriate. gas/testsuite/: * gas/mips/cp0-names-r3000.d: New test for R3000 CP0 symbolic disassembly. * gas/mips/cp0-names-r4000.d: New test for R4000/R4400 symbolic CP0 disassembly. * mips/mips.exp: Run the new tests.
Diffstat (limited to 'gas')
-rw-r--r--gas/testsuite/ChangeLog10
-rw-r--r--gas/testsuite/gas/mips/cp0-names-r3000.d43
-rw-r--r--gas/testsuite/gas/mips/cp0-names-r4000.d43
-rw-r--r--gas/testsuite/gas/mips/mips.exp5
4 files changed, 100 insertions, 1 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 9f5a021..c02f4bb 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,4 +1,12 @@
-2007-10-01 Maciej W. Rozycki <macro@linux-mips.org>
+2007-10-08 Maciej W. Rozycki <macro@linux-mips.org>
+
+ * gas/mips/cp0-names-r3000.d: New test for R3000 CP0 symbolic
+ disassembly.
+ * gas/mips/cp0-names-r4000.d: New test for R4000/R4400 symbolic
+ CP0 disassembly.
+ * mips/mips.exp: Run the new tests.
+
+2007-10-08 Maciej W. Rozycki <macro@linux-mips.org>
* gas/mips/at-1.d, gas/mips/at-2.l: New tests to check the ".set
at=REG" directive.
diff --git a/gas/testsuite/gas/mips/cp0-names-r3000.d b/gas/testsuite/gas/mips/cp0-names-r3000.d
new file mode 100644
index 0000000..e0820fc
--- /dev/null
+++ b/gas/testsuite/gas/mips/cp0-names-r3000.d
@@ -0,0 +1,43 @@
+#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=numeric,cp0-names=r3000
+#name: MIPS CP0 register disassembly (r3000)
+#as: -32 -march=r3000
+#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,c0_index
+[0-9a-f]+ <[^>]*> 40800800 mtc0 \$0,c0_random
+[0-9a-f]+ <[^>]*> 40801000 mtc0 \$0,c0_entrylo
+[0-9a-f]+ <[^>]*> 40801800 mtc0 \$0,\$3
+[0-9a-f]+ <[^>]*> 40802000 mtc0 \$0,c0_context
+[0-9a-f]+ <[^>]*> 40802800 mtc0 \$0,\$5
+[0-9a-f]+ <[^>]*> 40803000 mtc0 \$0,\$6
+[0-9a-f]+ <[^>]*> 40803800 mtc0 \$0,\$7
+[0-9a-f]+ <[^>]*> 40804000 mtc0 \$0,c0_badvaddr
+[0-9a-f]+ <[^>]*> 40804800 mtc0 \$0,\$9
+[0-9a-f]+ <[^>]*> 40805000 mtc0 \$0,c0_entryhi
+[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,\$16
+[0-9a-f]+ <[^>]*> 40808800 mtc0 \$0,\$17
+[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/cp0-names-r4000.d b/gas/testsuite/gas/mips/cp0-names-r4000.d
new file mode 100644
index 0000000..2ca4fe0
--- /dev/null
+++ b/gas/testsuite/gas/mips/cp0-names-r4000.d
@@ -0,0 +1,43 @@
+#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=numeric
+#name: MIPS CP0 register disassembly
+#as: -32 -march=r4000
+#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,c0_index
+[0-9a-f]+ <[^>]*> 40800800 mtc0 \$0,c0_random
+[0-9a-f]+ <[^>]*> 40801000 mtc0 \$0,c0_entrylo0
+[0-9a-f]+ <[^>]*> 40801800 mtc0 \$0,c0_entrylo1
+[0-9a-f]+ <[^>]*> 40802000 mtc0 \$0,c0_context
+[0-9a-f]+ <[^>]*> 40802800 mtc0 \$0,c0_pagemask
+[0-9a-f]+ <[^>]*> 40803000 mtc0 \$0,c0_wired
+[0-9a-f]+ <[^>]*> 40803800 mtc0 \$0,\$7
+[0-9a-f]+ <[^>]*> 40804000 mtc0 \$0,c0_badvaddr
+[0-9a-f]+ <[^>]*> 40804800 mtc0 \$0,c0_count
+[0-9a-f]+ <[^>]*> 40805000 mtc0 \$0,c0_entryhi
+[0-9a-f]+ <[^>]*> 40805800 mtc0 \$0,c0_compare
+[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_config
+[0-9a-f]+ <[^>]*> 40808800 mtc0 \$0,c0_lladdr
+[0-9a-f]+ <[^>]*> 40809000 mtc0 \$0,c0_watchlo
+[0-9a-f]+ <[^>]*> 40809800 mtc0 \$0,c0_watchhi
+[0-9a-f]+ <[^>]*> 4080a000 mtc0 \$0,c0_xcontext
+[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,c0_ecc
+[0-9a-f]+ <[^>]*> 4080d800 mtc0 \$0,c0_cacheerr
+[0-9a-f]+ <[^>]*> 4080e000 mtc0 \$0,c0_taglo
+[0-9a-f]+ <[^>]*> 4080e800 mtc0 \$0,c0_taghi
+[0-9a-f]+ <[^>]*> 4080f000 mtc0 \$0,c0_errorepc
+[0-9a-f]+ <[^>]*> 4080f800 mtc0 \$0,\$31
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp
index 344e62b..30efee8 100644
--- a/gas/testsuite/gas/mips/mips.exp
+++ b/gas/testsuite/gas/mips/mips.exp
@@ -696,6 +696,11 @@ if { [istarget mips*-*-vxworks*] } {
run_dump_test "fpr-names-64"
run_dump_test "cp0-names-numeric"
+ run_dump_test "cp0-names-r3000"
+ run_dump_test "cp0-names-r4000" \
+ { { {name} {(r4000)} } { {objdump} {-M cp0-names=r4000} } }
+ run_dump_test "cp0-names-r4000" \
+ { { {name} {(r4400)} } { {objdump} {-M cp0-names=r4400} } }
run_dump_test "cp0-names-mips32"
run_dump_test "cp0-names-mips32r2"
run_dump_test "cp0-names-mips64"