linux-mips
[Top] [All Lists]

Re: ftrace for MIPS

To: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Subject: Re: ftrace for MIPS
From: Wu Zhangjin <wuzhangjin@gmail.com>
Date: Wed, 21 Oct 2009 21:20:11 +0800
Cc: rostedt@goodmis.org, Thomas Gleixner <tglx@linutronix.de>, Nicholas Mc Guire <der.herr@hofr.at>, Ralf Baechle <ralf@linux-mips.org>, linux-mips@linux-mips.org, linux-kernel@vger.kernel.org
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:subject:from:reply-to:to:cc :in-reply-to:references:content-type:organization:date:message-id :mime-version:x-mailer:content-transfer-encoding; bh=Mr64Z5cIPhdJ0ndh94LOfiyklqM7jghBpL+gwskxlLM=; b=uYgjJWFLPbZ7x/AvAMoCMpXcdPvQOts2HEm33/vF7QsLiqOLtdDxyfLhiJdI9V1yrf RwcJa6sEws7B6rY60uqhjCdwSKWTH1I6rf07kj6JrIoUJGbJHx7FwHBj0GxmFqRxhidD bBVlJcExZeuJcZXxBZsVdCjAcYAWPwh0UbE+0=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=subject:from:reply-to:to:cc:in-reply-to:references:content-type :organization:date:message-id:mime-version:x-mailer :content-transfer-encoding; b=ckqE4p2CWyjMfZg0Vgj0qa8Vl92sNLy0wORmds6vM2aZ1rp3JRJRuNXlc97IybJOO3 EXOuwNKYjSWyiUYJBXw+z9WJsYjguO4La6yqtrrS1RaztHz3pmkfIyqw1oUnz8mVTJnP nlJrxhtaw5yLEZlvTvADM3k+ZEx62V423SknM=
In-reply-to: <4ADF093D.10403@ru.mvista.com>
Organization: DSLab, Lanzhou University, China
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <1255995599.17795.15.camel@falcon> <1255997319.18347.576.camel@gandalf.stny.rr.com> <1256052667.8149.56.camel@falcon> <1256055714.18347.1608.camel@gandalf.stny.rr.com> <4ADF093D.10403@ru.mvista.com>
Reply-to: wuzhangjin@gmail.com
Sender: linux-mips-bounce@linux-mips.org
On Wed, 2009-10-21 at 17:14 +0400, Sergei Shtylyov wrote:
> Hello.
> 
> Steven Rostedt wrote:
> 
> >>Need to check which registers is missing when saving/restoring for
> >>_mcount:
> 
> >>NESTED(ftrace_graph_caller, PT_SIZE, ra) 
> >>        MCOUNT_SAVE_REGS
> >>        PTR_S   v0, PT_R2(sp)
> >>
> >>        MCOUNT_SET_ARGS
> >>        jal     prepare_ftrace_return
> >>        nop
> >>
> >>        /* overwrite the parent as &return_to_handler: v0 -> $1(at) */
> >>        move    $1,     v0  
> 
> > I'm confused here? I'm not exactly sure what the above is doing. Is $1 a
> > register (AT)?
> 
>     Yes.

Have replaced it by AT, thanks!

> 
> > And how is this register used before calling mcount?
> 
> >>        PTR_L   v0, PT_R2(sp)
> >>        MCOUNT_RESTORE_REGS
> >>        RETURN_BACK
> >>        END(ftrace_graph_caller)
> 
> >>        .align  2
> >>        .globl  return_to_handler
> >>return_to_handler:
> >>        PTR_SUBU        sp, PT_SIZE
> >>        PTR_S   v0, PT_R2(sp)
> 
> > BTW, is v0 the only return register? I know x86 can return two different
> > registers depending on what it returns. What happens if a function
> > returns a 64 bit value on a 32bit box? Does it use two registers for
> > that?
> 
>     Yes, there's also v1 register.
> 

Thanks, added.

Regards,
        Wu Zhangjin


<Prev in Thread] Current Thread [Next in Thread>