1 # Hitachi H8 testcase 'bfld', 'bfst'
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"
24 ;; bfld #xx:8, @ers, rd8
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
67 ;; bfld #xx:8, @aa:16, rd8
69 bfld #0x80, @byte_src:16, r1l
74 bfld #0x40, @byte_src:16, r1l
79 bfld #0xe0, @byte_src:16, r1l
84 bfld #0x3c, @byte_src:16, r1l
89 bfld #0xfe, @byte_src:16, r1l
94 bfld #0, @byte_src:16, r1l
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
111 ;; bfst rd8, #xx:8, @ers
144 bfst r1l, #0x10, @er2
149 cmp.b #0x10, @byte_dst
154 bfst r1l, #0x20, @er2
159 cmp.b #0x20, @byte_dst
164 bfst r1l, #0xf0, @er2
169 cmp.b #0x50, @byte_dst
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
184 ;; bfst #xx:8, @aa:32, rd8
187 bfst r1l, #0x80, @byte_dst:32
193 cmp.b #0x80, @byte_dst
198 bfst r1l, #0x40, @byte_dst:32
204 cmp.b #0x40, @byte_dst
209 bfst r1l, #0xe0, @byte_dst:32
215 cmp.b #0xa0, @byte_dst
220 bfst r1l, #0x3c, @byte_dst:32
226 cmp.b #0x14, @byte_dst
231 bfst r1l, #0xfe, @byte_dst:32
237 cmp.b #0x4a, @byte_dst
242 bfst r1l, #0, @byte_dst:32
248 cmp.b #0x0, @byte_dst
253 bfst r1l, #0x38, @byte_dst:32
259 cmp.b #0x28, @byte_dst
263 ;; Now let's do one in which the bits in the destination
264 ;; are appropriately combined with the bits in the source.
267 mov.b #0xc3, @byte_dst
269 bfst r1l, #0x3c, @byte_dst:32
275 cmp.b #0xd7, @byte_dst