s390: Error if vector index register omitted in assembly
[binutils-gdb.git] / sim / testsuite / frv / interrupts / mp_exception.cgs
blob3203acc85cef4a349616a992db9252beee1e76c9
1 # frv testcase for mp_exception
2 # mach: fr500 fr550 frv
3 # xerror:
5 # This program no longer assembles because the assembler
6 # now detects the unaligned registers. For this reason
7 # this test is now marked as "xerror" and prints the
8 # expected message "fail"
10         .include "testutils.inc"
12         start
14         .global mp_exception
15 mpx:
16 .if 1
17         fail
18 .else
19         or_spr_immed    2,msr0          ; Set msr0.ovf
20         or_spr_immed    2,msr1          ; Set msr1.ovf
21         and_spr_immed   0xffff8fff,msr0 ; Clear msr0.mtt
22         mcmpsh          fr10,fr11,fcc1  ; mp_exception: cr-not-aligned
23         test_spr_bits   0x7000,12,3,msr0; msr0.mtt is set
24         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
25         test_spr_bits   0x0002,1,0,msr0 ; msr0.ovf is clear
26         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
27         test_spr_bits   0x0002,1,1,msr1 ; msr1.ovf is set
29         or_spr_immed    2,msr0          ; Set msr0.ovf
30         or_spr_immed    2,msr1          ; Set msr1.ovf
31         and_spr_immed   0xffff8fff,msr0 ; Clear msr0.mtt
32         mcmpsh.p        fr10,fr11,fcc0  ; no exception
33         mcmpsh          fr10,fr11,fcc2  ; no exception
34         test_spr_bits   0x7000,12,0,msr0; msr0.mtt is clear
35         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
36         test_spr_bits   0x0002,1,0,msr0 ; msr0.ovf is clear
37         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
38         test_spr_bits   0x0002,1,0,msr1 ; msr1.ovf is clear
40         mmulhs.p        fr10,fr11,acc3  ; no exception
41         mmulhs          fr10,fr11,acc1  ; mp_exception: acc-not-aligned
42         test_spr_bits   0x7000,12,2,msr0; msr0.mtt is set
43         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
44         test_spr_bits   0x0002,1,0,msr0 ; msr0.ovf is clear
45         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
46         test_spr_bits   0x0002,1,0,msr1 ; msr1.ovf is clear
48         or_spr_immed    2,msr0          ; Set msr0.ovf
49         or_spr_immed    2,msr1          ; Set msr1.ovf
50         and_spr_immed   0xffff8fff,msr0 ; Clear msr0.mtt
51         mmulhu          fr10,fr11,acc0  ; no exception
52         test_spr_bits   0x7000,12,0,msr0; msr0.mtt is clear
53         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
54         test_spr_bits   0x0002,1,1,msr0 ; msr0.ovf is still set
55         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
56         test_spr_bits   0x0002,1,1,msr1 ; msr1.ovf still set
58         set_spr_immed   0,msr0
59         set_spr_immed   0,msr1
60         mmulxhs.p       fr10,fr11,acc3  ; no exception
61         mmulxhs         fr10,fr11,acc1  ; mp_exception: acc-not-aligned
62         test_spr_bits   0x7000,12,2,msr0; msr0.mtt is set
63         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
64         test_spr_bits   0x0002,1,0,msr0 ; msr0.ovf is clear
65         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
66         test_spr_bits   0x0002,1,0,msr1 ; msr1.ovf is clear
68         or_spr_immed    2,msr0          ; Set msr0.ovf
69         or_spr_immed    2,msr1          ; Set msr1.ovf
70         and_spr_immed   0xffff8fff,msr0 ; Clear msr0.mtt
71         mmulxhu         fr10,fr11,acc0  ; no exception
72         test_spr_bits   0x7000,12,0,msr0; msr0.mtt is clear
73         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
74         test_spr_bits   0x0002,1,1,msr0 ; msr0.ovf is still set
75         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
76         test_spr_bits   0x0002,1,1,msr1 ; msr1.ovf still set
78         set_spr_immed   0,msr0
79         set_spr_immed   0,msr1
80         mmachs.p        fr10,fr11,acc3  ; no exception
81         mmachs          fr10,fr11,acc1  ; mp_exception: acc-not-aligned
82         test_spr_bits   0x7000,12,2,msr0; msr0.mtt is set
83         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
84         test_spr_bits   0x0002,1,0,msr0 ; msr0.ovf is clear
85         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
86         test_spr_bits   0x0002,1,0,msr1 ; msr1.ovf is clear
88         or_spr_immed    2,msr0          ; Set msr0.ovf
89         or_spr_immed    2,msr1          ; Set msr1.ovf
90         and_spr_immed   0xffff8fff,msr0 ; Clear msr0.mtt
91         mmachu          fr10,fr11,acc0  ; no exception
92         test_spr_bits   0x7000,12,0,msr0; msr0.mtt is clear
93         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
94         test_spr_bits   0x0002,1,0,msr0 ; msr0.ovf is clear
95         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
96         test_spr_bits   0x0002,1,1,msr1 ; msr1.ovf still set
98         set_spr_immed   0,msr0
99         set_spr_immed   0,msr1
100         mqaddhss.p      fr10,fr12,fr17  ; mp_exception: register-not-aligned
101         mqaddhss        fr10,fr12,fr14  ; no exception
102         test_spr_bits   0x7000,12,6,msr0; msr0.mtt is set
103         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
104         test_spr_bits   0x0002,1,0,msr0 ; msr0.ovf is clear
105         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
106         test_spr_bits   0x0002,1,0,msr1 ; msr1.ovf is clear
108         set_spr_immed   0,msr0
109         set_spr_immed   0,msr1
110         mqaddhss.p      fr10,fr12,fr14  ; no exception
111         mqaddhss        fr10,fr13,fr16  ; mp_exception: register-not-aligned
112         test_spr_bits   0x7000,12,6,msr0; msr0.mtt is set
113         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
114         test_spr_bits   0x0002,1,0,msr0 ; msr0.ovf is clear
115         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
116         test_spr_bits   0x0002,1,0,msr1 ; msr1.ovf is clear
118         set_spr_immed   0,msr0
119         set_spr_immed   0,msr1
120         mqaddhss.p      fr19,fr12,fr14  ; mp_exception: register-not-aligned
121         mqaddhss        fr10,fr13,fr16  ; mp_exception: register-not-aligned
122         test_spr_bits   0x7000,12,6,msr0; msr0.mtt is set
123         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
124         test_spr_bits   0x0002,1,0,msr0 ; msr0.ovf is clear
125         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
126         test_spr_bits   0x0002,1,0,msr1 ; msr1.ovf is clear
128         or_spr_immed    2,msr0          ; Set msr0.ovf
129         or_spr_immed    2,msr1          ; Set msr1.ovf
130         and_spr_immed   0xffff8fff,msr0 ; Clear msr0.mtt
131         mqaddhss        fr10,fr12,fr14  ; no exception
132         test_spr_bits   0x7000,12,0,msr0; msr0.mtt is clear
133         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
134         test_spr_bits   0x0002,1,0,msr0 ; msr0.ovf is clear
135         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
136         test_spr_bits   0x0002,1,1,msr1 ; msr1.ovf still set
138         set_spr_immed   0,msr0
139         set_spr_immed   0,msr1
140         mqmulhs.p       fr10,fr11,acc3  ; no exception
141         mqmulhs         fr10,fr11,acc2  ; mp_exception: acc-not-aligned
142         test_spr_bits   0x7000,12,2,msr0; msr0.mtt is set
143         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
144         test_spr_bits   0x0002,1,0,msr0 ; msr0.ovf is clear
145         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
146         test_spr_bits   0x0002,1,0,msr1 ; msr1.ovf is clear
148         or_spr_immed    2,msr0          ; Set msr0.ovf
149         or_spr_immed    2,msr1          ; Set msr1.ovf
150         and_spr_immed   0xffff8fff,msr0 ; Clear msr0.mtt
151         mqmulhu         fr10,fr11,acc0  ; mp_exception: register_not_aligned
152         test_spr_bits   0x7000,12,6,msr0; msr0.mtt is set
153         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
154         test_spr_bits   0x0002,1,1,msr0 ; msr0.ovf is still set
155         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
156         test_spr_bits   0x0002,1,1,msr1 ; msr1.ovf still set
158         and_spr_immed   0xffff8fff,msr0 ; Clear msr0.mtt
159         mqmulhu         fr10,fr12,acc0  ; no exception
160         test_spr_bits   0x7000,12,0,msr0; msr0.mtt is clear
161         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
162         test_spr_bits   0x0002,1,1,msr0 ; msr0.ovf is still set
163         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
164         test_spr_bits   0x0002,1,1,msr1 ; msr1.ovf still set
166         set_spr_immed   0,msr0
167         set_spr_immed   0,msr1
168         mqmulxhs.p      fr10,fr11,acc3  ; no exception
169         mqmulxhs        fr10,fr11,acc2  ; mp_exception: acc-not-aligned
170         test_spr_bits   0x7000,12,2,msr0; msr0.mtt is set
171         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
172         test_spr_bits   0x0002,1,0,msr0 ; msr0.ovf is clear
173         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
174         test_spr_bits   0x0002,1,0,msr1 ; msr1.ovf is clear
176         or_spr_immed    2,msr0          ; Set msr0.ovf
177         or_spr_immed    2,msr1          ; Set msr1.ovf
178         and_spr_immed   0xffff8fff,msr0 ; Clear msr0.mtt
179         mqmulxhu        fr10,fr11,acc0  ; mp_exception: register-not-aligned
180         test_spr_bits   0x7000,12,6,msr0; msr0.mtt is set
181         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
182         test_spr_bits   0x0002,1,1,msr0 ; msr0.ovf is still set
183         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
184         test_spr_bits   0x0002,1,1,msr1 ; msr1.ovf still set
186         and_spr_immed   0xffff8fff,msr0 ; Clear msr0.mtt
187         mqmulxhu        fr10,fr12,acc0  ; no exception
188         test_spr_bits   0x7000,12,0,msr0; msr0.mtt is clear
189         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
190         test_spr_bits   0x0002,1,1,msr0 ; msr0.ovf is still set
191         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
192         test_spr_bits   0x0002,1,1,msr1 ; msr1.ovf still set
194         set_spr_immed   0,msr0
195         set_spr_immed   0,msr1
196         mqmachs.p       fr10,fr12,acc3  ; no exception
197         mqmachs         fr10,fr12,acc2  ; mp_exception: acc-not-aligned
198         test_spr_bits   0x7000,12,2,msr0; msr0.mtt is set
199         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
200         test_spr_bits   0x0002,1,0,msr0 ; msr0.ovf is clear
201         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
202         test_spr_bits   0x0002,1,0,msr1 ; msr1.ovf is clear
204         and_spr_immed   0xffff8fff,msr0 ; Clear msr0.mtt
205         mqmachu.p       fr19,fr12,acc0  ; mp_exception: register-not-aligned
206         mqmachu         fr10,fr12,acc0  ; no exception
207         test_spr_bits   0x7000,12,6,msr0; msr0.mtt is set
208         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
209         test_spr_bits   0x0002,1,0,msr0 ; msr0.ovf is clear
210         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
211         test_spr_bits   0x0002,1,0,msr1 ; msr1.ovf is clear
213         and_spr_immed   0xffff8fff,msr0 ; Clear msr0.mtt
214         mqmachu.p       fr10,fr12,acc0  ; no exception
215         mqmachu         fr19,fr12,acc0  ; mp_exception: register-not-aligned
216         test_spr_bits   0x7000,12,6,msr0; msr0.mtt is set
217         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
218         test_spr_bits   0x0002,1,0,msr0 ; msr0.ovf is clear
219         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
220         test_spr_bits   0x0002,1,0,msr1 ; msr1.ovf is clear
222         and_spr_immed   0xffff8fff,msr0 ; Clear msr0.mtt
223         mqmachu.p       fr19,fr12,acc0  ; mp_exception: register-not-aligned
224         mqmachu         fr19,fr12,acc0  ; mp_exception: register-not-aligned
225         test_spr_bits   0x7000,12,6,msr0; msr0.mtt is set
226         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
227         test_spr_bits   0x0002,1,0,msr0 ; msr0.ovf is clear
228         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
229         test_spr_bits   0x0002,1,0,msr1 ; msr1.ovf is clear
231         or_spr_immed    2,msr0          ; Set msr0.ovf
232         or_spr_immed    2,msr1          ; Set msr1.ovf
233         and_spr_immed   0xffff8fff,msr0 ; Clear msr0.mtt
234         mqmachu         fr10,fr12,acc0  ; no exception
235         test_spr_bits   0x7000,12,0,msr0; msr0.mtt is clear
236         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
237         test_spr_bits   0x0002,1,0,msr0 ; msr0.ovf is clear
238         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
239         test_spr_bits   0x0002,1,1,msr1 ; msr1.ovf still set
241         set_spr_immed   0,msr0
242         set_spr_immed   0,msr1
243         mqcpxrs.p       fr10,fr12,acc0  ; no exception
244         mqcpxrs         fr10,fr12,acc1  ; mp_exception: acc-not-aligned
245         test_spr_bits   0x7000,12,2,msr0; msr0.mtt is set
246         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
247         test_spr_bits   0x0002,1,0,msr0 ; msr0.ovf is clear
248         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
249         test_spr_bits   0x0002,1,0,msr1 ; msr1.ovf is clear
251         and_spr_immed   0xffff8fff,msr0 ; Clear msr0.mtt
252         mqcpxru.p       fr19,fr12,acc0  ; mp_exception: register-not-aligned
253         mqcpxru         fr10,fr12,acc0  ; no exception
254         test_spr_bits   0x7000,12,6,msr0; msr0.mtt is set
255         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
256         test_spr_bits   0x0002,1,0,msr0 ; msr0.ovf is clear
257         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
258         test_spr_bits   0x0002,1,0,msr1 ; msr1.ovf is clear
260         and_spr_immed   0xffff8fff,msr0 ; Clear msr0.mtt
261         mqcpxru.p       fr10,fr12,acc0  ; no exception
262         mqcpxru         fr19,fr12,acc0  ; mp_exception: register-not-aligned
263         test_spr_bits   0x7000,12,6,msr0; msr0.mtt is set
264         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
265         test_spr_bits   0x0002,1,0,msr0 ; msr0.ovf is clear
266         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
267         test_spr_bits   0x0002,1,0,msr1 ; msr1.ovf is clear
269         and_spr_immed   0xffff8fff,msr0 ; Clear msr0.mtt
270         mqcpxru.p       fr19,fr12,acc0  ; mp_exception: register-not-aligned
271         mqcpxru         fr19,fr12,acc0  ; mp_exception: register-not-aligned
272         test_spr_bits   0x7000,12,6,msr0; msr0.mtt is set
273         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
274         test_spr_bits   0x0002,1,0,msr0 ; msr0.ovf is clear
275         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
276         test_spr_bits   0x0002,1,0,msr1 ; msr1.ovf is clear
278         or_spr_immed    2,msr0          ; Set msr0.ovf
279         or_spr_immed    2,msr1          ; Set msr1.ovf
280         and_spr_immed   0xffff8fff,msr0 ; Clear msr0.mtt
281         mqcpxru         fr10,fr12,acc0  ; no exception
282         test_spr_bits   0x7000,12,0,msr0; msr0.mtt is clear
283         test_spr_bits   0x003c,2,0,msr0 ; msr0.sie is clear
284         test_spr_bits   0x0002,1,0,msr0 ; msr0.ovf is clear
285         test_spr_bits   0x003c,2,0,msr1 ; msr1.sie is clear
286         test_spr_bits   0x0002,1,1,msr1 ; msr1.ovf still set
288         pass
289 .endif