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

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [binutils-2.20.1/] [gas/] [testsuite/] [gas/] [arm/] [thumb32.s] - Blame information for rev 304

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

Line No. Rev Author Line
1 205 julius
        .text
2
        .thumb
3
        .syntax unified
4
 
5
encode_thumb32_immediate:
6
        orr     r0, r1, #0x00000000
7
        orr     r0, r1, #0x000000a5
8
        orr     r0, r1, #0x00a500a5
9
        orr     r0, r1, #0xa500a500
10
        orr     r0, r1, #0xa5a5a5a5
11
 
12
        orr     r0, r1, #0xa5 << 31
13
        orr     r0, r1, #0xa5 << 30
14
        orr     r0, r1, #0xa5 << 29
15
        orr     r0, r1, #0xa5 << 28
16
        orr     r0, r1, #0xa5 << 27
17
        orr     r0, r1, #0xa5 << 26
18
        orr     r0, r1, #0xa5 << 25
19
        orr     r0, r1, #0xa5 << 24
20
        orr     r0, r1, #0xa5 << 23
21
        orr     r0, r1, #0xa5 << 22
22
        orr     r0, r1, #0xa5 << 21
23
        orr     r0, r1, #0xa5 << 20
24
        orr     r0, r1, #0xa5 << 19
25
        orr     r0, r1, #0xa5 << 18
26
        orr     r0, r1, #0xa5 << 17
27
        orr     r0, r1, #0xa5 << 16
28
        orr     r0, r1, #0xa5 << 15
29
        orr     r0, r1, #0xa5 << 14
30
        orr     r0, r1, #0xa5 << 13
31
        orr     r0, r1, #0xa5 << 12
32
        orr     r0, r1, #0xa5 << 11
33
        orr     r0, r1, #0xa5 << 10
34
        orr     r0, r1, #0xa5 << 9
35
        orr     r0, r1, #0xa5 << 8
36
        orr     r0, r1, #0xa5 << 7
37
        orr     r0, r1, #0xa5 << 6
38
        orr     r0, r1, #0xa5 << 5
39
        orr     r0, r1, #0xa5 << 4
40
        orr     r0, r1, #0xa5 << 3
41
        orr     r0, r1, #0xa5 << 2
42
        orr     r0, r1, #0xa5 << 1
43
 
44
add_sub:
45
        @ Should be format 1, Some have equivalent format 2 encodings
46
        adds    r0, r0, #0
47
        adds    r5, r0, #0
48
        adds    r0, r5, #0
49
        adds    r0, r2, #5
50
 
51
        adds    r0, #129        @ format 2
52
        adds    r0, r0, #129
53
        adds    r5, #126
54
 
55
        adds    r0, r0, r0      @ format 3
56
        adds    r5, r0, r0
57
        adds    r0, r5, r0
58
        adds    r0, r0, r5
59
        adds    r1, r2, r3
60
 
61
        add     r8, r0          @ format 4
62
        add     r0, r8
63
        add     r0, r8, r0
64
        add     r0, r0, r8
65
        add     r8, r0, r0      @ ... not this one
66
 
67
        add     r1, r0
68
        add     r0, r1
69
 
70
        add     r0, pc, #0       @ format 5
71
        add     r5, pc, #0
72
        add     r0, pc, #516
73
 
74
        add     r0, sp, #0       @ format 6
75
        add     r5, sp, #0
76
        add     r0, sp, #516
77
 
78
        add     sp, #0           @ format 7
79
        add     sp, sp, #0
80
        add     sp, #260
81
 
82
        add.w   r0, r0, #0       @ T32 format 1
83
        adds.w  r0, r0, #0
84
        add.w   r9, r0, #0
85
        add.w   r0, r9, #0
86
        add.w   r0, r0, #129
87
        adds    r5, r3, #0x10000
88
        add     r0, sp, #1
89
        add     r9, sp, #0
90
        add.w   sp, sp, #4
91
 
92
        add.w   r0, r0, r0      @ T32 format 2
93
        adds.w  r0, r0, r0
94
        add.w   r9, r0, r0
95
        add.w   r0, r9, r0
96
        add.w   r0, r0, r9
97
 
98
        add.w   r8, r9, r10
99
        add.w   r8, r9, r10, lsl #17
100
        add.w   r8, r8, r10, lsr #32
