* sysdeps/i386/dl-trampoline.S (_dl_runtime_resolve): Avoid

implicit atomic operation when storing function pointer.
	(_dl_runtime_profile): Likewise.
This commit is contained in:
Ulrich Drepper 2007-08-24 02:03:29 +00:00
parent 0008163a30
commit 62e1b1f564
2 changed files with 14 additions and 8 deletions

View File

@ -1,3 +1,9 @@
2007-08-23 Ulrich Drepper <drepper@redhat.com>
* sysdeps/i386/dl-trampoline.S (_dl_runtime_resolve): Avoid
implicit atomic operation when storing function pointer.
(_dl_runtime_profile): Likewise.
2007-08-17 Jakub Jelinek <jakub@redhat.com>
* nis/nis_table.c (nis_list): Don't fail if __follow_path returned

View File

@ -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