* hppa.h (pa_opcodes): Use "cX" completer instead of "cx" in fstqx
[external/binutils.git] / sim / testsuite / sim / 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