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
- Re: [CVS ci] JIT t/op/interp_2 - i386 Leopold Toetsch
- Re: [CVS ci] JIT t/op/interp_2 - i386 Leopold Toetsch
- Re: [CVS ci] JIT t/op/interp_2 - i386 Jason Gloudon
- Re: [CVS ci] JIT t/op/interp_2 - i386 Leopold Toetsch