]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gas/testsuite/gas/arm/thumb32.s
* gas/config/tc-arm.c (arm_ext_v6z): Remove.
[thirdparty/binutils-gdb.git] / gas / testsuite / gas / arm / thumb32.s
1 .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 strexd r1, r3, r3, [r4]
404
405 ldrex r1, [r4,#516]
406 strex r1, r2, [r4,#516]
407
408 ldmstm:
409 ldmia r0!, {r1,r2,r3}
410 ldmia r2, {r0,r1,r2}
411 ldmia.w r2, {r0,r1,r2}
412 ldmia r9, {r0,r1,r2}
413 ldmia r0, {r7,r8,r10}
414 ldmia r0!, {r7,r8,r10}
415
416 stmia r0!, {r1,r2,r3}
417 stmia r2!, {r0,r1,r3}
418 stmia.w r2!, {r0,r1,r3}
419 stmia r9, {r0,r1,r2}
420 stmia r0, {r7,r8,r10}
421 stmia r0!, {r7,r8,r10}
422
423 ldmdb r0, {r7,r8,r10}
424 stmdb r0, {r7,r8,r10}
425
426 mlas:
427 mla r0, r0, r0, r0
428 mls r0, r0, r0, r0
429 mla r9, r0, r0, r0
430 mla r0, r9, r0, r0
431 mla r0, r0, r9, r0
432 mla r0, r0, r0, r9
433
434 tst_teq_cmp_cmn_mov_mvn:
435 .macro mt op ops opw opsw
436 \ops r0, r0
437 \op r0, r0
438 \ops r5, r0
439 \op r0, r5
440 \op r0, r5, asr #17
441 \opw r0, r0
442 \ops r9, r0
443 \opsw r0, r9
444 \opw r0, #129
445 \opw r5, #129
446 .endm
447
448 mt tst tsts tst.w tsts.w
449 mt teq teqs teq.w teqs.w
450 mt cmp cmps cmp.w cmps.w
451 mt cmn cmns cmn.w cmns.w
452 mt mov movs mov.w movs.w
453 mt mvn mvns mvn.w mvns.w
454 .purgem mt
455
456 mov16:
457 movw r0, #0
458 movt r0, #0
459 movw r9, #0
460 movw r0, #0x9000
461 movw r0, #0x0800
462 movw r0, #0x0500
463 movw r0, #0x0081
464 movw r0, #0xffff
465
466 mrs_msr:
467 mrs r0, CPSR
468 mrs r0, SPSR
469 mrs r9, CPSR_all
470 mrs r9, SPSR_all
471
472 msr CPSR_c, r0
473 msr SPSR_c, r0
474 msr CPSR_c, r9
475 msr CPSR_x, r0
476 msr CPSR_s, r0
477 msr CPSR_f, r0
478
479 mul:
480 mul r0, r0, r0
481 mul r0, r9, r0
482 mul r0, r0, r9
483 mul r0, r0
484 mul r9, r0
485 muls r5, r0
486 muls r5, r0, r5
487 muls r0, r5
488
489 mull:
490 smull r0, r1, r0, r0
491 umull r0, r1, r0, r0
492 smlal r0, r1, r0, r0
493 umlal r0, r1, r0, r0
494 smull r9, r0, r0, r0
495 smull r0, r9, r0, r0
496 smull r0, r1, r9, r0
497 smull r0, r1, r0, r9
498
499 neg:
500 negs r0, r0
501 negs r0, r5
502 negs r5, r0
503 negs.w r0, r0
504 negs.w r5, r0
505 negs.w r0, r5
506
507 neg r0, r9
508 neg r9, r0
509 negs r0, r9
510 negs r9, r0
511
512 pkh:
513 pkhbt r0, r0, r0
514 pkhbt r9, r0, r0
515 pkhbt r0, r9, r0
516 pkhbt r0, r0, r9
517 pkhbt r0, r0, r0, lsl #0x14
518 pkhbt r0, r0, r0, lsl #3
519 pkhtb r1, r2, r3
520 pkhtb r1, r2, r3, asr #0x11
521
522 push_pop:
523 push {r0}
524 pop {r0}
525 push {r1,lr}
526 pop {r1,pc}
527 push {r8,r9,r10,r11,r12}
528 pop {r8,r9,r10,r11,r12}
529
530 qadd:
531 qadd r1, r2, r3
532 qadd16 r1, r2, r3
533 qadd8 r1, r2, r3
534 qasx r1, r2, r3
535 qaddsubx r1, r2, r3
536 qdadd r1, r2, r3
537 qdsub r1, r2, r3
538 qsub r1, r2, r3
539 qsub16 r1, r2, r3
540 qsub8 r1, r2, r3
541 qsax r1, r2, r3
542 qsubaddx r1, r2, r3
543 sadd16 r1, r2, r3
544 sadd8 r1, r2, r3
545 sasx r1, r2, r3
546 saddsubx r1, r2, r3
547 ssub16 r1, r2, r3
548 ssub8 r1, r2, r3
549 ssax r1, r2, r3
550 ssubaddx r1, r2, r3
551 shadd16 r1, r2, r3
552 shadd8 r1, r2, r3
553 shasx r1, r2, r3
554 shaddsubx r1, r2, r3
555 shsub16 r1, r2, r3
556 shsub8 r1, r2, r3
557 shsax r1, r2, r3
558 shsubaddx r1, r2, r3
559 uadd16 r1, r2, r3
560 uadd8 r1, r2, r3
561 uasx r1, r2, r3
562 uaddsubx r1, r2, r3
563 usub16 r1, r2, r3
564 usub8 r1, r2, r3
565 usax r1, r2, r3
566 usubaddx r1, r2, r3
567 uhadd16 r1, r2, r3
568 uhadd8 r1, r2, r3
569 uhasx r1, r2, r3
570 uhaddsubx r1, r2, r3
571 uhsub16 r1, r2, r3
572 uhsub8 r1, r2, r3
573 uhsax r1, r2, r3
574 uhsubaddx r1, r2, r3
575 uqadd16 r1, r2, r3
576 uqadd8 r1, r2, r3
577 uqasx r1, r2, r3
578 uqaddsubx r1, r2, r3
579 uqsub16 r1, r2, r3
580 uqsub8 r1, r2, r3
581 uqsax r1, r2, r3
582 uqsubaddx r1, r2, r3
583 sel r1, r2, r3
584
585 rbit_rev:
586 .macro rx op opw
587 \op r0, r0
588 \opw r0, r0
589 \op r0, r5
590 \op r5, r0
591 \op r0, r9
592 \op r9, r0
593 .endm
594
595 rx rev rev.w
596 rx rev16 rev16.w
597 rx revsh revsh.w
598 rx rbit rbit.w
599
600 .purgem rx
601
602 shift:
603 .macro sh op ops opw opsw
604 \ops r0, #17 @ 16-bit format 1
605 \ops r0, r0, #14
606 \ops r5, r0, #17
607 \ops r0, r5, #14
608 \ops r0, r0 @ 16-bit format 2
609 \ops r0, r5
610 \ops r0, r0, r5
611 \op r9, #17 @ 32-bit format 1
612 \op r9, r9, #14
613 \ops r0, r9, #17
614 \op r9, r0, #14
615 \opw r0, r0, r0 @ 32-bit format 2
616 \op r9, r9
617 \ops r9, r0
618 \op r0, r9
619 \op r0, r5
620 \ops r0, r1, r2
621 .endm
622
623 sh lsl lsls lsl.w lsls.w
624 sh lsr lsrs lsr.w lsrs.w
625 sh asr asrs asr.w asrs.w
626 sh ror rors ror.w rors.w
627
628 .purgem sh
629
630 rrx:
631 rrx r1, r2
632 rrxs r3, r4
633
634 .arch armv7-a
635 .arch_extension sec
636 smc:
637 smc #0
638 smc #0xabcd
639
640 smla:
641 smlabb r0, r0, r0, r0
642 smlabb r9, r0, r0, r0
643 smlabb r0, r9, r0, r0
644 smlabb r0, r0, r9, r0
645 smlabb r0, r0, r0, r9
646
647 smlatb r0, r0, r0, r0
648 smlabt r0, r0, r0, r0
649 smlatt r0, r0, r0, r0
650 smlawb r0, r0, r0, r0
651 smlawt r0, r0, r0, r0
652 smlad r0, r0, r0, r0
653 smladx r0, r0, r0, r0
654 smlsd r0, r0, r0, r0
655 smlsdx r0, r0, r0, r0
656 smmla r0, r0, r0, r0
657 smmlar r0, r0, r0, r0
658 smmls r0, r0, r0, r0
659 smmlsr r0, r0, r0, r0
660 usada8 r0, r0, r0, r0
661
662 smlal:
663 smlalbb r0, r0, r0, r0
664 smlalbb r9, r0, r0, r0
665 smlalbb r0, r9, r0, r0
666 smlalbb r0, r0, r9, r0
667 smlalbb r0, r0, r0, r9
668
669 smlaltb r0, r0, r0, r0
670 smlalbt r0, r0, r0, r0
671 smlaltt r0, r0, r0, r0
672 smlald r0, r0, r0, r0
673 smlaldx r0, r0, r0, r0
674 smlsld r0, r0, r0, r0
675 smlsldx r0, r0, r0, r0
676 umaal r0, r0, r0, r0
677
678 smul:
679 smulbb r0, r0, r0
680 smulbb r9, r0, r0
681 smulbb r0, r9, r0
682 smulbb r0, r0, r9
683
684 smultb r0, r0, r0
685 smulbt r0, r0, r0
686 smultt r0, r0, r0
687 smulwb r0, r0, r0
688 smulwt r0, r0, r0
689 smmul r0, r0, r0
690 smmulr r0, r0, r0
691 smuad r0, r0, r0
692 smuadx r0, r0, r0
693 smusd r0, r0, r0
694 smusdx r0, r0, r0
695 usad8 r0, r0, r0
696
697 sat:
698 ssat r0, #1, r0
699 ssat r0, #1, r0, lsl #0
700 ssat r0, #1, r0, asr #0
701 ssat r9, #1, r0
702 ssat r0, #18, r0
703 ssat r0, #1, r9
704 ssat r0, #1, r0, lsl #0x1c
705 ssat r0, #1, r0, asr #0x03
706
707 ssat16 r0, #1, r0
708 ssat16 r9, #1, r0
709 ssat16 r0, #10, r0
710 ssat16 r0, #1, r9
711
712 usat r0, #0, r0
713 usat r0, #0, r0, lsl #0
714 usat r0, #0, r0, asr #0
715 usat r9, #0, r0
716 usat r0, #17, r0
717 usat r0, #0, r9
718 usat r0, #0, r0, lsl #0x1c
719 usat r0, #0, r0, asr #0x03
720
721 usat16 r0, #0, r0
722 usat16 r9, #0, r0
723 usat16 r0, #9, r0
724 usat16 r0, #0, r9
725
726 xt:
727 sxtb r0, r0
728 sxtb r0, r0, ror #0
729 sxtb r5, r0
730 sxtb r0, r5
731 sxtb.w r1, r2
732 sxtb r1, r2, ror #8
733 sxtb r1, r2, ror #16
734 sxtb r1, r2, ror #24
735
736 sxtb16 r1, r2
737 sxtb16 r8, r9
738 sxth r1, r2
739 sxth r8, r9
740 uxtb r1, r2
741 uxtb r8, r9
742 uxtb16 r1, r2
743 uxtb16 r8, r9
744 uxth r1, r2
745 uxth r8, r9
746
747 xta:
748 sxtab r0, r0, r0
749 sxtab r0, r0, r0, ror #0
750 sxtab r9, r0, r0, ror #8
751 sxtab r0, r9, r0, ror #16
752 sxtab r0, r0, r9, ror #24
753
754 sxtab16 r1, r2, r3
755 sxtah r1, r2, r3
756 uxtab r1, r2, r3
757 uxtab16 r1, r2, r3
758 uxtah r1, r2, r3
759
760 .macro ldpcimm op
761 \op r1, [pc, #0x2aa]
762 \op r1, [pc, #0x155]
763 \op r1, [pc, #-0x2aa]
764 \op r1, [pc, #-0x155]
765 .endm
766 ldpcimm ldrb
767 ldpcimm ldrsb
768 ldpcimm ldrh
769 ldpcimm ldrsh
770 ldpcimm ldr
771 addw r9, r0, #0
772 addw r6, pc, #0xfff
773 subw r6, r9, #0xa85
774 subw r6, r9, #0x57a
775 tbb [pc, r6]
776 tbb [r0, r9]
777 tbh [pc, r7, lsl #1]
778 tbh [r0, r8, lsl #1]
779
780 push {r8}
781 pop {r8}
782
783 ldmdb r0!, {r7,r8,r10}
784 stmdb r0!, {r7,r8,r10}
785
786 ldm r0!, {r1, r2}
787 stm r0!, {r1, r2}
788 ldm r0, {r8, r9}
789 stm r0, {r8, r9}
790 itttt eq
791 ldmeq r0!, {r1, r2}
792 stmeq r0!, {r1, r2}
793 ldmeq r0, {r8, r9}
794 stmeq r0, {r8, r9}
795 nop
796
797 srs:
798 srsia sp, #16
799 srsdb sp, #16
800 srsia sp!, #21
801 srsia sp!, #10
802
803 movs pc, lr
804 subs pc, lr, #0
805 subs pc, lr, #4
806 subs pc, lr, #255
807
808 ldrd r2, r4, [r9, #48]!
809 ldrd r2, r4, [r9, #-48]!
810 strd r2, r4, [r9, #48]!
811 strd r2, r4, [r9, #-48]!
812 ldrd r2, r4, [r9], #48
813 ldrd r2, r4, [r9], #-48
814 strd r2, r4, [r9], #48
815 strd r2, r4, [r9], #-48
816
817 .macro ldaddr op
818 ldr\op r1, [r5, #0x301]
819 ldr\op r1, [r5, #0x30]!
820 ldr\op r1, [r5, #-0x30]!
821 ldr\op r1, [r5], #0x30
822 ldr\op r1, [r5], #-0x30
823 ldr\op r1, [r5, r9]
824 .endm
825 ldaddr
826 ldaddr b
827 ldaddr sb
828 ldaddr h
829 ldaddr sh
830 .macro movshift op s="s"
831 movs r1, r4, \op #2
832 movs r3, r9, \op #2
833 movs r1, r2, \op r3
834 movs r1, r1, \op r3
835 movs r1, r1, \op r9
836 mov r1, r2, \op r3
837 mov r1, r1, \op r3
838 .endm
839 movshift lsl
840 movshift lsr
841 movshift asr
842 movshift ror
843 nop