lkml.org 
[lkml]   [2009]   [Oct]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: ftrace for MIPS
    From
    Date
    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



    \
     
     \ /
      Last update: 2009-10-21 15:27    [W:4.234 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site