I did check in a fix (or part of it) for restarting JIT.
- changed restartable OPs to have jump flag set
- test PC (eax) if zero, stop JIT

This makes all test succeed on i386/linux under JIT too.

Other architectures could follow the scheme of the i386 code, which shouldn't be too hard. Currently they will probably segfault, as these OPs are now marked as doing jumps.

For actually making JIT restartable at any PC, I have some ideas too:
- after the initial code (Parrot_jit_begin) place a long jump, initially pointing to the first instruction
- when PC != code_start, patch this jump to point to the actual location

leo

Reply via email to