diff options
author | bde <bde@FreeBSD.org> | 2002-07-13 22:28:34 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 2002-07-13 22:28:34 +0000 |
commit | 61e58ad58c5e1a0abd7f2fb47bd3446e120a38ae (patch) | |
tree | 5f9c415297fbfd3a4696401e06fbf9cdf4332536 /sys/amd64 | |
parent | de5af3fe19c0dff0cfb3c6e68d0520e4d5a1d226 (diff) | |
download | FreeBSD-src-61e58ad58c5e1a0abd7f2fb47bd3446e120a38ae.zip FreeBSD-src-61e58ad58c5e1a0abd7f2fb47bd3446e120a38ae.tar.gz |
Quick fix for high resolution kernel profiling on i386's. Use
-finstrument-functions instead of -mprofiler-epilogue. The former
works essentially the same as the latter but has a higher overhead
(about 22 more bytes per function for passing unused args to the
profiling functions).
Removed all traces of the IDENT Makefile variable, which had been
reduced to just a place for holding profiling's contribution to CFLAGS
(the IDENT that gives the kernel identity was renamed to KERN_IDENT).
Diffstat (limited to 'sys/amd64')
-rw-r--r-- | sys/amd64/amd64/prof_machdep.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/amd64/amd64/prof_machdep.c b/sys/amd64/amd64/prof_machdep.c index ab1a269..65d35f8 100644 --- a/sys/amd64/amd64/prof_machdep.c +++ b/sys/amd64/amd64/prof_machdep.c @@ -94,6 +94,8 @@ __mcount: \n\ .p2align 4,0x90 \n\ .globl " __XSTRING(HIDENAME(mcount)) " \n\ " __XSTRING(HIDENAME(mcount)) ": \n\ + .globl __cyg_profile_func_enter \n\ +__cyg_profile_func_enter: \n\ cmpl $GMON_PROF_OFF," __XSTRING(CNAME(_gmonparam)) "+GM_STATE \n\ je .mcount_exit \n\ # \n\ @@ -147,6 +149,8 @@ GMON_PROF_HIRES = 4 \n\ .p2align 4,0x90 \n\ .globl " __XSTRING(HIDENAME(mexitcount)) " \n\ " __XSTRING(HIDENAME(mexitcount)) ": \n\ + .globl __cyg_profile_func_exit \n\ +__cyg_profile_func_exit: \n\ cmpl $GMON_PROF_HIRES," __XSTRING(CNAME(_gmonparam)) "+GM_STATE \n\ jne .mexitcount_exit \n\ pushl %edx \n\ |