[gdb/testsuite] Fix gdb.dwarf2/dw2-fixed-point.exp on arm-linux
[binutils-gdb.git] / sim / testsuite / h8300 / div.s
blobfd53bafa62cb11759246d8729869528ec6669b3b
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
11 .include "testutils.inc"
13 start
15 .if (sim_cpu == h8sx)
16 divs_w_reg_reg:
17 set_grs_a5a5
19 ;; divs.w rs, rd
20 mov.w #32, r1
21 mov.w #-2, r2
22 set_ccr_zero
23 divs.w r2, r1
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
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
40 divs_w_imm4_reg:
41 set_grs_a5a5
43 ;; divs.w xx:4, rd
44 mov.w #-32, r1
45 set_ccr_zero
46 divs.w #2:4, r1
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
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
63 divs_l_reg_reg:
64 set_grs_a5a5
66 ;; divs.l ers, erd
67 mov.l #320000, er1
68 mov.l #-2, er2
69 set_ccr_zero
70 divs.l er2, er1
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
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
87 divs_l_imm4_reg:
88 set_grs_a5a5
90 ;; divs.l xx:4, rd
91 mov.l #-320000, er1
92 set_ccr_zero
93 divs.l #2:4, er1
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
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
110 divu_w_reg_reg:
111 set_grs_a5a5
113 ;; divu.w rs, rd
114 mov.w #32, r1
115 mov.w #2, r2
116 set_ccr_zero
117 divu.w r2, r1
119 ;; test ccr ; H=0 N=0 Z=0 V=0 C=0
120 test_cc_clear
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
131 divu_w_imm4_reg:
132 set_grs_a5a5
134 ;; divu.w xx:4, rd
135 mov.w #32, r1
136 set_ccr_zero
137 divu.w #2:4, r1
139 ;; test ccr ; H=0 N=0 Z=0 V=0 C=0
140 test_cc_clear
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
151 divu_l_reg_reg:
152 set_grs_a5a5
154 ;; divu.l ers, erd
155 mov.l #320000, er1
156 mov.l #2, er2
157 set_ccr_zero
158 divu.l er2, er1
160 ;; test ccr ; H=0 N=0 Z=0 V=0 C=0
161 test_cc_clear
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
172 divu_l_imm4_reg:
173 set_grs_a5a5
175 ;; divu.l xx:4, rd
176 mov.l #320000, er1
177 set_ccr_zero
178 divu.l #2:4, er1
180 ;; test ccr ; H=0 N=0 Z=0 V=0 C=0
181 test_cc_clear
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
192 .endif
194 .if (sim_cpu) ; not equal to zero ie. not h8
195 divxs_b_reg_reg:
196 set_grs_a5a5
198 ;; divxs.b rs, rd
199 mov.w #32, r1
200 mov.b #-2, r2l
201 set_ccr_zero
202 divxs.b r2l, r1
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
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
219 .if (sim_cpu == h8sx)
220 divxs_b_imm4_reg:
221 set_grs_a5a5
223 ;; divxs.b xx:4, rd
224 mov.w #-32, r1
225 set_ccr_zero
226 divxs.b #2:4, r1
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
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
244 divxs_w_reg_reg:
245 set_grs_a5a5
247 ;; divxs.w ers, erd
248 mov.l #0x1000, er1
249 mov.w #-0x1000, r2
250 set_ccr_zero
251 divxs.w r2, er1
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
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
268 .if (sim_cpu == h8sx)
269 divxs_w_imm4_reg:
270 set_grs_a5a5
272 ;; divxs.w xx:4, rd
273 mov.l #-4, er1
274 set_ccr_zero
275 divxs.w #2:4, er1
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
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
294 divxu_b_reg_reg:
295 set_grs_a5a5
297 ;; divxu.b rs, rd
298 mov.w #32, r1
299 mov.b #2, r2l
300 set_ccr_zero
301 divxu.b r2l, r1
303 ;; test ccr ; H=0 N=0 Z=0 V=0 C=0
304 test_cc_clear
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
318 .if (sim_cpu) ; not h8
319 .if (sim_cpu == h8sx)
320 divxu_b_imm4_reg:
321 set_grs_a5a5
323 ;; divxu.b xx:4, rd
324 mov.w #32, r1
325 set_ccr_zero
326 divxu.b #2:4, r1
328 ;; test ccr ; H=0 N=0 Z=0 V=0 C=0
329 test_cc_clear
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
341 divxu_w_reg_reg:
342 set_grs_a5a5
344 ;; divxu.w ers, erd
345 mov.l #0x1000, er1
346 mov.w #0x1000, r2
347 set_ccr_zero
348 divxu.w r2, er1
350 ;; test ccr ; H=0 N=0 Z=0 V=0 C=0
351 test_cc_clear
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
362 .if (sim_cpu == h8sx)
363 divxu_w_imm4_reg:
364 set_grs_a5a5
366 ;; divxu.w xx:4, rd
367 mov.l #0xffff, er1
368 set_ccr_zero
369 divxu.w #2:4, er1
371 ;; test ccr ; H=0 N=0 Z=0 V=0 C=0
372 test_cc_clear
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
385 pass
387 exit 0