# Test for warnings when placing yield instructions into IQ2000's
# branch delay slot.  Written by Ben Elliston (bje@redhat.com)

# Run GAS and check that it emits the desired error for the test case.
# Arguments:
#   file -- name of the test case to assemble.
#   testname -- a string describing the test.
#   pattern -- a regular expression, suitable for use by the Tcl
#     regexp command, to decide if the error string was emitted by
#     the assembler to stderr.

proc iq2000_error_test { file testname {pattern ""} } {
    global comp_output

    gas_run $file "" ">/dev/null"
    verbose "output was $comp_output" 2

    if {$pattern == ""} {
	if {$comp_output == ""} { pass $testname } else { fail $testname }
	return
    }

    if {[regexp "Error: $pattern" $comp_output]} {
	pass $testname
    } else {
	fail $testname
    }
}

if [istarget iq2000*-*-*] {
    foreach file [lsort [glob -nocomplain -- $srcdir/$subdir/yield*.s]] {
	set file [file tail $file]
	iq2000_error_test $file \
		"assembler emits yield instruction in delay slot error for $file" \
		"the yielding instruction \[a-zA-Z0-9\]+ may not be in a delay slot."
    }
    set testname "assembler emits no warnings for non-yield instruction in delay slot"
    iq2000_error_test noyield.s $testname
}
