qemu-patch-raspberry4/tests/tcg/cris/bare/testutils.inc
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

118 lines
1.3 KiB
PHP

.syntax no_register_prefix
.macro start
.text
.global main
main:
.endm
.macro quit
jump pass
nop
.endm
.macro pass
jump pass
nop
.endm
.macro startnostack
start
.endm
.macro fail
.data
99:
.asciz " checkr3 failed\n"
.text
move.d 99b, $r10
jsr _fail
nop
.endm
.macro checkr3 val
cmp.d 0x\val, $r3
beq 100f
nop
.data
99:
.asciz "checkr3 failed\n"
.text
move.d 99b, $r10
jsr _fail
nop
100:
.endm
; Test the condition codes
.macro test_cc N Z V C
.if \N
bpl 9f
nop
.else
bmi 9f
nop
.endif
.if \Z
bne 9f
nop
.else
beq 9f
nop
.endif
.if \V
bvc 9f
nop
.else
bvs 9f
nop
.endif
.if \C
bcc 9f
nop
.else
bcs 9f
nop
.endif
ba 8f
nop
9:
.data
99:
.asciz "test_move_cc failed\n"
.text
move.d 99b, $r10
jsr _fail
nop
8:
.endm
.macro test_move_cc N Z V C
.if \N
bpl 9f
nop
.else
bmi 9f
nop
.endif
.if \Z
bne 9f
nop
.else
beq 9f
nop
.endif
ba 8f
nop
9:
.data
99:
.asciz "test_move_cc failed\n"
.text
move.d 99b, $r10
jsr _fail
nop
8:
.endm