• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1	.type foo, %function
2	.globl foo
3foo:
4	// GOT load
5	adrp x1, :got:stderr
6	ldr x0, [x1, :got_lo12:stderr]
7
8	// GOT load to x0
9	adrp x0, :got:stderr
10	ldr x1, [x0, :got_lo12:stderr]
11
12	// GOT load with no register move
13	adrp x0, :got:stderr
14	ldr x0, [x0, :got_lo12:stderr]
15
16	// Address load
17	adrp x0, .Llocal_data
18	add x1, x0, :lo12:.Llocal_data
19
20	// Address of local symbol with offset
21	adrp x10, .Llocal_data2+16
22	add x11, x10, :lo12:.Llocal_data2+16
23
24	// Address load with no-op add instruction
25	adrp x0, .Llocal_data
26	add x0, x0, :lo12:.Llocal_data
27
28	// armcap
29	adrp x1, OPENSSL_armcap_P
30	ldr w2, [x1, :lo12:OPENSSL_armcap_P]
31
32	// armcap to w0
33	adrp x0, OPENSSL_armcap_P
34	ldr w1, [x1, :lo12:OPENSSL_armcap_P]
35
36	// Load from local symbol
37	adrp x10, .Llocal_data2
38	ldr q0, [x10, :lo12:.Llocal_data2]
39
40	bl local_function
41
42	bl remote_function
43
44	bl bss_symbol_bss_get
45
46local_function:
47
48// BSS data
49.type bss_symbol,@object
50.section .bss.bss_symbol,"aw",@nobits
51bss_symbol:
52.word 0
53.size bss_symbol, 4
54