summaryrefslogtreecommitdiff
path: root/sysdeps/i386
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2007-08-25 18:55:07 +0000
committerJakub Jelinek <jakub@redhat.com>2007-08-25 18:55:07 +0000
commitdd3394742b3e2e01f403b1c1b41ed39273b2212e (patch)
tree5fed86738b0d518989679f3194f896fc9fcebbe2 /sysdeps/i386
parent9b0cdd693e7f54fd35fd58931b940efe6ccb88cd (diff)
Updated to fedora-glibc-20070825T1839
Diffstat (limited to 'sysdeps/i386')
-rw-r--r--sysdeps/i386/dl-trampoline.S19
1 files changed, 10 insertions, 9 deletions
diff --git a/sysdeps/i386/dl-trampoline.S b/sysdeps/i386/dl-trampoline.S
index f991797ee9..af9eaf6d56 100644
--- a/sysdeps/i386/dl-trampoline.S
+++ b/sysdeps/i386/dl-trampoline.S
@@ -37,10 +37,10 @@ _dl_runtime_resolve:
call _dl_fixup # Call resolver.
popl %edx # Get register content back.
cfi_adjust_cfa_offset (-4)
- popl %ecx
- cfi_adjust_cfa_offset (-4)
- xchgl %eax, (%esp) # Get %eax contents end store function address.
- ret $8 # Jump to function address.
+ movl (%esp), %ecx
+ movl %eax, (%esp) # Store the function address.
+ movl 4(%esp), %eax
+ ret $12 # Jump to function address.
cfi_endproc
.size _dl_runtime_resolve, .-_dl_runtime_resolve
@@ -83,10 +83,10 @@ _dl_runtime_profile:
cfi_adjust_cfa_offset (-4)
popl %edx # Get register content back.
cfi_adjust_cfa_offset (-4)
- popl %ecx
- cfi_adjust_cfa_offset (-4)
- xchgl %eax, (%esp) # Get %eax contents end store function address.
- ret $16 # Jump to function address.
+ movl (%esp), %ecx
+ movl %eax, (%esp) # Store the function address.
+ movl 4(%esp), %eax
+ ret $20 # Jump to function address.
/*
+32 return address
@@ -111,9 +111,10 @@ _dl_runtime_profile:
cfi_rel_offset (esi, 0)
leal 44(%esp), %esi
movl %ebx, %ecx
+ orl $4, %ebx # Increase frame size if necessary to align
+ # stack for the function call
movl %esp, %edi
subl %ebx, %edi
- andl $0xfffffff0, %edi # Align stack
movl %esp, %ebx
cfi_def_cfa_register (ebx)
movl %edi, %esp