xref: /openbmc/qemu/tests/tcg/cris/bare/check_movei.s (revision 8482ff2e)
1*d4f6e58fSAlex Bennée# mach: crisv32
2*d4f6e58fSAlex Bennée# output: fffffffe\n
3*d4f6e58fSAlex Bennée# output: fffffffe\n
4*d4f6e58fSAlex Bennée
5*d4f6e58fSAlex Bennée; Check basic integral-write semantics regarding flags.
6*d4f6e58fSAlex Bennée
7*d4f6e58fSAlex Bennée .include "testutils.inc"
8*d4f6e58fSAlex Bennée start
9*d4f6e58fSAlex Bennée
10*d4f6e58fSAlex Bennée move.d 0, $r3
11*d4f6e58fSAlex Bennée; A write that works.  Check that flags are set correspondingly.
12*d4f6e58fSAlex Bennée move.d d,r4
13*d4f6e58fSAlex Bennée ;; store to bring it into the tlb with the right prot bits
14*d4f6e58fSAlex Bennée move.d r3,[r4]
15*d4f6e58fSAlex Bennée moveq -2,r5
16*d4f6e58fSAlex Bennée setf c
17*d4f6e58fSAlex Bennée clearf p
18*d4f6e58fSAlex Bennée move.d [r4],r3
19*d4f6e58fSAlex Bennée ax
20*d4f6e58fSAlex Bennée move.d r5,[r4]
21*d4f6e58fSAlex Bennée move.d [r4],r3
22*d4f6e58fSAlex Bennée
23*d4f6e58fSAlex Bennée bcc 0f
24*d4f6e58fSAlex Bennée nop
25*d4f6e58fSAlex Bennée fail
26*d4f6e58fSAlex Bennée
27*d4f6e58fSAlex Bennée0:
28*d4f6e58fSAlex Bennée checkr3 fffffffe
29*d4f6e58fSAlex Bennée
30*d4f6e58fSAlex Bennée; A write that fails; check flags too.
31*d4f6e58fSAlex Bennée move.d d,r4
32*d4f6e58fSAlex Bennée moveq 23,r5
33*d4f6e58fSAlex Bennée setf p
34*d4f6e58fSAlex Bennée clearf c
35*d4f6e58fSAlex Bennée move.d [r4],r3
36*d4f6e58fSAlex Bennée ax
37*d4f6e58fSAlex Bennée move.d r5,[r4]
38*d4f6e58fSAlex Bennée move.d [r4],r3
39*d4f6e58fSAlex Bennée
40*d4f6e58fSAlex Bennée bcs 0f
41*d4f6e58fSAlex Bennée nop
42*d4f6e58fSAlex Bennée fail
43*d4f6e58fSAlex Bennée
44*d4f6e58fSAlex Bennée0:
45*d4f6e58fSAlex Bennée checkr3 fffffffe
46*d4f6e58fSAlex Bennée quit
47*d4f6e58fSAlex Bennée
48*d4f6e58fSAlex Bennée .data
49*d4f6e58fSAlex Bennéed:
50*d4f6e58fSAlex Bennée .dword 42424242
51