# Miscellaneous CR16 simulator testcases

if [istarget cr16*-*-*] {
    # load support procs
    # load_lib cgen.exp

    # all machines
    set all_machs "cr16"

    global global_sim_options
    if ![info exists global_sim_options] {
	set global_sim_options ""
    }
    set saved_global_sim_options $global_sim_options
    # The cr16 linker sets the default LMA base to 0, and all the code
    # expects the VMA when running, so use that when running the tests.
    set global_sim_options "$saved_global_sim_options --load-vma"

    # The .ms suffix is for "miscellaneous .s".
    foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.ms]] {
	# 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
    }

    set global_sim_options $saved_global_sim_options
}
