.type foo, %function .globl foo foo: // GOT load adrp x1, :got:stderr ldr x0, [x1, :got_lo12:stderr] // GOT load to x0 adrp x0, :got:stderr ldr x1, [x0, :got_lo12:stderr] // GOT load with no register move adrp x0, :got:stderr ldr x0, [x0, :got_lo12:stderr] // Address load adrp x0, .Llocal_data add x1, x0, :lo12:.Llocal_data // Address of local symbol with offset adrp x10, .Llocal_data2+16 add x11, x10, :lo12:.Llocal_data2+16 // Address load with no-op add instruction adrp x0, .Llocal_data add x0, x0, :lo12:.Llocal_data // armcap adrp x1, OPENSSL_armcap_P ldr w2, [x1, :lo12:OPENSSL_armcap_P] // armcap to w0 adrp x0, OPENSSL_armcap_P ldr w1, [x1, :lo12:OPENSSL_armcap_P] // Load from local symbol adrp x10, .Llocal_data2 ldr q0, [x10, :lo12:.Llocal_data2] bl local_function bl remote_function bl bss_symbol_bss_get local_function: // BSS data .type bss_symbol,@object .section .bss.bss_symbol,"aw",@nobits bss_symbol: .word 0 .size bss_symbol, 4