This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.17-544-g7214d55
- From: roland at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 19 Apr 2013 21:57:11 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.17-544-g7214d55
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, master has been updated
via 7214d558d3a63e9c7b638787953ab1fe80c4adc1 (commit)
from ccdad15df5bb2ec898fbf10c7195164cf228833a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=7214d558d3a63e9c7b638787953ab1fe80c4adc1
commit 7214d558d3a63e9c7b638787953ab1fe80c4adc1
Author: Roland McGrath <roland@hack.frob.com>
Date: Fri Apr 19 11:33:01 2013 -0700
ARM: Macroize assembly use of EABI unwind directives.
diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm
index 355d980..9bd3aad 100644
--- a/ports/ChangeLog.arm
+++ b/ports/ChangeLog.arm
@@ -1,3 +1,10 @@
+2013-04-19 Roland McGrath <roland@hack.frob.com>
+
+ * sysdeps/arm/sysdep.h
+ (eabi_fnstart, eabi_fnend, eabi_save, eabi_cantunwind, eabi_pad):
+ New macros.
+ * sysdeps/arm/dl-tlsdesc.S: Use them.
+
2013-03-26 Mans Rullgard <mans@mansr.com>
* sysdeps/arm/preconfigure.in: Use "test" instead of [ ].
diff --git a/ports/sysdeps/arm/dl-tlsdesc.S b/ports/sysdeps/arm/dl-tlsdesc.S
index 7203c06..94f6801 100644
--- a/ports/sysdeps/arm/dl-tlsdesc.S
+++ b/ports/sysdeps/arm/dl-tlsdesc.S
@@ -29,13 +29,13 @@
.global _dl_tlsdesc_return
.type _dl_tlsdesc_return,#function
cfi_startproc
- .fnstart
+ eabi_fnstart
.align 2
_dl_tlsdesc_return:
sfi_breg r0, \
ldr r0, [\B]
BX (lr)
- .fnend
+ eabi_fnend
cfi_endproc
.size _dl_tlsdesc_return, .-_dl_tlsdesc_return
@@ -43,14 +43,14 @@ _dl_tlsdesc_return:
.global _dl_tlsdesc_undefweak
.type _dl_tlsdesc_undefweak,#function
cfi_startproc
- .fnstart
+ eabi_fnstart
.align 2
_dl_tlsdesc_undefweak:
GET_TLS (r1)
rsb r0, r0, #0
BX (lr)
cfi_endproc
- .fnend
+ eabi_fnend
.size _dl_tlsdesc_undefweak, .-_dl_tlsdesc_undefweak
#ifdef SHARED
@@ -80,12 +80,12 @@ _dl_tlsdesc_dynamic(struct tlsdesc *tdp)
*/
cfi_startproc
- .fnstart
+ eabi_fnstart
.align 2
_dl_tlsdesc_dynamic:
/* Our calling convention is to clobber r0, r1 and the processor
flags. All others that are modified must be saved */
- .save {r2,r3,r4,lr}
+ eabi_save ({r2,r3,r4,lr})
push {r2,r3,r4,lr}
cfi_adjust_cfa_offset (16)
cfi_rel_offset (r2,0)
@@ -135,7 +135,7 @@ _dl_tlsdesc_dynamic:
#else
pop {r2,r3,r4, pc}
#endif
- .fnend
+ eabi_fnend
cfi_endproc
.size _dl_tlsdesc_dynamic, .-_dl_tlsdesc_dynamic
#endif /* SHARED */
@@ -145,7 +145,7 @@ _dl_tlsdesc_dynamic:
.global _dl_tlsdesc_lazy_resolver
.type _dl_tlsdesc_lazy_resolver,#function
cfi_startproc
- .fnstart
+ eabi_fnstart
.align 2
_dl_tlsdesc_lazy_resolver:
/* r0 points at the tlsdesc,
@@ -155,10 +155,10 @@ _dl_tlsdesc_lazy_resolver:
We push the remaining call-clobbered registers here, and also
R1 -- to keep the stack correctly aligned. */
/* Tell the unwinder that r2 has already been pushed. */
- .save {r2}
+ eabi_save ({r2})
cfi_adjust_cfa_offset (4)
cfi_rel_offset (r2, 0)
- .save {r0,r1,r3,ip,lr}
+ eabi_save ({r0,r1,r3,ip,lr})
push {r0, r1, r3, ip, lr}
cfi_adjust_cfa_offset (20)
cfi_rel_offset (r0, 0)
@@ -180,7 +180,7 @@ _dl_tlsdesc_lazy_resolver:
sfi_breg r0, \
ldr r1, [\B, #4]
BX (r1)
- .fnend
+ eabi_fnend
cfi_endproc
.size _dl_tlsdesc_lazy_resolver, .-_dl_tlsdesc_lazy_resolver
@@ -190,14 +190,14 @@ _dl_tlsdesc_lazy_resolver:
.global _dl_tlsdesc_resolve_hold
.type _dl_tlsdesc_resolve_hold,#function
cfi_startproc
- .fnstart
+ eabi_fnstart
.align 2
_dl_tlsdesc_resolve_hold:
/* Tell the unwinder that r2 has already been pushed. */
- .save {r2}
+ eabi_save ({r2})
cfi_adjust_cfa_offset (4)
cfi_rel_offset (r2, 0)
- .save {r0,r1,r3,ip,lr}
+ eabi_save ({r0,r1,r3,ip,lr})
push {r0, r1, r3, ip, lr}
cfi_adjust_cfa_offset (20)
cfi_rel_offset (r0, 0)
@@ -220,6 +220,6 @@ _dl_tlsdesc_resolve_hold:
sfi_breg r0, \
ldr r1, [\B, #4]
BX (r1)
- .fnend
+ eabi_fnend
cfi_endproc
.size _dl_tlsdesc_resolve_hold, .-_dl_tlsdesc_resolve_hold
diff --git a/ports/sysdeps/arm/sysdep.h b/ports/sysdeps/arm/sysdep.h
index 83df7eb..5501597 100644
--- a/ports/sysdeps/arm/sysdep.h
+++ b/ports/sysdeps/arm/sysdep.h
@@ -257,6 +257,15 @@
# endif
+/* These are the directives used for EABI unwind info.
+ Wrap them in macros so another configuration's sysdep.h
+ file can define them away if it doesn't use EABI unwind info. */
+# define eabi_fnstart .fnstart
+# define eabi_fnend .fnend
+# define eabi_save(...) .save __VA_ARGS__
+# define eabi_cantunwind .cantunwind
+# define eabi_pad(n) .pad n
+
#endif /* __ASSEMBLER__ */
/* This number is the offset from the pc at the current location. */
-----------------------------------------------------------------------
Summary of changes:
ports/ChangeLog.arm | 7 +++++++
ports/sysdeps/arm/dl-tlsdesc.S | 30 +++++++++++++++---------------
ports/sysdeps/arm/sysdep.h | 9 +++++++++
3 files changed, 31 insertions(+), 15 deletions(-)
hooks/post-receive
--
GNU C Library master sources