aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2016-08-26 08:57:42 -0700
committerH.J. Lu <hjl.tools@gmail.com>2016-08-26 08:57:54 -0700
commit0ac8ee53e8efbfd6e1c37094b4653f5c2dad65b5 (patch)
tree5cc57f266e6790c60fb2b3fe27986b6cbd4c04f7
parent6e263a27c4d911a9f4b68ed14852601b5c53b83d (diff)
downloadglibc-0ac8ee53e8efbfd6e1c37094b4653f5c2dad65b5.zip
glibc-0ac8ee53e8efbfd6e1c37094b4653f5c2dad65b5.tar.gz
glibc-0ac8ee53e8efbfd6e1c37094b4653f5c2dad65b5.tar.bz2
X86-64: Correct CFA in _dl_runtime_resolve
When stack is re-aligned in _dl_runtime_resolve, there is no need to adjust CFA when allocating register save area on stack. * sysdeps/x86_64/dl-trampoline.h (_dl_runtime_resolve): Don't adjust CFA when allocating register save area on re-aligned stack.
-rw-r--r--ChangeLog6
-rw-r--r--sysdeps/x86_64/dl-trampoline.h2
2 files changed, 8 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 4324678..a8aae15 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2016-08-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/dl-trampoline.h (_dl_runtime_resolve): Don't
+ adjust CFA when allocating register save area on re-aligned
+ stack.
+
2016-08-26 Florian Weimer <fweimer@redhat.com>
* string/tst-cmp.c: New test.
diff --git a/sysdeps/x86_64/dl-trampoline.h b/sysdeps/x86_64/dl-trampoline.h
index b90836a..8161f96 100644
--- a/sysdeps/x86_64/dl-trampoline.h
+++ b/sysdeps/x86_64/dl-trampoline.h
@@ -69,7 +69,9 @@ _dl_runtime_resolve:
and $-VEC_SIZE, %RSP_LP
#endif
sub $REGISTER_SAVE_AREA, %RSP_LP
+#if !DL_RUNTIME_RESOLVE_REALIGN_STACK
cfi_adjust_cfa_offset(REGISTER_SAVE_AREA)
+#endif
# Preserve registers otherwise clobbered.
movq %rax, REGISTER_SAVE_RAX(%rsp)
movq %rcx, REGISTER_SAVE_RCX(%rsp)