lkml.org 
[lkml]   [2008]   [May]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 2/2] ftrace: support for PowerPC
On Wed, May 14, 2008 at 10:28:57PM -0700, David Miller wrote:
> From: Steven Rostedt <rostedt@goodmis.org>
> Date: Wed, 14 May 2008 23:49:44 -0400
>
> > +#ifdef CONFIG_FTRACE
> > +#ifdef CONFIG_DYNAMIC_FTRACE
> > +_GLOBAL(mcount)
> > +_GLOBAL(_mcount)
> > + stwu r1,-48(r1)
> > + stw r3, 12(r1)
> > + stw r4, 16(r1)
> > + stw r5, 20(r1)
> > + stw r6, 24(r1)
> > + mflr r3
> > + stw r7, 28(r1)
> > + mfcr r5
> > + stw r8, 32(r1)
> > + stw r9, 36(r1)
> > + stw r10,40(r1)
> > + stw r3, 44(r1)
> > + stw r5, 8(r1)
>
> Yikes, that's really expensive.
>
> Can't you do a tail call and let the function you end
> up calling do all the callee-saved register pops onto
> the stack?

The PPC32 ABI seems to (unfortunately) suggest that, with mcount, all
registers are callee-saved (except for the modifiable-during-function-linkage
registers like r0, r11, and r12) -- so mcount has to save the registers that
the callee won't (because they're normally volatile).

-Scott


\
 
 \ /
  Last update: 2008-05-15 18:53    [W:0.535 / U:0.028 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site