Revert "MIPS: gas: alter 64 or 32 for mipsisa triples if march is implicit"
This reverts commit 094025a30b. It was
applied unapproved.
This commit is contained in:
+120
-160
@@ -1431,8 +1431,6 @@ struct mips_cpu_info
|
||||
int flags; /* MIPS_CPU_* flags. */
|
||||
int ase; /* Set of ASEs implemented by the CPU. */
|
||||
int isa; /* ISA level. */
|
||||
int isa_32; /* Best matched 32bit ISA level. */
|
||||
int isa_64; /* Best matched 64bit ISA level. */
|
||||
int cpu; /* CPU number (default CPU if ISA). */
|
||||
};
|
||||
|
||||
@@ -1441,7 +1439,6 @@ struct mips_cpu_info
|
||||
static const struct mips_cpu_info *mips_parse_cpu (const char *, const char *);
|
||||
static const struct mips_cpu_info *mips_cpu_info_from_isa (int);
|
||||
static const struct mips_cpu_info *mips_cpu_info_from_arch (int);
|
||||
static const struct mips_cpu_info *mips_cpu_info_from_name (const char *);
|
||||
|
||||
/* Command-line options. */
|
||||
const char *md_shortopts = "O::g::G:";
|
||||
@@ -19988,180 +19985,179 @@ s_mips_mask (int reg_type)
|
||||
static const struct mips_cpu_info mips_cpu_info_table[] =
|
||||
{
|
||||
/* Entries for generic ISAs. */
|
||||
{ "mips1", MIPS_CPU_IS_ISA, 0, ISA_MIPS1, ISA_MIPS1, ISA_MIPS3, CPU_R3000 },
|
||||
{ "mips2", MIPS_CPU_IS_ISA, 0, ISA_MIPS2, ISA_MIPS2, ISA_MIPS3, CPU_R6000 },
|
||||
{ "mips3", MIPS_CPU_IS_ISA, 0, ISA_MIPS3, ISA_MIPS2, ISA_MIPS3, CPU_R4000 },
|
||||
{ "mips4", MIPS_CPU_IS_ISA, 0, ISA_MIPS4, ISA_MIPS2, ISA_MIPS4, CPU_R8000 },
|
||||
{ "mips5", MIPS_CPU_IS_ISA, 0, ISA_MIPS5, ISA_MIPS2, ISA_MIPS5, CPU_MIPS5 },
|
||||
{ "mips32", MIPS_CPU_IS_ISA, 0, ISA_MIPS32, ISA_MIPS32, ISA_MIPS64, CPU_MIPS32 },
|
||||
{ "mips32r2", MIPS_CPU_IS_ISA, 0, ISA_MIPS32R2, ISA_MIPS32R2, ISA_MIPS64R2, CPU_MIPS32R2 },
|
||||
{ "mips32r3", MIPS_CPU_IS_ISA, 0, ISA_MIPS32R3, ISA_MIPS32R3, ISA_MIPS64R3, CPU_MIPS32R3 },
|
||||
{ "mips32r5", MIPS_CPU_IS_ISA, 0, ISA_MIPS32R5, ISA_MIPS32R5, ISA_MIPS64R5, CPU_MIPS32R5 },
|
||||
{ "mips32r6", MIPS_CPU_IS_ISA, 0, ISA_MIPS32R6, ISA_MIPS32R6, ISA_MIPS64R6, CPU_MIPS32R6 },
|
||||
{ "mips64", MIPS_CPU_IS_ISA, 0, ISA_MIPS64, ISA_MIPS32, ISA_MIPS64, CPU_MIPS64 },
|
||||
{ "mips64r2", MIPS_CPU_IS_ISA, 0, ISA_MIPS64R2, ISA_MIPS32R2, ISA_MIPS64R2, CPU_MIPS64R2 },
|
||||
{ "mips64r3", MIPS_CPU_IS_ISA, 0, ISA_MIPS64R3, ISA_MIPS32R3, ISA_MIPS64R3, CPU_MIPS64R3 },
|
||||
{ "mips64r5", MIPS_CPU_IS_ISA, 0, ISA_MIPS64R5, ISA_MIPS32R5, ISA_MIPS64R5, CPU_MIPS64R5 },
|
||||
{ "mips64r6", MIPS_CPU_IS_ISA, 0, ISA_MIPS64R6, ISA_MIPS32R6, ISA_MIPS64R6, CPU_MIPS64R6 },
|
||||
{ "mips1", MIPS_CPU_IS_ISA, 0, ISA_MIPS1, CPU_R3000 },
|
||||
{ "mips2", MIPS_CPU_IS_ISA, 0, ISA_MIPS2, CPU_R6000 },
|
||||
{ "mips3", MIPS_CPU_IS_ISA, 0, ISA_MIPS3, CPU_R4000 },
|
||||
{ "mips4", MIPS_CPU_IS_ISA, 0, ISA_MIPS4, CPU_R8000 },
|
||||
{ "mips5", MIPS_CPU_IS_ISA, 0, ISA_MIPS5, CPU_MIPS5 },
|
||||
{ "mips32", MIPS_CPU_IS_ISA, 0, ISA_MIPS32, CPU_MIPS32 },
|
||||
{ "mips32r2", MIPS_CPU_IS_ISA, 0, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "mips32r3", MIPS_CPU_IS_ISA, 0, ISA_MIPS32R3, CPU_MIPS32R3 },
|
||||
{ "mips32r5", MIPS_CPU_IS_ISA, 0, ISA_MIPS32R5, CPU_MIPS32R5 },
|
||||
{ "mips32r6", MIPS_CPU_IS_ISA, 0, ISA_MIPS32R6, CPU_MIPS32R6 },
|
||||
{ "mips64", MIPS_CPU_IS_ISA, 0, ISA_MIPS64, CPU_MIPS64 },
|
||||
{ "mips64r2", MIPS_CPU_IS_ISA, 0, ISA_MIPS64R2, CPU_MIPS64R2 },
|
||||
{ "mips64r3", MIPS_CPU_IS_ISA, 0, ISA_MIPS64R3, CPU_MIPS64R3 },
|
||||
{ "mips64r5", MIPS_CPU_IS_ISA, 0, ISA_MIPS64R5, CPU_MIPS64R5 },
|
||||
{ "mips64r6", MIPS_CPU_IS_ISA, 0, ISA_MIPS64R6, CPU_MIPS64R6 },
|
||||
|
||||
/* MIPS I */
|
||||
{ "r3000", 0, 0, ISA_MIPS1, 0, 0, CPU_R3000 },
|
||||
{ "r2000", 0, 0, ISA_MIPS1, 0, 0, CPU_R3000 },
|
||||
{ "r3900", 0, 0, ISA_MIPS1, 0, 0, CPU_R3900 },
|
||||
{ "r3000", 0, 0, ISA_MIPS1, CPU_R3000 },
|
||||
{ "r2000", 0, 0, ISA_MIPS1, CPU_R3000 },
|
||||
{ "r3900", 0, 0, ISA_MIPS1, CPU_R3900 },
|
||||
|
||||
/* MIPS II */
|
||||
{ "r6000", 0, 0, ISA_MIPS2, 0, 0, CPU_R6000 },
|
||||
{ "r6000", 0, 0, ISA_MIPS2, CPU_R6000 },
|
||||
|
||||
/* MIPS III */
|
||||
{ "r4000", 0, 0, ISA_MIPS3, 0, 0, CPU_R4000 },
|
||||
{ "r4010", 0, 0, ISA_MIPS2, 0, 0, CPU_R4010 },
|
||||
{ "vr4100", 0, 0, ISA_MIPS3, 0, 0, CPU_VR4100 },
|
||||
{ "vr4111", 0, 0, ISA_MIPS3, 0, 0, CPU_R4111 },
|
||||
{ "vr4120", 0, 0, ISA_MIPS3, 0, 0, CPU_VR4120 },
|
||||
{ "vr4130", 0, 0, ISA_MIPS3, 0, 0, CPU_VR4120 },
|
||||
{ "vr4181", 0, 0, ISA_MIPS3, 0, 0, CPU_R4111 },
|
||||
{ "vr4300", 0, 0, ISA_MIPS3, 0, 0, CPU_R4300 },
|
||||
{ "r4400", 0, 0, ISA_MIPS3, 0, 0, CPU_R4400 },
|
||||
{ "r4600", 0, 0, ISA_MIPS3, 0, 0, CPU_R4600 },
|
||||
{ "orion", 0, 0, ISA_MIPS3, 0, 0, CPU_R4600 },
|
||||
{ "r4650", 0, 0, ISA_MIPS3, 0, 0, CPU_R4650 },
|
||||
{ "r5900", 0, 0, ISA_MIPS3, 0, 0, CPU_R5900 },
|
||||
{ "r4000", 0, 0, ISA_MIPS3, CPU_R4000 },
|
||||
{ "r4010", 0, 0, ISA_MIPS2, CPU_R4010 },
|
||||
{ "vr4100", 0, 0, ISA_MIPS3, CPU_VR4100 },
|
||||
{ "vr4111", 0, 0, ISA_MIPS3, CPU_R4111 },
|
||||
{ "vr4120", 0, 0, ISA_MIPS3, CPU_VR4120 },
|
||||
{ "vr4130", 0, 0, ISA_MIPS3, CPU_VR4120 },
|
||||
{ "vr4181", 0, 0, ISA_MIPS3, CPU_R4111 },
|
||||
{ "vr4300", 0, 0, ISA_MIPS3, CPU_R4300 },
|
||||
{ "r4400", 0, 0, ISA_MIPS3, CPU_R4400 },
|
||||
{ "r4600", 0, 0, ISA_MIPS3, CPU_R4600 },
|
||||
{ "orion", 0, 0, ISA_MIPS3, CPU_R4600 },
|
||||
{ "r4650", 0, 0, ISA_MIPS3, CPU_R4650 },
|
||||
{ "r5900", 0, 0, ISA_MIPS3, CPU_R5900 },
|
||||
/* ST Microelectronics Loongson 2E and 2F cores. */
|
||||
{ "loongson2e", 0, 0, ISA_MIPS3, 0, 0, CPU_LOONGSON_2E },
|
||||
{ "loongson2f", 0, ASE_LOONGSON_MMI, ISA_MIPS3, 0, 0, CPU_LOONGSON_2F },
|
||||
{ "loongson2e", 0, 0, ISA_MIPS3, CPU_LOONGSON_2E },
|
||||
{ "loongson2f", 0, ASE_LOONGSON_MMI, ISA_MIPS3, CPU_LOONGSON_2F },
|
||||
|
||||
/* MIPS IV */
|
||||
{ "r8000", 0, 0, ISA_MIPS4, 0, 0, CPU_R8000 },
|
||||
{ "r10000", 0, 0, ISA_MIPS4, 0, 0, CPU_R10000 },
|
||||
{ "r12000", 0, 0, ISA_MIPS4, 0, 0, CPU_R12000 },
|
||||
{ "r14000", 0, 0, ISA_MIPS4, 0, 0, CPU_R14000 },
|
||||
{ "r16000", 0, 0, ISA_MIPS4, 0, 0, CPU_R16000 },
|
||||
{ "vr5000", 0, 0, ISA_MIPS4, 0, 0, CPU_R5000 },
|
||||
{ "vr5400", 0, 0, ISA_MIPS4, 0, 0, CPU_VR5400 },
|
||||
{ "vr5500", 0, 0, ISA_MIPS4, 0, 0, CPU_VR5500 },
|
||||
{ "rm5200", 0, 0, ISA_MIPS4, 0, 0, CPU_R5000 },
|
||||
{ "rm5230", 0, 0, ISA_MIPS4, 0, 0, CPU_R5000 },
|
||||
{ "rm5231", 0, 0, ISA_MIPS4, 0, 0, CPU_R5000 },
|
||||
{ "rm5261", 0, 0, ISA_MIPS4, 0, 0, CPU_R5000 },
|
||||
{ "rm5721", 0, 0, ISA_MIPS4, 0, 0, CPU_R5000 },
|
||||
{ "rm7000", 0, 0, ISA_MIPS4, 0, 0, CPU_RM7000 },
|
||||
{ "rm9000", 0, 0, ISA_MIPS4, 0, 0, CPU_RM9000 },
|
||||
{ "r8000", 0, 0, ISA_MIPS4, CPU_R8000 },
|
||||
{ "r10000", 0, 0, ISA_MIPS4, CPU_R10000 },
|
||||
{ "r12000", 0, 0, ISA_MIPS4, CPU_R12000 },
|
||||
{ "r14000", 0, 0, ISA_MIPS4, CPU_R14000 },
|
||||
{ "r16000", 0, 0, ISA_MIPS4, CPU_R16000 },
|
||||
{ "vr5000", 0, 0, ISA_MIPS4, CPU_R5000 },
|
||||
{ "vr5400", 0, 0, ISA_MIPS4, CPU_VR5400 },
|
||||
{ "vr5500", 0, 0, ISA_MIPS4, CPU_VR5500 },
|
||||
{ "rm5200", 0, 0, ISA_MIPS4, CPU_R5000 },
|
||||
{ "rm5230", 0, 0, ISA_MIPS4, CPU_R5000 },
|
||||
{ "rm5231", 0, 0, ISA_MIPS4, CPU_R5000 },
|
||||
{ "rm5261", 0, 0, ISA_MIPS4, CPU_R5000 },
|
||||
{ "rm5721", 0, 0, ISA_MIPS4, CPU_R5000 },
|
||||
{ "rm7000", 0, 0, ISA_MIPS4, CPU_RM7000 },
|
||||
{ "rm9000", 0, 0, ISA_MIPS4, CPU_RM9000 },
|
||||
|
||||
/* MIPS 32 */
|
||||
{ "4kc", 0, 0, ISA_MIPS32, 0, 0, CPU_MIPS32 },
|
||||
{ "4km", 0, 0, ISA_MIPS32, 0, 0, CPU_MIPS32 },
|
||||
{ "4kp", 0, 0, ISA_MIPS32, 0, 0, CPU_MIPS32 },
|
||||
{ "4ksc", 0, ASE_SMARTMIPS, ISA_MIPS32, 0, 0, CPU_MIPS32 },
|
||||
{ "4kc", 0, 0, ISA_MIPS32, CPU_MIPS32 },
|
||||
{ "4km", 0, 0, ISA_MIPS32, CPU_MIPS32 },
|
||||
{ "4kp", 0, 0, ISA_MIPS32, CPU_MIPS32 },
|
||||
{ "4ksc", 0, ASE_SMARTMIPS, ISA_MIPS32, CPU_MIPS32 },
|
||||
|
||||
/* MIPS 32 Release 2 */
|
||||
{ "4kec", 0, 0, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "4kem", 0, 0, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "4kep", 0, 0, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "4ksd", 0, ASE_SMARTMIPS, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "m4k", 0, 0, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "m4kp", 0, 0, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "m14k", 0, ASE_MCU, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "m14kc", 0, ASE_MCU, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "4kec", 0, 0, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "4kem", 0, 0, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "4kep", 0, 0, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "4ksd", 0, ASE_SMARTMIPS, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "m4k", 0, 0, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "m4kp", 0, 0, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "m14k", 0, ASE_MCU, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "m14kc", 0, ASE_MCU, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "m14ke", 0, ASE_DSP | ASE_DSPR2 | ASE_MCU,
|
||||
ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "m14kec", 0, ASE_DSP | ASE_DSPR2 | ASE_MCU,
|
||||
ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "24kc", 0, 0, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "24kf2_1", 0, 0, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "24kf", 0, 0, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "24kf1_1", 0, 0, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "24kc", 0, 0, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "24kf2_1", 0, 0, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "24kf", 0, 0, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "24kf1_1", 0, 0, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
/* Deprecated forms of the above. */
|
||||
{ "24kfx", 0, 0, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "24kx", 0, 0, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "24kfx", 0, 0, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "24kx", 0, 0, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
/* 24KE is a 24K with DSP ASE, other ASEs are optional. */
|
||||
{ "24kec", 0, ASE_DSP, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "24kef2_1", 0, ASE_DSP, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "24kef", 0, ASE_DSP, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "24kef1_1", 0, ASE_DSP, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "24kec", 0, ASE_DSP, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "24kef2_1", 0, ASE_DSP, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "24kef", 0, ASE_DSP, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "24kef1_1", 0, ASE_DSP, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
/* Deprecated forms of the above. */
|
||||
{ "24kefx", 0, ASE_DSP, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "24kex", 0, ASE_DSP, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "24kefx", 0, ASE_DSP, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "24kex", 0, ASE_DSP, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
/* 34K is a 24K with DSP and MT ASE, other ASEs are optional. */
|
||||
{ "34kc", 0, ASE_DSP | ASE_MT, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "34kf2_1", 0, ASE_DSP | ASE_MT, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "34kf", 0, ASE_DSP | ASE_MT, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "34kf1_1", 0, ASE_DSP | ASE_MT, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "34kc", 0, ASE_DSP | ASE_MT, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "34kf2_1", 0, ASE_DSP | ASE_MT, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "34kf", 0, ASE_DSP | ASE_MT, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "34kf1_1", 0, ASE_DSP | ASE_MT, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
/* Deprecated forms of the above. */
|
||||
{ "34kfx", 0, ASE_DSP | ASE_MT, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "34kx", 0, ASE_DSP | ASE_MT, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "34kfx", 0, ASE_DSP | ASE_MT, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "34kx", 0, ASE_DSP | ASE_MT, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
/* 34Kn is a 34kc without DSP. */
|
||||
{ "34kn", 0, ASE_MT, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "34kn", 0, ASE_MT, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
/* 74K with DSP and DSPR2 ASE, other ASEs are optional. */
|
||||
{ "74kc", 0, ASE_DSP | ASE_DSPR2, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "74kf2_1", 0, ASE_DSP | ASE_DSPR2, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "74kf", 0, ASE_DSP | ASE_DSPR2, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "74kf1_1", 0, ASE_DSP | ASE_DSPR2, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "74kf3_2", 0, ASE_DSP | ASE_DSPR2, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "74kc", 0, ASE_DSP | ASE_DSPR2, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "74kf2_1", 0, ASE_DSP | ASE_DSPR2, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "74kf", 0, ASE_DSP | ASE_DSPR2, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "74kf1_1", 0, ASE_DSP | ASE_DSPR2, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "74kf3_2", 0, ASE_DSP | ASE_DSPR2, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
/* Deprecated forms of the above. */
|
||||
{ "74kfx", 0, ASE_DSP | ASE_DSPR2, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "74kx", 0, ASE_DSP | ASE_DSPR2, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "74kfx", 0, ASE_DSP | ASE_DSPR2, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "74kx", 0, ASE_DSP | ASE_DSPR2, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
/* 1004K cores are multiprocessor versions of the 34K. */
|
||||
{ "1004kc", 0, ASE_DSP | ASE_MT, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "1004kf2_1", 0, ASE_DSP | ASE_MT, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "1004kf", 0, ASE_DSP | ASE_MT, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "1004kf1_1", 0, ASE_DSP | ASE_MT, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "1004kc", 0, ASE_DSP | ASE_MT, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "1004kf2_1", 0, ASE_DSP | ASE_MT, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "1004kf", 0, ASE_DSP | ASE_MT, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "1004kf1_1", 0, ASE_DSP | ASE_MT, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
/* interaptiv is the new name for 1004kf. */
|
||||
{ "interaptiv", 0, ASE_DSP | ASE_MT, ISA_MIPS32R2, 0, 0, CPU_MIPS32R2 },
|
||||
{ "interaptiv", 0, ASE_DSP | ASE_MT, ISA_MIPS32R2, CPU_MIPS32R2 },
|
||||
{ "interaptiv-mr2", 0,
|
||||
ASE_DSP | ASE_EVA | ASE_MT | ASE_MIPS16E2 | ASE_MIPS16E2_MT,
|
||||
ISA_MIPS32R3, 0, 0, CPU_INTERAPTIV_MR2 },
|
||||
ISA_MIPS32R3, CPU_INTERAPTIV_MR2 },
|
||||
/* M5100 family. */
|
||||
{ "m5100", 0, ASE_MCU, ISA_MIPS32R5, 0, 0, CPU_MIPS32R5 },
|
||||
{ "m5101", 0, ASE_MCU, ISA_MIPS32R5, 0, 0, CPU_MIPS32R5 },
|
||||
{ "m5100", 0, ASE_MCU, ISA_MIPS32R5, CPU_MIPS32R5 },
|
||||
{ "m5101", 0, ASE_MCU, ISA_MIPS32R5, CPU_MIPS32R5 },
|
||||
/* P5600 with EVA and Virtualization ASEs, other ASEs are optional. */
|
||||
{ "p5600", 0, ASE_VIRT | ASE_EVA | ASE_XPA,
|
||||
ISA_MIPS32R5, 0, 0, CPU_MIPS32R5 },
|
||||
{ "p5600", 0, ASE_VIRT | ASE_EVA | ASE_XPA, ISA_MIPS32R5, CPU_MIPS32R5 },
|
||||
|
||||
/* MIPS 64 */
|
||||
{ "5kc", 0, 0, ISA_MIPS64, 0, 0, CPU_MIPS64 },
|
||||
{ "5kf", 0, 0, ISA_MIPS64, 0, 0, CPU_MIPS64 },
|
||||
{ "20kc", 0, ASE_MIPS3D, ISA_MIPS64, 0, 0, CPU_MIPS64 },
|
||||
{ "25kf", 0, ASE_MIPS3D, ISA_MIPS64, 0, 0, CPU_MIPS64 },
|
||||
{ "5kc", 0, 0, ISA_MIPS64, CPU_MIPS64 },
|
||||
{ "5kf", 0, 0, ISA_MIPS64, CPU_MIPS64 },
|
||||
{ "20kc", 0, ASE_MIPS3D, ISA_MIPS64, CPU_MIPS64 },
|
||||
{ "25kf", 0, ASE_MIPS3D, ISA_MIPS64, CPU_MIPS64 },
|
||||
|
||||
/* Broadcom SB-1 CPU core. */
|
||||
{ "sb1", 0, ASE_MIPS3D | ASE_MDMX, ISA_MIPS64, 0, 0, CPU_SB1 },
|
||||
{ "sb1", 0, ASE_MIPS3D | ASE_MDMX, ISA_MIPS64, CPU_SB1 },
|
||||
/* Broadcom SB-1A CPU core. */
|
||||
{ "sb1a", 0, ASE_MIPS3D | ASE_MDMX, ISA_MIPS64, 0, 0, CPU_SB1 },
|
||||
{ "sb1a", 0, ASE_MIPS3D | ASE_MDMX, ISA_MIPS64, CPU_SB1 },
|
||||
|
||||
/* MIPS 64 Release 2. */
|
||||
/* Loongson CPU core. */
|
||||
/* -march=loongson3a is an alias of -march=gs464 for compatibility. */
|
||||
{ "loongson3a", 0, ASE_LOONGSON_MMI | ASE_LOONGSON_CAM | ASE_LOONGSON_EXT,
|
||||
ISA_MIPS64R2, 0, 0, CPU_GS464 },
|
||||
ISA_MIPS64R2, CPU_GS464 },
|
||||
{ "gs464", 0, ASE_LOONGSON_MMI | ASE_LOONGSON_CAM | ASE_LOONGSON_EXT,
|
||||
ISA_MIPS64R2, 0, 0, CPU_GS464 },
|
||||
{ "gs464e", 0, ASE_LOONGSON_MMI | ASE_LOONGSON_CAM | ASE_LOONGSON_EXT | ASE_LOONGSON_EXT2,
|
||||
ISA_MIPS64R2, 0, 0, CPU_GS464E },
|
||||
{ "gs264e", 0, ASE_LOONGSON_MMI | ASE_LOONGSON_CAM | ASE_LOONGSON_EXT | ASE_LOONGSON_EXT2 | ASE_MSA | ASE_MSA64,
|
||||
ISA_MIPS64R2, 0, 0, CPU_GS264E },
|
||||
ISA_MIPS64R2, CPU_GS464 },
|
||||
{ "gs464e", 0, ASE_LOONGSON_MMI | ASE_LOONGSON_CAM | ASE_LOONGSON_EXT
|
||||
| ASE_LOONGSON_EXT2, ISA_MIPS64R2, CPU_GS464E },
|
||||
{ "gs264e", 0, ASE_LOONGSON_MMI | ASE_LOONGSON_CAM | ASE_LOONGSON_EXT
|
||||
| ASE_LOONGSON_EXT2 | ASE_MSA | ASE_MSA64, ISA_MIPS64R2, CPU_GS264E },
|
||||
|
||||
/* Cavium Networks Octeon CPU core. */
|
||||
{ "octeon", 0, 0, ISA_MIPS64R2, 0, 0, CPU_OCTEON },
|
||||
{ "octeon+", 0, 0, ISA_MIPS64R2, 0, 0, CPU_OCTEONP },
|
||||
{ "octeon2", 0, 0, ISA_MIPS64R2, 0, 0, CPU_OCTEON2 },
|
||||
{ "octeon3", 0, ASE_VIRT | ASE_VIRT64, ISA_MIPS64R5, 0, 0, CPU_OCTEON3 },
|
||||
{ "octeon", 0, 0, ISA_MIPS64R2, CPU_OCTEON },
|
||||
{ "octeon+", 0, 0, ISA_MIPS64R2, CPU_OCTEONP },
|
||||
{ "octeon2", 0, 0, ISA_MIPS64R2, CPU_OCTEON2 },
|
||||
{ "octeon3", 0, ASE_VIRT | ASE_VIRT64, ISA_MIPS64R5, CPU_OCTEON3 },
|
||||
|
||||
/* RMI Xlr */
|
||||
{ "xlr", 0, 0, ISA_MIPS64, 0, 0, CPU_XLR },
|
||||
{ "xlr", 0, 0, ISA_MIPS64, CPU_XLR },
|
||||
|
||||
/* Broadcom XLP.
|
||||
XLP is mostly like XLR, with the prominent exception that it is
|
||||
MIPS64R2 rather than MIPS64. */
|
||||
{ "xlp", 0, 0, ISA_MIPS64R2, 0, 0, CPU_XLR },
|
||||
{ "xlp", 0, 0, ISA_MIPS64R2, CPU_XLR },
|
||||
|
||||
/* MIPS 64 Release 6. */
|
||||
{ "i6400", 0, ASE_VIRT | ASE_MSA, ISA_MIPS64R6, 0, 0, CPU_MIPS64R6},
|
||||
{ "i6400", 0, ASE_VIRT | ASE_MSA, ISA_MIPS64R6, CPU_MIPS64R6},
|
||||
{ "i6500", 0, ASE_VIRT | ASE_MSA | ASE_CRC | ASE_GINV,
|
||||
ISA_MIPS64R6, 0, 0, CPU_MIPS64R6},
|
||||
{ "p6600", 0, ASE_VIRT | ASE_MSA, ISA_MIPS64R6, 0, 0, CPU_MIPS64R6},
|
||||
ISA_MIPS64R6, CPU_MIPS64R6},
|
||||
{ "p6600", 0, ASE_VIRT | ASE_MSA, ISA_MIPS64R6, CPU_MIPS64R6},
|
||||
|
||||
/* End marker. */
|
||||
{ NULL, 0, 0, 0, 0, 0, 0 }
|
||||
{ NULL, 0, 0, 0, 0 }
|
||||
};
|
||||
|
||||
|
||||
@@ -20253,29 +20249,6 @@ mips_parse_cpu (const char *option, const char *cpu_string)
|
||||
: ISA_MIPS1);
|
||||
}
|
||||
|
||||
/* mipsisa32rN-linux-gnu refuses -n32/-64 swtiches:
|
||||
-march=mips32r6 is not compatible with the selected ABI
|
||||
mipsisa64rN-linux-gnu -o32 generates objects with 64bit CPU:
|
||||
ELF 32-bit LSB relocatable, MIPS, MIPS64 rel2 version 1 (SYSV), not stripped
|
||||
They are not good default behaviors: Let's alter the CPU info
|
||||
We treat it some like -march=from-abi */
|
||||
if (strcasecmp (option, "default CPU") == 0)
|
||||
{
|
||||
p = mips_cpu_info_from_name (cpu_string);
|
||||
if (p != NULL && (p->flags & MIPS_CPU_IS_ISA))
|
||||
{
|
||||
if (ABI_NEEDS_32BIT_REGS (mips_abi))
|
||||
return mips_cpu_info_from_isa (p->isa_32);
|
||||
|
||||
if (ABI_NEEDS_64BIT_REGS (mips_abi))
|
||||
return mips_cpu_info_from_isa (p->isa_64);
|
||||
|
||||
if (file_mips_opts.gp >= 0)
|
||||
return mips_cpu_info_from_isa (file_mips_opts.gp == 32
|
||||
? p->isa_32 : p->isa_64);
|
||||
}
|
||||
}
|
||||
|
||||
/* 'default' has traditionally been a no-op. Probably not very useful. */
|
||||
if (strcasecmp (cpu_string, "default") == 0)
|
||||
return 0;
|
||||
@@ -20315,19 +20288,6 @@ mips_cpu_info_from_arch (int arch)
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static const struct mips_cpu_info *
|
||||
mips_cpu_info_from_name (const char* name)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; mips_cpu_info_table[i].name != NULL; i++)
|
||||
if (strcasecmp (mips_cpu_info_table[i].name, name) == 0)
|
||||
return (&mips_cpu_info_table[i]);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
show (FILE *stream, const char *string, int *col_p, int *first_p)
|
||||
|
||||
@@ -556,7 +556,7 @@ if { [istarget mips*-*-vxworks*] } {
|
||||
"MIPS invalid switch to SVR4 PIC from VxWorks PIC"
|
||||
} elseif { [istarget mips*-*-*] } {
|
||||
set addr32 [expr [istarget mipstx39*-*-*] || [istarget mips-*-linux*] || [istarget mipsel-*-linux*] \
|
||||
|| [istarget mipsisa32*-*-linux*] || [istarget mipsisa32*el-*-linux*]]
|
||||
|| [istarget mipsisa32-*-linux*] || [istarget mipsisa32el-*-linux*]]
|
||||
set has_newabi [expr [istarget *-*-irix6*] || [istarget mips*-*-linux*] \
|
||||
|| [istarget mips*-sde-elf*] || [istarget mips*-mti-elf*] \
|
||||
|| [istarget mips*-img-elf*]]
|
||||
@@ -2045,7 +2045,7 @@ if { [istarget mips*-*-vxworks*] } {
|
||||
|
||||
run_dump_test "module-override"
|
||||
run_dump_test "module-defer-warn1"
|
||||
run_list_test "module-defer-warn2" "-32 -mips1"
|
||||
run_list_test "module-defer-warn2" "-32"
|
||||
|
||||
foreach testopt [list -mfp32 -mfpxx -mfp64 "-mfp64-noodd" \
|
||||
-msingle-float -msoft-float] {
|
||||
|
||||
Reference in New Issue
Block a user