Message ID | 1414396793-9005-13-git-send-email-apinski@cavium.com |
---|---|
State | New |
Headers | show |
On 27 October 2014 07:59, Andrew Pinski <apinski@cavium.com> wrote: > This converts dl-tlsdesc.S code over to use the new macros which allows for > sharing between ILP32 and LP64 code. > > * sysdeps/aarch64/dl-tlsdesc.S (_dl_tlsdesc_return): Use PTR_REG. > (_dl_tlsdesc_undefweak): Use PTR_REG, PTR_SIZE. > (_dl_tlsdesc_dynamic): Likewise. > (_dl_tlsdesc_resolve_rela): Likewise. > (_dl_tlsdesc_resolve_hold): Likewise. > --- > sysdeps/aarch64/dl-tlsdesc.S | 36 ++++++++++++++++++------------------ > 1 files changed, 18 insertions(+), 18 deletions(-) This looks ok, although as with all these patches I would want to see the test results for AArch64 and AArch64 ILP32 before they are committed. > diff --git a/sysdeps/aarch64/dl-tlsdesc.S b/sysdeps/aarch64/dl-tlsdesc.S > index ded5471..6004115 100644 > --- a/sysdeps/aarch64/dl-tlsdesc.S > +++ b/sysdeps/aarch64/dl-tlsdesc.S > @@ -74,7 +74,7 @@ > cfi_startproc > .align 2 > _dl_tlsdesc_return: > - ldr x0, [x0, #8] > + ldr PTR_REG (0), [x0, #PTR_SIZE] > RET > cfi_endproc > .size _dl_tlsdesc_return, .-_dl_tlsdesc_return > @@ -96,9 +96,9 @@ _dl_tlsdesc_return: > _dl_tlsdesc_undefweak: > str x1, [sp, #-16]! > cfi_adjust_cfa_offset(16) > - ldr x0, [x0, #8] > + ldr PTR_REG (0), [x0, #PTR_SIZE] > mrs x1, tpidr_el0 > - sub x0, x0, x1 > + sub PTR_REG (0), PTR_REG (0), PTR_REG (1) > ldr x1, [sp], #16 > cfi_adjust_cfa_offset(16) > RET > @@ -152,20 +152,20 @@ _dl_tlsdesc_dynamic: > stp x3, x4, [sp, #32+16*1] > > mrs x4, tpidr_el0 > - ldr x1, [x0,#8] > - ldr x0, [x4] > - ldr x3, [x1,#16] > - ldr x2, [x0] > - cmp x3, x2 > + ldr PTR_REG (1), [x0,#PTR_SIZE] > + ldr PTR_REG (0), [x4] > + ldr PTR_REG (3), [x1,#(PTR_SIZE * 2)] > + ldr PTR_REG (2), [x0] > + cmp PTR_REG (3), PTR_REG (2) > b.hi 2f > - ldr x2, [x1] > - add x0, x0, x2, lsl #4 > - ldr x0, [x0] > + ldr PTR_REG (2), [x1] > + add PTR_REG (0), PTR_REG (0), PTR_REG (2), lsl #(PTR_LOG_SIZE + 1) > + ldr PTR_REG (0), [x0] > cmn x0, #0x1 > b.eq 2f > - ldr x1, [x1,#8] > - add x0, x0, x1 > - sub x0, x0, x4 > + ldr PTR_REG (1), [x1,#(PTR_SIZE * 2)] > + add PTR_REG (0), PTR_REG (0), PTR_REG (1) > + sub PTR_REG (0), PTR_REG (0), PTR_REG (4) > 1: > ldp x1, x2, [sp, #32+16*0] > ldp x3, x4, [sp, #32+16*1] > @@ -196,7 +196,7 @@ _dl_tlsdesc_dynamic: > bl __tls_get_addr > > mrs x1, tpidr_el0 > - sub x0, x0, x1 > + sub PTR_REG (0), PTR_REG (0), PTR_REG (1) > > RESTORE_Q_REGISTERS > > @@ -242,13 +242,13 @@ _dl_tlsdesc_resolve_rela: > > SAVE_Q_REGISTERS > > - ldr x1, [x3, #8] > + ldr PTR_REG (1), [x3, #PTR_SIZE] > bl _dl_tlsdesc_resolve_rela_fixup > > RESTORE_Q_REGISTERS > > ldr x0, [sp, #32+16*8] > - ldr x1, [x0] > + ldr PTR_REG (1), [x0] > blr x1 > > ldp x1, x4, [sp, #32+16*0] > @@ -309,7 +309,7 @@ _dl_tlsdesc_resolve_hold: > RESTORE_Q_REGISTERS > > ldr x0, [sp, #32+16*9] > - ldr x1, [x0] > + ldr PTR_REG (1), [x0] > blr x1 > > ldp x1, x2, [sp, #32+16*0] > -- > 1.7.2.5 >
diff --git a/sysdeps/aarch64/dl-tlsdesc.S b/sysdeps/aarch64/dl-tlsdesc.S index ded5471..6004115 100644 --- a/sysdeps/aarch64/dl-tlsdesc.S +++ b/sysdeps/aarch64/dl-tlsdesc.S @@ -74,7 +74,7 @@ cfi_startproc .align 2 _dl_tlsdesc_return: - ldr x0, [x0, #8] + ldr PTR_REG (0), [x0, #PTR_SIZE] RET cfi_endproc .size _dl_tlsdesc_return, .-_dl_tlsdesc_return @@ -96,9 +96,9 @@ _dl_tlsdesc_return: _dl_tlsdesc_undefweak: str x1, [sp, #-16]! cfi_adjust_cfa_offset(16) - ldr x0, [x0, #8] + ldr PTR_REG (0), [x0, #PTR_SIZE] mrs x1, tpidr_el0 - sub x0, x0, x1 + sub PTR_REG (0), PTR_REG (0), PTR_REG (1) ldr x1, [sp], #16 cfi_adjust_cfa_offset(16) RET @@ -152,20 +152,20 @@ _dl_tlsdesc_dynamic: stp x3, x4, [sp, #32+16*1] mrs x4, tpidr_el0 - ldr x1, [x0,#8] - ldr x0, [x4] - ldr x3, [x1,#16] - ldr x2, [x0] - cmp x3, x2 + ldr PTR_REG (1), [x0,#PTR_SIZE] + ldr PTR_REG (0), [x4] + ldr PTR_REG (3), [x1,#(PTR_SIZE * 2)] + ldr PTR_REG (2), [x0] + cmp PTR_REG (3), PTR_REG (2) b.hi 2f - ldr x2, [x1] - add x0, x0, x2, lsl #4 - ldr x0, [x0] + ldr PTR_REG (2), [x1] + add PTR_REG (0), PTR_REG (0), PTR_REG (2), lsl #(PTR_LOG_SIZE + 1) + ldr PTR_REG (0), [x0] cmn x0, #0x1 b.eq 2f - ldr x1, [x1,#8] - add x0, x0, x1 - sub x0, x0, x4 + ldr PTR_REG (1), [x1,#(PTR_SIZE * 2)] + add PTR_REG (0), PTR_REG (0), PTR_REG (1) + sub PTR_REG (0), PTR_REG (0), PTR_REG (4) 1: ldp x1, x2, [sp, #32+16*0] ldp x3, x4, [sp, #32+16*1] @@ -196,7 +196,7 @@ _dl_tlsdesc_dynamic: bl __tls_get_addr mrs x1, tpidr_el0 - sub x0, x0, x1 + sub PTR_REG (0), PTR_REG (0), PTR_REG (1) RESTORE_Q_REGISTERS @@ -242,13 +242,13 @@ _dl_tlsdesc_resolve_rela: SAVE_Q_REGISTERS - ldr x1, [x3, #8] + ldr PTR_REG (1), [x3, #PTR_SIZE] bl _dl_tlsdesc_resolve_rela_fixup RESTORE_Q_REGISTERS ldr x0, [sp, #32+16*8] - ldr x1, [x0] + ldr PTR_REG (1), [x0] blr x1 ldp x1, x4, [sp, #32+16*0] @@ -309,7 +309,7 @@ _dl_tlsdesc_resolve_hold: RESTORE_Q_REGISTERS ldr x0, [sp, #32+16*9] - ldr x1, [x0] + ldr PTR_REG (1), [x0] blr x1 ldp x1, x2, [sp, #32+16*0]