summaryrefslogtreecommitdiffstats
path: root/gas/testsuite/gas/iq2000/yield.exp
diff options
context:
space:
mode:
Diffstat (limited to 'gas/testsuite/gas/iq2000/yield.exp')
-rw-r--r--gas/testsuite/gas/iq2000/yield.exp39
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
+}
OpenPOWER on IntegriCloud