diff options
Diffstat (limited to 'libc/sysdeps')
-rw-r--r-- | libc/sysdeps/linux/arm/sysdep.h | 13 | ||||
-rw-r--r-- | libc/sysdeps/linux/i386/sysdep.h | 15 | ||||
-rw-r--r-- | libc/sysdeps/linux/ia64/sysdep.h | 8 | ||||
-rw-r--r-- | libc/sysdeps/linux/sh/sysdep.h | 23 | ||||
-rw-r--r-- | libc/sysdeps/linux/x86_64/sysdep.h | 19 | ||||
-rw-r--r-- | libc/sysdeps/linux/xtensa/sysdep.h | 8 |
6 files changed, 8 insertions, 78 deletions
diff --git a/libc/sysdeps/linux/arm/sysdep.h b/libc/sysdeps/linux/arm/sysdep.h index 208521f1c..f8f2f8a4a 100644 --- a/libc/sysdeps/linux/arm/sysdep.h +++ b/libc/sysdeps/linux/arm/sysdep.h @@ -67,23 +67,12 @@ .globl C_SYMBOL_NAME(name); \ ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),function) \ .align ALIGNARG(4); \ - name##: \ - CALL_MCOUNT + name##: #undef END #define END(name) \ ASM_SIZE_DIRECTIVE(name) -/* If compiled for profiling, call `mcount' at the start of each function. */ -#ifdef PROF -#define CALL_MCOUNT \ - str lr,[sp, #-4]! ; \ - bl PLTJMP(mcount) ; \ - ldr lr, [sp], #4 ; -#else -#define CALL_MCOUNT /* Do nothing. */ -#endif - #ifdef NO_UNDERSCORES /* Since C identifiers are not normally prefixed with an underscore on this system, the asm identifier `syscall_error' intrudes on the diff --git a/libc/sysdeps/linux/i386/sysdep.h b/libc/sysdeps/linux/i386/sysdep.h index 4fa47fcf2..79e53a1c6 100644 --- a/libc/sysdeps/linux/i386/sysdep.h +++ b/libc/sysdeps/linux/i386/sysdep.h @@ -47,26 +47,13 @@ ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \ .align ALIGNARG(4); \ C_LABEL(name) \ - cfi_startproc; \ - CALL_MCOUNT + cfi_startproc; #undef END #define END(name) \ cfi_endproc; \ ASM_SIZE_DIRECTIVE(name) \ -/* If compiled for profiling, call `mcount' at the start of each function. */ -#ifdef PROF -/* The mcount code relies on a normal frame pointer being on the stack - to locate our caller, so push one just for its benefit. */ -#define CALL_MCOUNT \ - 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 -#define CALL_MCOUNT /* Do nothing. */ -#endif - #ifdef NO_UNDERSCORES /* Since C identifiers are not normally prefixed with an underscore on this system, the asm identifier `syscall_error' intrudes on the diff --git a/libc/sysdeps/linux/ia64/sysdep.h b/libc/sysdeps/linux/ia64/sysdep.h index 3e7e4674a..3662114f2 100644 --- a/libc/sysdeps/linux/ia64/sysdep.h +++ b/libc/sysdeps/linux/ia64/sysdep.h @@ -39,15 +39,12 @@ #define C_LABEL(name) name/**/: #endif -#define CALL_MCOUNT - #define ENTRY(name) \ .text; \ .align 32; \ .proc C_SYMBOL_NAME(name); \ .global C_SYMBOL_NAME(name); \ - C_LABEL(name) \ - CALL_MCOUNT + C_LABEL(name) #define HIDDEN_ENTRY(name) \ .text; \ @@ -55,8 +52,7 @@ .proc C_SYMBOL_NAME(name); \ .global C_SYMBOL_NAME(name); \ .hidden C_SYMBOL_NAME(name); \ - C_LABEL(name) \ - CALL_MCOUNT + C_LABEL(name) #define LEAF(name) \ .text; \ diff --git a/libc/sysdeps/linux/sh/sysdep.h b/libc/sysdeps/linux/sh/sysdep.h index 281c4158e..137dd1ddf 100644 --- a/libc/sysdeps/linux/sh/sysdep.h +++ b/libc/sysdeps/linux/sh/sysdep.h @@ -42,34 +42,13 @@ ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),function) \ .align ALIGNARG(5); \ C_LABEL(name) \ - cfi_startproc; \ - CALL_MCOUNT + cfi_startproc; #undef END #define END(name) \ cfi_endproc; \ ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(name)) -/* If compiled for profiling, call `mcount' at the start of each function. */ -#ifdef PROF -#define CALL_MCOUNT \ - mov.l 1f,r1; \ - sts.l pr,@-r15; \ - cfi_adjust_cfa_offset (4); \ - cfi_rel_offset (pr, 0); \ - mova 2f,r0; \ - jmp @r1; \ - lds r0,pr; \ - .align 2; \ -1: .long mcount; \ -2: lds.l @r15+,pr; \ - cfi_adjust_cfa_offset (-4); \ - cfi_restore (pr) - -#else -#define CALL_MCOUNT /* Do nothing. */ -#endif - #ifdef __UCLIBC_UNDERSCORES__ /* Since C identifiers are not normally prefixed with an underscore on this system, the asm identifier `syscall_error' intrudes on the diff --git a/libc/sysdeps/linux/x86_64/sysdep.h b/libc/sysdeps/linux/x86_64/sysdep.h index 0e5100122..a5971d7fa 100644 --- a/libc/sysdeps/linux/x86_64/sysdep.h +++ b/libc/sysdeps/linux/x86_64/sysdep.h @@ -42,30 +42,13 @@ ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \ .align ALIGNARG(4); \ C_LABEL(name) \ - cfi_startproc; \ - CALL_MCOUNT + cfi_startproc; #undef END #define END(name) \ cfi_endproc; \ ASM_SIZE_DIRECTIVE(name) -/* If compiled for profiling, call `mcount' at the start of each function. */ -#ifdef PROF -/* The mcount code relies on a normal frame pointer being on the stack - to locate our caller, so push one just for its benefit. */ -#define CALL_MCOUNT \ - pushq %rbp; \ - cfi_adjust_cfa_offset(8); \ - movq %rsp, %rbp; \ - cfi_def_cfa_register(%rbp); \ - call JUMPTARGET(mcount); \ - popq %rbp; \ - cfi_def_cfa(rsp,8); -#else -#define CALL_MCOUNT /* Do nothing. */ -#endif - #ifdef NO_UNDERSCORES /* Since C identifiers are not normally prefixed with an underscore on this system, the asm identifier `syscall_error' intrudes on the diff --git a/libc/sysdeps/linux/xtensa/sysdep.h b/libc/sysdeps/linux/xtensa/sysdep.h index 060b9b918..8d1bfcfdf 100644 --- a/libc/sysdeps/linux/xtensa/sysdep.h +++ b/libc/sysdeps/linux/xtensa/sysdep.h @@ -45,8 +45,7 @@ .align ALIGNARG(2); \ LITERAL_POSITION; \ C_LABEL(name) \ - abi_entry(sp, FRAMESIZE); \ - CALL_MCOUNT + abi_entry(sp, FRAMESIZE); #define HIDDEN_ENTRY(name) \ .globl C_SYMBOL_NAME(name); \ @@ -55,8 +54,7 @@ .align ALIGNARG(2); \ LITERAL_POSITION; \ C_LABEL(name) \ - abi_entry(sp, FRAMESIZE); \ - CALL_MCOUNT + abi_entry(sp, FRAMESIZE); #undef END #define END(name) ASM_SIZE_DIRECTIVE(name) @@ -92,8 +90,6 @@ #error Unsupported Xtensa ABI #endif #endif -#define CALL_MCOUNT /* Do nothing. */ - /* Linux uses a negative return value to indicate syscall errors, unlike most Unices, which use the condition codes' carry flag. |