# Miscellaneous CR16 simulator testcases

if [istarget cr16*-*-*] {
    # 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
}
