aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--sysdeps/x86_64/dl-trampoline.S7
2 files changed, 7 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 3a00dd5..e001d1a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2007-08-23 Ulrich Drepper <drepper@redhat.com>
+ * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Correctly
+ align stack for call if pltexit is to be used.
+
[BZ #3924]
* sysdeps/i386/dl-trampoline.S (_dl_runtime_profile): Correctly
align for function call in case pltexit has to be called later.
diff --git a/sysdeps/x86_64/dl-trampoline.S b/sysdeps/x86_64/dl-trampoline.S
index c1686da..84fe472 100644
--- a/sysdeps/x86_64/dl-trampoline.S
+++ b/sysdeps/x86_64/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. x86-64 version.
- Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -120,13 +120,14 @@ _dl_runtime_profile:
leaq 104(%rsp), %rsi
movq %rsp, %rbx
cfi_def_cfa_register (1)
+ movq %r10, %rcx
+ addq $8, %r10
+ andq $0xfffffffffffffff0, %r10
subq %r10, %rsp
movq %rsp, %rdi
- movq %r10, %rcx
shrq $3, %rcx
rep
movsq
- andq $0xfffffffffffffff0, %rsp
movq 32(%rbx), %rcx
movq 40(%rbx), %rsi
movq 48(%rbx), %rdi