summaryrefslogtreecommitdiff
path: root/sim/testsuite/mips/basic.exp
diff options
context:
space:
mode:
Diffstat (limited to 'sim/testsuite/mips/basic.exp')
-rw-r--r--sim/testsuite/mips/basic.exp72
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
}