• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1.text
2.file 1 "inserted_by_delocate.c"
3.loc 1 1 0
4BORINGSSL_bcm_text_start:
5	.type foo, %function
6	.globl foo
7.Lfoo_local_target:
8foo:
9	// GOT load
10// WAS adrp x1, :got:stderr
11	sub sp, sp, 128
12	stp x0, lr, [sp, #-16]!
13	bl .Lboringssl_loadgot_stderr
14	mov x1, x0
15	ldp x0, lr, [sp], #16
16	add sp, sp, 128
17// WAS ldr x0, [x1, :got_lo12:stderr]
18	mov x0, x1
19
20	// GOT load to x0
21// WAS adrp x0, :got:stderr
22	sub sp, sp, 128
23	stp x0, lr, [sp, #-16]!
24	bl .Lboringssl_loadgot_stderr
25	ldp xzr, lr, [sp], #16
26	add sp, sp, 128
27// WAS ldr x1, [x0, :got_lo12:stderr]
28	mov x1, x0
29
30	// GOT load with no register move
31// WAS adrp x0, :got:stderr
32	sub sp, sp, 128
33	stp x0, lr, [sp, #-16]!
34	bl .Lboringssl_loadgot_stderr
35	ldp xzr, lr, [sp], #16
36	add sp, sp, 128
37// WAS ldr x0, [x0, :got_lo12:stderr]
38
39	// Address load
40// WAS adrp x0, .Llocal_data
41	adr x0, .Llocal_data
42// WAS add x1, x0, :lo12:.Llocal_data
43	add	x1, x0, #0
44
45	// Address of local symbol with offset
46// WAS adrp x10, .Llocal_data2+16
47	adr x10, .Llocal_data2+16
48// WAS add x11, x10, :lo12:.Llocal_data2+16
49	add	x11, x10, #0
50
51	// Address load with no-op add instruction
52// WAS adrp x0, .Llocal_data
53	adr x0, .Llocal_data
54// WAS add x0, x0, :lo12:.Llocal_data
55
56	// armcap
57// WAS adrp x1, OPENSSL_armcap_P
58	sub sp, sp, 128
59	stp x0, lr, [sp, #-16]!
60	bl .LOPENSSL_armcap_P_addr
61	mov x1, x0
62	ldp x0, lr, [sp], #16
63	add sp, sp, 128
64// WAS ldr w2, [x1, :lo12:OPENSSL_armcap_P]
65	ldr	w2, [x1]
66
67	// armcap to w0
68// WAS adrp x0, OPENSSL_armcap_P
69	sub sp, sp, 128
70	stp x0, lr, [sp, #-16]!
71	bl .LOPENSSL_armcap_P_addr
72	ldp xzr, lr, [sp], #16
73	add sp, sp, 128
74// WAS ldr w1, [x1, :lo12:OPENSSL_armcap_P]
75	ldr	w1, [x1]
76
77	// Load from local symbol
78// WAS adrp x10, .Llocal_data2
79	adr x10, .Llocal_data2
80// WAS ldr q0, [x10, :lo12:.Llocal_data2]
81	ldr	q0, [x10]
82
83// WAS bl local_function
84	bl	.Llocal_function_local_target
85
86// WAS bl remote_function
87	bl	bcm_redirector_remote_function
88
89	bl bss_symbol_bss_get
90
91.Llocal_function_local_target:
92local_function:
93
94// BSS data
95.type bss_symbol,@object
96.section .bss.bss_symbol,"aw",@nobits
97bss_symbol:
98.Lbss_symbol_local_target:
99
100.word 0
101.size bss_symbol, 4
102.text
103.loc 1 2 0
104BORINGSSL_bcm_text_end:
105.p2align 2
106.hidden bcm_redirector_remote_function
107.type bcm_redirector_remote_function, @function
108bcm_redirector_remote_function:
109.cfi_startproc
110	b remote_function
111.cfi_endproc
112.size bcm_redirector_remote_function, .-bcm_redirector_remote_function
113.p2align 2
114.hidden bss_symbol_bss_get
115.type bss_symbol_bss_get, @function
116bss_symbol_bss_get:
117.cfi_startproc
118	adrp x0, .Lbss_symbol_local_target
119	add x0, x0, :lo12:.Lbss_symbol_local_target
120	ret
121.cfi_endproc
122.size bss_symbol_bss_get, .-bss_symbol_bss_get
123.p2align 2
124.hidden .Lboringssl_loadgot_stderr
125.type .Lboringssl_loadgot_stderr, @function
126.Lboringssl_loadgot_stderr:
127.cfi_startproc
128	adrp x0, :got:stderr
129	ldr x0, [x0, :got_lo12:stderr]
130	ret
131.cfi_endproc
132.size .Lboringssl_loadgot_stderr, .-.Lboringssl_loadgot_stderr
133.p2align 2
134.hidden .LOPENSSL_armcap_P_addr
135.type .LOPENSSL_armcap_P_addr, @function
136.LOPENSSL_armcap_P_addr:
137.cfi_startproc
138	adrp x0, OPENSSL_armcap_P
139	add x0, x0, :lo12:OPENSSL_armcap_P
140	ret
141.cfi_endproc
142.size .LOPENSSL_armcap_P_addr, .-.LOPENSSL_armcap_P_addr
143.type BORINGSSL_bcm_text_hash, @object
144.size BORINGSSL_bcm_text_hash, 64
145BORINGSSL_bcm_text_hash:
146.byte 0xae
147.byte 0x2c
148.byte 0xea
149.byte 0x2a
150.byte 0xbd
151.byte 0xa6
152.byte 0xf3
153.byte 0xec
154.byte 0x97
155.byte 0x7f
156.byte 0x9b
157.byte 0xf6
158.byte 0x94
159.byte 0x9a
160.byte 0xfc
161.byte 0x83
162.byte 0x68
163.byte 0x27
164.byte 0xcb
165.byte 0xa0
166.byte 0xa0
167.byte 0x9f
168.byte 0x6b
169.byte 0x6f
170.byte 0xde
171.byte 0x52
172.byte 0xcd
173.byte 0xe2
174.byte 0xcd
175.byte 0xff
176.byte 0x31
177.byte 0x80
178.byte 0xa2
179.byte 0xd4
180.byte 0xc3
181.byte 0x66
182.byte 0xf
183.byte 0xc2
184.byte 0x6a
185.byte 0x7b
186.byte 0xf4
187.byte 0xbe
188.byte 0x39
189.byte 0xa2
190.byte 0xd7
191.byte 0x25
192.byte 0xdb
193.byte 0x21
194.byte 0x98
195.byte 0xe9
196.byte 0xd5
197.byte 0x53
198.byte 0xbf
199.byte 0x5c
200.byte 0x32
201.byte 0x6
202.byte 0x83
203.byte 0x34
204.byte 0xc
205.byte 0x65
206.byte 0x89
207.byte 0x52
208.byte 0xbd
209.byte 0x1f
210