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

Subversion Repositories scarts

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

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 26 jlechner
# Hitachi H8 testcase 'bfld', 'bfst'
2
# mach(): h8sx
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
        .data
14
byte_src:       .byte   0xa5
15
byte_dst:       .byte   0
16
 
17
        start
18
 
19
.if (sim_cpu == h8sx)
20
bfld_imm8_ind:
21
        set_grs_a5a5
22
        mov     #byte_src, er2
23
 
24
        ;; bfld #xx:8, @ers, rd8
25
        set_ccr_zero
26
        bfld    #1, @er2, r1l
27
        test_cc_clear
28
        test_h_gr8 1 r1l
29
 
30
        set_ccr_zero
31
        bfld    #2, @er2, r1l
32
        test_cc_clear
33
        test_h_gr8 0 r1l
34
 
35
        set_ccr_zero
36
        bfld    #7, @er2, r1l
37
        test_cc_clear
38
        test_h_gr8 5 r1l
39
 
40
        set_ccr_zero
41
        bfld    #0x10, @er2, r1l
42
        test_cc_clear
43
        test_h_gr8 0 r1l
44
 
45
        set_ccr_zero
46
        bfld    #0x20, @er2, r1l
47
        test_cc_clear
48
        test_h_gr8 1 r1l
49
 
50
        set_ccr_zero
51
        bfld    #0xf0, @er2, r1l
52
        test_cc_clear
53
        test_h_gr8 0xa r1l
54
 
55
        test_h_gr32 0xa5a5a5a5 er0
56
        test_h_gr32 0xa5a5a50a er1
57
        test_h_gr32 byte_src   er2
58
        test_h_gr32 0xa5a5a5a5 er3
59
        test_h_gr32 0xa5a5a5a5 er4
60
        test_h_gr32 0xa5a5a5a5 er5
61
        test_h_gr32 0xa5a5a5a5 er6
62
        test_h_gr32 0xa5a5a5a5 er7
63
 
64
bfld_imm8_abs16:
65
        set_grs_a5a5
66
 
67
        ;; bfld #xx:8, @aa:16, rd8
68
        set_ccr_zero
69
        bfld    #0x80, @byte_src:16, r1l
70
        test_cc_clear
71
        test_h_gr8 1 r1l
72
 
73
        set_ccr_zero
74
        bfld    #0x40, @byte_src:16, r1l
75
        test_cc_clear
76
        test_h_gr8 0 r1l
77
 
78
        set_ccr_zero
79
        bfld    #0xe0, @byte_src:16, r1l
80
        test_cc_clear
81
        test_h_gr8 0x5 r1l
82
 
83
        set_ccr_zero
84
        bfld    #0x3c, @byte_src:16, r1l
85
        test_cc_clear
86
        test_h_gr8 9 r1l
87
 
88
        set_ccr_zero
89
        bfld    #0xfe, @byte_src:16, r1l
90
        test_cc_clear
91
        test_h_gr8 0x52 r1l
92
 
93
        set_ccr_zero
94
        bfld    #0, @byte_src:16, r1l
95
        test_cc_clear
96
        test_h_gr8 0 r1l
97
 
98
        test_h_gr32 0xa5a5a5a5 er0
99
        test_h_gr32 0xa5a5a500 er1
100
        test_h_gr32 0xa5a5a5a5 er2
101
        test_h_gr32 0xa5a5a5a5 er3
102
        test_h_gr32 0xa5a5a5a5 er4
103
        test_h_gr32 0xa5a5a5a5 er5
104
        test_h_gr32 0xa5a5a5a5 er6
105
        test_h_gr32 0xa5a5a5a5 er7
106
 
107
bfst_imm8_ind:
108
        set_grs_a5a5
109
        mov     #byte_dst, er2
110
 
111
        ;; bfst rd8, #xx:8, @ers
112
        mov.b   #0, @byte_dst
113
        set_ccr_zero
114
        bfst    r1l, #1, @er2
115
;;;     .word   0x7d20
116
;;;     .word   0xf901
117
 
118
        test_cc_clear
119
        cmp.b   #1, @byte_dst
120
        bne     fail1:16
121
 
122
        mov.b   #0, @byte_dst
123
        set_ccr_zero
124
        bfst    r1l, #2, @er2
125
;;;     .word   0x7d20
126
;;;     .word   0xf902
127
 
128
        test_cc_clear
129
        cmp.b   #2, @byte_dst
130
        bne     fail1:16
131
 
132
        mov.b   #0, @byte_dst
133
        set_ccr_zero
134
        bfst    r1l, #7, @er2
135
;;;     .word   0x7d20
136
;;;     .word   0xf907
137
 
138
        test_cc_clear
139
        cmp.b   #5, @byte_dst
140
        bne     fail1:16
141
 
142
        mov.b   #0, @byte_dst
143
        set_ccr_zero
144
        bfst    r1l, #0x10, @er2
