X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fldso%2Faarch64%2Ftlsdesc.s;h=04d97e730431a957dab6c2bbc7dfa0242265c20e;hb=05870abeaac0588fb9115cfd11f96880a0af2108;hp=c91baa453331cf91ba6d90b0f78f0a0f9847af12;hpb=9d44b6460ab603487dab4d916342d9ba4467e6b9;p=musl diff --git a/src/ldso/aarch64/tlsdesc.s b/src/ldso/aarch64/tlsdesc.s index c91baa45..04d97e73 100644 --- a/src/ldso/aarch64/tlsdesc.s +++ b/src/ldso/aarch64/tlsdesc.s @@ -23,16 +23,13 @@ __tlsdesc_static: .hidden __tlsdesc_dynamic .type __tlsdesc_dynamic,@function __tlsdesc_dynamic: - stp x1,x2,[sp,#-32]! - stp x3,x4,[sp,#16] + stp x1,x2,[sp,#-16]! mrs x1,tpidr_el0 // tp ldr x0,[x0,#8] // p - ldr x2,[x0] // p->modidx - ldr x3,[x1,#-8] // dtv - ldr x2,[x3,x2,lsl #3] // dtv[p->modidx] - ldr x0,[x0,#8] // p->off - add x0,x0,x2 - sub x0,x0,x1 - ldp x3,x4,[sp,#16] - ldp x1,x2,[sp],#32 + ldp x0,x2,[x0] // p->modidx, p->off + sub x2,x2,x1 // p->off - tp + ldr x1,[x1,#-8] // dtv + ldr x1,[x1,x0,lsl #3] // dtv[p->modidx] + add x0,x1,x2 // dtv[p->modidx] + p->off - tp + ldp x1,x2,[sp],#16 ret