# 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 |