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


_______________________________________________
kaffe mailing list
[email protected]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe

Reply via email to