[kaffe] powerpc stack frame info needed.
Riccardo Mottola
zuse at libero.it
Sun Jul 3 15:35:32 PDT 2005
Hey all,
since guilhem hacked on darwin/jit and made progress, I was stimulated
to have a look at porting it to linux and netbsd too.
I did this together with the "macro patches" I will write about in my
next mail and I have made some progress, but what gives me trouble is:
1. EXCEPTIONFRAME and exceptionFrame. Right now they exist only for
darwin and their definition sugests trouble:
/*
* Exception stack frame for Kaffe. The Apple calling conventions
store the
* interesting bits in the caller's stack frame so we only need to keep a
* pointer to it. This is in contrast to conventions like the x86
where the
* previous frame pointer and return pc are stored together in the callee's
* frame.
*
* sp - Pointer to the current stack frame.
*/
typedef struct _exceptionFrame {
ppc_stack_frame_t *sp;
} exceptionFrame;
2. netbsd doesn't like sigcontext. It is there for compatibility only.
It is better to use siginfo where possible and ucontext and other
machine-dependet stuff they provide also to end-user headers. A quick
glimpse shows that freebsd might be similar, I didn't found their
specific context implementation, but sigcontext is too "exported" by
some internal stuff.
thus what bothers me is 1. true for non-darwin os's too ? then it is
problematic to find the requested information (that currently is
extraced by some kernel internal register stuff from sigcontext) from
siginfo or something similar. (ctx is a siginfo...)
or maybe netbsd has a more standard stack frame like netbsd/sparc and
netbsd/x86 which have an identical EXCEPTIONFRAME but then have an
internal (different) struct to handle the data.
Ideas? suggestions? Information?
-Riccardo
More information about the kaffe
mailing list