summaryrefslogtreecommitdiff
path: root/sim/testsuite/sim/fr30/int.cgs
diff options
context:
space:
mode:
Diffstat (limited to 'sim/testsuite/sim/fr30/int.cgs')
-rw-r--r--sim/testsuite/sim/fr30/int.cgs35
1 files changed, 35 insertions, 0 deletions
diff --git a/sim/testsuite/sim/fr30/int.cgs b/sim/testsuite/sim/fr30/int.cgs
new file mode 100644
index 00000000000..7cdca7b8c9b
--- /dev/null
+++ b/sim/testsuite/sim/fr30/int.cgs
@@ -0,0 +1,35 @@
+# fr30 testcase for int $u8
+# mach(): fr30
+
+ .include "testutils.inc"
+
+ START
+
+ .text
+ .global int
+int:
+ ; Test int $u8 - setup and test an interrupt #0xfd (randomly chosen)
+ mvr_h_gr tbr,r7
+ inci_h_gr 8,r7
+ mvi_h_mem pass,r7
+ mvi_h_gr doint,r9
+ inci_h_gr 2,r9
+ mvr_h_gr ssp,r10
+ set_cc 0x0f ; Condition codes should not change
+ set_s_user ; Set opposite of expected
+ set_i 1 ; Set opposite of expected
+ mvr_h_gr ps,r8
+doint: int 0xfd
+ fail
+
+pass:
+ test_cc 1 1 1 1
+ test_s_system
+ test_i 0
+ inci_h_gr -4,r10
+ testr_h_mem r8,r10
+ inci_h_gr -4,r10
+ testr_h_mem r9,r10
+ testr_h_dr r10,ssp
+
+ pass