This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch roland/arm-sfi-tlsdesc created. glibc-2.17-396-g5e7743c


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, roland/arm-sfi-tlsdesc has been created
        at  5e7743c313c8a8efc23c5241e0d46627e640c641 (commit)

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=5e7743c313c8a8efc23c5241e0d46627e640c641

commit 5e7743c313c8a8efc23c5241e0d46627e640c641
Author: Roland McGrath <roland@hack.frob.com>
Date:   Wed Mar 13 14:07:24 2013 -0700

    unfinished

diff --git a/ports/sysdeps/arm/dl-tlsdesc.S b/ports/sysdeps/arm/dl-tlsdesc.S
index e810d0d..273e165 100644
--- a/ports/sysdeps/arm/dl-tlsdesc.S
+++ b/ports/sysdeps/arm/dl-tlsdesc.S
@@ -31,6 +31,7 @@
 	.fnstart
 	.align 2
 _dl_tlsdesc_return:
+	sfi_breg r0, \
 	ldr	r0, [r0]
 	BX	(lr)
 	.fnend
@@ -90,16 +91,28 @@ _dl_tlsdesc_dynamic:
 	cfi_rel_offset (r3,4)
 	cfi_rel_offset (r4,8)
 	cfi_rel_offset (lr,12)
-	ldr	r1, [r0] /* td */
+	sfi_breg r0, \
+	ldr	r1, [\B] /* td */
 	GET_TLS (lr)
 	mov	r4, r0 /* r4 = tp */
-	ldr	r0, [r0]
-	ldr	r2, [r1, #8] /* gen_count */
+	sfi_breg r0, \
+	ldr	r0, [\B]
+	sfi_breg r1, \
+	ldr	r2, [\B, #8] /* gen_count */
+	sfi_breg r0, \
 	ldr	r3, [r0]
 	cmp	r2, r3
 	bhi	1f
+	sfi_breg r1, \
 	ldr	r3, [r1]
+#ifndef ARM_NO_INDEX_REGISTER
 	ldr	r2, [r0, r3, lsl #3]
+#else
+	/* XXX clobber r0 in case where we skip rsbne below and jump to 2 */
+	add	r0, r0, r3, lsl #3
+	sfi_breg r0,
+	ldr	r2, [\B]
+#endif
 	cmn	r2, #1
 	ittt	ne
 	ldrne	r3, [r1, #4]
@@ -110,7 +123,8 @@ _dl_tlsdesc_dynamic:
 	bl	__tls_get_addr
 	rsb	r0, r4, r0
 2:
-#if defined (__ARM_ARCH_4T__) && defined (__THUMB_INTERWORK__)
+#if (defined (__ARM_ARCH_4T__) && defined (__THUMB_INTERWORK__) \
+     || defined (ARM_ALWAYS_BX))
 	pop	{r2,r3,r4, lr}
 	cfi_adjust_cfa_offset (-16)
 	cfi_restore (lr)
@@ -163,6 +177,7 @@ _dl_tlsdesc_lazy_resolver:
 	pop	{r2}
 	cfi_adjust_cfa_offset (-4)
 	cfi_restore (r2)
+	sfi_breg r0, \
 	ldr	r1, [r0, #4]
 	BX	(r1)
 	.fnend
@@ -202,7 +217,8 @@ _dl_tlsdesc_resolve_hold:
 	pop	{r2}
 	cfi_adjust_cfa_offset (-4)
 	cfi_restore (r2)
-	ldr     r1, [r0, #4]
+	sfi_breg r0, \
+	ldr     r1, [\B, #4]
 	BX      (r1)
 	.fnend
 	cfi_endproc

-----------------------------------------------------------------------


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]