Home | History | Annotate | Download | only in arm
      1 	.text
      2 	.thumb
      3 	.syntax unified
      4 thumb2_relax:
      5 	.macro	ls op w=".w"
      6 1:
      7 	\op	r1, [r5]
      8 	\op	r1, [r5, #(far_\op + 4)]
      9 	\op	r1, [r5, #far_\op]
     10 	\op\w	r1, [r5, #far_\op]
     11 	\op	r1, [r5, #-far_\op]
     12 	\op	r1, [r5], #far_\op
     13 	\op	r1, [r5], #far_\op
     14 	\op	r1, [r5, #far_\op]!
     15 	\op	r1, [r5, #-far_\op]!
     16 	\op	r1, [r5, r4]
     17 	\op	r1, [r9, ip]
     18 	\op	r1, 1f
     19 	\op\w	r1, 1f
     20 	\op	r8, 1f
     21 	\op	r1, 2f
     22 	\op	r1, 1b
     23 	.align 2
     24 1:
     25 	nop
     26 2:
     27 	.endm
     28 .equ far_ldrb, 0x1f
     29 .equ far_ldrsb, 0x1f
     30 .equ far_ldrh, 0x3e
     31 .equ far_ldrsh, 0x3e
     32 .equ far_ldr, 0x7c
     33 	ls	ldrb
     34 	ls	ldrsb
     35 	ls	ldrh
     36 	ls	ldrsh
     37 	ls	ldr
     38 	.purgem ls
     39 1:
     40 	adr	r1, 1f
     41 	adr.w	r1, 1f
     42 	adr	r8, 1f
     43 	adr	r1, 2f
     44 	adr	r1, 1b
     45 .align 2
     46 1:
     47 	nop
     48 2:
     49 	nop
     50 	@ Relaxation with conflicting alignment requirements.
     51 	adr	r1, 1f
     52 	adr	r1, 2f
     53 1:
     54 	nop
     55 2:
     56 	nop
     57