146 lines
No EOL
2.4 KiB
ArmAsm
146 lines
No EOL
2.4 KiB
ArmAsm
# sh testcase for push/pop (mov,movml,movmu...) insns.
|
|
# mach: all
|
|
# as(sh): -defsym sim_cpu=0
|
|
# as(shdsp): -defsym sim_cpu=1 -dsp
|
|
|
|
.include "testutils.inc"
|
|
|
|
start
|
|
movml_1:
|
|
set_greg 0, r0
|
|
set_greg 1, r1
|
|
set_greg 2, r2
|
|
set_greg 3, r3
|
|
set_greg 4, r4
|
|
set_greg 5, r5
|
|
set_greg 6, r6
|
|
set_greg 7, r7
|
|
set_greg 8, r8
|
|
set_greg 9, r9
|
|
set_greg 10, r10
|
|
set_greg 11, r11
|
|
set_greg 12, r12
|
|
set_greg 13, r13
|
|
set_greg 14, r14
|
|
set_sreg 15, pr
|
|
|
|
movml.l r15,@-r15
|
|
|
|
assertmem stackt-4, 15
|
|
assertmem stackt-8, 14
|
|
assertmem stackt-12, 13
|
|
assertmem stackt-16, 12
|
|
assertmem stackt-20, 11
|
|
assertmem stackt-24, 10
|
|
assertmem stackt-28, 9
|
|
assertmem stackt-32, 8
|
|
assertmem stackt-36, 7
|
|
assertmem stackt-40, 6
|
|
assertmem stackt-44, 5
|
|
assertmem stackt-48, 4
|
|
assertmem stackt-52, 3
|
|
assertmem stackt-56, 2
|
|
assertmem stackt-60, 1
|
|
assertmem stackt-64, 0
|
|
|
|
assertreg0 0
|
|
assertreg 1, r1
|
|
assertreg 2, r2
|
|
assertreg 3, r3
|
|
assertreg 4, r4
|
|
assertreg 5, r5
|
|
assertreg 6, r6
|
|
assertreg 7, r7
|
|
assertreg 8, r8
|
|
assertreg 9, r9
|
|
assertreg 10, r10
|
|
assertreg 11, r11
|
|
assertreg 12, r12
|
|
assertreg 13, r13
|
|
assertreg 14, r14
|
|
mov r15, r0
|
|
assertreg0 stackt-64
|
|
|
|
movml_2:
|
|
set_grs_a5a5
|
|
movml.l @r15+, r15
|
|
assert_sreg 15, pr
|
|
assertreg0 0
|
|
assertreg 1, r1
|
|
assertreg 2, r2
|
|
assertreg 3, r3
|
|
assertreg 4, r4
|
|
assertreg 5, r5
|
|
assertreg 6, r6
|
|
assertreg 7, r7
|
|
assertreg 8, r8
|
|
assertreg 9, r9
|
|
assertreg 10, r10
|
|
assertreg 11, r11
|
|
assertreg 12, r12
|
|
assertreg 13, r13
|
|
assertreg 14, r14
|
|
mov r15, r0
|
|
assertreg0 stackt
|
|
|
|
movmu_1:
|
|
set_grs_a5a5
|
|
add #1,r14
|
|
add #2,r13
|
|
add #3,r12
|
|
set_sreg 0xa5a5,pr
|
|
|
|
movmu.l r12,@-r15
|
|
|
|
assert_sreg 0xa5a5,pr
|
|
assertreg 0xa5a5a5a6, r14
|
|
assertreg 0xa5a5a5a7, r13
|
|
assertreg 0xa5a5a5a8, r12
|
|
test_gr_a5a5 r11
|
|
test_gr_a5a5 r10
|
|
test_gr_a5a5 r9
|
|
test_gr_a5a5 r8
|
|
test_gr_a5a5 r7
|
|
test_gr_a5a5 r6
|
|
test_gr_a5a5 r5
|
|
test_gr_a5a5 r4
|
|
test_gr_a5a5 r3
|
|
test_gr_a5a5 r2
|
|
test_gr_a5a5 r1
|
|
test_gr_a5a5 r0
|
|
mov r15, r0
|
|
assertreg stackt-16, r0
|
|
|
|
assertmem stackt-4, 0xa5a5
|
|
assertmem stackt-8, 0xa5a5a5a6
|
|
assertmem stackt-12, 0xa5a5a5a7
|
|
assertmem stackt-16, 0xa5a5a5a8
|
|
|
|
movmu_2:
|
|
set_grs_a5a5
|
|
movmu.l @r15+,r12
|
|
|
|
assert_sreg 0xa5a5, pr
|
|
assertreg 0xa5a5a5a6, r14
|
|
assertreg 0xa5a5a5a7, r13
|
|
assertreg 0xa5a5a5a8, r12
|
|
test_gr_a5a5 r11
|
|
test_gr_a5a5 r10
|
|
test_gr_a5a5 r9
|
|
test_gr_a5a5 r8
|
|
test_gr_a5a5 r7
|
|
test_gr_a5a5 r6
|
|
test_gr_a5a5 r5
|
|
test_gr_a5a5 r4
|
|
test_gr_a5a5 r3
|
|
test_gr_a5a5 r2
|
|
test_gr_a5a5 r1
|
|
test_gr_a5a5 r0
|
|
mov r15, r0
|
|
assertreg stackt, r0
|
|
|
|
pass
|
|
|
|
exit 0
|
|
|
|
|