Re: ftrace for MIPS
From: Sergei Shtylyov
Date: Wed Oct 21 2009 - 09:14:26 EST
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/