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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [binutils-2.18.50/] [gas/] [testsuite/] [gas/] [m32r/] [m32rx.s] - Blame information for rev 856

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 38 julius
# Test new instructions
2
branchpoint:
3
 
4
        .text
5
        .global bcl
6
bcl:
7
        bcl branchpoint
8
 
9
        .text
10
        .global bncl
11
bncl:
12
        bncl branchpoint
13
 
14
        .text
15
        .global cmpz
16
cmpz:
17
        cmpz fp
18
 
19
        .text
20
        .global cmpeq
21
cmpeq:
22
        cmpeq fp, fp
23
 
24
        .text
25
        .global maclh1
26
maclh1:
27
        maclh1 fp, fp
28
 
29
        .text
30
        .global macsl0
31
msblo:
32
        msblo fp, fp
33
 
34
        .text
35
        .global mulwu1
36
mulwu1:
37
        mulwu1 fp, fp
38
 
39
        .text
40
        .global macwu1
41
macwu1:
42
        macwu1 fp, fp
43
 
44
        .text
45
        .global sadd
46
sadd:
47
        sadd
48
 
49
        .text
50
        .global satb
51
satb:
52
        satb fp, fp
53
 
54
 
55
        .text
56
        .global mulhi
57
mulhi:
58
        mulhi fp, fp, a1
59
 
60
        .text
61
        .global mullo
62
mullo:
63
        mullo fp, fp, a0
64
 
65
        .text
66
        .global divh
67
divh:
68
        divh fp, fp
69
 
70
        .text
71
        .global machi
72
machi:
73
        machi fp, fp, a1
74
 
75
        .text
76
        .global maclo
77
maclo:
78
        maclo fp, fp, a0
79
 
80
        .text
81
        .global mvfachi
82
mvfachi:
83
        mvfachi fp, a1
84
 
85
        .text
86
        .global mvfacmi
87
mvfacmi:
88
        mvfacmi fp, a1
89
 
90
        .text
91
        .global mvfaclo
92
mvfaclo:
93
        mvfaclo fp, a1
94
 
95
        .text
96
        .global mvtachi
97
mvtachi:
98
        mvtachi fp, a1
99
 
100
        .text
101
        .global mvtaclo
102
mvtaclo:
103
        mvtaclo fp, a0
104
 
105
        .text
106
        .global rac
107
rac:
108
        rac a1
109
 
110
        .text
111
        .global rac_ds
112
rac_ds:
113
        rac a1, a0
114
 
115
        .text
116
        .global rac_dsi
117
rac_dsi:
118
        rac a0, a1, #1
119
 
120
        .text
121
        .global rach
122
rach:
123
        rach a1
124
 
125
        .text
126
        .global rach_ds
127
rach_ds:
128
        rach a0, a1
129
 
130
        .text
131
        .global rach_dsi
132
rach_dsi:
133
        rach a1, a0, #2
134
 
135
# Test explicitly parallel and implicitly parallel instructions
136
# Including apparent instruction sequence reordering.
137
        .text
138
        .global bc__add
139
bc__add:
140
        bc bcl || add fp, fp
141
# Use bc.s here as bc is relaxable and thus a nop will be emitted.
142
        bc.s bcl
143
        add fp, fp
144
 
145
        .text
146
        .global bcl__addi
147
bcl__addi:
148
        bcl bcl || addi fp, #77
149
        addi fp, #77
150
# Use bcl.s here as bcl is relaxable and thus the parallelization won't happen.
151
        bcl.s bcl
152
 
153
        .text
154
        .global bl__addv
155
bl__addv:
156
        bl bcl || addv fp, fp
157
        addv fp, fp
158
# Use bl.s here as bl is relaxable and thus the parallelization won't happen.
159
        bl.s bcl
160
 
161
        .text
162
        .global bnc__addx
163
bnc__addx:
164
        bnc bcl || addx fp, fp
165
# Use bnc.s here as bnc is relaxable and thus the parallelization attempt won't
166
# happen.  Things still won't be parallelized, but we want this test to try.
167
        bnc.s bcl
168
        addx fp, fp
169
 
170
        .text
171
        .global bncl__and
172
bncl__and:
173
        bncl bcl || and fp, fp
174
        and fp, fp
175
        bncl.s bcl
176
 
177
        .text
178
        .global bra__cmp
179
bra__cmp:
180
        bra bcl || cmp fp, fp
181
        cmp fp, fp
182
# Use bra.s here as bra is relaxable and thus the parallelization won't happen.
183
        bra.s bcl
184
 
185
        .text
186
        .global jl__cmpeq
187
jl__cmpeq:
188
        jl fp || cmpeq fp, fp
189
        cmpeq fp, fp
190
        jl fp
191
 
192
        .text
193
        .global jmp__cmpu
194
jmp__cmpu:
195
        jmp fp || cmpu fp, fp
196
        cmpu fp, fp
197
        jmp fp
198
 
199
        .text
200
        .global ld__cmpz
201
ld__cmpz:
202
        ld fp, @fp || cmpz r1
