# v850 simulator testsuite.

if [istarget v850*-*] {
    global opt

    # load support procs (none yet)
    # load_lib cgen.exp
    # all machines

    switch -regexp -- $opt {
	.*v850e.* {
	    set all_machs "v850e"
	}
	default {
	    set all_machs "v850"
	}
    }
    # gas doesn't support any '=' option for v850.
    #set cpu_option -m

    # The .cgs suffix is for "cgen .s".
    foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.cgs]] {
	# If we're only testing specific files and this isn't one of them,
	# skip it.
	if ![runtest_file_p $runtests $src] {
	    continue
	}
	run_sim_test $src $all_machs
    }
}

#foreach var [lsort [info globals]] {
#    if [array exists ::$var] {
#	puts [format "%-27s %s" $var Array:]
#	continue
#    }
#    puts [format "%-30s %s" $var "[set ::$var]"]
#}
	