Messages in this thread |  | | | Date | Wed, 21 Oct 2009 17:14:37 +0400 | | From | Sergei Shtylyov <> | | Subject | Re: ftrace for MIPS |
| |
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
|  |