diff options
Diffstat (limited to 'sim/testsuite/mips/basic.exp')
-rw-r--r-- | sim/testsuite/mips/basic.exp | 72 |
1 files changed, 68 insertions, 4 deletions
diff --git a/sim/testsuite/mips/basic.exp b/sim/testsuite/mips/basic.exp index 81cce85a5b2..db297121e93 100644 --- a/sim/testsuite/mips/basic.exp +++ b/sim/testsuite/mips/basic.exp @@ -35,13 +35,61 @@ proc run_micromips_test { name requested_machs } { unset ASFLAGS_FOR_TARGET } +# Runs endian tests +proc run_endian_tests { name requested_machs } { + global ASFLAGS_FOR_TARGET + global LDFLAGS_FOR_TARGET + run_sim_test $name $requested_machs + set ASFLAGS_FOR_TARGET "-EL" + set LDFLAGS_FOR_TARGET "-EL" + run_sim_test $name $requested_machs + unset ASFLAGS_FOR_TARGET + unset LDFLAGS_FOR_TARGET +} + # Runs all specified tests proc run_sim_tests { name requested_machs { requested_micromips_machs "" } } { run_sim_test $name $requested_machs run_micromips_test $name $requested_micromips_machs } + +# Runs the combination of instructions removed in R6 through the testsuite +proc run_r6_removed_test {testfile models} { + global subdir srcdir + set fd [open "$srcdir/$subdir/r6-removed.csv" r] + set file_data [read $fd] + close $fd + set data [split $file_data "\n"] + foreach line $data { + set line_contents [split $line ","] + set mnemonic [lindex $line_contents 0] + set insn [lindex $line_contents 1] + + if {[string compare $insn ""] == 1} { + + set contents "" + append contents ".macro removed_instr\n" + append contents ".word $insn\n" + append contents "nop\n" + append contents ".endm" + + verbose -log "r6-removed test: $mnemonic\n$contents" + set file [open r6-removed.inc w] + puts $file $contents + close $file + + run_sim_test $testfile $models + } + } +} + + if {[istarget *]} { + # Used to locate the `run` program. + global arch + set arch "mips" + set dspmodels "" set mdmxmodels "" set micromipsmodels "" @@ -51,18 +99,24 @@ if {[istarget *]} { set models "sb1" set submodels "mips1 mips2 mips3 mips4 mips32 mips64" append mdmxmodels " mips64" + } elseif {[istarget mipsisa64r6*-*-elf]} { + set models "mips32r6 mips64r6" + set submodels "" } elseif {[istarget mipsisa64*-*-elf]} { set models "mips32 mips64 mips32r2 mips64r2" set submodels "mips1 mips2 mips3 mips4" append dspmodels " mips32r2 mips64r2" append mdmxmodels " mips64 mips32r2 mips64r2" } elseif {[istarget mips*-sde-elf*] || [istarget mips*-mti-elf*]} { - set models "mips32 mips64 mips32r2 mips64r2" + set models "mips32 mips64 mips32r2 mips64r2 mips32r6 mips64r6" set submodels "" - append dspmodels " mips32r2 mips64r2" - append mdmxmodels " mips64 mips32r2 mips64r2" - append micromipsmodels " mips32r2" + append dspmodels " mips32r2 mips64r2 mips32r6 mips64r6" + append mdmxmodels " mips64 mips32r2 mips64r2 mips32r6 mips64r6" + append micromipsmodels " mips32r2 mips64r2" append micromipsdspmodels " mips32r2 mips64r2" + } elseif {[istarget mipsisa32r6*-*-elf]} { + set models "mips32r6" + set submodels "" } elseif {[istarget mipsisa32*-*-elf]} { set models "mips32 mips32r2" set submodels "mips1 mips2" @@ -102,4 +156,14 @@ if {[istarget *]} { run_sim_tests mips32-dsp.s $dspmodels $micromipsdspmodels run_sim_tests mips32-dsp2.s $dspmodels $micromipsdspmodels + run_sim_test r2-fpu.s $models + + run_sim_test r6-fpu.s $models + run_sim_test r6.s $models + run_sim_test r6-forbidden.s $models + run_r6_removed_test r6-removed.s $models + run_sim_test r6-64.s $models + run_sim_test r6-branch.s $models + run_endian_tests r6-llsc-wp.s $models + run_endian_tests r6-llsc-dp.s $models } |