aboutsummaryrefslogtreecommitdiff
path: root/sys/amd64/amd64/prof_machdep.c
diff options
context:
space:
mode:
authorBruce Evans <bde@FreeBSD.org>2002-07-13 22:28:34 +0000
committerBruce Evans <bde@FreeBSD.org>2002-07-13 22:28:34 +0000
commit3c9d896571642ba6a71c25adaa68d4e07e664365 (patch)
tree5f9c415297fbfd3a4696401e06fbf9cdf4332536 /sys/amd64/amd64/prof_machdep.c
parent5c5e3622e61dad561e76e4a647a5519795ca89bf (diff)
downloadsrc-3c9d896571642ba6a71c25adaa68d4e07e664365.tar.gz
src-3c9d896571642ba6a71c25adaa68d4e07e664365.zip
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).
Notes
Notes: svn path=/head/; revision=99932
Diffstat (limited to 'sys/amd64/amd64/prof_machdep.c')
-rw-r--r--sys/amd64/amd64/prof_machdep.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/amd64/amd64/prof_machdep.c b/sys/amd64/amd64/prof_machdep.c
index ab1a269436ca..65d35f832e47 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\