No, that's not what I'm proposing at all (and would indeed be bogus.)
What I'm proposing is:
> [ .... fastpath head ...... ]
> [ .... 5-byte CALL .......... ] ---> NOP-ed out
> [ .... fastpath tail .......... ]
> [ ............................. ]
The call site is created with an asm() statement as opposed to a gcc
function call; it is up to the logging function to take the state and
mangle it into whatever format it wants to; the debugging information
(e.g. DWARF) should tell it all it needs to know about how the
register/memory state maps onto the C state. This mapping can either be
done online, with a small piece of dynamic code, or offline (although
offline makes it tricky to know what memory tems to gather.)
For pieces of data which would be dead at the call site, one can add "g"
annotations to the asm() statement to force it to be live without
forcing it to be present in any particular location.
-hpa
--