* config/tc-mips.c (support_64bit_objects): Define for OBJ_ELF only.
(md_longopts): Allow OPTION_MABI for ELF compilation only. RE-allow OPTION_GP32, OPTION_GP64, OPTION_FP32 for non-ELF compilation. Sort options a bit more logical. (md_parse_option): Allow OPTION_32, OPTION_N32, OPTION_N64, OPTION_MABI only for elf targets. * gas/mips/mips.exp: Change naming of some conditionals to reflect the object format they actually mean. Don't try mips-abi32 and mips-abi32-pic tests for ecoff.
This commit is contained in:
parent
2396cfb964
commit
ae948b86fe
4 changed files with 102 additions and 81 deletions
|
@ -1,3 +1,12 @@
|
|||
2001-11-12 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
|
||||
|
||||
* config/tc-mips.c (support_64bit_objects): Define for OBJ_ELF only.
|
||||
(md_longopts): Allow OPTION_MABI for ELF compilation only. RE-allow
|
||||
OPTION_GP32, OPTION_GP64, OPTION_FP32 for non-ELF compilation.
|
||||
Sort options a bit more logical.
|
||||
(md_parse_option): Allow OPTION_32, OPTION_N32, OPTION_N64,
|
||||
OPTION_MABI only for elf targets.
|
||||
|
||||
2001-11-12 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
|
||||
|
||||
* config/tc-mips.c (set_at): Add cast needed for varargs.
|
||||
|
|
|
@ -697,7 +697,9 @@ static void mips16_immed PARAMS ((char *, unsigned int, int, offsetT, boolean,
|
|||
static int my_getSmallParser PARAMS ((char **, unsigned int *, int *));
|
||||
static int my_getSmallExpression PARAMS ((expressionS *, char *));
|
||||
static void my_getExpression PARAMS ((expressionS *, char *));
|
||||
#ifdef OBJ_ELF
|
||||
static int support_64bit_objects PARAMS((void));
|
||||
#endif
|
||||
static symbolS *get_symbol PARAMS ((void));
|
||||
static void mips_align PARAMS ((int to, int fill, symbolS *label));
|
||||
static void s_align PARAMS ((int));
|
||||
|
@ -9486,6 +9488,7 @@ md_number_to_chars (buf, val, n)
|
|||
number_to_chars_littleendian (buf, val, n);
|
||||
}
|
||||
|
||||
#ifdef OBJ_ELF
|
||||
static int support_64bit_objects(void)
|
||||
{
|
||||
const char **list, **l;
|
||||
|
@ -9504,6 +9507,7 @@ static int support_64bit_objects(void)
|
|||
free (list);
|
||||
return (*l != NULL);
|
||||
}
|
||||
#endif /* OBJ_ELF */
|
||||
|
||||
CONST char *md_shortopts = "nO::g::G:";
|
||||
|
||||
|
@ -9518,83 +9522,82 @@ struct option md_longopts[] =
|
|||
{"mips3", no_argument, NULL, OPTION_MIPS3},
|
||||
#define OPTION_MIPS4 (OPTION_MD_BASE + 4)
|
||||
{"mips4", no_argument, NULL, OPTION_MIPS4},
|
||||
#define OPTION_MCPU (OPTION_MD_BASE + 5)
|
||||
{"mcpu", required_argument, NULL, OPTION_MCPU},
|
||||
#define OPTION_MEMBEDDED_PIC (OPTION_MD_BASE + 6)
|
||||
#define OPTION_MIPS5 (OPTION_MD_BASE + 5)
|
||||
{"mips5", no_argument, NULL, OPTION_MIPS5},
|
||||
#define OPTION_MIPS32 (OPTION_MD_BASE + 6)
|
||||
{"mips32", no_argument, NULL, OPTION_MIPS32},
|
||||
#define OPTION_MIPS64 (OPTION_MD_BASE + 7)
|
||||
{"mips64", no_argument, NULL, OPTION_MIPS64},
|
||||
#define OPTION_MEMBEDDED_PIC (OPTION_MD_BASE + 8)
|
||||
{"membedded-pic", no_argument, NULL, OPTION_MEMBEDDED_PIC},
|
||||
#define OPTION_TRAP (OPTION_MD_BASE + 7)
|
||||
#define OPTION_TRAP (OPTION_MD_BASE + 9)
|
||||
{"trap", no_argument, NULL, OPTION_TRAP},
|
||||
{"no-break", no_argument, NULL, OPTION_TRAP},
|
||||
#define OPTION_BREAK (OPTION_MD_BASE + 8)
|
||||
#define OPTION_BREAK (OPTION_MD_BASE + 10)
|
||||
{"break", no_argument, NULL, OPTION_BREAK},
|
||||
{"no-trap", no_argument, NULL, OPTION_BREAK},
|
||||
#define OPTION_EB (OPTION_MD_BASE + 9)
|
||||
#define OPTION_EB (OPTION_MD_BASE + 11)
|
||||
{"EB", no_argument, NULL, OPTION_EB},
|
||||
#define OPTION_EL (OPTION_MD_BASE + 10)
|
||||
#define OPTION_EL (OPTION_MD_BASE + 12)
|
||||
{"EL", no_argument, NULL, OPTION_EL},
|
||||
#define OPTION_M4650 (OPTION_MD_BASE + 11)
|
||||
{"m4650", no_argument, NULL, OPTION_M4650},
|
||||
#define OPTION_NO_M4650 (OPTION_MD_BASE + 12)
|
||||
{"no-m4650", no_argument, NULL, OPTION_NO_M4650},
|
||||
#define OPTION_M4010 (OPTION_MD_BASE + 13)
|
||||
{"m4010", no_argument, NULL, OPTION_M4010},
|
||||
#define OPTION_NO_M4010 (OPTION_MD_BASE + 14)
|
||||
{"no-m4010", no_argument, NULL, OPTION_NO_M4010},
|
||||
#define OPTION_M4100 (OPTION_MD_BASE + 15)
|
||||
{"m4100", no_argument, NULL, OPTION_M4100},
|
||||
#define OPTION_NO_M4100 (OPTION_MD_BASE + 16)
|
||||
{"no-m4100", no_argument, NULL, OPTION_NO_M4100},
|
||||
#define OPTION_MIPS16 (OPTION_MD_BASE + 17)
|
||||
#define OPTION_MIPS16 (OPTION_MD_BASE + 13)
|
||||
{"mips16", no_argument, NULL, OPTION_MIPS16},
|
||||
#define OPTION_NO_MIPS16 (OPTION_MD_BASE + 18)
|
||||
#define OPTION_NO_MIPS16 (OPTION_MD_BASE + 14)
|
||||
{"no-mips16", no_argument, NULL, OPTION_NO_MIPS16},
|
||||
#define OPTION_M3900 (OPTION_MD_BASE + 19)
|
||||
{"m3900", no_argument, NULL, OPTION_M3900},
|
||||
#define OPTION_NO_M3900 (OPTION_MD_BASE + 20)
|
||||
{"no-m3900", no_argument, NULL, OPTION_NO_M3900},
|
||||
#define OPTION_MABI (OPTION_MD_BASE + 21)
|
||||
{"mabi", required_argument, NULL, OPTION_MABI},
|
||||
#define OPTION_M7000_HILO_FIX (OPTION_MD_BASE + 22)
|
||||
#define OPTION_M7000_HILO_FIX (OPTION_MD_BASE + 15)
|
||||
{"mfix7000", no_argument, NULL, OPTION_M7000_HILO_FIX},
|
||||
#define OPTION_NO_M7000_HILO_FIX (OPTION_MD_BASE + 23)
|
||||
#define OPTION_NO_M7000_HILO_FIX (OPTION_MD_BASE + 16)
|
||||
{"no-fix-7000", no_argument, NULL, OPTION_NO_M7000_HILO_FIX},
|
||||
#define OPTION_GP32 (OPTION_MD_BASE + 24)
|
||||
{"mgp32", no_argument, NULL, OPTION_GP32},
|
||||
#define OPTION_GP64 (OPTION_MD_BASE + 25)
|
||||
{"mgp64", no_argument, NULL, OPTION_GP64},
|
||||
#define OPTION_CONSTRUCT_FLOATS (OPTION_MD_BASE + 26)
|
||||
{"construct-floats", no_argument, NULL, OPTION_CONSTRUCT_FLOATS},
|
||||
#define OPTION_NO_CONSTRUCT_FLOATS (OPTION_MD_BASE + 27)
|
||||
{"no-construct-floats", no_argument, NULL, OPTION_NO_CONSTRUCT_FLOATS},
|
||||
#define OPTION_MIPS32 (OPTION_MD_BASE + 28)
|
||||
{"mips32", no_argument, NULL, OPTION_MIPS32},
|
||||
#define OPTION_MIPS5 (OPTION_MD_BASE + 29)
|
||||
{"mips5", no_argument, NULL, OPTION_MIPS5},
|
||||
#define OPTION_MIPS64 (OPTION_MD_BASE + 30)
|
||||
{"mips64", no_argument, NULL, OPTION_MIPS64},
|
||||
#define OPTION_MARCH (OPTION_MD_BASE + 31)
|
||||
{"march", required_argument, NULL, OPTION_MARCH},
|
||||
#define OPTION_MTUNE (OPTION_MD_BASE + 32)
|
||||
{"mtune", required_argument, NULL, OPTION_MTUNE},
|
||||
#define OPTION_FP32 (OPTION_MD_BASE + 33)
|
||||
#define OPTION_FP32 (OPTION_MD_BASE + 17)
|
||||
{"mfp32", no_argument, NULL, OPTION_FP32},
|
||||
#define OPTION_GP32 (OPTION_MD_BASE + 18)
|
||||
{"mgp32", no_argument, NULL, OPTION_GP32},
|
||||
#define OPTION_CONSTRUCT_FLOATS (OPTION_MD_BASE + 19)
|
||||
{"construct-floats", no_argument, NULL, OPTION_CONSTRUCT_FLOATS},
|
||||
#define OPTION_NO_CONSTRUCT_FLOATS (OPTION_MD_BASE + 20)
|
||||
{"no-construct-floats", no_argument, NULL, OPTION_NO_CONSTRUCT_FLOATS},
|
||||
#define OPTION_MARCH (OPTION_MD_BASE + 21)
|
||||
{"march", required_argument, NULL, OPTION_MARCH},
|
||||
#define OPTION_MTUNE (OPTION_MD_BASE + 22)
|
||||
{"mtune", required_argument, NULL, OPTION_MTUNE},
|
||||
#define OPTION_MCPU (OPTION_MD_BASE + 23)
|
||||
{"mcpu", required_argument, NULL, OPTION_MCPU},
|
||||
#define OPTION_M4650 (OPTION_MD_BASE + 24)
|
||||
{"m4650", no_argument, NULL, OPTION_M4650},
|
||||
#define OPTION_NO_M4650 (OPTION_MD_BASE + 25)
|
||||
{"no-m4650", no_argument, NULL, OPTION_NO_M4650},
|
||||
#define OPTION_M4010 (OPTION_MD_BASE + 26)
|
||||
{"m4010", no_argument, NULL, OPTION_M4010},
|
||||
#define OPTION_NO_M4010 (OPTION_MD_BASE + 27)
|
||||
{"no-m4010", no_argument, NULL, OPTION_NO_M4010},
|
||||
#define OPTION_M4100 (OPTION_MD_BASE + 28)
|
||||
{"m4100", no_argument, NULL, OPTION_M4100},
|
||||
#define OPTION_NO_M4100 (OPTION_MD_BASE + 29)
|
||||
{"no-m4100", no_argument, NULL, OPTION_NO_M4100},
|
||||
#define OPTION_M3900 (OPTION_MD_BASE + 30)
|
||||
{"m3900", no_argument, NULL, OPTION_M3900},
|
||||
#define OPTION_NO_M3900 (OPTION_MD_BASE + 31)
|
||||
{"no-m3900", no_argument, NULL, OPTION_NO_M3900},
|
||||
#define OPTION_GP64 (OPTION_MD_BASE + 32)
|
||||
{"mgp64", no_argument, NULL, OPTION_GP64},
|
||||
#ifdef OBJ_ELF
|
||||
#define OPTION_ELF_BASE (OPTION_MD_BASE + 35)
|
||||
#define OPTION_ELF_BASE (OPTION_MD_BASE + 33)
|
||||
#define OPTION_CALL_SHARED (OPTION_ELF_BASE + 0)
|
||||
#define OPTION_NON_SHARED (OPTION_ELF_BASE + 1)
|
||||
#define OPTION_XGOT (OPTION_ELF_BASE + 2)
|
||||
#define OPTION_32 (OPTION_ELF_BASE + 3)
|
||||
#define OPTION_N32 (OPTION_ELF_BASE + 4)
|
||||
#define OPTION_64 (OPTION_ELF_BASE + 5)
|
||||
{"KPIC", no_argument, NULL, OPTION_CALL_SHARED},
|
||||
{"call_shared", no_argument, NULL, OPTION_CALL_SHARED},
|
||||
#define OPTION_NON_SHARED (OPTION_ELF_BASE + 1)
|
||||
{"non_shared", no_argument, NULL, OPTION_NON_SHARED},
|
||||
#define OPTION_XGOT (OPTION_ELF_BASE + 2)
|
||||
{"xgot", no_argument, NULL, OPTION_XGOT},
|
||||
#define OPTION_MABI (OPTION_ELF_BASE + 3)
|
||||
{"mabi", required_argument, NULL, OPTION_MABI},
|
||||
#define OPTION_32 (OPTION_ELF_BASE + 4)
|
||||
{"32", no_argument, NULL, OPTION_32},
|
||||
#define OPTION_N32 (OPTION_ELF_BASE + 5)
|
||||
{"n32", no_argument, NULL, OPTION_N32},
|
||||
#define OPTION_64 (OPTION_ELF_BASE + 6)
|
||||
{"64", no_argument, NULL, OPTION_64},
|
||||
#endif
|
||||
|
||||
#endif /* OBJ_ELF */
|
||||
{NULL, no_argument, NULL, 0}
|
||||
};
|
||||
size_t md_longopts_size = sizeof (md_longopts);
|
||||
|
@ -9871,6 +9874,7 @@ md_parse_option (c, arg)
|
|||
if (! support_64bit_objects())
|
||||
as_fatal (_("No compiled in support for 64 bit object file format"));
|
||||
break;
|
||||
#endif /* OBJ_ELF */
|
||||
|
||||
case OPTION_GP32:
|
||||
file_mips_gp32 = 1;
|
||||
|
@ -9890,6 +9894,7 @@ md_parse_option (c, arg)
|
|||
mips_opts.abi = NO_ABI;
|
||||
break;
|
||||
|
||||
#ifdef OBJ_ELF
|
||||
case OPTION_MABI:
|
||||
if (strcmp (arg, "32") == 0)
|
||||
mips_opts.abi = O32_ABI;
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2001-11-12 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
|
||||
|
||||
* gas/mips/mips.exp: Change naming of some conditionals to reflect
|
||||
the object format they actually mean. Don't try mips-abi32 and
|
||||
mips-abi32-pic tests for ecoff.
|
||||
|
||||
2001-11-11 Hans-Peter Nilsson <hp@bitrange.com>
|
||||
|
||||
* gas/mmix/bspec-2.d, gas/mmix/bspec-1.d, gas/mmix/comment-1.d:
|
||||
|
|
|
@ -17,8 +17,8 @@ proc run_list_test { name opts } {
|
|||
|
||||
if { [istarget mips*-*-*] } then {
|
||||
set no_mips16 0
|
||||
set svr4pic [expr [istarget *-*-elf*] || [istarget *-*-irix5*] || [istarget *-*-irix6* ] || [istarget *-*-linux*] || [istarget *-*-netbsd*] ]
|
||||
set empic [expr [istarget *-*-ecoff*] || [istarget *-*-ultrix*] || [istarget *-*-irix\[1-4\]*] ]
|
||||
set elf [expr [istarget *-*-elf*] || [istarget *-*-irix5*] || [istarget *-*-irix6* ] || [istarget *-*-linux*] || [istarget *-*-netbsd*] ]
|
||||
set ecoff [expr [istarget *-*-ecoff*] || [istarget *-*-ultrix*] || [istarget *-*-irix\[1-4\]*] ]
|
||||
set aout [expr [istarget *-*-bsd*] || [istarget *-*-openbsd*] ]
|
||||
set ilocks [istarget mipstx39*-*-*]
|
||||
set gpr_ilocks [expr [istarget mipstx39*-*-*]]
|
||||
|
@ -47,27 +47,27 @@ if { [istarget mips*-*-*] } then {
|
|||
run_dump_test "bltu"
|
||||
if !$ilocks { run_dump_test "div" } else { run_dump_test "div-ilocks" }
|
||||
run_dump_test "dli"
|
||||
if $svr4pic {
|
||||
if $elf {
|
||||
run_dump_test "elf-jal"
|
||||
} else {
|
||||
run_dump_test "jal"
|
||||
}
|
||||
if $svr4pic { run_dump_test "jal-svr4pic" }
|
||||
if $svr4pic { run_dump_test "jal-xgot" }
|
||||
if $empic { run_dump_test "jal-empic" }
|
||||
if $elf { run_dump_test "jal-svr4pic" }
|
||||
if $elf { run_dump_test "jal-xgot" }
|
||||
if $ecoff { run_dump_test "jal-empic" }
|
||||
if !$aout { run_dump_test "la" }
|
||||
if $svr4pic { run_dump_test "la-svr4pic" }
|
||||
if $svr4pic { run_dump_test "la-xgot" }
|
||||
if $empic { run_dump_test "la-empic" }
|
||||
if $elf { run_dump_test "la-svr4pic" }
|
||||
if $elf { run_dump_test "la-xgot" }
|
||||
if $ecoff { run_dump_test "la-empic" }
|
||||
if !$aout { run_dump_test "lb" }
|
||||
if $svr4pic { run_dump_test "lb-svr4pic" }
|
||||
if $svr4pic {
|
||||
if $elf { run_dump_test "lb-svr4pic" }
|
||||
if $elf {
|
||||
# Both versions specify the cpu, so we can run both regardless of
|
||||
# the interlocking in the configured default cpu.
|
||||
run_dump_test "lb-xgot"
|
||||
run_dump_test "lb-xgot-ilocks"
|
||||
}
|
||||
if $empic { run_dump_test "lb-empic" }
|
||||
if $ecoff { run_dump_test "lb-empic" }
|
||||
if !$aout {
|
||||
if !$gpr_ilocks {
|
||||
run_dump_test "ld"
|
||||
|
@ -79,23 +79,23 @@ if { [istarget mips*-*-*] } then {
|
|||
}
|
||||
}
|
||||
}
|
||||
if $svr4pic { run_dump_test "ld-svr4pic" }
|
||||
if $svr4pic { run_dump_test "ld-xgot" }
|
||||
if $empic { run_dump_test "ld-empic" }
|
||||
if $elf { run_dump_test "ld-svr4pic" }
|
||||
if $elf { run_dump_test "ld-xgot" }
|
||||
if $ecoff { run_dump_test "ld-empic" }
|
||||
run_dump_test "li"
|
||||
if !$aout { run_dump_test "lifloat" }
|
||||
if $svr4pic { run_dump_test "lif-svr4pic" }
|
||||
if $svr4pic { run_dump_test "lif-xgot" }
|
||||
if $empic { run_dump_test "lif-empic" }
|
||||
if $elf { run_dump_test "lif-svr4pic" }
|
||||
if $elf { run_dump_test "lif-xgot" }
|
||||
if $ecoff { run_dump_test "lif-empic" }
|
||||
run_dump_test "mips4"
|
||||
if !$ilocks { run_dump_test "mul" } else { run_dump_test "mul-ilocks" }
|
||||
run_dump_test "rol"
|
||||
if !$aout { run_dump_test "sb" }
|
||||
run_dump_test "trunc"
|
||||
if !$aout { run_dump_test "ulh" }
|
||||
if $svr4pic { run_dump_test "ulh-svr4pic" }
|
||||
if $svr4pic { run_dump_test "ulh-xgot" }
|
||||
if $empic { run_dump_test "ulh-empic" }
|
||||
if $elf { run_dump_test "ulh-svr4pic" }
|
||||
if $elf { run_dump_test "ulh-xgot" }
|
||||
if $ecoff { run_dump_test "ulh-empic" }
|
||||
if !$aout {
|
||||
run_dump_test "ulw"
|
||||
run_dump_test "uld"
|
||||
|
@ -105,7 +105,7 @@ if { [istarget mips*-*-*] } then {
|
|||
}
|
||||
# The mips16 test can only be run on ELF, because only ELF
|
||||
# supports the necessary mips16 reloc.
|
||||
if { $svr4pic && !$no_mips16 } { run_dump_test "mips16" }
|
||||
if { $elf && !$no_mips16 } { run_dump_test "mips16" }
|
||||
run_dump_test "delay"
|
||||
run_dump_test "nodelay"
|
||||
run_dump_test "mips4010"
|
||||
|
@ -130,9 +130,8 @@ if { [istarget mips*-*-*] } then {
|
|||
run_dump_test "mips-gp32-fp64"
|
||||
run_dump_test "mips-gp64-fp32"
|
||||
run_dump_test "mips-gp64-fp64"
|
||||
run_dump_test "mips-abi32"
|
||||
|
||||
if $svr4pic {
|
||||
if $elf {
|
||||
# Make sure that -mcpu=FOO and -mFOO are equivalent. Assemble a file
|
||||
# containing 4650-specific instructions with -m4650 and -mcpu=4650,
|
||||
# and verify that they're the same. Specifically, we're checking
|
||||
|
@ -148,6 +147,8 @@ if { [istarget mips*-*-*] } then {
|
|||
run_dump_test "mips-gp32-fp64-pic"
|
||||
run_dump_test "mips-gp64-fp32-pic"
|
||||
run_dump_test "mips-gp64-fp64-pic"
|
||||
|
||||
run_dump_test "mips-abi32"
|
||||
run_dump_test "mips-abi32-pic"
|
||||
|
||||
run_dump_test "elf${el}-rel"
|
||||
|
|
Loading…
Reference in a new issue