diff options
Diffstat (limited to 'sim/testsuite/lib/sim-defs.exp')
-rw-r--r-- | sim/testsuite/lib/sim-defs.exp | 37 |
1 files changed, 28 insertions, 9 deletions
diff --git a/sim/testsuite/lib/sim-defs.exp b/sim/testsuite/lib/sim-defs.exp index 3224528412c..e00b99c9c8b 100644 --- a/sim/testsuite/lib/sim-defs.exp +++ b/sim/testsuite/lib/sim-defs.exp @@ -154,8 +154,8 @@ proc sim_run { prog sim_opts prog_opts redir options } { # as[(mach-list)]: <assembler options> # ld[(mach-list)]: <linker options> # sim[(mach-list)]: <simulator options> -# output[(mach-list)]: program output pattern to match with string-match -# xerror[(mach-list)]: program is expected to return with a "failure" exit code +# output: program output pattern to match with string-match +# xerror: program is expected to return with a "failure" exit code # If `output' is not specified, the program must output "pass" if !xerror or # "fail" if xerror. # The parens in "optname()" are optional if the specification is for all machs. @@ -164,6 +164,7 @@ proc run_sim_test { name requested_machs } { global subdir srcdir global SIMFLAGS global opts + global cpu_option if [string match "*/*" $name] { set file $name @@ -177,14 +178,28 @@ proc run_sim_test { name requested_machs } { unresolved $subdir/$name return } - set opts(as) {} - set opts(ld) {} - set opts(sim) {} - set opts(output) {} - set opts(mach) {} - set opts(timeout) {} + # Clear default options + set opts(as) "" + set opts(ld) "" + set opts(sim) "" + set opts(output) "" + set opts(mach) "" + set opts(timeout) "" set opts(xerror) "no" + # Clear any machine specific options specified in a previous test case + foreach m $requested_machs { + if [info exists opts(as,$m)] { + unset opts(as,$m) + } + if [info exists opts(ld,$m)] { + unset opts(ld,$m) + } + if [info exists opts(sim,$m)] { + unset opts(sim,$m) + } + } + foreach i $opt_array { set opt_name [lindex $i 0] set opt_machs [lindex $i 1] @@ -231,7 +246,11 @@ proc run_sim_test { name requested_machs } { set opts(as,$mach) $opts(as) } - set comp_output [target_assemble $sourcefile ${name}.o "$opts(as,$mach) -I$srcdir/$subdir"] + set as_options "$opts(as,$mach) -I$srcdir/$subdir" + if [info exists cpu_option] { + set as_options "$as_options $cpu_option=$mach" + } + set comp_output [target_assemble $sourcefile ${name}.o "$as_options"] if ![string match "" $comp_output] { verbose -log "$comp_output" 3 |