101
        add.w   r8, r8, r10, lsr #17
102
        add.w   r8, r9, r10, asr #32
103
        add.w   r8, r9, r10, asr #17
104
        add.w   r8, r9, r10, rrx
105
        add.w   r8, r9, r10, ror #17
106
 
107
        subs    r0, r0, #0       @ format 1
108
        subs    r5, r0, #0
109
        subs    r0, r5, #0
110
        subs    r0, r2, #5
111
 
112
        subs    r0, r0, #129
113
        subs    r5, #8
114
 
115
        subs    r0, r0, r0      @ format 3
116
        subs    r5, r0, r0
117
        subs    r0, r5, r0
118
        subs    r0, r0, r5
119
 
120
        sub     sp, #260        @ format 4
121
        sub     sp, sp, #260
122
 
123
        subs    r8, r0          @ T32 format 2
124
        subs    r0, r8
125
        subs    r0, #260        @ T32 format 1
126
        subs.w  r1, r2, #4
127
        subs    r5, r3, #0x10000
128
        sub     r1, sp, #4
129
        sub     r9, sp, #0
130
        sub.w   sp, sp, #4
131
 
132
arit3:
133
        .macro arit3 op ops opw opsw
134
        \ops    r0, r0
135
        \ops    r5, r0
136
        \ops    r0, r5
137
        \ops    r0, r0, r5
138
        \ops    r0, r5, r0
139
        \op     r0, r5, r0
140
        \op     r0, r1, r2
141
        \op     r9, r0, r0
142
        \op     r0, r9, r0
143
        \op     r0, r0, r9
144
        \opsw   r0, r0, r0
145
        \opw    r0, r1, r2, asr #17
146
        \opw    r0, r1, #129
147
        .endm
148
 
149
        arit3   adc adcs adc.w adcs.w
150
        arit3   and ands and.w ands.w
151
        arit3   bic bics bic.w bics.w
152
        arit3   eor eors eor.w eors.w
153
        arit3   orr orrs orr.w orrs.w
154
        arit3   rsb rsbs rsb.w rsbs.w
155
        arit3   sbc sbcs sbc.w sbcs.w
156
        arit3   orn orns orn orns
157
 
158
        .purgem arit3
159
 
160
bfc_bfi_bfx:
161
        bfc     r0, #0, #1
162
        bfc     r9, #0, #1
163
        bfi     r9, #0, #0, #1
164
        bfc     r0, #21, #1
165
        bfc     r0, #0, #18
166
 
167
        bfi     r0, r0, #0, #1
168
        bfi     r9, r0, #0, #1
169
        bfi     r0, r9, #0, #1
170
        bfi     r0, r0, #21, #1
171
        bfi     r0, r0, #0, #18
172
 
173
        sbfx    r0, r0, #0, #1
174
        ubfx    r9, r0, #0, #1
175
        sbfx    r0, r9, #0, #1
176
        ubfx    r0, r0, #21, #1
177
        sbfx    r0, r0, #0, #18
178
 
179
        .globl  branches
180
branches:
181
        .macro bra op
182
        \op     1b
183
        \op     1f
184
        .endm
185
1:
186
        bra     beq.n
187
        bra     bne.n
188
        bra     bcs.n
189
        bra     bhs.n
190
        bra     bcc.n
191
        bra     bul.n
192
        bra     blo.n
193
        bra     bmi.n
194
        bra     bpl.n
195
        bra     bvs.n
196
        bra     bvc.n
197
        bra     bhi.n
198
        bra     bls.n
199
        bra     bvc.n
200
        bra     bhi.n
201
        bra     bls.n
202
        bra     bge.n
203
        bra     blt.n
204
        bra     bgt.n
205
        bra     ble.n
206
        bra     bal.n
207
        bra     b.n
208
        @ bl, blx have no short form.
209
        .balign 4
210
1:
211
        bra     beq.w
212
        bra     bne.w
213
        bra     bcs.w
214
        bra     bhs.w
215
        bra     bcc.w
216
        bra     bul.w
217
        bra     blo.w
218
        bra     bmi.w
219
        bra     bpl.w
220
        bra     bvs.w
221
        bra     bvc.w
222
        bra     bhi.w
223
        bra     bls.w
224
        bra     bvc.w
225
        bra     bhi.w
226
        bra     bls.w
227
        bra     bge.w
