mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-06 04:00:26 +02:00
* include/lightning/jit_ia64.h, include/lightning/jit_private.h, lib/jit_ia64-cpu.c, lib/jit_ia64-fpu.c, lib/jit_ia64.c, lib/lightning.c: Rework code to detect need of a "stop" to also handle predicates, as if a predicate is written, it cannot be read in the same instruction group. Use a single jit_regset_t variable for all registers when checking need for a stop (increment value by 128 for float registers). Correct wrong "subi" implementation, as the code executed is r0=im-r1, not r0=r1-im. Use standard lightning 6 fpr registers, and rework to use callee save float registers, that may be spill/reloaded in prolog/epilog. This is required because some jit instructions implementations need to call functions; currently integer div/mod and float sqrt, what may change the value of scratch float registers. Rework point of "sync" of branches that need to return a patch'able address, because the need for a "stop" before a predicate read causes all branches to be the instruction in slot 0, as there is no template to "stop" and branch in the same instruction "bundle". |
||
---|---|---|
.. | ||
jit_arm-cpu.c | ||
jit_arm-swf.c | ||
jit_arm-vfp.c | ||
jit_arm.c | ||
jit_disasm.c | ||
jit_ia64-cpu.c | ||
jit_ia64-fpu.c | ||
jit_ia64.c | ||
jit_memory.c | ||
jit_mips-cpu.c | ||
jit_mips-fpu.c | ||
jit_mips.c | ||
jit_note.c | ||
jit_ppc-cpu.c | ||
jit_ppc-fpu.c | ||
jit_ppc.c | ||
jit_print.c | ||
jit_sparc-cpu.c | ||
jit_sparc-fpu.c | ||
jit_sparc.c | ||
jit_x86-cpu.c | ||
jit_x86-sse.c | ||
jit_x86-x87.c | ||
jit_x86.c | ||
lightning.c | ||
Makefile.am |