.text .thumb .syntax unified thumb2_relax: .macro ls op w=".w" 1: \op r1, [r5] \op r1, [r5, #(far_\op + 4)] \op r1, [r5, #far_\op] \op\w r1, [r5, #far_\op] \op r1, [r5, #-far_\op] \op r1, [r5], #far_\op \op r1, [r5], #far_\op \op r1, [r5, #far_\op]! \op r1, [r5, #-far_\op]! \op r1, [r5, r4] \op r1, [r9, ip] \op r1, 1f \op\w r1, 1f \op r8, 1f \op r1, 2f \op r1, 1b .align 2 1: nop 2: .endm .equ far_ldrb, 0x1f .equ far_ldrsb, 0x1f .equ far_ldrh, 0x3e .equ far_ldrsh, 0x3e .equ far_ldr, 0x7c .equ far_strb, 0x1f .equ far_strh, 0x3e .equ far_str, 0x7c ls ldrb ls ldrsb ls ldrh ls ldrsh ls ldr ls strb ls strh ls str .purgem ls 1: adr r1, 1f adr.w r1, 1f adr r8, 1f adr r1, 2f adr r1, 1b .align 2 1: nop 2: nop @ Relaxation with conflicting alignment requirements. adr r1, 1f adr r1, 2f 1: nop 2: nop