228
        bra     blt.w
229
        bra     bgt.w
230
        bra     ble.w
231
        bra     b.w
232
        bra     bl
233
        bra     blx
234
        .balign 4
235
1:
236
        bx      r9
237
        blx     r0
238
        blx     r9
239
        bxj     r0
240
        bxj     r9
241
        .purgem bra
242
 
243
clz:
244
        clz     r0, r0
245
        clz     r9, r0
246
        clz     r0, r9
247
 
248
cps:
249
        cpsie   f
250
        cpsid   i
251
        cpsie   a
252
        cpsid.w f
253
        cpsie.w i
254
        cpsid.w a
255
        cpsie   i, #0
256
        cpsid   i, #17
257
        cps     #0
258
        cps     #17
259
 
260
cpy:
261
        cpy     r0, r0
262
        cpy     r9, r0
263
        cpy     r0, r9
264
        cpy.w   r0, r0
265
        cpy.w   r9, r0
266
        cpy.w   r0, r9
267
 
268
czb:
269
        cbnz    r0, 2f
270
        cbz     r5, 1f
271
 
272
nop_hint:
273
        nop
274
1:      yield
275
2:      wfe
276
        wfi
277
        sev
278
 
279
        nop.w
280
        yield.w
281
        wfe.w
282
        wfi.w
283
        sev.w
284
 
285
        nop {9}
286
        nop {129}
287
 
288
it:
289
        .macro nop1 cond ncond a
290
        .ifc \a,t
291
        nop\cond
292
        .else
293
        nop\ncond
294
        .endif
295
        .endm
296
        .macro it0 cond m=
297
        it\m \cond
298
        nop\cond
299
        .endm
300
        .macro it1 cond ncond a m=
301
        it0 \cond \a\m
302
        nop1 \cond \ncond \a
303
        .endm
304
        .macro it2 cond ncond a b m=
305
        it1 \cond \ncond \a \b\m
306
        nop1 \cond \ncond \b
307
        .endm
308
        .macro it3 cond ncond a b c
309
        it2 \cond \ncond \a \b \c
310
        nop1 \cond \ncond \c
311
        .endm
312
 
313
        it0     eq
314
        it0     ne
315
        it0     cs
316
        it0     hs
317
        it0     cc
318
        it0     ul
319
        it0     lo
320
        it0     mi
321
        it0     pl
322
        it0     vs
323
        it0     vc
324
        it0     hi
325
        it0     ge
326
        it0     lt
327
        it0     gt
328
        it0     le
329
        it0     al
330
        it1 eq ne t
331
        it1 eq ne e
332
        it2 eq ne t t
333
        it2 eq ne e t
334
        it2 eq ne t e
335
        it2 eq ne e e
336
        it3 eq ne t t t
337
        it3 eq ne e t t
338
        it3 eq ne t e t
339
        it3 eq ne t t e
340
        it3 eq ne t e e
341
        it3 eq ne e t e
342
        it3 eq ne e e t
343
        it3 eq ne e e e
344
 
345
        it1 ne eq t
346
        it1 ne eq e
347
        it2 ne eq t t
348
        it2 ne eq e t
349
        it2 ne eq t e
350
        it2 ne eq e e
351
        it3 ne eq t t t
352
        it3 ne eq e t t
353
        it3 ne eq t e t
354
        it3 ne eq t t e
355
        it3 ne eq t e e
356
        it3 ne eq e t e
357
        it3 ne eq e e t
358
        it3 ne eq e e e
359
 
360
ldst:
361
1:
362
        pld     [r5]
