1 .text 2 .thumb 3 .syntax unified 4thumb2_relax: 5 .macro ls op w=".w" 61: 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 241: 25 nop 262: 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.equ far_strb, 0x1f 34.equ far_strh, 0x3e 35.equ far_str, 0x7c 36 ls ldrb 37 ls ldrsb 38 ls ldrh 39 ls ldrsh 40 ls ldr 41 ls strb 42 ls strh 43 ls str 44 .purgem ls 451: 46 adr r1, 1f 47 adr.w r1, 1f 48 adr r8, 1f 49 adr r1, 2f 50 adr r1, 1b 51.align 2 521: 53 nop 542: 55 nop 56 @ Relaxation with conflicting alignment requirements. 57 adr r1, 1f 58 adr r1, 2f 591: 60 nop 612: 62 nop 63