aboutsummaryrefslogtreecommitdiff
path: root/sim/testsuite/v850eq-elf/t-popml.s
diff options
context:
space:
mode:
Diffstat (limited to 'sim/testsuite/v850eq-elf/t-popml.s')
-rw-r--r--sim/testsuite/v850eq-elf/t-popml.s109
1 files changed, 109 insertions, 0 deletions
diff --git a/sim/testsuite/v850eq-elf/t-popml.s b/sim/testsuite/v850eq-elf/t-popml.s
new file mode 100644
index 0000000..3340be1
--- /dev/null
+++ b/sim/testsuite/v850eq-elf/t-popml.s
@@ -0,0 +1,109 @@
+.include "t-macros.i"
+
+ start
+
+ load sp stackEI
+ ldsr r0, psw # ENSURE NP=EP=0
+test_popml_EI:
+ popml {eipc, eipsw}
+ # check EIPSW
+ stsr eipsw, r3
+ check1 r3 0xe0
+ ldsr r0, eipsw
+ # check EIPC
+ stsr eipc, r3
+ check1 r3 0xec
+ ldsr r0, eipc
+
+
+
+ mov PSW_NP, r1
+ ldsr r1, psw # ENSURE NP=1, EP=0
+ load sp stackFE
+test_popml_FE:
+ popml {fepc, fepsw}
+ # check FEPSW
+ stsr fepsw, r3
+ check1 r3 0xf0
+ ldsr r0, fepsw
+ # check FEPC
+ stsr fepc, r3
+ check1 r3 0xfc
+ ldsr r0, fepc
+
+
+ load sp stackR
+test_popml_R:
+ popml {r1,r2,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15}
+ mov r1, r3
+ check1 r3 1
+ mov 0, r3
+ check1 r2 2
+ mov 0, r2
+ #check1 r3 3
+ check1 r4 4
+ mov 0, r4
+ check1 r5 5
+ mov 0, r5
+ check1 r6 6
+ mov 0, r6
+ check1 r7 7
+ mov 0, r7
+ check1 r8 8
+ mov 0, r8
+ check1 r9 9
+ mov 0, r9
+ check1 r10 10
+ mov 0, r10
+ check1 r11 11
+ mov 0, r11
+ check1 r12 12
+ mov 0, r12
+ check1 r13 13
+ mov 0, r13
+ check1 r14 14
+ mov 0, r14
+ check1 r15 15
+ mov 0, r15
+
+
+ load sp, stackPSW
+test_popml_PSW:
+ popml {psw}
+ stsr psw, r2
+ check1 r2, 0xee
+
+
+ exit0
+
+ .align 2
+stackEI:
+ .long 0xe0 #EIPSW
+ .long 0xec #EIPC
+
+
+stackFE:
+ .long 0xf0 #FEPSW
+ .long 0xfc #FEPC
+
+
+stackR:
+ .long 15
+ .long 14
+ .long 13
+ .long 12
+ .long 11
+ .long 10
+ .long 9
+ .long 8
+ .long 7
+ .long 6
+ .long 5
+ .long 4
+ #.long 3 - sp
+ .long 2
+ .long 1
+
+
+stackPSW:
+ .long 0xee