From 5a7ea749508ca506900e38238305f70dd1cbe164 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Tue, 15 Jul 2003 07:50:39 +0000 Subject: [PATCH] include/opcode/ * mips.h (CPU_RM7000): New macro. (OPCODE_IS_MEMBER): Match CPU_RM7000 against 4650 insns. bfd/ * archures.c (bfd_mach_mips7000): New. * bfd-in2.h: Regenerated. * cpu-mips.c (arch_info_struct): Add an entry for mips:7000. * elfxx-mips.c (mips_set_isa_flags): Handle bfd_mach_mips7000. (mips_mach_extensions): Add an entry for it. opcodes/ * mips-dis.c (mips_arch_choices): Add rm7000 and rm9000 entries. gas/ * config/tc-mips.c (hilo_interlocks): True for CPU_RM7000. (mips_cpu_info_table): Add rm7000 and rm9000 entries. gas/testsuite/ * gas/mips/rm7000.[sd]: New test. * gas/mips/mips.exp: Run it. --- bfd/ChangeLog | 8 ++++++++ bfd/archures.c | 1 + bfd/bfd-in2.h | 1 + bfd/cpu-mips.c | 2 ++ bfd/elfxx-mips.c | 2 ++ gas/ChangeLog | 5 +++++ gas/config/tc-mips.c | 4 +++- gas/testsuite/ChangeLog | 5 +++++ gas/testsuite/gas/mips/mips.exp | 1 + gas/testsuite/gas/mips/rm7000.d | 14 ++++++++++++++ gas/testsuite/gas/mips/rm7000.s | 5 +++++ include/opcode/ChangeLog | 5 +++++ include/opcode/mips.h | 2 ++ opcodes/ChangeLog | 4 ++++ opcodes/mips-dis.c | 4 ++++ 15 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 gas/testsuite/gas/mips/rm7000.d create mode 100644 gas/testsuite/gas/mips/rm7000.s diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 251fb8506f7..7ed0b1e72ac 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,11 @@ +2003-07-15 Richard Sandiford + + * archures.c (bfd_mach_mips7000): New. + * bfd-in2.h: Regenerated. + * cpu-mips.c (arch_info_struct): Add an entry for mips:7000. + * elfxx-mips.c (mips_set_isa_flags): Handle bfd_mach_mips7000. + (mips_mach_extensions): Add an entry for it. + 2003-07-14 Nick Clifton * po/tr.po: Update with latest version. diff --git a/bfd/archures.c b/bfd/archures.c index d339c5e10cb..77f6a9e6e13 100644 --- a/bfd/archures.c +++ b/bfd/archures.c @@ -138,6 +138,7 @@ DESCRIPTION .#define bfd_mach_mips5400 5400 .#define bfd_mach_mips5500 5500 .#define bfd_mach_mips6000 6000 +.#define bfd_mach_mips7000 7000 .#define bfd_mach_mips8000 8000 .#define bfd_mach_mips10000 10000 .#define bfd_mach_mips12000 12000 diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index b5e3527f510..4f1dbcb34b2 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -1568,6 +1568,7 @@ enum bfd_architecture #define bfd_mach_mips5400 5400 #define bfd_mach_mips5500 5500 #define bfd_mach_mips6000 6000 +#define bfd_mach_mips7000 7000 #define bfd_mach_mips8000 8000 #define bfd_mach_mips10000 10000 #define bfd_mach_mips12000 12000 diff --git a/bfd/cpu-mips.c b/bfd/cpu-mips.c index 13355c5c5af..e64ee069c57 100644 --- a/bfd/cpu-mips.c +++ b/bfd/cpu-mips.c @@ -76,6 +76,7 @@ enum I_mips5400, I_mips5500, I_mips6000, + I_mips7000, I_mips8000, I_mips10000, I_mips12000, @@ -106,6 +107,7 @@ static const bfd_arch_info_type arch_info_struct[] = N (64, 64, bfd_mach_mips5400, "mips:5400", FALSE, NN(I_mips5400)), N (64, 64, bfd_mach_mips5500, "mips:5500", FALSE, NN(I_mips5500)), N (32, 32, bfd_mach_mips6000, "mips:6000", FALSE, NN(I_mips6000)), + N (64, 64, bfd_mach_mips7000, "mips:7000", FALSE, NN(I_mips7000)), N (64, 64, bfd_mach_mips8000, "mips:8000", FALSE, NN(I_mips8000)), N (64, 64, bfd_mach_mips10000,"mips:10000", FALSE, NN(I_mips10000)), N (64, 64, bfd_mach_mips12000,"mips:12000", FALSE, NN(I_mips12000)), diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index 1a4dbab027a..b8172238af3 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -7163,6 +7163,7 @@ mips_set_isa_flags (abfd) break; case bfd_mach_mips5000: + case bfd_mach_mips7000: case bfd_mach_mips8000: case bfd_mach_mips10000: case bfd_mach_mips12000: @@ -8945,6 +8946,7 @@ static const struct mips_mach_extension mips_mach_extensions[] = { { bfd_mach_mips5, bfd_mach_mips8000 }, { bfd_mach_mips10000, bfd_mach_mips8000 }, { bfd_mach_mips5000, bfd_mach_mips8000 }, + { bfd_mach_mips7000, bfd_mach_mips8000 }, /* VR4100 extensions. */ { bfd_mach_mips4120, bfd_mach_mips4100 }, diff --git a/gas/ChangeLog b/gas/ChangeLog index 1f02072eab6..be60c80120f 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2003-07-15 Richard Sandiford + + * config/tc-mips.c (hilo_interlocks): True for CPU_RM7000. + (mips_cpu_info_table): Add rm7000 and rm9000 entries. + 2003-07-15 Alan Modra * config/tc-v850.c (md_assemble): When no reloc, create pcrel fixups diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 0aef57526fe..0aa5a2a3da3 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -336,6 +336,7 @@ static int mips_32bitmode = 0; #define hilo_interlocks (mips_opts.arch == CPU_R4010 \ || mips_opts.arch == CPU_VR5500 \ + || mips_opts.arch == CPU_RM7000 \ || mips_opts.arch == CPU_SB1 \ ) @@ -14289,7 +14290,8 @@ static const struct mips_cpu_info mips_cpu_info_table[] = { "rm5231", 0, ISA_MIPS4, CPU_R5000 }, { "rm5261", 0, ISA_MIPS4, CPU_R5000 }, { "rm5721", 0, ISA_MIPS4, CPU_R5000 }, - { "r7000", 0, ISA_MIPS4, CPU_R5000 }, + { "rm7000", 0, ISA_MIPS4, CPU_RM7000 }, + { "rm9000", 0, ISA_MIPS4, CPU_RM7000 }, /* MIPS 32 */ { "4kc", 0, ISA_MIPS32, CPU_MIPS32 }, diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index f7470242ef6..17d0d3de8ed 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2003-07-15 Richard Sandiford + + * gas/mips/rm7000.[sd]: New test. + * gas/mips/mips.exp: Run it. + 2003-07-10 Jakub Jelinek * gas/cfi/cfi-ppc-1.s: New test. diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp index 25cfdf667ca..89af998f6ab 100644 --- a/gas/testsuite/gas/mips/mips.exp +++ b/gas/testsuite/gas/mips/mips.exp @@ -552,6 +552,7 @@ if { [istarget mips*-*-*] } then { run_dump_test "vr4122" run_dump_test "vr5400" run_dump_test "vr5500" + run_dump_test "rm7000" run_dump_test "perfcount" run_dump_test "lineno" run_dump_test "sync" diff --git a/gas/testsuite/gas/mips/rm7000.d b/gas/testsuite/gas/mips/rm7000.d new file mode 100644 index 00000000000..05df9c8c150 --- /dev/null +++ b/gas/testsuite/gas/mips/rm7000.d @@ -0,0 +1,14 @@ +#objdump: -dr -M gpr-names=numeric -m mips:7000 +#name: MIPS RM7000 +#as: -march=rm7000 + +.*: +file format .*mips.* + +Disassembly of section \.text: + +0+000 <\.text>: + * 0: 70a62002 * mul \$4,\$5,\$6 + * 4: 70850000 * mad \$4,\$5 + * 8: 70a60001 * madu \$5,\$6 + * c: 00003812 * mflo \$7 + *10: 01000011 * mthi \$8 diff --git a/gas/testsuite/gas/mips/rm7000.s b/gas/testsuite/gas/mips/rm7000.s new file mode 100644 index 00000000000..39de9d552b8 --- /dev/null +++ b/gas/testsuite/gas/mips/rm7000.s @@ -0,0 +1,5 @@ + mul $4,$5,$6 + mad $4,$5 + madu $5,$6 + mflo $7 + mthi $8 # No delay needed diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog index c03bd311ed5..11b8b6fa07a 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,3 +1,8 @@ +2003-07-15 Richard Sandiford + + * mips.h (CPU_RM7000): New macro. + (OPCODE_IS_MEMBER): Match CPU_RM7000 against 4650 insns. + 2003-07-09 Alexandre Oliva 2000-04-01 Alexandre Oliva diff --git a/include/opcode/mips.h b/include/opcode/mips.h index 476c8e3112c..65434a77853 100644 --- a/include/opcode/mips.h +++ b/include/opcode/mips.h @@ -451,6 +451,7 @@ struct mips_opcode #define CPU_VR5400 5400 #define CPU_VR5500 5500 #define CPU_R6000 6000 +#define CPU_RM7000 7000 #define CPU_R8000 8000 #define CPU_R10000 10000 #define CPU_R12000 12000 @@ -469,6 +470,7 @@ struct mips_opcode #define OPCODE_IS_MEMBER(insn, isa, cpu) \ (((insn)->membership & isa) != 0 \ || (cpu == CPU_R4650 && ((insn)->membership & INSN_4650) != 0) \ + || (cpu == CPU_RM7000 && ((insn)->membership & INSN_4650) != 0) \ || (cpu == CPU_R4010 && ((insn)->membership & INSN_4010) != 0) \ || (cpu == CPU_VR4100 && ((insn)->membership & INSN_4100) != 0) \ || (cpu == CPU_R3900 && ((insn)->membership & INSN_3900) != 0) \ diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 2568458914d..5171dcbab44 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,7 @@ +2003-07-15 Richard Sandiford + + * mips-dis.c (mips_arch_choices): Add rm7000 and rm9000 entries. + 2003-07-14 Nick Clifton * po/tr.po: Update with latest version. diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c index 20d95ab89d5..af6c445a561 100644 --- a/opcodes/mips-dis.c +++ b/opcodes/mips-dis.c @@ -347,6 +347,10 @@ const struct mips_arch_choice mips_arch_choices[] = { mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, { "r6000", 1, bfd_mach_mips6000, CPU_R6000, ISA_MIPS2, mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, + { "rm7000", 1, bfd_mach_mips7000, CPU_RM7000, ISA_MIPS4, + mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, + { "rm9000", 1, bfd_mach_mips7000, CPU_RM7000, ISA_MIPS4, + mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, { "r8000", 1, bfd_mach_mips8000, CPU_R8000, ISA_MIPS4, mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, { "r10000", 1, bfd_mach_mips10000, CPU_R10000, ISA_MIPS4, -- 2.30.2