Date: Sun, 05 Feb 2006 15:44:21 +0100 From: Andreas Tobler <toa@pop.agri.ch> To: Marius Strobl <marius@alchemy.franken.de> Cc: freebsd-sparc64@freebsd.org Subject: Re: profiling with cc Message-ID: <43E60F45.4070004@pop.agri.ch> In-Reply-To: <20060205132234.P68720@newtrinity.zeist.de> References: <43E3D228.6060801@pop.agri.ch> <20060205112432.A3868@newtrinity.zeist.de> <43E5D988.2070009@pop.agri.ch> <20060205122153.O68720@newtrinity.zeist.de> <43E5E70D.1090209@pop.agri.ch> <20060205132234.P68720@newtrinity.zeist.de>
next in thread | previous in thread | raw e-mail | index | archive | help
Marius Strobl wrote: > On Sun, Feb 05, 2006 at 12:52:45PM +0100, Andreas Tobler wrote: >> Marius Strobl wrote: >> >>> I think all it takes is the MD _mcount() -> mcount() wrapper but I'm >>> not sure what it's actually supposed to do. >> Ok, thank you for the pointer. I try to read through the code and see if >> I can get something out of it. >> >> Build question, if I play around in this section, does it mean to >> rebuild the whole kernel/world everytime, or is it enough to just >> compile and install the modified parts ? >> > > AFAICT the wrapper has to go into the userland version of the MCOUNT > macro in <machine/profile.h> and you'll have to re-compile and re- > install libc, specifically libc_p.a, in order to test it. Good. To my understanding, the wrapper should look similar like in sys/amd64/include/profile.h? #else /* !_KERNEL */ #define _MCOUNT_DECL \ static void _mcount(uintfptr_t frompc, uintfptr_t selfpc) __used; \ static void _mcount #ifdef __GNUCLIKE_ASM #define MCOUNT \ __asm(".global " _mcount);\ __asm(_mcount ":");\ __asm("add %o7, 8, %o1");\ __asm("1: call 2f; nop; 2:");\ __asm("add %o7," __mcount "-1b, %o2");\ __asm("ld [%o2], %o2");\ __asm("jmpl %o2, %g0");\ __asm("add %i7, 8, %o0"); #else /* !__GNUCLIKE_ASM */ #define MCOUNT \ void \ mcount() \ { \ } #endif /* __GNUCLIKE_ASM */ Or am I looking to far? The above asm code comes from NetBSD... Thanks, Andreas
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?43E60F45.4070004>