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