Joshua Gatcomb <[EMAIL PROTECTED]> wrote: > 2. Almost everything but the most trivial JITed code > was coredumping.
That's then caused by turning USE_CGP on. Strange. Cygwin gcc must produce different code then somehow, which breaks things. If you are using gcc 3.0 or above, -mno-accumulate-outgoing-args must be set. > I can also produce some JIT debugging if someone > thinks that will help: That would be great. ddd is running? docs/jit.pod has some hints for debugging, as well as docs/debug.pod. The gory details of JIT_CGP start after: # ifdef JIT_CGP ... void Parrot_jit_begin(Parrot_jit_info_t *jit_info, So if you can step into (si) that part and step on, you should see, where it's breaking. The basic scheme (which is documented at that place too) is: JIT code calls first into core_cgp() to get the C register frame allocated, and jumps back. Then it executes JITted code, or for non-JITted functions, it jumps into the CGP core via the %esi register. Quite simple ;) > Cheers > Joshua Gatcomb leo