1# mach: crisv0 crisv3 crisv8 crisv10
2# output: 15\nffff1234\n2\n7\nb\n16\nf\n2\nf\nffffffef\n7\nfffffff4\nf\nfffffff2\nd\n10\nfffffff2\n8\nfffffff4\n
3
4 .include "testutils.inc"
5 .data
6x:
7 .dword 8,9,10,11
8y:
9 .dword -12,13,-14,15,16
10
11 start
12 moveq 7,r0
13 moveq 2,r1
14 move.d 0xffff1234,r2
15 moveq 21,r3
16 move.d x,r4
17 setf zcvn
18 movem r2,[r4+]
19 test_cc 1 1 1 1
20 subq 12,r4
21
22 dumpr3 ; 15
23
24 move.d [r4+],r3
25 dumpr3 ; ffff1234
26
27 move.d [r4+],r3
28 dumpr3 ; 2
29
30 move.d [r4+],r3
31 dumpr3 ; 7
32
33 move.d [r4+],r3
34 dumpr3 ; b
35
36 subq 16,r4
37 moveq 22,r0
38 moveq 15,r1
39 clearf zcvn
40 movem r0,[r4]
41 test_cc 0 0 0 0
42 move.d [r4+],r3
43 dumpr3 ; 16
44
45 move.d r1,r3
46 dumpr3 ; f
47
48 move.d [r4+],r3
49 dumpr3 ; 2
50
51 moveq 10,r2
52 moveq -17,r0
53 clearf zc
54 setf vn
55 movem r1,[r4=r4-8]
56 test_cc 1 0 1 0
57 move.d [r4+],r3
58 dumpr3 ; f
59
60 move.d [r4+],r3
61 dumpr3 ; ffffffef
62
63 move.d [r4+],r3
64 dumpr3 ; 7
65
66 move.d y,r4
67 setf zc
68 clearf vn
69 movem [r4+],r3
70 test_cc 0 1 0 1
71 dumpr3 ; fffffff4
72
73 move.d r0,r3
74 dumpr3 ; f
75
76 move.d r1,r3
77 dumpr3 ; fffffff2
78
79 moveq -12,r1
80
81 move.d r2,r3
82 dumpr3 ; d
83
84 move.d [r4],r3
85 dumpr3 ; 10
86
87 setf zcvn
88 movem [r5=r4-8],r0
89 test_cc 1 1 1 1
90 move.d r0,r3
91 dumpr3 ; fffffff2
92
93 sub.d r5,r4
94 move.d r4,r3
95 dumpr3 ; 8
96
97 move.d r1,r3
98 dumpr3 ; fffffff4
99
100 quit
101
102