Lines Matching +full:bl +full:- +full:code +full:- +full:offset
1 /*-
10 * 1. Redistributions of source code must retain the above copyright
34 mov x19, x0 /* Put ps_strings in a callee-saved register */
41 bl _rtld /* Call the loader */
60 stp x29, x30, [sp, #-16]!
63 .cfi_offset x30, -8
64 .cfi_offset x29, -16
67 stp x0, x1, [sp, #-16]!
68 stp x2, x3, [sp, #-16]!
69 stp x4, x5, [sp, #-16]!
70 stp x6, x7, [sp, #-16]!
71 stp x8, xzr, [sp, #-16]!
73 /* Save any floating-point arguments */
74 stp q0, q1, [sp, #-32]!
75 stp q2, q3, [sp, #-32]!
76 stp q4, q5, [sp, #-32]!
77 stp q6, q7, [sp, #-32]!
81 sub x1, x2, x16 /* Find its offset */
82 sub x1, x1, #8 /* Adjust for x16 not being at offset 0 */
84 lsl x3, x1, #1 /* x3 = 2 * offset */
85 add x1, x1, x3 /* x1 = x3 + offset = 3 * offset */
88 ldr x0, [x16, #-8]
91 bl _rtld_bind
110 /* Restore link register saved by the plt code */
138 str x1, [sp, #-16]!
146 .cfi_adjust_cfa_offset -16
157 stp x1, x2, [sp, #(-2 * 16)]!
165 /* Test fastpath - inlined version of tls_get_addr_common(). */
170 ldr x3, [x1] /* tlsdec->dtv_gen */
172 b.ne 1f /* dtv[0] != tlsdec->dtv_gen */
174 ldr w2, [x1, #8] /* tlsdec->tls_index */
176 ldr x3, [x0, w2, sxtw #3] /* dtv[tlsdesc->tls_index + 1] */
179 /* Return (dtv[tlsdesc->tls_index + 1] + tlsdesc->tls_offs - tp) */
180 ldr x2, [x1, #16] /* tlsdec->tls_offs */
186 .cfi_adjust_cfa_offset -2 * 16
192 * tls_get_addr_common(tp, tlsdesc->tls_index, tlsdesc->tls_offs));
197 stp x29, x30, [sp, #-(8 * 16)]!
225 /* Find the tls offset */
228 ldr w1, [x3, #8] /* tlsdec->tls_index */
229 ldr x2, [x3, #16] /* tlsdec->tls_offs */
230 bl tls_get_addr_common
243 .cfi_adjust_cfa_offset -8 * 16
250 .cfi_adjust_cfa_offset -2 * 16