203
        cmpz r1
204
        ld fp, @fp
205
 
206
        .text
207
        .global ld__ldi
208
ld__ldi:
209
        ld fp, @r1+ || ldi r2, #77
210
        ld fp, @r1+
211
        ldi r2, #77
212
 
213
        .text
214
        .global ldb__mv
215
ldb__mv:
216
        ldb fp, @fp || mv r2, fp
217
        ldb fp, @fp
218
        mv r2, fp
219
 
220
        .text
221
        .global ldh__neg
222
ldh__neg:
223
        ldh fp, @fp || neg r2, fp
224
        ldh fp, @fp
225
        neg r2, fp
226
 
227
        .text
228
        .global ldub__nop
229
ldub__nop:
230
        ldub fp, @fp || nop
231
        ldub fp, @fp
232
        nop
233
 
234
        .text
235
        .global lduh__not
236
lduh__not:
237
        lduh fp, @fp || not r2, fp
238
        lduh fp, @fp
239
        not r2, fp
240
 
241
        .text
242
        .global lock__or
243
lock__or:
244
        lock fp, @fp || or r2, fp
245
        lock fp, @fp
246
        or r2, fp
247
 
248
        .text
249
        .global mvfc__sub
250
mvfc__sub:
251
        mvfc fp, cr1 || sub r2, fp
252
        mvfc fp, cr1
253
        sub r2, fp
254
 
255
        .text
256
        .global mvtc__subv
257
mvtc__subv:
258
        mvtc fp, cr2 || subv r2, fp
259
        mvtc fp, cr2
260
        subv r2, fp
261
 
262
        .text
263
        .global rte__subx
264
rte__subx:
265
        rte || sub r2, fp
266
        rte
267
        subx r2, fp
268
 
269
        .text
270
        .global sll__xor
271
sll__xor:
272
        sll fp, r1 || xor r2, fp
273
        sll fp, r1
274
        xor r2, fp
275
 
276
        .text
277
        .global slli__machi
278
slli__machi:
279
        slli fp, #22 || machi r2, fp
280
        slli fp, #22
281
        machi r2, fp
282
 
283
        .text
284
        .global sra__maclh1
285
sra__maclh1:
286
        sra fp, fp || maclh1 r2, fp
287
        sra fp, fp
288
        maclh1 r2, fp
289
 
290
        .text
291
        .global srai__maclo
292
srai__maclo:
293
        srai fp, #22 || maclo r2, fp
294
        srai fp, #22
295
        maclo r2, fp
296
 
297
        .text
298
        .global srl__macwhi
299
srl__macwhi:
300
        srl fp, fp || macwhi r2, fp
301
        srl fp, fp
302
        macwhi r2, fp
303
 
304
        .text
305
        .global srli__macwlo
306
srli__macwlo:
307
        srli fp, #22 || macwlo r2, fp
308
        srli fp, #22
309
        macwlo r2, fp
310
 
311
        .text
312
        .global st__macwu1
313
st__macwu1:
314
        st fp, @fp || macwu1 r2, fp
315
        st fp, @fp
316
        macwu1 r2, fp
317
 
318
        .text
319
        .global st__msblo
320
st__msblo:
321
        st fp, @+fp || msblo r2, fp
322
        st fp, @+fp
323
        msblo r2, fp
324
 
325
        .text
326
        .global st__mul
327
st__mul:
328
        st fp, @-fp || mul r2, fp
329
        st fp, @-fp
330
        mul r2, fp
331
 
332
        .text
333
        .global stb__mulhi
334
stb__mulhi:
335
        stb fp, @fp || mulhi r2, fp
336
        stb fp, @fp
337
        mulhi r2, fp
338
 
339
        .text
340
        .global sth__mullo
341
sth__mullo:
342
        sth fp, @fp || mullo r2, fp
343
        sth fp, @fp
344
        mullo r2, fp
345
 
346
        .text
347
        .global trap__mulwhi
348
trap__mulwhi:
349
        trap #2 || mulwhi r2, fp
350
        trap #2
351
        mulwhi r2, fp
352
 
353
        .text
354
        .global unlock__mulwlo
355
unlock__mulwlo:
356
        unlock fp, @fp || mulwlo r2, fp
357
        unlock fp, @fp
358
        mulwlo r2, fp
359
 
360
        .text
361
        .global add__mulwu1
362
add__mulwu1:
363
        add fp, fp || mulwu1 r2, fp
364
        add fp, fp
365
        mulwu1 r2, fp
366
 
367
        .text
368
        .global addi__mvfachi
369
addi__mvfachi:
370
        addi fp, #77 || mvfachi r2, a0
371
        addi fp, #77
372
        mvfachi r2, a0
373
 
374
        .text
375
        .global addv__mvfaclo
376
addv__mvfaclo:
377
        addv fp, fp || mvfaclo r2, a1
378
        addv fp, fp
379
        mvfaclo r2, a1
380
 
381
        .text
382
        .global addx__mvfacmi
