mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
* sysdeps/i386/sysdep.h: Add cfi instrumentation to asm fragments.
* sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/i386/socket.S: Remove now duplicate cfi_startproc and cfi_endproc.
This commit is contained in:
@ -1,5 +1,10 @@
|
|||||||
2005-04-28 Ulrich Drepper <drepper@redhat.com>
|
2005-04-28 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* sysdeps/i386/sysdep.h: Add cfi instrumentation to asm fragments.
|
||||||
|
* sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/i386/socket.S: Remove now duplicate
|
||||||
|
cfi_startproc and cfi_endproc.
|
||||||
|
|
||||||
* configure.in: Remove ultrasparc names.
|
* configure.in: Remove ultrasparc names.
|
||||||
|
|
||||||
* sysdeps/i386/i686/memcmp.S: Move misplaced END.
|
* sysdeps/i386/i686/memcmp.S: Move misplaced END.
|
||||||
|
4
configure
vendored
4
configure
vendored
@ -1976,9 +1976,9 @@ sparcv8plus | sparcv8plusa | sparcv9)
|
|||||||
base_machine=sparc machine=sparc/sparc32/sparcv9 ;;
|
base_machine=sparc machine=sparc/sparc32/sparcv9 ;;
|
||||||
sparcv8plusb | sparcv9b)
|
sparcv8plusb | sparcv9b)
|
||||||
base_machine=sparc machine=sparc/sparc32/sparcv9b ;;
|
base_machine=sparc machine=sparc/sparc32/sparcv9b ;;
|
||||||
sparc64 | ultrasparc)
|
sparc64)
|
||||||
base_machine=sparc machine=sparc/sparc64 ;;
|
base_machine=sparc machine=sparc/sparc64 ;;
|
||||||
sparc64b | ultrasparc3)
|
sparc64b)
|
||||||
base_machine=sparc machine=sparc/sparc64/sparcv9b ;;
|
base_machine=sparc machine=sparc/sparc64/sparcv9b ;;
|
||||||
thumb*) base_machine=thumb machine=arm/thumb/$machine ;;
|
thumb*) base_machine=thumb machine=arm/thumb/$machine ;;
|
||||||
*) base_machine=$machine ;;
|
*) base_machine=$machine ;;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Assembler macros for i386.
|
/* Assembler macros for i386.
|
||||||
Copyright (C) 1991,92,93,95,96,98,2002,2003 Free Software Foundation, Inc.
|
Copyright (C) 1991-93,95,96,98,2002,2003,2005 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -57,10 +57,12 @@
|
|||||||
.align ALIGNARG(4); \
|
.align ALIGNARG(4); \
|
||||||
STABS_FUN(name) \
|
STABS_FUN(name) \
|
||||||
C_LABEL(name) \
|
C_LABEL(name) \
|
||||||
|
cfi_startproc; \
|
||||||
CALL_MCOUNT
|
CALL_MCOUNT
|
||||||
|
|
||||||
#undef END
|
#undef END
|
||||||
#define END(name) \
|
#define END(name) \
|
||||||
|
cfi_endproc; \
|
||||||
ASM_SIZE_DIRECTIVE(name) \
|
ASM_SIZE_DIRECTIVE(name) \
|
||||||
STABS_FUN_END(name)
|
STABS_FUN_END(name)
|
||||||
|
|
||||||
@ -92,7 +94,9 @@
|
|||||||
/* The mcount code relies on a normal frame pointer being on the stack
|
/* The mcount code relies on a normal frame pointer being on the stack
|
||||||
to locate our caller, so push one just for its benefit. */
|
to locate our caller, so push one just for its benefit. */
|
||||||
#define CALL_MCOUNT \
|
#define CALL_MCOUNT \
|
||||||
pushl %ebp; movl %esp, %ebp; call JUMPTARGET(mcount); popl %ebp;
|
pushl %ebp; cfi_adjust_cfa_offset (4); \ movl %esp, %ebp; \
|
||||||
|
cfi_def_cfa_register (ebp); call JUMPTARGET(mcount); \
|
||||||
|
popl %ebp; cfi_def_cfa (esp, 4);
|
||||||
#else
|
#else
|
||||||
#define CALL_MCOUNT /* Do nothing. */
|
#define CALL_MCOUNT /* Do nothing. */
|
||||||
#endif
|
#endif
|
||||||
@ -122,8 +126,10 @@ lose: SYSCALL_PIC_SETUP \
|
|||||||
#define JUMPTARGET(name) name##@PLT
|
#define JUMPTARGET(name) name##@PLT
|
||||||
#define SYSCALL_PIC_SETUP \
|
#define SYSCALL_PIC_SETUP \
|
||||||
pushl %ebx; \
|
pushl %ebx; \
|
||||||
|
cfi_adjust_cfa_offset (4); \
|
||||||
call 0f; \
|
call 0f; \
|
||||||
0: popl %ebx; \
|
0: popl %ebx; \
|
||||||
|
cfi_adjust_cfa_offset (-4); \
|
||||||
addl $_GLOBAL_OFFSET_TABLE+[.-0b], %ebx;
|
addl $_GLOBAL_OFFSET_TABLE+[.-0b], %ebx;
|
||||||
#else
|
#else
|
||||||
#define JUMPTARGET(name) name
|
#define JUMPTARGET(name) name
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1995,1996,1997,1998,2002,2003 Free Software Foundation, Inc.
|
/* Copyright (C) 1995-1998,2002,2003,2005 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -41,7 +41,6 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
.globl __socket
|
.globl __socket
|
||||||
cfi_startproc
|
|
||||||
ENTRY (__socket)
|
ENTRY (__socket)
|
||||||
#if defined NEED_CANCELLATION && defined CENABLE
|
#if defined NEED_CANCELLATION && defined CENABLE
|
||||||
SINGLE_THREAD_P
|
SINGLE_THREAD_P
|
||||||
@ -118,7 +117,6 @@ L(pseudo_end):
|
|||||||
/* Successful; return the syscall's value. */
|
/* Successful; return the syscall's value. */
|
||||||
ret
|
ret
|
||||||
#endif
|
#endif
|
||||||
cfi_endproc
|
|
||||||
PSEUDO_END (__socket)
|
PSEUDO_END (__socket)
|
||||||
|
|
||||||
#ifndef NO_WEAK_ALIAS
|
#ifndef NO_WEAK_ALIAS
|
||||||
|
@ -168,16 +168,22 @@ __i686.get_pc_thunk.reg: \
|
|||||||
# else
|
# else
|
||||||
# define SYSCALL_ERROR_HANDLER \
|
# define SYSCALL_ERROR_HANDLER \
|
||||||
0:pushl %ebx; \
|
0:pushl %ebx; \
|
||||||
|
cfi_adjust_cfa_offset (4); \
|
||||||
|
cfi_rel_offset (ebx, 0); \
|
||||||
SETUP_PIC_REG (bx); \
|
SETUP_PIC_REG (bx); \
|
||||||
addl $_GLOBAL_OFFSET_TABLE_, %ebx; \
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx; \
|
||||||
xorl %edx, %edx; \
|
xorl %edx, %edx; \
|
||||||
subl %eax, %edx; \
|
subl %eax, %edx; \
|
||||||
pushl %edx; \
|
pushl %edx; \
|
||||||
|
cfi_adjust_cfa_offset (4); \
|
||||||
PUSH_ERRNO_LOCATION_RETURN; \
|
PUSH_ERRNO_LOCATION_RETURN; \
|
||||||
call BP_SYM (__errno_location)@PLT; \
|
call BP_SYM (__errno_location)@PLT; \
|
||||||
POP_ERRNO_LOCATION_RETURN; \
|
POP_ERRNO_LOCATION_RETURN; \
|
||||||
popl %ecx; \
|
popl %ecx; \
|
||||||
|
cfi_adjust_cfa_offset (-4); \
|
||||||
popl %ebx; \
|
popl %ebx; \
|
||||||
|
cfi_adjust_cfa_offset (-4); \
|
||||||
|
cfi_restore (ebx); \
|
||||||
movl %ecx, (%eax); \
|
movl %ecx, (%eax); \
|
||||||
orl $-1, %eax; \
|
orl $-1, %eax; \
|
||||||
jmp L(pseudo_end);
|
jmp L(pseudo_end);
|
||||||
@ -273,9 +279,11 @@ __i686.get_pc_thunk.reg: \
|
|||||||
#define PUSHARGS_1 movl %ebx, %edx; L(SAVEBX1): PUSHARGS_0
|
#define PUSHARGS_1 movl %ebx, %edx; L(SAVEBX1): PUSHARGS_0
|
||||||
#define DOARGS_1 _DOARGS_1 (4)
|
#define DOARGS_1 _DOARGS_1 (4)
|
||||||
#define POPARGS_1 POPARGS_0; movl %edx, %ebx; L(RESTBX1):
|
#define POPARGS_1 POPARGS_0; movl %edx, %ebx; L(RESTBX1):
|
||||||
#define _PUSHARGS_1 pushl %ebx; L(PUSHBX1): _PUSHARGS_0
|
#define _PUSHARGS_1 pushl %ebx; cfi_adjust_cfa_offset (4); \
|
||||||
|
cfi_rel_offset (ebx, 0); L(PUSHBX1): _PUSHARGS_0
|
||||||
#define _DOARGS_1(n) movl n(%esp), %ebx; _DOARGS_0(n-4)
|
#define _DOARGS_1(n) movl n(%esp), %ebx; _DOARGS_0(n-4)
|
||||||
#define _POPARGS_1 _POPARGS_0; popl %ebx; L(POPBX1):
|
#define _POPARGS_1 _POPARGS_0; popl %ebx; cfi_adjust_cfa_offset (-4); \
|
||||||
|
cfi_restore (ebx); L(POPBX1):
|
||||||
|
|
||||||
#define PUSHARGS_2 PUSHARGS_1
|
#define PUSHARGS_2 PUSHARGS_1
|
||||||
#define DOARGS_2 _DOARGS_2 (8)
|
#define DOARGS_2 _DOARGS_2 (8)
|
||||||
@ -294,23 +302,29 @@ __i686.get_pc_thunk.reg: \
|
|||||||
#define PUSHARGS_4 _PUSHARGS_4
|
#define PUSHARGS_4 _PUSHARGS_4
|
||||||
#define DOARGS_4 _DOARGS_4 (24)
|
#define DOARGS_4 _DOARGS_4 (24)
|
||||||
#define POPARGS_4 _POPARGS_4
|
#define POPARGS_4 _POPARGS_4
|
||||||
#define _PUSHARGS_4 pushl %esi; L(PUSHSI1): _PUSHARGS_3
|
#define _PUSHARGS_4 pushl %esi; cfi_adjust_cfa_offset (4); \
|
||||||
|
cfi_rel_offset (esi, 0); L(PUSHSI1): _PUSHARGS_3
|
||||||
#define _DOARGS_4(n) movl n(%esp), %esi; _DOARGS_3 (n-4)
|
#define _DOARGS_4(n) movl n(%esp), %esi; _DOARGS_3 (n-4)
|
||||||
#define _POPARGS_4 _POPARGS_3; popl %esi; L(POPSI1):
|
#define _POPARGS_4 _POPARGS_3; popl %esi; cfi_adjust_cfa_offset (-4); \
|
||||||
|
cfi_restore (esi); L(POPSI1):
|
||||||
|
|
||||||
#define PUSHARGS_5 _PUSHARGS_5
|
#define PUSHARGS_5 _PUSHARGS_5
|
||||||
#define DOARGS_5 _DOARGS_5 (32)
|
#define DOARGS_5 _DOARGS_5 (32)
|
||||||
#define POPARGS_5 _POPARGS_5
|
#define POPARGS_5 _POPARGS_5
|
||||||
#define _PUSHARGS_5 pushl %edi; L(PUSHDI1): _PUSHARGS_4
|
#define _PUSHARGS_5 pushl %edi; cfi_adjust_cfa_offset (4); \
|
||||||
|
cfi_rel_offset (edi, 0); L(PUSHDI1): _PUSHARGS_4
|
||||||
#define _DOARGS_5(n) movl n(%esp), %edi; _DOARGS_4 (n-4)
|
#define _DOARGS_5(n) movl n(%esp), %edi; _DOARGS_4 (n-4)
|
||||||
#define _POPARGS_5 _POPARGS_4; popl %edi; L(POPDI1):
|
#define _POPARGS_5 _POPARGS_4; popl %edi; cfi_adjust_cfa_offset (-4); \
|
||||||
|
cfi_restore (edi); L(POPDI1):
|
||||||
|
|
||||||
#define PUSHARGS_6 _PUSHARGS_6
|
#define PUSHARGS_6 _PUSHARGS_6
|
||||||
#define DOARGS_6 _DOARGS_6 (36)
|
#define DOARGS_6 _DOARGS_6 (36)
|
||||||
#define POPARGS_6 _POPARGS_6
|
#define POPARGS_6 _POPARGS_6
|
||||||
#define _PUSHARGS_6 pushl %ebp; L(PUSHBP1): _PUSHARGS_5
|
#define _PUSHARGS_6 pushl %ebp; cfi_adjust_cfa_offset (4); \
|
||||||
|
cfi_rel_offset (ebp, 0); L(PUSHBP1): _PUSHARGS_5
|
||||||
#define _DOARGS_6(n) movl n(%esp), %ebp; _DOARGS_5 (n-4)
|
#define _DOARGS_6(n) movl n(%esp), %ebp; _DOARGS_5 (n-4)
|
||||||
#define _POPARGS_6 _POPARGS_5; popl %ebp; L(POPBP1):
|
#define _POPARGS_6 _POPARGS_5; popl %ebp; cfi_adjust_cfa_offset (-4); \
|
||||||
|
cfi_restore (ebp); L(POPBP1):
|
||||||
|
|
||||||
#else /* !__ASSEMBLER__ */
|
#else /* !__ASSEMBLER__ */
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user