summaryrefslogtreecommitdiff
path: root/sim/testsuite/sim/fr30/stb.cgs
diff options
context:
space:
mode:
Diffstat (limited to 'sim/testsuite/sim/fr30/stb.cgs')
-rw-r--r--sim/testsuite/sim/fr30/stb.cgs84
1 files changed, 84 insertions, 0 deletions
diff --git a/sim/testsuite/sim/fr30/stb.cgs b/sim/testsuite/sim/fr30/stb.cgs
new file mode 100644
index 00000000000..d9d4fd00aed
--- /dev/null
+++ b/sim/testsuite/sim/fr30/stb.cgs
@@ -0,0 +1,84 @@
+# fr30 testcase for
+# mach(): fr30
+# stb $Ri,@$Rj
+
+ .include "testutils.inc"
+
+ START
+
+ .text
+ .global stb
+stb:
+ mvr_h_gr sp,r9 ; Save stack pointer
+ ; Test stb $Ri,@Rj
+ mvi_h_mem 0xdeadbeef,sp
+ mvi_h_gr 0xaaaaaafe,r8
+ set_cc 0x0f ; Condition codes should not change
+ stb r8,@sp
+ test_cc 1 1 1 1
+ test_h_mem 0xfeadbeef,sp
+ test_h_gr 0xaaaaaafe,r8
+
+ ; Test stb $Ri,@(R13,Rj)
+ mvi_h_mem 0xbeefdead,sp
+ mvi_h_gr 0xaaaaaade,r8
+ mvr_h_gr sp,r1
+ inci_h_gr -8,sp
+ mvr_h_gr sp,r2
+ mvi_h_mem 0xbeefdead,sp
+ inci_h_gr 4,sp
+ mvi_h_mem 0xbeefdead,sp
+
+ mvi_h_gr 4,r13
+ set_cc 0x0e ; Condition codes should not change
+ stb r8,@(r13,sp)
+ test_cc 1 1 1 0
+ test_h_mem 0xdeefdead,r1
+ test_h_gr 0xaaaaaade,r8
+
+ mvi_h_gr 0,r13
+ set_cc 0x0d ; Condition codes should not change
+ stb r8,@(r13,sp)
+ test_cc 1 1 0 1
+ test_h_mem 0xdeefdead,sp
+ test_h_gr 0xaaaaaade,r8
+
+ mvi_h_gr -4,r13
+ set_cc 0x0c ; Condition codes should not change
+ stb r8,@(r13,sp)
+ test_cc 1 1 0 0
+ test_h_mem 0xdeefdead,r2
+ test_h_gr 0xaaaaaade,r8
+
+ ; Test stb $Ri,@(R14,$disp8
+ mvr_h_gr r9,sp ; Restore stack pointer
+ mvi_h_gr 0xaaaaaafe,r8
+ mvi_h_mem 0xdeadbeef,sp
+ mvr_h_gr sp,r14
+ inci_h_gr -127,r14
+ mvr_h_gr r14,r2
+ mvi_h_mem 0xdeadbeef,r14
+ inci_h_gr -128,r14
+ mvr_h_gr r14,r3
+ mvi_h_mem 0xdeadbeef,r14
+ inci_h_gr 128,r14
+
+ set_cc 0x0b ; Condition codes should not change
+ stb r8,@(r14,127)
+ test_cc 1 0 1 1
+ test_h_mem 0xfeadbeef,r1
+ test_h_gr 0xaaaaaafe,r8
+
+ set_cc 0x0a ; Condition codes should not change
+ stb r8,@(r14,0)
+ test_cc 1 0 1 0
+ test_h_mem 0xfeadbeef,r2
+ test_h_gr 0xaaaaaafe,r8
+
+ set_cc 0x09 ; Condition codes should not change
+ stb r8,@(r14,-128)
+ test_cc 1 0 0 1
+ test_h_mem 0xfeadbeef,r3
+ test_h_gr 0xaaaaaafe,r8
+
+ pass