summaryrefslogtreecommitdiff
path: root/sysdeps/x86_64
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2007-12-12 18:13:35 +0000
committerJakub Jelinek <jakub@redhat.com>2007-12-12 18:13:35 +0000
commit574e283890a6ca92325a06dafa76ff307a8019a2 (patch)
tree055e44e24a55fb4863e5d9cdc04e320cde52ffe9 /sysdeps/x86_64
parenta162e5955f7e324be82d9318bbcbe869c66ffb86 (diff)
Updated to fedora-glibc-20071212T1051
Diffstat (limited to 'sysdeps/x86_64')
-rw-r--r--sysdeps/x86_64/dl-trampoline.S54
-rw-r--r--sysdeps/x86_64/memset.S6
2 files changed, 32 insertions, 28 deletions
diff --git a/sysdeps/x86_64/dl-trampoline.S b/sysdeps/x86_64/dl-trampoline.S
index 84fe4724b1..3e2d182758 100644
--- a/sysdeps/x86_64/dl-trampoline.S
+++ b/sysdeps/x86_64/dl-trampoline.S
@@ -62,8 +62,8 @@ _dl_runtime_resolve:
.align 16
cfi_startproc
_dl_runtime_profile:
- subq $80, %rsp
- cfi_adjust_cfa_offset(96) # Incorporate PLT
+ subq $88, %rsp
+ cfi_adjust_cfa_offset(104) # Incorporate PLT
movq %rax, (%rsp) # Preserve registers otherwise clobbered.
movq %rdx, 8(%rsp)
movq %r8, 16(%rsp)
@@ -72,16 +72,16 @@ _dl_runtime_profile:
movq %rsi, 40(%rsp)
movq %rdi, 48(%rsp)
movq %rbp, 56(%rsp) # Information for auditors.
- leaq 96(%rsp), %rax
+ leaq 104(%rsp), %rax
movq %rax, 64(%rsp)
leaq 8(%rsp), %rcx
- movq 96(%rsp), %rdx # Load return address if needed
- movq 88(%rsp), %rsi # Copy args pushed by PLT in register.
+ movq 104(%rsp), %rdx # Load return address if needed
+ movq 96(%rsp), %rsi # Copy args pushed by PLT in register.
movq %rsi,%r11 # Multiply by 24
addq %r11,%rsi
addq %r11,%rsi
shlq $3, %rsi
- movq 80(%rsp), %rdi # %rdi: link_map, %rsi: reloc_offset
+ movq 88(%rsp), %rdi # %rdi: link_map, %rsi: reloc_offset
leaq 72(%rsp), %r8
call _dl_profile_fixup # Call resolver.
movq %rax, %r11 # Save return value
@@ -95,14 +95,15 @@ _dl_runtime_profile:
movq 32(%rsp), %rcx
movq 40(%rsp), %rsi
movq 48(%rsp), %rdi
- addq $96,%rsp # Adjust stack
- cfi_adjust_cfa_offset (-96)
+ addq $104,%rsp # Adjust stack
+ cfi_adjust_cfa_offset (-104)
jmp *%r11 # Jump to function address.
/*
- +96 return address
- +88 PLT2
- +80 PLT1
+ +104 return address
+ +96 PLT2
+ +88 PLT1
+ +80 free
+72 free
+64 %rsp
+56 %rbp
@@ -112,14 +113,14 @@ _dl_runtime_profile:
+24 %r9
+16 %r8
+8 %rdx
- %esp %rax
+ %rsp %rax
*/
- cfi_adjust_cfa_offset (96)
+ cfi_adjust_cfa_offset (104)
1: movq %rbx, 72(%rsp)
- cfi_rel_offset (1, 72)
- leaq 104(%rsp), %rsi
+ cfi_rel_offset (rbx, 72)
+ leaq 112(%rsp), %rsi
movq %rsp, %rbx
- cfi_def_cfa_register (1)
+ cfi_def_cfa_register (%rbx)
movq %r10, %rcx
addq $8, %r10
andq $0xfffffffffffffff0, %r10
@@ -133,7 +134,7 @@ _dl_runtime_profile:
movq 48(%rbx), %rdi
call *%r11
movq %rbx, %rsp
- cfi_def_cfa_register (7)
+ cfi_def_cfa_register (%rsp)
subq $72, %rsp
cfi_adjust_cfa_offset (72)
movq %rsp, %rcx
@@ -147,9 +148,10 @@ _dl_runtime_profile:
fstpt 48(%rcx)
fstpt 64(%rcx)
/*
- +168 return address
- +160 PLT2
- +152 PLT1
+ +176 return address
+ +168 PLT2
+ +160 PLT1
+ +152 free
+144 free
+136 %rsp
+128 %rbp
@@ -164,17 +166,17 @@ _dl_runtime_profile:
+32 %xmm1 result
+16 %xmm0 result
+8 %rdx result
- %esp %rax result
+ %rsp %rax result
*/
leaq 80(%rsp), %rdx
movq 144(%rsp), %rbx
- cfi_restore (1)
- movq 160(%rsp), %rsi # Copy args pushed by PLT in register.
+ cfi_restore (rbx)
+ movq 168(%rsp), %rsi # Copy args pushed by PLT in register.
movq %rsi,%r11 # Multiply by 24
addq %r11,%rsi
addq %r11,%rsi
shlq $3, %rsi
- movq 152(%rsp), %rdi # %rdi: link_map, %rsi: reloc_offset
+ movq 160(%rsp), %rdi # %rdi: link_map, %rsi: reloc_offset
call _dl_call_pltexit
movq (%rsp), %rax
movq 8(%rsp), %rdx
@@ -182,8 +184,8 @@ _dl_runtime_profile:
movups 32(%rsp), %xmm1
fldt 64(%rsp)
fldt 48(%rsp)
- addq $168, %rsp
- cfi_adjust_cfa_offset (-168)
+ addq $176, %rsp
+ cfi_adjust_cfa_offset (-176)
retq
cfi_endproc
.size _dl_runtime_profile, .-_dl_runtime_profile
diff --git a/sysdeps/x86_64/memset.S b/sysdeps/x86_64/memset.S
index db39b09c89..939240600d 100644
--- a/sysdeps/x86_64/memset.S
+++ b/sysdeps/x86_64/memset.S
@@ -30,11 +30,12 @@
.text
#ifndef NOT_IN_libc
-ENTRY(bzero)
+ENTRY(__bzero)
mov %rsi,%rdx /* Adjust parameter. */
xorl %esi,%esi /* Fill with 0s. */
jmp L(memset_entry)
-END(bzero)
+END(__bzero)
+weak_alias (__bzero, bzero)
#endif
#if defined PIC && !defined NOT_IN_libc
@@ -126,6 +127,7 @@ L(memset_entry):
add $0x40,%rcx
dec %rax
jne 11b
+ sfence
jmp 4b
END (memset)