363
        pld     [r5, #0x330]
364
        pld     [r5, #-0x30]
365
        pld     [r5], #0x30
366
        pld     [r5], #-0x30
367
        pld     [r5, #0x30]!
368
        pld     [r5, #-0x30]!
369
        pld     [r5, r4]
370
        pld     [r9, ip]
371
        pld     1f
372
        pld     1b
373
1:
374
 
375
        ldrd    r2, r3, [r5]
376
        ldrd    r2, [r5, #0x30]
377
        ldrd    r2, [r5, #-0x30]
378
        strd    r2, r3, [r5]
379
        strd    r2, [r5, #0x30]
380
        strd    r2, [r5, #-0x30]
381
 
382
        ldrbt   r1, [r5]
383
        ldrbt   r1, [r5, #0x30]
384
        ldrsbt  r1, [r5]
385
        ldrsbt  r1, [r5, #0x30]
386
        ldrht   r1, [r5]
387
        ldrht   r1, [r5, #0x30]
388
        ldrsht  r1, [r5]
389
        ldrsht  r1, [r5, #0x30]
390
        ldrt    r1, [r5]
391
        ldrt    r1, [r5, #0x30]
392
 
393
ldxstx:
394
        ldrexb  r1, [r4]
395
        ldrexh  r1, [r4]
396
        ldrex   r1, [r4]
397
        ldrexd  r1, r2, [r4]
398
 
399
        strexb  r1, r2, [r4]
400
        strexh  r1, r2, [r4]
401
        strex   r1, r2, [r4]
402
        strexd  r1, r2, r3, [r4]
403
 
404
        ldrex   r1, [r4,#516]
405
        strex   r1, r2, [r4,#516]
406
 
407
ldmstm:
408
        ldmia   r0!, {r1,r2,r3}
409
        ldmia   r2, {r0,r1,r2}
410
        ldmia.w r2, {r0,r1,r2}
411
        ldmia   r9, {r0,r1,r2}
412
        ldmia   r0, {r7,r8,r10}
413
        ldmia   r0!, {r7,r8,r10}
414
 
415
        stmia   r0!, {r1,r2,r3}
416
        stmia   r2!, {r0,r1,r3}
417
        stmia.w r2!, {r0,r1,r3}
418
        stmia   r9, {r0,r1,r2}
419
        stmia   r0, {r7,r8,r10}
420
        stmia   r0!, {r7,r8,r10}
421
 
422
        ldmdb   r0, {r7,r8,r10}
423
        stmdb   r0, {r7,r8,r10}
424
 
425
mlas:
426
        mla     r0, r0, r0, r0
427
        mls     r0, r0, r0, r0
428
        mla     r9, r0, r0, r0
429
        mla     r0, r9, r0, r0
430
        mla     r0, r0, r9, r0
431
        mla     r0, r0, r0, r9
432
 
433
tst_teq_cmp_cmn_mov_mvn:
434
        .macro  mt op ops opw opsw
435
        \ops    r0, r0
436
        \op     r0, r0
437
        \ops    r5, r0
438
        \op     r0, r5
439
        \op     r0, r5, asr #17
440
        \opw    r0, r0
441
        \ops    r9, r0
442
        \opsw   r0, r9
443
        \opw    r0, #129
444
        \opw    r5, #129
445
        .endm
446
 
447
        mt      tst tsts tst.w tsts.w
448
        mt      teq teqs teq.w teqs.w
449
        mt      cmp cmps cmp.w cmps.w
450
        mt      cmn cmns cmn.w cmns.w
451
        mt      mov movs mov.w movs.w
452
        mt      mvn mvns mvn.w mvns.w
453
        .purgem mt
454
 
455
mov16:
456
        movw    r0, #0
457
        movt    r0, #0
458
        movw    r9, #0
459
        movw    r0, #0x9000
460
        movw    r0, #0x0800
461
        movw    r0, #0x0500
462
        movw    r0, #0x0081
463
        movw    r0, #0xffff
464
 
465
mrs_msr:
466
        mrs     r0, CPSR
467
        mrs     r0, SPSR
468
        mrs     r9, CPSR_all
469
        mrs     r9, SPSR_all
470
 
471
        msr     CPSR_c, r0
472
        msr     SPSR_c, r0
473
        msr     CPSR_c, r9
474
        msr     CPSR_x, r0
475
        msr     CPSR_s, r0
476
        msr     CPSR_f, r0
477
 
478
mul:
479
        mul     r0, r0, r0
480
        mul     r0, r9, r0
481
        mul     r0, r0, r9
482
        mul     r0, r0
483
        mul     r9, r0
484
        muls    r5, r0
485
        muls    r5, r0, r5
486
        muls    r0, r5
487
 
488
mull:
489
        smull   r0, r1, r0, r0
490
        umull   r0, r1, r0, r0
491
        smlal   r0, r1, r0, r0
492
        umlal   r0, r1, r0, r0
493
        smull   r9, r0, r0, r0
494
        smull   r0, r9, r0, r0
495
        smull   r0, r1, r9, r0
496
        smull   r0, r1, r0, r9
497
 
498
neg:
499
        negs    r0, r0
500
        negs    r0, r5
501
        negs    r5, r0
502
        negs.w  r0, r0
503
        negs.w  r5, r0
504
        negs.w  r0, r5
505
 
506
        neg     r0, r9
507
        neg     r9, r0
508
        negs    r0, r9
509
        negs    r9, r0
510
 
511
pkh:
512
        pkhbt   r0, r0, r0
513
        pkhbt   r9, r0, r0
514
        pkhbt   r0, r9, r0
515
        pkhbt   r0, r0, r9
516
        pkhbt   r0, r0, r0, lsl #0x14
517
        pkhbt   r0, r0, r0, lsl #3
518
        pkhtb   r1, r2, r3
519
        pkhtb   r1, r2, r3, asr #0x11
520
 
521
push_pop:
522
        push    {r0}
523
        pop     {r0}
524
        push    {r1,lr}
525
        pop     {r1,pc}
526
        push    {r8,r9,r10,r11,r12}
527
        pop     {r8,r9,r10,r11,r12}
528
 
529
qadd:
530
        qadd            r1, r2, r3
531
        qadd16          r1, r2, r3
532
        qadd8           r1, r2, r3
533
        qasx            r1, r2, r3
534
        qaddsubx        r1, r2, r3
535
        qdadd           r1, r2, r3
536
        qdsub           r1, r2, r3
537
        qsub            r1, r2, r3
538
        qsub16          r1, r2, r3
539
        qsub8           r1, r2, r3
540
        qsax            r1, r2, r3
541
        qsubaddx        r1, r2, r3
542
        sadd16          r1, r2, r3
543
        sadd8           r1, r2, r3
544
        sasx            r1, r2, r3
545
        saddsubx        r1, r2, r3
546
        ssub16          r1, r2, r3
547
        ssub8           r1, r2, r3
548
        ssax            r1, r2, r3
549
        ssubaddx        r1, r2, r3
550
        shadd16         r1, r2, r3
551
        shadd8          r1, r2, r3
552
        shasx           r1, r2, r3
553
        shaddsubx       r1, r2, r3
554
        shsub16         r1, r2, r3
555
        shsub8          r1, r2, r3
556
        shsax           r1, r2, r3
557
        shsubaddx       r1, r2, r3
558
        uadd16          r1, r2, r3
559
        uadd8           r1, r2, r3
560
        uasx            r1, r2, r3
561
        uaddsubx        r1, r2, r3
562
        usub16          r1, r2, r3
563
        usub8           r1, r2, r3
564
        usax            r1, r2, r3
565
        usubaddx        r1, r2, r3
566
        uhadd16         r1, r2, r3
567
        uhadd8          r1, r2, r3
568
        uhasx           r1, r2, r3
569
        uhaddsubx       r1, r2, r3
570
        uhsub16         r1, r2, r3
571
        uhsub8          r1, r2, r3
572
        uhsax           r1, r2, r3
573
        uhsubaddx       r1, r2, r3
574
        uqadd16         r1, r2, r3
575
        uqadd8          r1, r2, r3
576
        uqasx           r1, r2, r3
577
        uqaddsubx       r1, r2, r3
578
        uqsub16         r1, r2, r3
579
        uqsub8          r1, r2, r3
580
        uqsax           r1, r2, r3
581
        uqsubaddx       r1, r2, r3
582
        sel             r1, r2, r3
583
 
584
rbit_rev:
585
        .macro  rx op opw
586
        \op     r0, r0
587
        \opw    r0, r0
588
        \op     r0, r5
589
        \op     r5, r0
590
        \op     r0, r9
591
        \op     r9, r0
592
        .endm
593
 
594
        rx      rev rev.w
595
        rx      rev16 rev16.w
596
        rx      revsh revsh.w
597
        rx      rbit rbit.w
598
 
599
        .purgem rx
600
 
601
shift:
602
        .macro  sh op ops opw opsw
603
        \ops    r0, #17         @ 16-bit format 1
604
        \ops    r0, r0, #14
605
        \ops    r5, r0, #17
606
        \ops    r0, r5, #14
607
        \ops    r0, r0          @ 16-bit format 2
608
        \ops    r0, r5
609
        \ops    r0, r0, r5
610
        \op     r9, #17         @ 32-bit format 1
611
        \op     r9, r9, #14
612
        \ops    r0, r9, #17
613
        \op     r9, r0, #14
614
        \opw    r0, r0, r0      @ 32-bit format 2
615
        \op     r9, r9
616
        \ops    r9, r0
617
        \op     r0, r9
618
        \op     r0, r5
619
        \ops    r0, r1, r2
620
        .endm
621
 
622
        sh      lsl lsls lsl.w lsls.w
623
        sh      lsr lsrs lsr.w lsrs.w
624
        sh      asr asrs asr.w asrs.w
625
        sh      ror rors ror.w rors.w
626
 
627
        .purgem sh
628
 
629
rrx:
630
        rrx     r1, r2
631
        rrxs    r3, r4
632
 
633
smc:
634
        smc     #0
635
        smc     #0xabcd
636
 
637
smla:
638
        smlabb  r0, r0, r0, r0
639
        smlabb  r9, r0, r0, r0
640
        smlabb  r0, r9, r0, r0
641
        smlabb  r0, r0, r9, r0
642
        smlabb  r0, r0, r0, r9
643
 
644
        smlatb  r0, r0, r0, r0
645
        smlabt  r0, r0, r0, r0
646
        smlatt  r0, r0, r0, r0
647
        smlawb  r0, r0, r0, r0
648
        smlawt  r0, r0, r0, r0
649
        smlad   r0, r0, r0, r0
650
        smladx  r0, r0, r0, r0
651
        smlsd   r0, r0, r0, r0
652
        smlsdx  r0, r0, r0, r0
653
        smmla   r0, r0, r0, r0
654
        smmlar  r0, r0, r0, r0
655
        smmls   r0, r0, r0, r0
656
        smmlsr  r0, r0, r0, r0
657
        usada8  r0, r0, r0, r0
658
 
659
smlal:
660
        smlalbb r0, r0, r0, r0
661
        smlalbb r9, r0, r0, r0
662
        smlalbb r0, r9, r0, r0
663
        smlalbb r0, r0, r9, r0
664
        smlalbb r0, r0, r0, r9
665
 
666
        smlaltb r0, r0, r0, r0
667
        smlalbt r0, r0, r0, r0
668
        smlaltt r0, r0, r0, r0
669
        smlald  r0, r0, r0, r0
670
        smlaldx r0, r0, r0, r0
671
        smlsld  r0, r0, r0, r0
672
        smlsldx r0, r0, r0, r0
673
        umaal   r0, r0, r0, r0
674
 
675
smul:
676
        smulbb  r0, r0, r0
677
        smulbb  r9, r0, r0
678
        smulbb  r0, r9, r0
679
        smulbb  r0, r0, r9
680
 
681
        smultb  r0, r0, r0
682
        smulbt  r0, r0, r0
683
        smultt  r0, r0, r0
684
        smulwb  r0, r0, r0
685
        smulwt  r0, r0, r0
686
        smmul   r0, r0, r0
687
        smmulr  r0, r0, r0
688
        smuad   r0, r0, r0
689
        smuadx  r0, r0, r0
690
        smusd   r0, r0, r0
691
        smusdx  r0, r0, r0
692
        usad8   r0, r0, r0
693
 
694
sat:
695
        ssat    r0, #1, r0
696
        ssat    r0, #1, r0, lsl #0
697
        ssat    r0, #1, r0, asr #0
698
        ssat    r9, #1, r0
699
        ssat    r0, #18, r0
700
        ssat    r0, #1, r9
701
        ssat    r0, #1, r0, lsl #0x1c
702
        ssat    r0, #1, r0, asr #0x03
703
 
704
        ssat16  r0, #1, r0
705
        ssat16  r9, #1, r0
706
        ssat16  r0, #10, r0
707
        ssat16  r0, #1, r9
708
 
709
        usat    r0, #0, r0
710
        usat    r0, #0, r0, lsl #0
711
        usat    r0, #0, r0, asr #0
712
        usat    r9, #0, r0
713
        usat    r0, #17, r0
714
        usat    r0, #0, r9
715
        usat    r0, #0, r0, lsl #0x1c
716
        usat    r0, #0, r0, asr #0x03
717
 
718
        usat16  r0, #0, r0
719
        usat16  r9, #0, r0
720
        usat16  r0, #9, r0
721
        usat16  r0, #0, r9
722
 
723
xt:
724
        sxtb    r0, r0
725
        sxtb    r0, r0, ror #0
726
        sxtb    r5, r0
727
        sxtb    r0, r5
728
        sxtb.w  r1, r2
729
        sxtb    r1, r2, ror #8
730
        sxtb    r1, r2, ror #16
731
        sxtb    r1, r2, ror #24
732
 
733
        sxtb16  r1, r2
734
        sxtb16  r8, r9
735
        sxth    r1, r2
736
        sxth    r8, r9
737
        uxtb    r1, r2
738
        uxtb    r8, r9
739
        uxtb16  r1, r2
740
        uxtb16  r8, r9
741
        uxth    r1, r2
742
        uxth    r8, r9
743
 
744
xta:
745
        sxtab   r0, r0, r0
746
        sxtab   r0, r0, r0, ror #0
747
        sxtab   r9, r0, r0, ror #8
748
        sxtab   r0, r9, r0, ror #16
749
        sxtab   r0, r0, r9, ror #24
750
 
751
        sxtab16 r1, r2, r3
752
        sxtah   r1, r2, r3
753
        uxtab   r1, r2, r3
754
        uxtab16 r1, r2, r3
755
        uxtah   r1, r2, r3
756
 
757
        .macro  ldpcimm op
758
        \op     r1, [pc, #0x2aa]
759
        \op     r1, [pc, #0x155]
760
        \op     r1, [pc, #-0x2aa]
761
        \op     r1, [pc, #-0x155]
762
        .endm
763
        ldpcimm ldrb
764
        ldpcimm ldrsb
765
        ldpcimm ldrh
766
        ldpcimm ldrsh
767
        ldpcimm ldr
768
        addw r9, r0, #0
769
        addw r6, pc, #0xfff
770
        subw r6, r9, #0xa85
771
        subw r6, r9, #0x57a
772
        tbb [pc, r6]
773
        tbb [r0, r9]
774
        tbh [pc, r7, lsl #1]
775
        tbh [r0, r8, lsl #1]
776
 
777
        push    {r8}
778
        pop     {r8}
779
 
780
        ldmdb   r0!, {r7,r8,r10}
781
        stmdb   r0!, {r7,r8,r10}
782
 
783
        ldm     r0!, {r1, r2}
784
        stm     r0!, {r1, r2}
785
        ldm     r0, {r8, r9}
786
        stm     r0, {r8, r9}
787
        itttt eq
788
        ldmeq   r0!, {r1, r2}
789
        stmeq   r0!, {r1, r2}
790
        ldmeq   r0, {r8, r9}
791
        stmeq   r0, {r8, r9}
792
        nop
793
 
794
srs:
795
        srsia sp, #16
796
        srsdb sp, #16
797
        srsia sp!, #21
798
        srsia sp!, #10
799
 
800
        movs pc, lr
801
        subs pc, lr, #0
802
        subs pc, lr, #4
803
        subs pc, lr, #255
804
 
805
        ldrd r2, r4, [r9, #48]!
806
        ldrd r2, r4, [r9, #-48]!
807
        strd r2, r4, [r9, #48]!
808
        strd r2, r4, [r9, #-48]!
809
        ldrd r2, r4, [r9], #48
810
        ldrd r2, r4, [r9], #-48
811
        strd r2, r4, [r9], #48
812
        strd r2, r4, [r9], #-48
813
 
814
        .macro ldaddr op
815
        ldr\op  r1, [r5, #0x301]
816
        ldr\op  r1, [r5, #0x30]!
817
        ldr\op  r1, [r5, #-0x30]!
818
        ldr\op  r1, [r5], #0x30
819
        ldr\op  r1, [r5], #-0x30
820
        ldr\op  r1, [r5, r9]
821
        .endm
822
        ldaddr
823
        ldaddr b
824
        ldaddr sb
825
        ldaddr h
826
        ldaddr sh
827
        .macro movshift op s="s"
828
        movs r1, r4, \op #2
829
        movs r3, r9, \op #2
830
        movs r1, r2, \op r3
831
        movs r1, r1, \op r3
832
        movs r1, r1, \op r9
833
        mov r1, r2, \op r3
834
        mov r1, r1, \op r3
835
        .endm
836
        movshift lsl
837
        movshift lsr
838
        movshift asr
839
        movshift ror
840
        nop

powered by: WebSVN 2.1.0

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