145
;;;     .word   0x7d20
146
;;;     .word   0xf910
147
 
148
        test_cc_clear
149
        cmp.b   #0x10, @byte_dst
150
        bne     fail1:16
151
 
152
        mov.b   #0, @byte_dst
153
        set_ccr_zero
154
        bfst    r1l, #0x20, @er2
155
;;;     .word   0x7d20
156
;;;     .word   0xf920
157
 
158
        test_cc_clear
159
        cmp.b   #0x20, @byte_dst
160
        bne     fail1:16
161
 
162
        mov.b   #0, @byte_dst
163
        set_ccr_zero
164
        bfst    r1l, #0xf0, @er2
165
;;;     .word   0x7d20
166
;;;     .word   0xf9f0
167
 
168
        test_cc_clear
169
        cmp.b   #0x50, @byte_dst
170
        bne     fail1:16
171
 
172
        test_h_gr32 0xa5a5a5a5 er0
173
        test_h_gr32 0xa5a5a5a5 er1
174
        test_h_gr32 byte_dst   er2
175
        test_h_gr32 0xa5a5a5a5 er3
176
        test_h_gr32 0xa5a5a5a5 er4
177
        test_h_gr32 0xa5a5a5a5 er5
178
        test_h_gr32 0xa5a5a5a5 er6
179
        test_h_gr32 0xa5a5a5a5 er7
180
 
181
bfst_imm8_abs32:
182
        set_grs_a5a5
183
 
184
        ;; bfst #xx:8, @aa:32, rd8
185
        mov.b   #0, @byte_dst
186
        set_ccr_zero
187
        bfst    r1l, #0x80, @byte_dst:32
188
;;;     .word   0x6a38
189
;;;     .long   byte_dst
190
;;;     .word   0xf980
191
 
192
        test_cc_clear
193
        cmp.b   #0x80, @byte_dst
194
        bne     fail1:16
195
 
196
        mov.b   #0, @byte_dst
197
        set_ccr_zero
198
        bfst    r1l, #0x40, @byte_dst:32
199
;;;     .word   0x6a38
200
;;;     .long   byte_dst
201
;;;     .word   0xf940
202
 
203
        test_cc_clear
204
        cmp.b   #0x40, @byte_dst
205
        bne     fail1:16
206
 
207
        mov.b   #0, @byte_dst
208
        set_ccr_zero
209
        bfst    r1l, #0xe0, @byte_dst:32
210
;;;     .word   0x6a38
211
;;;     .long   byte_dst
212
;;;     .word   0xf9e0
213
 
214
        test_cc_clear
215
        cmp.b   #0xa0, @byte_dst
216
        bne     fail1:16
217
 
218
        mov.b   #0, @byte_dst
219
        set_ccr_zero
220
        bfst    r1l, #0x3c, @byte_dst:32
221
;;;     .word   0x6a38
222
;;;     .long   byte_dst
223
;;;     .word   0xf93c
224
 
225
        test_cc_clear
226
        cmp.b   #0x14, @byte_dst
227
        bne     fail1:16
228
 
229
        mov.b   #0, @byte_dst
230
        set_ccr_zero
231
        bfst    r1l, #0xfe, @byte_dst:32
232
;;;     .word   0x6a38
233
;;;     .long   byte_dst
234
;;;     .word   0xf9fe
235
 
236
        test_cc_clear
237
        cmp.b   #0x4a, @byte_dst
238
        bne     fail1:16
239
 
240
        mov.b   #0, @byte_dst
241
        set_ccr_zero
242
        bfst    r1l, #0, @byte_dst:32
243
;;;     .word   0x6a38
244
;;;     .long   byte_dst
245
;;;     .word   0xf900
246
 
247
        test_cc_clear
248
        cmp.b   #0x0, @byte_dst
249
        bne     fail1:16
250
 
251
        mov.b   #0, @byte_dst
252
        set_ccr_zero
253
        bfst    r1l, #0x38, @byte_dst:32
254
;;;     .word   0x6a38
255
;;;     .long   byte_dst
256
;;;     .word   0xf938
257
 
258
        test_cc_clear
259
        cmp.b   #0x28, @byte_dst
260
        bne     fail1:16
261
 
262
        ;;
263
        ;; Now let's do one in which the bits in the destination
264
        ;; are appropriately combined with the bits in the source.
265
        ;;
266
 
267
        mov.b   #0xc3, @byte_dst
268
        set_ccr_zero
269
        bfst    r1l, #0x3c, @byte_dst:32
270
;;;     .word   0x6a38
271
;;;     .long   byte_dst
272
;;;     .word   0xf93c
273
 
274
        test_cc_clear
275
        cmp.b   #0xd7, @byte_dst
276
        bne     fail1:16
277
 
278
        test_grs_a5a5
279
 
280
.endif
281
        pass
282
 
283
        exit 0
284
 
285
fail1:  fail
286
 

powered by: WebSVN 2.1.0

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