historical/m0-applesillicon.git/xnu-qemu-arm64-5.1.0/tests/tcg/cris/bare/check_movei.s
2024-01-16 11:20:27 -06:00

50 lines
657 B
ArmAsm

# mach: crisv32
# output: fffffffe\n
# output: fffffffe\n
; Check basic integral-write semantics regarding flags.
.include "testutils.inc"
start
move.d 0, $r3
; A write that works. Check that flags are set correspondingly.
move.d d,r4
;; store to bring it into the tlb with the right prot bits
move.d r3,[r4]
moveq -2,r5
setf c
clearf p
move.d [r4],r3
ax
move.d r5,[r4]
move.d [r4],r3
bcc 0f
nop
fail
0:
checkr3 fffffffe
; A write that fails; check flags too.
move.d d,r4
moveq 23,r5
setf p
clearf c
move.d [r4],r3
ax
move.d r5,[r4]
move.d [r4],r3
bcs 0f
nop
fail
0:
checkr3 fffffffe
quit
.data
d:
.dword 42424242