Automatic date update in version.in
[binutils-gdb.git] / sim / testsuite / cris / asm / movmp.ms
blobd864692cefc6a8718cb27002ec3daded15c599e3
1 # mach: crisv3 crisv8 crisv10 crisv32
2 # output: ffffff00\nffff0000\n0\nffffff00\nffff0000\n0\nffffff00\nffff0000\n0\nbb113344\n664433aa\ncc557788\nabcde012\nabcde000\n77880000\n0\n
4 # Test generic "move Ps,[]" and "move [],Pd" insns; the ones with
5 # functionality common to all models.
7  .include "testutils.inc"
8  start
10  .data
11 filler:
12  .byte 0xaa
13  .word 0x4433
14  .dword 0x55778866
15  .byte 0xcc
17  .text
18 ; Test that writing to zero-registers is a nop
19  .if 0
20  ; We used to just ignore the writes, but now an error is emitted.  We
21  ; keep the test-code but disabled, in case we need to change this again.
22  move 0xaa,p0
23  move 0x4433,p4
24  move 0x55774433,p8
25  .endif
27  moveq -1,r3
28  setf zcvn
29  clear.b r3
30  test_cc 1 1 1 1
31  dumpr3
33  moveq -1,r3
34  clearf zcvn
35  clear.w r3
36  test_cc 0 0 0 0
37  dumpr3
39  moveq -1,r3
40  clear.d r3
41  dumpr3
43 ; "Write" using ordinary memory references too.
44  .if 0 ; See ".if 0" above.
45  move.d filler,r6
46  move [r6],p0
47  move [r6],p4
48  move [r6],p8
49  .endif
51  moveq -1,r3
52  clear.b r3
53  dumpr3
55  moveq -1,r3
56  clear.w r3
57  dumpr3
59  moveq -1,r3
60  clear.d r3
61  dumpr3
63 ; And postincremented.
64  .if 0 ; See ".if 0" above.
65  move [r6+],p0
66  move [r6+],p4
67  move [r6+],p8
68  .endif
70  moveq -1,r3
71  clear.b r3
72  dumpr3
74  moveq -1,r3
75  clear.w r3
76  dumpr3
78  moveq -1,r3
79  clear.d r3
80  dumpr3
82 ; Now see that we can write to the registers too.
84 ; [PC+]
85  move.d filler,r9
86  move 0xbb113344,srp
87  move srp,r3
88  dumpr3
90 ; [R+]
91  move [r9+],srp
92  move srp,r3
93  dumpr3
95 ; [R]
96  move [r9],srp
97  move srp,r3
98  dumpr3
100 ; And check writing to memory, clear and srp.
102  move.d filler,r9
103  move 0xabcde012,srp
104  setf zcvn
105  move srp,[r9+]
106  test_cc 1 1 1 1
107  subq 4,r9
108  move.d [r9],r3
109  dumpr3
111  clearf zcvn
112  clear.b [r9]
113  test_cc 0 0 0 0
114  move.d [r9],r3
115  dumpr3
117  addq 2,r9
118  clear.w [r9+]
119  subq 2,r9
120  move.d [r9],r3
121  dumpr3 
123  clear.d [r9]
124  move.d [r9],r3
125  dumpr3
127  quit