summaryrefslogtreecommitdiff
path: root/sim/testsuite/sim/fr30/stm1.cgs
diff options
context:
space:
mode:
Diffstat (limited to 'sim/testsuite/sim/fr30/stm1.cgs')
-rw-r--r--sim/testsuite/sim/fr30/stm1.cgs97
1 files changed, 97 insertions, 0 deletions
diff --git a/sim/testsuite/sim/fr30/stm1.cgs b/sim/testsuite/sim/fr30/stm1.cgs
new file mode 100644
index 00000000000..2ac373d3544
--- /dev/null
+++ b/sim/testsuite/sim/fr30/stm1.cgs
@@ -0,0 +1,97 @@
+# fr30 testcase for stm1 ($reglist_low)
+# mach(): fr30
+
+ .include "testutils.inc"
+
+ START
+
+ .text
+ .global stm1
+stm1:
+ ; Test stm1 ($reglist_low)
+ mvr_h_gr sp,r1 ; save stack pointer temporarily
+ mvr_h_gr sp,r2 ; save stack pointer permanently
+ mvi_h_gr 8,r8
+ mvi_h_gr 9,r9
+ mvi_h_gr 10,r10
+ mvi_h_gr 11,r11
+ mvi_h_gr 12,r12
+ mvi_h_gr 13,r13
+ mvi_h_gr 14,r14
+ set_cc 0x0f ; Condition codes should not change
+ stm1 (r8,r10,r12,r14)
+ test_cc 1 1 1 1
+ inci_h_gr -4,r1
+ test_h_mem 14,r1
+ inci_h_gr -4,r1
+ test_h_mem 12,r1
+ inci_h_gr -4,r1
+ test_h_mem 10,r1
+ inci_h_gr -4,r1
+ testr_h_mem 8,r1
+
+ mvr_h_gr r2,sp ; restore stack pointer
+ mvr_h_gr r2,r1 ; save stack pointer temporarily
+ mvi_h_gr 8,r8
+ mvi_h_gr 9,r9
+ mvi_h_gr 10,r10
+ mvi_h_gr 11,r11
+ mvi_h_gr 12,r12
+ mvi_h_gr 13,r13
+ mvi_h_gr 14,r14
+ set_cc 0x0f ; Condition codes should not change
+ stm1 (r9,r11,r13,r15)
+ test_cc 1 1 1 1
+ inci_h_gr -4,r1
+ testr_h_mem r2,r1
+ inci_h_gr -4,r1
+ test_h_mem 13,r1
+ inci_h_gr -4,r1
+ test_h_mem 11,r1
+ inci_h_gr -4,r1
+ test_h_mem 9,r1 ; saved r15 is from before stm1
+
+ mvr_h_gr r2,sp ; restore stack pointer
+ mvr_h_gr r2,r1 ; save stack pointer temporarily
+ mvi_h_gr 8,r8
+ mvi_h_gr 9,r9
+ mvi_h_gr 10,r10
+ mvi_h_gr 11,r11
+ mvi_h_gr 12,r12
+ mvi_h_gr 13,r13
+ mvi_h_gr 14,r14
+ set_cc 0x0f ; Condition codes should not change
+ stm1 (r9,r13,r15,r11); Order specified should not matter
+ test_cc 1 1 1 1
+ inci_h_gr -4,r1
+ testr_h_mem r2,r1
+ inci_h_gr -4,r1
+ test_h_mem 13,r1
+ inci_h_gr -4,r1
+ test_h_mem 11,r1
+ inci_h_gr -4,r1
+ test_h_mem 9,r1 ; saved r15 is from before stm1
+
+ mvr_h_gr r2,sp ; restore stack pointer
+ mvr_h_gr r2,r1 ; save stack pointer temporarily
+ mvi_h_gr 9,r8
+ mvi_h_gr 9,r9
+ mvi_h_gr 9,r10
+ mvi_h_gr 9,r11
+ mvi_h_gr 9,r12
+ mvi_h_gr 9,r13
+ mvi_h_gr 9,r14
+ set_cc 0x0f ; Condition codes should not change
+ stm1 () ; should do nothing
+ test_cc 1 1 1 1
+ testr_h_gr r2,sp
+ inci_h_gr -4,r1
+ testr_h_mem r2,r1
+ inci_h_gr -4,r1
+ test_h_mem 13,r1
+ inci_h_gr -4,r1
+ test_h_mem 11,r1
+ inci_h_gr -4,r1
+ test_h_mem 9,r1
+
+ pass