PowerPC64 .branch_lt address
[binutils-gdb.git] / sim / testsuite / h8300 / div.s
1 # Hitachi H8 testcase 'divs', 'divu', 'divxs', 'divxu'
2 # mach(): all
3 # as(h8300): --defsym sim_cpu=0
4 # as(h8300h): --defsym sim_cpu=1
5 # as(h8300s): --defsym sim_cpu=2
6 # as(h8sx): --defsym sim_cpu=3
7 # ld(h8300h): -m h8300helf
8 # ld(h8300s): -m h8300self
9 # ld(h8sx): -m h8300sxelf
10
11 .include "testutils.inc"
12
13 start
14
15 .if (sim_cpu == h8sx)
16 divs_w_reg_reg:
17 set_grs_a5a5
18
19 ;; divs.w rs, rd
20 mov.w #32, r1
21 mov.w #-2, r2
22 set_ccr_zero
23 divs.w r2, r1
24
25 ;; test ccr ; H=0 N=1 Z=0 V=0 C=0
26 test_neg_set
27 test_carry_clear
28 test_zero_clear
29 test_ovf_clear
30
31 test_gr_a5a5 0
32 test_h_gr16 0xfff0 r1
33 test_h_gr32 0xa5a5fffe er2
34 test_gr_a5a5 3
35 test_gr_a5a5 4
36 test_gr_a5a5 5
37 test_gr_a5a5 6
38 test_gr_a5a5 7
39
40 divs_w_imm4_reg:
41 set_grs_a5a5
42
43 ;; divs.w xx:4, rd
44 mov.w #-32, r1
45 set_ccr_zero
46 divs.w #2:4, r1
47
48 ;; test ccr ; H=0 N=1 Z=0 V=0 C=0
49 test_neg_set
50 test_carry_clear
51 test_zero_clear
52 test_ovf_clear
53
54 test_gr_a5a5 0
55 test_h_gr16 -16 r1
56 test_gr_a5a5 2
57 test_gr_a5a5 3
58 test_gr_a5a5 4
59 test_gr_a5a5 5
60 test_gr_a5a5 6
61 test_gr_a5a5 7
62
63 divs_l_reg_reg:
64 set_grs_a5a5
65
66 ;; divs.l ers, erd
67 mov.l #320000, er1
68 mov.l #-2, er2
69 set_ccr_zero
70 divs.l er2, er1
71
72 ;; test ccr ; H=0 N=1 Z=0 V=0 C=0
73 test_neg_set
74 test_carry_clear
75 test_zero_clear
76 test_ovf_clear
77
78 test_gr_a5a5 0
79 test_h_gr32 -160000 er1
80 test_h_gr32 -2 er2
81 test_gr_a5a5 3
82 test_gr_a5a5 4
83 test_gr_a5a5 5
84 test_gr_a5a5 6
85 test_gr_a5a5 7
86
87 divs_l_imm4_reg:
88 set_grs_a5a5
89
90 ;; divs.l xx:4, rd
91 mov.l #-320000, er1
92 set_ccr_zero
93 divs.l #2:4, er1
94
95 ;; test ccr ; H=0 N=1 Z=0 V=0 C=0
96 test_neg_set
97 test_carry_clear
98 test_zero_clear
99 test_ovf_clear
100
101 test_gr_a5a5 0
102 test_h_gr32 -160000 er1
103 test_gr_a5a5 2
104 test_gr_a5a5 3
105 test_gr_a5a5 4
106 test_gr_a5a5 5
107 test_gr_a5a5 6
108 test_gr_a5a5 7
109
110 divu_w_reg_reg:
111 set_grs_a5a5
112
113 ;; divu.w rs, rd
114 mov.w #32, r1
115 mov.w #2, r2
116 set_ccr_zero
117 divu.w r2, r1
118
119 ;; test ccr ; H=0 N=0 Z=0 V=0 C=0
120 test_cc_clear
121
122 test_gr_a5a5 0
123 test_h_gr16 16 r1
124 test_h_gr32 0xa5a50002 er2
125 test_gr_a5a5 3
126 test_gr_a5a5 4
127 test_gr_a5a5 5
128 test_gr_a5a5 6
129 test_gr_a5a5 7
130
131 divu_w_imm4_reg:
132 set_grs_a5a5
133
134 ;; divu.w xx:4, rd
135 mov.w #32, r1
136 set_ccr_zero
137 divu.w #2:4, r1
138
139 ;; test ccr ; H=0 N=0 Z=0 V=0 C=0
140 test_cc_clear
141
142 test_gr_a5a5 0
143 test_h_gr16 16 r1
144 test_gr_a5a5 2
145 test_gr_a5a5 3
146 test_gr_a5a5 4
147 test_gr_a5a5 5
148 test_gr_a5a5 6
149 test_gr_a5a5 7
150
151 divu_l_reg_reg:
152 set_grs_a5a5
153
154 ;; divu.l ers, erd
155 mov.l #320000, er1
156 mov.l #2, er2
157 set_ccr_zero
158 divu.l er2, er1
159
160 ;; test ccr ; H=0 N=0 Z=0 V=0 C=0
161 test_cc_clear
162
163 test_gr_a5a5 0
164 test_h_gr32 160000 er1
165 test_h_gr32 2 er2
166 test_gr_a5a5 3
167 test_gr_a5a5 4
168 test_gr_a5a5 5
169 test_gr_a5a5 6
170 test_gr_a5a5 7
171
172 divu_l_imm4_reg:
173 set_grs_a5a5
174
175 ;; divu.l xx:4, rd
176 mov.l #320000, er1
177 set_ccr_zero
178 divu.l #2:4, er1
179
180 ;; test ccr ; H=0 N=0 Z=0 V=0 C=0
181 test_cc_clear
182
183 test_gr_a5a5 0
184 test_h_gr32 160000 er1
185 test_gr_a5a5 2
186 test_gr_a5a5 3
187 test_gr_a5a5 4
188 test_gr_a5a5 5
189 test_gr_a5a5 6
190 test_gr_a5a5 7
191
192 .endif
193
194 .if (sim_cpu) ; not equal to zero ie. not h8
195 divxs_b_reg_reg:
196 set_grs_a5a5
197
198 ;; divxs.b rs, rd
199 mov.w #32, r1
200 mov.b #-2, r2l
201 set_ccr_zero
202 divxs.b r2l, r1
203
204 ;; test ccr ; H=0 N=1 Z=0 V=0 C=0
205 test_neg_set
206 test_carry_clear
207 test_zero_clear
208 test_ovf_clear
209
210 test_gr_a5a5 0
211 test_h_gr16 0x00f0 r1
212 test_h_gr32 0xa5a5a5fe er2
213 test_gr_a5a5 3
214 test_gr_a5a5 4
215 test_gr_a5a5 5
216 test_gr_a5a5 6
217 test_gr_a5a5 7
218
219 .if (sim_cpu == h8sx)
220 divxs_b_imm4_reg:
221 set_grs_a5a5
222
223 ;; divxs.b xx:4, rd
224 mov.w #-32, r1
225 set_ccr_zero
226 divxs.b #2:4, r1
227
228 ;; test ccr ; H=0 N=1 Z=0 V=0 C=0
229 test_neg_set
230 test_carry_clear
231 test_zero_clear
232 test_ovf_clear
233
234 test_gr_a5a5 0
235 test_h_gr16 0x00f0 r1
236 test_gr_a5a5 2
237 test_gr_a5a5 3
238 test_gr_a5a5 4
239 test_gr_a5a5 5
240 test_gr_a5a5 6
241 test_gr_a5a5 7
242 .endif ; h8sx
243
244 divxs_w_reg_reg:
245 set_grs_a5a5
246
247 ;; divxs.w ers, erd
248 mov.l #0x1000, er1
249 mov.w #-0x1000, r2
250 set_ccr_zero
251 divxs.w r2, er1
252
253 ;; test ccr ; H=0 N=1 Z=0 V=0 C=0
254 test_neg_set
255 test_carry_clear
256 test_zero_clear
257 test_ovf_clear
258
259 test_gr_a5a5 0
260 test_h_gr32 0x0000ffff er1
261 test_h_gr32 0xa5a5f000 er2
262 test_gr_a5a5 3
263 test_gr_a5a5 4
264 test_gr_a5a5 5
265 test_gr_a5a5 6
266 test_gr_a5a5 7
267
268 .if (sim_cpu == h8sx)
269 divxs_w_imm4_reg:
270 set_grs_a5a5
271
272 ;; divxs.w xx:4, rd
273 mov.l #-4, er1
274 set_ccr_zero
275 divxs.w #2:4, er1
276
277 ;; test ccr ; H=0 N=1 Z=0 V=0 C=0
278 test_neg_set
279 test_carry_clear
280 test_zero_clear
281 test_ovf_clear
282
283 test_gr_a5a5 0
284 test_h_gr32 0x0000fffe er1
285 test_gr_a5a5 2
286 test_gr_a5a5 3
287 test_gr_a5a5 4
288 test_gr_a5a5 5
289 test_gr_a5a5 6
290 test_gr_a5a5 7
291 .endif ; h8sx
292 .endif ; not h8
293
294 divxu_b_reg_reg:
295 set_grs_a5a5
296
297 ;; divxu.b rs, rd
298 mov.w #32, r1
299 mov.b #2, r2l
300 set_ccr_zero
301 divxu.b r2l, r1
302
303 ;; test ccr ; H=0 N=0 Z=0 V=0 C=0
304 test_cc_clear
305
306 test_gr_a5a5 0
307 test_h_gr16 0x0010 r1
308 test_h_gr16 0xa502 r2
309 .if (sim_cpu)
310 test_h_gr32 0xa5a5a502 er2
311 .endif
312 test_gr_a5a5 3
313 test_gr_a5a5 4
314 test_gr_a5a5 5
315 test_gr_a5a5 6
316 test_gr_a5a5 7
317
318 .if (sim_cpu) ; not h8
319 .if (sim_cpu == h8sx)
320 divxu_b_imm4_reg:
321 set_grs_a5a5
322
323 ;; divxu.b xx:4, rd
324 mov.w #32, r1
325 set_ccr_zero
326 divxu.b #2:4, r1
327
328 ;; test ccr ; H=0 N=0 Z=0 V=0 C=0
329 test_cc_clear
330
331 test_gr_a5a5 0
332 test_h_gr16 0x0010 r1
333 test_gr_a5a5 2
334 test_gr_a5a5 3
335 test_gr_a5a5 4
336 test_gr_a5a5 5
337 test_gr_a5a5 6
338 test_gr_a5a5 7
339 .endif ; h8sx
340
341 divxu_w_reg_reg:
342 set_grs_a5a5
343
344 ;; divxu.w ers, erd
345 mov.l #0x1000, er1
346 mov.w #0x1000, r2
347 set_ccr_zero
348 divxu.w r2, er1
349
350 ;; test ccr ; H=0 N=0 Z=0 V=0 C=0
351 test_cc_clear
352
353 test_gr_a5a5 0
354 test_h_gr32 0x00000001 er1
355 test_h_gr32 0xa5a51000 er2
356 test_gr_a5a5 3
357 test_gr_a5a5 4
358 test_gr_a5a5 5
359 test_gr_a5a5 6
360 test_gr_a5a5 7
361
362 .if (sim_cpu == h8sx)
363 divxu_w_imm4_reg:
364 set_grs_a5a5
365
366 ;; divxu.w xx:4, rd
367 mov.l #0xffff, er1
368 set_ccr_zero
369 divxu.w #2:4, er1
370
371 ;; test ccr ; H=0 N=0 Z=0 V=0 C=0
372 test_cc_clear
373
374 test_gr_a5a5 0
375 test_h_gr32 0x00017fff er1
376 test_gr_a5a5 2
377 test_gr_a5a5 3
378 test_gr_a5a5 4
379 test_gr_a5a5 5
380 test_gr_a5a5 6
381 test_gr_a5a5 7
382 .endif ; h8sx
383 .endif ; not h8
384
385 pass
386
387 exit 0