summaryrefslogtreecommitdiff
path: root/src/ldso/aarch64
diff options
context:
space:
mode:
Diffstat (limited to 'src/ldso/aarch64')
-rw-r--r--src/ldso/aarch64/tlsdesc.s5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/ldso/aarch64/tlsdesc.s b/src/ldso/aarch64/tlsdesc.s
index 8ed5c267..8e4004d7 100644
--- a/src/ldso/aarch64/tlsdesc.s
+++ b/src/ldso/aarch64/tlsdesc.s
@@ -14,7 +14,7 @@ __tlsdesc_static:
// size_t __tlsdesc_dynamic(size_t *a)
// {
// struct {size_t modidx,off;} *p = (void*)a[1];
-// size_t *dtv = *(size_t**)(tp + 16 - 8);
+// size_t *dtv = *(size_t**)(tp - 8);
// if (p->modidx <= dtv[0])
// return dtv[p->modidx] + p->off - tp;
// return __tls_get_new(p) - tp;
@@ -28,8 +28,7 @@ __tlsdesc_dynamic:
mrs x1,tpidr_el0 // tp
ldr x0,[x0,#8] // p
ldr x2,[x0] // p->modidx
- add x3,x1,#8
- ldr x3,[x3] // dtv
+ ldr x3,[x1,#-8] // dtv
ldr x4,[x3] // dtv[0]
cmp x2,x4
b.hi 1f