This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: [PATCH] Support for MIPS R12000
Chris G. Demetriou wrote:
>ica2_ts@csv.ica.uni-stuttgart.de (Thiemo Seufer) writes:
>> * config/tc-mips.c (ISA_HAS_64BIT_REGS): Add ISA_MIPS64 as 64 bit
>> architecture.
>
>This change made me go look at how it was defined previously...
>
>ISA_MIPS32 should _not_ be in that list; it should be replaced by
>ISA_MIPS64 (instead of just adding ISA_MIPS64).
Well, I haven't ever seen a MIPS32 ISA Processor, so I simply
left it alone. :-)
Fixed version is appended.
Thiemo
2001-05-16 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
/bfd/ChangeLog
* aoutx.h (aout_@var{size}_machine_type): Add MIPS r12k support.
* archures.c (bfd_mach_mips12000): Define.
* cpu-mips.c (arch_info_struct): Add MIPS r12k support.
* elf32-mips.c (_bfd_mips_elf_final_write_processing): Add MIPS r12k
support.
(_bfd_mips_elf_size_dynamic_sections): Use official bfd typedef.
/gas/ChangeLog
* config/tc-mips.c (ISA_HAS_64BIT_REGS): Add ISA_MIPS64 as 64 bit
architecture, remove erraneous ISA_MIPS32.
(md_show_usage): Add MIPS r12k support.
(mips_cpu_info_table): Add MIPS r12k support.
/include/opcode/ChangeLog
* mips.h (CPU_R12000): Define.
/ld/ChangeLog
*ldmain.c (get_emulation): Add -mips5 command line argument.
/opcodes/ChangeLog
mips-dis.c (mips_isa_type): Add MIPS r12k support.
diff -BurPX /bigdisk/dl/src/binutils-exclude src-orig/bfd/aoutx.h src/bfd/aoutx.h
--- src-orig/bfd/aoutx.h Fri Apr 13 23:55:41 2001
+++ src/bfd/aoutx.h Tue May 15 21:07:08 2001
@@ -776,6 +776,7 @@
case bfd_mach_mips4650:
case bfd_mach_mips8000:
case bfd_mach_mips10000:
+ case bfd_mach_mips12000:
case bfd_mach_mips16:
case bfd_mach_mips32:
case bfd_mach_mips32_4k:
diff -BurPX /bigdisk/dl/src/binutils-exclude src-orig/bfd/archures.c src/bfd/archures.c
--- src-orig/bfd/archures.c Wed Apr 25 23:44:48 2001
+++ src/bfd/archures.c Tue May 15 21:07:08 2001
@@ -135,6 +135,7 @@
.#define bfd_mach_mips6000 6000
.#define bfd_mach_mips8000 8000
.#define bfd_mach_mips10000 10000
+.#define bfd_mach_mips12000 12000
.#define bfd_mach_mips16 16
.#define bfd_mach_mips32 32
.#define bfd_mach_mips32_4k 3204113 {* 32, 04, octal 'K' *}
@@ -727,7 +728,7 @@
boolean
bfd_default_scan (info, string)
- const struct bfd_arch_info *info;
+ const bfd_arch_info_type *info;
const char *string;
{
const char *ptr_src;
diff -BurPX /bigdisk/dl/src/binutils-exclude src-orig/bfd/cpu-mips.c src/bfd/cpu-mips.c
--- src-orig/bfd/cpu-mips.c Wed Mar 14 17:02:12 2001
+++ src/bfd/cpu-mips.c Tue May 15 21:07:08 2001
@@ -55,6 +55,7 @@
I_mips6000,
I_mips8000,
I_mips10000,
+ I_mips12000,
I_mips16,
I_mips32,
I_mips32_4k,
@@ -81,6 +82,7 @@
N (32, 32, bfd_mach_mips6000, "mips:6000", false, NN(I_mips6000)),
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)),
N (64, 64, bfd_mach_mips16, "mips:16", false, NN(I_mips16)),
N (32, 32, bfd_mach_mips32, "mips:mips32", false, NN(I_mips32)),
N (32, 32, bfd_mach_mips32_4k,"mips:mips32-4k", false, NN(I_mips32_4k)),
diff -BurPX /bigdisk/dl/src/binutils-exclude src-orig/bfd/elf32-mips.c src/bfd/elf32-mips.c
--- src-orig/bfd/elf32-mips.c Thu May 10 00:05:49 2001
+++ src/bfd/elf32-mips.c Tue May 15 21:07:08 2001
@@ -2390,6 +2390,8 @@
break;
case bfd_mach_mips8000:
+ case bfd_mach_mips10000:
+ case bfd_mach_mips12000:
val = E_MIPS_ARCH_4;
break;
@@ -8333,7 +8335,7 @@
int i;
bfd_size_type loadable_size = 0;
bfd_size_type local_gotno;
- struct _bfd *sub;
+ bfd *sub;
BFD_ASSERT (elf_section_data (s) != NULL);
g = (struct mips_got_info *) elf_section_data (s)->tdata;
diff -BurPX /bigdisk/dl/src/binutils-exclude src-orig/gas/config/tc-mips.c src/gas/config/tc-mips.c
--- src-orig/gas/config/tc-mips.c Mon Apr 30 12:23:21 2001
+++ src/gas/config/tc-mips.c Tue May 15 21:07:08 2001
@@ -242,6 +242,6 @@
|| (ISA) == ISA_MIPS4 \
|| (ISA) == ISA_MIPS5 \
- || (ISA) == ISA_MIPS32 \
+ || (ISA) == ISA_MIPS64 \
)
/* Whether the processor uses hardware interlocks to protect
@@ -9273,6 +9274,7 @@
show (stream, "6000", &column, &first);
show (stream, "8000", &column, &first);
show (stream, "10000", &column, &first);
+ show (stream, "12000", &column, &first);
show (stream, "mips32-4k", &column, &first);
show (stream, "sb-1", &column, &first);
fputc ('\n', stream);
@@ -12037,6 +12039,12 @@
{ "10000", 0, ISA_MIPS4, CPU_R10000, },
{ "10k", 0, ISA_MIPS4, CPU_R10000, },
{ "r10k", 0, ISA_MIPS4, CPU_R10000, },
+
+ /* R12000 CPU */
+ { "R12000", 0, ISA_MIPS4, CPU_R12000, },
+ { "12000", 0, ISA_MIPS4, CPU_R12000, },
+ { "12k", 0, ISA_MIPS4, CPU_R12000, },
+ { "r12k", 0, ISA_MIPS4, CPU_R12000, },
/* VR4100 CPU */
{ "VR4100", 0, ISA_MIPS3, CPU_VR4100, },
diff -BurPX /bigdisk/dl/src/binutils-exclude src-orig/include/opcode/mips.h src/include/opcode/mips.h
--- src-orig/include/opcode/mips.h Tue May 15 16:34:45 2001
+++ src/include/opcode/mips.h Tue May 15 21:07:08 2001
@@ -358,6 +358,7 @@
#define CPU_R6000 6000
#define CPU_R8000 8000
#define CPU_R10000 10000
+#define CPU_R12000 12000
#define CPU_MIPS16 16
#define CPU_MIPS32 32
#define CPU_MIPS32_4K 3204113 /* 32, 04, octal 'K'. */
diff -BurPX /bigdisk/dl/src/binutils-exclude src-orig/ld/ldmain.c src/ld/ldmain.c
--- src-orig/ld/ldmain.c Thu May 3 05:23:56 2001
+++ src/ld/ldmain.c Tue May 15 21:07:08 2001
@@ -502,7 +502,8 @@
else if (strcmp (argv[i], "-mips1") == 0
|| strcmp (argv[i], "-mips2") == 0
|| strcmp (argv[i], "-mips3") == 0
- || strcmp (argv[i], "-mips4") == 0)
+ || strcmp (argv[i], "-mips4") == 0
+ || strcmp (argv[i], "-mips5") == 0)
{
/* FIXME: The arguments -mips1, -mips2 and -mips3 are
passed to the linker by some MIPS compilers. They
diff -BurPX /bigdisk/dl/src/binutils-exclude src-orig/opcodes/mips-dis.c src/opcodes/mips-dis.c
--- src-orig/opcodes/mips-dis.c Tue May 15 16:34:45 2001
+++ src/opcodes/mips-dis.c Tue May 15 21:15:32 2001
@@ -360,6 +360,10 @@
*cputype = CPU_R10000;
*isa = ISA_MIPS4;
break;
+ case bfd_mach_mips12000:
+ *cputype = CPU_R12000;
+ *isa = ISA_MIPS4;
+ break;
case bfd_mach_mips16:
*cputype = CPU_MIPS16;
*isa = ISA_MIPS3;