Projet_SETI_RISC-V/riscv-gnu-toolchain/binutils/sim/testsuite/sh/pushpop.s
2023-03-06 14:48:14 +01:00

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