Messages in this thread | | | Date | Tue, 24 Mar 2009 14:40:04 -0700 | From | Tim Bird <> | Subject | Re: Anyone working on ftrace function graph support on ARM? |
| |
Frederic Weisbecker wrote: > Yes, ie: > > _Before jumping to the function entry hook, you must save > the arguments for the traced function on the stack. > On x86, its eax, edx and ecx. > On arm, it will be r0-r3. > Then you have to transmit the address of the traced function > (it's on r14) and it's parent (must rely on fp for that). > Then you call the entry hook and restore the old scratch/arg > registers. > > > _ On return hook it's pretty the same, (saving the scratch > registers, especially the return value which should be on r0 > and r1 if I'm not wrong). > But you'll have to get the original return address from the > return handler and then put it on pc. > > Well it's a very naive listing, there are sometimes some problems. > For example on x86-64, I had to save even some non-scratch registers > before calling the return hook, I still don't know why.
Thanks - this is very helpful. I'll send patches around when I get something going. Hopefully in the next week or two. -- Tim
============================= Tim Bird Architecture Group Chair, CE Linux Forum Senior Staff Engineer, Sony Corporation of America =============================
| |