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.
This commit is contained in:
Maciej W. Rozycki
2007-10-08 16:41:35 +00:00
parent 741fe28756
commit f409fd1e69
6 changed files with 133 additions and 4 deletions

View File

@ -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.

View File

@ -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
\.\.\.

View File

@ -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
\.\.\.

View File

@ -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"

View File

@ -1,3 +1,9 @@
2007-10-08 Maciej W. Rozycki <macro@linux-mips.org>
* opcodes/mips-dis.c (mips_cp0_names_r3000): New definition.
(mips_cp0_names_r4000): Likewise.
(mips_arch_choices): Link to the above as appropriate.
2007-10-08 Nick Clifton <nickc@redhat.com>
* configure.in (SHARED_DEPENDENCIES): Change non-cygwin dependency

View File

@ -124,6 +124,30 @@ static const char * const mips_cp0_names_numeric[32] =
"$24", "$25", "$26", "$27", "$28", "$29", "$30", "$31"
};
static const char * const mips_cp0_names_r3000[32] =
{
"c0_index", "c0_random", "c0_entrylo", "$3",
"c0_context", "$5", "$6", "$7",
"c0_badvaddr", "$9", "c0_entryhi", "$11",
"c0_sr", "c0_cause", "c0_epc", "c0_prid",
"$16", "$17", "$18", "$19",
"$20", "$21", "$22", "$23",
"$24", "$25", "$26", "$27",
"$28", "$29", "$30", "$31",
};
static const char * const mips_cp0_names_r4000[32] =
{
"c0_index", "c0_random", "c0_entrylo0", "c0_entrylo1",
"c0_context", "c0_pagemask", "c0_wired", "$7",
"c0_badvaddr", "c0_count", "c0_entryhi", "c0_compare",
"c0_sr", "c0_cause", "c0_epc", "c0_prid",
"c0_config", "c0_lladdr", "c0_watchlo", "c0_watchhi",
"c0_xcontext", "$21", "$22", "$23",
"$24", "$25", "c0_ecc", "c0_cacheerr",
"c0_taglo", "c0_taghi", "c0_errorepc", "$31",
};
static const char * const mips_cp0_names_mips3264[32] =
{
"c0_index", "c0_random", "c0_entrylo0", "c0_entrylo1",
@ -346,11 +370,11 @@ const struct mips_arch_choice mips_arch_choices[] =
mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric },
{ "r3000", 1, bfd_mach_mips3000, CPU_R3000, ISA_MIPS1,
mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric },
mips_cp0_names_r3000, NULL, 0, mips_hwr_names_numeric },
{ "r3900", 1, bfd_mach_mips3900, CPU_R3900, ISA_MIPS1,
mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric },
{ "r4000", 1, bfd_mach_mips4000, CPU_R4000, ISA_MIPS3,
mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric },
mips_cp0_names_r4000, NULL, 0, mips_hwr_names_numeric },
{ "r4010", 1, bfd_mach_mips4010, CPU_R4010, ISA_MIPS2,
mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric },
{ "vr4100", 1, bfd_mach_mips4100, CPU_VR4100, ISA_MIPS3,
@ -362,7 +386,7 @@ const struct mips_arch_choice mips_arch_choices[] =
{ "r4300", 1, bfd_mach_mips4300, CPU_R4300, ISA_MIPS3,
mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric },
{ "r4400", 1, bfd_mach_mips4400, CPU_R4400, ISA_MIPS3,
mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric },
mips_cp0_names_r4000, NULL, 0, mips_hwr_names_numeric },
{ "r4600", 1, bfd_mach_mips4600, CPU_R4600, ISA_MIPS3,
mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric },
{ "r4650", 1, bfd_mach_mips4650, CPU_R4650, ISA_MIPS3,