about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRoland McGrath <roland@hack.frob.com>2013-04-26 14:23:58 -0700
committerRoland McGrath <roland@hack.frob.com>2013-04-26 14:23:58 -0700
commit28db0546beb292b42481d99505be3ff8f291dc96 (patch)
tree1b3971368aa5c8def49c9d635a3f02226add2f60
parent9457fd952cafc701375fc9fae575a4aca1374de3 (diff)
downloadglibc-roland/x86_64-crt1-cfi.tar.gz
glibc-roland/x86_64-crt1-cfi.tar.xz
glibc-roland/x86_64-crt1-cfi.zip
BZ#15407: Complete CFI annotations in x86_64 _start code. roland/x86_64-crt1-cfi
-rw-r--r--ChangeLog6
-rw-r--r--sysdeps/x86_64/start.S3
2 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 225236c6d8..ab3ad2990f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2013-04-26  Roland McGrath  <roland@hack.frob.com>
+
+	[BZ #15407]
+	* sysdeps/x86_64/start.S (_start): Use cfi_adjust_cfa_offset for
+	change to the stack pointer.
+
 2013-04-26  Joseph Myers  <joseph@codesourcery.com>
 
 	[BZ #15406]
diff --git a/sysdeps/x86_64/start.S b/sysdeps/x86_64/start.S
index 7cbc157662..e50b33cfd9 100644
--- a/sysdeps/x86_64/start.S
+++ b/sysdeps/x86_64/start.S
@@ -88,6 +88,7 @@ _start:
 #else
 	popq %rsi		/* Pop the argument count.  */
 #endif
+	cfi_adjust_cfa_offset (LP_SIZE)
 	/* argv starts just at the current stack top.  */
 	mov %RSP_LP, %RDX_LP
 	/* Align the stack to a 16 byte boundary to follow the ABI.  */
@@ -95,10 +96,12 @@ _start:
 
 	/* Push garbage because we push 8 more bytes.  */
 	pushq %rax
+	cfi_adjust_cfa_offset (-8)
 
 	/* Provide the highest stack address to the user code (for stacks
 	   which grow downwards).  */
 	pushq %rsp
+	cfi_adjust_cfa_offset (-8)
 
 #ifdef SHARED
 	/* Pass address of our own entry points to .fini and .init.  */