# MIPS simulator instruction tests

# As gross as it is, we unset the linker script specifid by the target
# board.  The MIPS libgloss linker scripts include libgcc (and possibly
# other libraries), which the linker (used to link these tests rather
# than the compiler) can't necessarily find.
unset_currtarget_info ldscript

# Only test mips*-elf (e.g., no mips-linux), and only test if the target
# board really is a simulator (sim tests don't work on real HW).
if {[istarget mips*-elf] && [board_info target exists is_simulator]} {

    if {[istarget mipsisa64*-elf]} {
	set models "mips1 mips2 mips3 mips4 mips32 mips64"
    } elseif {[istarget mipsisa32*-elf]} {
	set models "mips1 mips2 mips32"
    } elseif {[istarget mips64*-elf]} {
	set models "mips1 mips2 mips3"
    } else {
	# fall back to just testing mips1 code.
	set models "mips1"
    }
    set cpu_option -march

    run_sim_test sanity.s $models
}
