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

Subversion Repositories openrisc_me

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

Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

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