File:
[DVB] /
dietlibc /
profiling /
PORTING
Revision
1.1:
download - view:
text,
annotated -
select for diffs
Tue Apr 2 16:04:06 2002 UTC (22 years, 2 months ago) by
fefe
Branches:
MAIN
CVS tags:
finnland_test_200301,
branch_rc14_fieldtest_finnland,
branch_rc13_fieldtest_finnland,
branch_rc12_fieldtest_finnland,
branch_rc10_fieldtest_finnland,
RELEASE_finnland_200301_1,
RC12_FIELDTEST_FINNLAND,
RC10_FIELDTEST_FINNLAND,
HEAD
profiling support (x86 only)!
Porting to other platforms
... is easy. Just create an mcount.S in the $ARCH
directory (eg. dietlibc/i386) which includes a
function (called "mcount") that:
1.) saves ALL registers that are freely usable
and which might be used by __mcount().
2.) loads the instruction pointer (PC) from the
function that called mcount, and the function
which called the function, that called mcount
into the first two argument registers (or push
them on the stack - depending on the processor-
architecture).
3.) call __mcount.
4.) restore the registers saved in 1)
Then You need a macro called PC in <asm/sigcontext.h>
which extracts the (instruction pointer / program
counter) from a sigcontext structure (eg. on i386 this
would be ctx.eip).
$ARCH/start.S must also be modified to call monitor
with the offset of .text and _etext as parameters.
LinuxTV legacy CVS <linuxtv.org/cvs>