383
addx__mvfacmi:
384
        addx fp, fp || mvfacmi r2, a0
385
        addx fp, fp
386
        mvfacmi r2, a0
387
 
388
        .text
389
        .global and__mvtachi
390
and__mvtachi:
391
        and fp, fp || mvtachi r2, a0
392
        and fp, fp
393
        mvtachi r2, a0
394
 
395
        .text
396
        .global cmp__mvtaclo
397
cmp__mvtaclo:
398
        cmp fp, fp || mvtaclo r2, a0
399
        cmp fp, fp
400
        mvtaclo r2, a0
401
 
402
        .text
403
        .global cmpeq__rac
404
cmpeq__rac:
405
        cmpeq fp, fp || rac a1
406
        cmpeq fp, fp
407
        rac a1
408
 
409
        .text
410
        .global cmpu__rach
411
cmpu__rach:
412
        cmpu fp, fp || rach a0, a1
413
        cmpu fp, fp
414
        rach a1, a1, #1
415
 
416
        .text
417
        .global cmpz__sadd
418
cmpz__sadd:
419
        cmpz fp || sadd
420
        cmpz fp
421
        sadd
422
 
423
 
424
 
425
# Test private instructions
426
        .text
427
        .global sc
428
sc:
429
        sc
430
        sadd
431
 
432
        .text
433
        .global snc
434
snc:
435
        snc
436
        sadd
437
 
438
        .text
439
        .global jc
440
jc:
441
        jc fp
442
 
443
        .text
444
        .global jnc
445
jnc:
446
        jnc fp
447
 
448
        .text
449
        .global pcmpbz
450
pcmpbz:
451
        pcmpbz fp
452
 
453
        .text
454
        .global sat
455
sat:
456
        sat fp, fp
457
 
458
        .text
459
        .global sath
460
sath:
461
        sath fp, fp
462
 
463
 
464
# Test parallel versions of the private instructions
465
 
466
        .text
467
        .global jc__pcmpbz
468
jc__pcmpbz:
469
        jc fp || pcmpbz fp
470
        jc fp
471
        pcmpbz fp
472
 
473
        .text
474
        .global jnc__ldi
475
jnc__ldi:
476
        jnc fp || ldi fp, #77
477
        jnc fp
478
        ldi fp, #77
479
 
480
        .text
481
        .global sc__mv
482
sc__mv:
483
        sc || mv fp, r2
484
        sc
485
        mv fp, r2
486
 
487
        .text
488
        .global snc__neg
489
snc__neg:
490
        snc || neg fp, r2
491
        snc
492
        neg fp, r2
493
 
494
# Test automatic and explicit parallelisation of instructions
495
        .text
496
        .global nop__sadd
497
nop__sadd:
498
        nop
499
        sadd
500
 
501
        .text
502
        .global sadd__nop
503
sadd__nop:
504
        sadd
505
        nop
506
 
507
        .text
508
        .global sadd__nop_reverse
509
sadd__nop_reverse:
510
        sadd || nop
511
 
512
        .text
513
        .global add__not
514
add__not:
515
        add  r0, r1
516
        not  r3, r5
517
 
518
        .text
519
        .global add__not__dest_clash
520
add__not_dest_clash:
521
        add  r3, r4
522
        not  r3, r5
523
 
524
        .text
525
        .global add__not__src_clash
526
add__not__src_clash:
527
        add  r3, r4
528
        not  r5, r3
529
 
530
        .text
531
        .global add__not__no_clash
532
add__not__no_clash:
533
        add  r3, r4
534
        not  r4, r5
535
 
536
        .text
537
        .global mul__sra
538
mul__sra:
539
        mul  r1, r2
540
        sra  r3, r4
541
 
542
        .text
543
        .global mul__sra__reverse_src_clash
544
mul__sra__reverse_src_clash:
545
        mul  r1, r3
546
        sra  r3, r4
547
 
548
        .text
549
        .global bc__add_
550
bc__add_:
551
        bc.s label
552
        add r1, r2
553
 
554
        .text
555
        .global add__bc
556
add__bc:
557
        add r3, r4
558
        bc.s  label
559
 
560
        .text
561
        .global bc__add__forced_parallel
562
bc__add__forced_parallel:
563
        bc label || add r5, r6
564
 
565
        .text
566
        .global add__bc__forced_parallel
567
add__bc__forced_parallel:
568
        add r7, r8 || bc label
569
label:
570
        nop
571
 
572
; Additional testcases.
573
; These insns were added to the chip later.
574
 
575
        .text
576
mulwhi:
577
        mulwhi fp, fp, a0
578
        mulwhi fp, fp, a1
579
 
580
mulwlo:
581
        mulwlo fp, fp, a0
582
        mulwlo fp, fp, a1
583
 
584
macwhi:
585
        macwhi fp, fp, a0
586
        macwhi fp, fp, a1
587
 
588
macwlo:
589
        macwlo fp, fp, a0
590
        macwlo fp, fp, a1

powered by: WebSVN 2.1.0

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