# to be empty.
proc mips_arch_init {} {
global mips_arches
- array unset mips_arches
+
+ # Catch becuase the variable won't be set the first time through.
+ catch {unset mips_arches}
}
# mips_arch_create ARCH GPRSIZE EXTENDS PROPS AS_FLAGS OBJDUMP_FLAGS \
mips_arch_create mips64 64 mips5 { mips32 } \
{ -march=mips64 -mtune=mips64 } { -mmips:isa64 } \
{ mipsisa64-*-* mipsisa64el-*-* }
+mips_arch_create mips64r2 64 mips64 { mips32r2 ror } \
+ { -march=mips64r2 -mtune=mips64r2 } \
+ { -mmips:isa64r2 } \
+ { mipsisa64r2-*-* mipsisa64r2el-*-* }
mips_arch_create r3000 32 mips1 {} \
{ -march=r3000 -mtune=r3000 } { -mmips:3000 }
mips_arch_create r3900 32 mips1 { gpr_ilocks } \
set aout [expr [istarget *-*-bsd*] || [istarget *-*-openbsd*] ]
set ilocks [istarget mipstx39*-*-*]
set gpr_ilocks [expr [istarget mipstx39*-*-*]]
- set addr32 [expr [istarget mipstx39*-*-*]]
+ set addr32 [expr [istarget mipstx39*-*-*] || [istarget mips-*-linux*] || [istarget mipsel-*-linux*]]
set has_newabi [expr [istarget *-*-irix6*] || [istarget mips64*-*-linux*]]
if { [istarget "mips*-*-*linux*"] } then {
set tmips ""
}
if [istarget mips*el-*-*] {
- set el el
+ set el "el"
} {
set el ""
}
run_dump_test_arches "blt" [mips_arch_list_matching mips2]
run_dump_test_arches "bltu" [mips_arch_list_matching mips2]
run_dump_test_arches "branch-misc-1" [mips_arch_list_matching mips1]
- run_list_test_arches "branch-misc-2" "" [mips_arch_list_matching mips1]
+ run_list_test_arches "branch-misc-2" "-32 -non_shared" [mips_arch_list_matching mips1]
+ run_list_test_arches "branch-misc-2pic" "-32 -call_shared" [mips_arch_list_matching mips1]
if $ilocks {
run_dump_test "div-ilocks"
} else {
run_dump_test "div"
}
- run_dump_test_arches "dli" [mips_arch_list_matching mips3]
+ if { !$addr32 } {
+ run_dump_test_arches "dli" [mips_arch_list_matching mips3]
+ }
if $elf {
run_dump_test_arches "elf-jal" [mips_arch_list_matching mips1]
} else {
run_dump_test_arches "jal-empic-elf-2" [mips_arch_list_matching mips1]
run_dump_test_arches "jal-empic-elf-3" [mips_arch_list_matching mips1]
}
- run_list_test_arches "jal-range" "" [mips_arch_list_matching mips1]
+ run_list_test_arches "jal-range" "-32" [mips_arch_list_matching mips1]
+ if $has_newabi { run_dump_test "jal-newabi" }
if !$aout { run_dump_test "la" }
if $elf { run_dump_test "la-svr4pic" }
if $elf { run_dump_test "la-xgot" }
run_dump_test "mips16-jalx"
run_dump_test "mips-jalx"
}
- run_list_test "mips-no-jalx" ""
+ run_list_test "mips-no-jalx" "-32"
run_dump_test "delay"
run_dump_test "nodelay"
run_dump_test "mips4010"
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"
run_dump_test_arches "mips32" [mips_arch_list_matching mips32]
run_dump_test_arches "mips32r2" [mips_arch_list_matching mips32r2]
- run_list_test_arches "mips32r2-ill" "" [mips_arch_list_matching mips32r2]
+ run_list_test_arches "mips32r2-ill" "-32" \
+ [mips_arch_list_matching mips32r2 gpr32]
+ run_list_test_arches "mips32r2-ill-fp64" "-mabi=o64" \
+ [mips_arch_list_matching mips32r2 gpr64]
run_dump_test_arches "mips64" [mips_arch_list_matching mips64]
- run_dump_test "mips64-mips3d"
- run_dump_test_arches "mips64-mips3d-incl" [mips_arch_list_matching mips3d]
+ run_dump_test_arches "mips64r2" [mips_arch_list_matching mips64r2]
+ run_list_test_arches "mips64r2-ill" "" [mips_arch_list_matching mips64r2]
+
+ run_dump_test "set-arch"
- run_dump_test "mips64-mdmx"
- run_dump_test "sb1-ext-mdmx"
- run_dump_test "sb1-ext-ps"
+ if { !$addr32 } {
+ run_dump_test "mips64-mips3d"
+ run_dump_test_arches "mips64-mips3d-incl" [mips_arch_list_matching mips3d]
+
+ run_dump_test "mips64-mdmx"
+ run_dump_test "sb1-ext-mdmx"
+ run_dump_test "sb1-ext-ps"
+ }
run_dump_test "relax"
- run_list_test "illegal" ""
- run_list_test "baddata1" ""
+ run_list_test "illegal" "-32"
+ run_list_test "baddata1" "-32"
# LOSE: As of 2002-02-08, the next 4 tests fail for target mips-ecoff.
# It's unknown whether they _should_ pass as-is, or whether different
run_dump_test "elf_arch_mips32"
run_dump_test "elf_arch_mips32r2"
run_dump_test "elf_arch_mips64"
+ run_dump_test "elf_arch_mips64r2"
# Verify that ASE markings are handled properly.
if { !$no_mips16 } { run_dump_test "elf_ase_mips16" }
run_dump_test "elf-rel14"
if $has_newabi {
+ run_dump_test "elf-rel15"
+
run_dump_test "elf-rel-got-n32"
run_dump_test "elf-rel-xgot-n32"
run_dump_test "elf-rel-got-n64"
run_dump_test "cp0-names-mips32"
run_dump_test "cp0-names-mips32r2"
run_dump_test "cp0-names-mips64"
+ run_dump_test "cp0-names-mips64r2"
run_dump_test "cp0-names-sb1"
run_dump_test "cp0sel-names-numeric"
run_dump_test "cp0sel-names-mips32"
run_dump_test "cp0sel-names-mips32r2"
run_dump_test "cp0sel-names-mips64"
+ run_dump_test "cp0sel-names-mips64r2"
run_dump_test "cp0sel-names-sb1"
run_dump_test "hwr-names-numeric"
run_dump_test "hwr-names-mips32r2"
+ run_dump_test "hwr-names-mips64r2"
}