97 lines
1.2 KiB
ArmAsm
97 lines
1.2 KiB
ArmAsm
# mach: crisv0 crisv3 crisv8 crisv10 crisv32
|
|
# output: 1111\n
|
|
|
|
.include "testutils.inc"
|
|
start
|
|
clearf nzvc
|
|
moveq -1,r3
|
|
.if 1 ;..asm.arch.cris.v32
|
|
.else
|
|
setf vc
|
|
.endif
|
|
btstq 0,r3
|
|
test_cc 1 0 0 0
|
|
|
|
moveq 2,r3
|
|
btstq 1,r3
|
|
test_cc 1 0 0 0
|
|
|
|
moveq 4,r3
|
|
btstq 1,r3
|
|
test_cc 0 1 0 0
|
|
|
|
moveq -1,r3
|
|
btstq 31,r3
|
|
test_cc 1 0 0 0
|
|
|
|
move.d 0x5a67f19f,r3
|
|
btstq 12,r3
|
|
test_cc 1 0 0 0
|
|
|
|
move.d 0xda67f19f,r3
|
|
move.d 29,r4
|
|
btst r4,r3
|
|
test_cc 0 0 0 0
|
|
|
|
move.d 0xda67f19f,r3
|
|
move.d 32,r4
|
|
btst r4,r3
|
|
test_cc 1 0 0 0
|
|
|
|
move.d 0xda67f191,r3
|
|
move.d 33,r4
|
|
btst r4,r3
|
|
test_cc 0 0 0 0
|
|
|
|
moveq -1,r3
|
|
moveq 0,r4
|
|
btst r4,r3
|
|
test_cc 1 0 0 0
|
|
|
|
moveq 2,r3
|
|
moveq 1,r4
|
|
btst r4,r3
|
|
test_cc 1 0 0 0
|
|
|
|
moveq -1,r3
|
|
moveq 31,r4
|
|
btst r4,r3
|
|
test_cc 1 0 0 0
|
|
|
|
moveq 4,r3
|
|
btstq 1,r3
|
|
test_cc 0 1 0 0
|
|
|
|
moveq -1,r3
|
|
moveq 15,r4
|
|
btst r4,r3
|
|
test_cc 1 0 0 0
|
|
|
|
move.d 0x5a67f19f,r3
|
|
moveq 12,r4
|
|
btst r4,r3
|
|
test_cc 1 0 0 0
|
|
|
|
move.d 0x5a678000,r3
|
|
moveq 11,r4
|
|
btst r4,r3
|
|
test_cc 0 1 0 0
|
|
|
|
move.d 0x5a67f19f,r3
|
|
btst r3,r3
|
|
test_cc 0 0 0 0
|
|
|
|
move.d 0x1111,r3
|
|
checkr3 1111
|
|
|
|
; check that X gets cleared and that only the NZ flags are touched.
|
|
move.d 0xff, $r0
|
|
move $r0, $ccs
|
|
btst r3,r3
|
|
move $ccs, $r0
|
|
and.d 0xff, $r0
|
|
cmp.d 0xe3, $r0
|
|
test_cc 0 1 0 0
|
|
|
|
quit
|