d4f6e58fcb
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>
73 lines
782 B
ArmAsm
73 lines
782 B
ArmAsm
|
|
.include "testutils.inc"
|
|
|
|
start
|
|
|
|
moveq -1, $r0
|
|
moveq 0, $r1
|
|
addq 1, $r0
|
|
ax
|
|
addq 0, $r1
|
|
|
|
move.d $r0, $r3
|
|
checkr3 0
|
|
move.d $r1, $r3
|
|
checkr3 1
|
|
|
|
move.d 0, $r0
|
|
moveq -1, $r1
|
|
subq 1, $r0
|
|
ax
|
|
subq 0, $r1
|
|
|
|
move.d $r0, $r3
|
|
checkr3 ffffffff
|
|
move.d $r1, $r3
|
|
checkr3 fffffffe
|
|
|
|
|
|
moveq -1, $r0
|
|
moveq -1, $r1
|
|
cmpq -1, $r0
|
|
ax
|
|
cmpq -1, $r1
|
|
beq 1f
|
|
nop
|
|
fail
|
|
1:
|
|
cmpq 0, $r0
|
|
ax
|
|
cmpq -1, $r1
|
|
bne 1f
|
|
nop
|
|
fail
|
|
1:
|
|
|
|
;; test for broken X sequence, run it several times.
|
|
moveq 8, $r0
|
|
1:
|
|
moveq 0, $r3
|
|
move.d $r0, $r1
|
|
andq 1, $r1
|
|
lslq 4, $r1
|
|
moveq 1, $r2
|
|
or.d $r1, $r2
|
|
ba 2f
|
|
move $r2, $ccs
|
|
2:
|
|
addq 0, $r3
|
|
move.d $r0, $r4
|
|
move.d $r1, $r5
|
|
move.d $r2, $r6
|
|
move.d $r3, $r7
|
|
lsrq 4, $r1
|
|
move.d $r1, $r8
|
|
xor $r1, $r3
|
|
checkr3 0
|
|
subq 1, $r0
|
|
bne 1b
|
|
nop
|
|
|
|
pass
|
|
quit
|