1 # frv testcase for mp_exception
2 # mach: fr500 fr550 frv
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"
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
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
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
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
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
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
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
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
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
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