diff options
Diffstat (limited to 'gas/testsuite/gas/iq2000/yield.exp')
-rw-r--r-- | gas/testsuite/gas/iq2000/yield.exp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/gas/testsuite/gas/iq2000/yield.exp b/gas/testsuite/gas/iq2000/yield.exp new file mode 100644 index 0000000000..c68095f391 --- /dev/null +++ b/gas/testsuite/gas/iq2000/yield.exp @@ -0,0 +1,39 @@ +# 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 [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 +} |