qemu-patch-raspberry4/tests/tcg/cris/bare/check_jsr.s
Alex Bennée d4f6e58fcb tests/tcg: split cris tests into bare and libc directories
Bare tests are standalone assembly tests that don't require linking to
any libc and hence can be built with kernel only compilers. The libc
tests need a compiler capable of building properly linked userspace
binaries. As we don't have such a cross compiler at the moment we
won't be building those tests.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-03-12 17:05:21 +00:00

86 lines
919 B
ArmAsm

# mach: crisv3 crisv8 crisv10 crisv32
# output: 0\n0\n0\n0\n0\n0\n
# Test that jsr Rn and jsr [PC+] work.
.include "testutils.inc"
start
x:
move.d 0f,r6
setf nzvc
jsr r6
.if 1; ..asm.arch.cris.v32
nop
.endif
0:
test_move_cc 1 1 1 1
move srp,r3
sub.d 0b,r3
checkr3 0
move.d 1f,r0
setf nzvc
jsr r0
.if 1 ; ..asm.arch.cris.v32
moveq 0,r0
.endif
6:
nop
quit
2:
test_move_cc 0 0 0 0
move srp,r3
sub.d 3f,r3
checkr3 0
jsr 4f
.if 1 ; ..asm.arch.cris.v32
nop
.endif
7:
nop
quit
8:
move srp,r3
sub.d 7b,r3
checkr3 0
quit
4:
move srp,r3
sub.d 7b,r3
checkr3 0
move.d 5f,r3
jump r3
.if 1; ..asm.arch.cris.v32
moveq 0,r3
.endif
quit
.space 32770,0
1:
test_move_cc 1 1 1 1
move srp,r3
sub.d 6b,r3
checkr3 0
clearf cznv
jsr 2b
.if 1; ..asm.arch.cris.v32
nop
.endif
3:
quit
5:
move srp,r3
sub.d 7b,r3
checkr3 0
jump 8b
.if 1 ; ..asm.arch.cris.v32
nop
.endif
quit