OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gdb/] [gdb-6.8/] [sim/] [testsuite/] [sim/] [h8300/] [div.s] - Blame information for rev 26

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 26 jlechner
# 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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.