@ -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