Re: ftrace for MIPS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

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.

WBR, Sergei


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux