mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-06 15:40:29 +02:00
* include/lightning.h, include/lightning/jit_private.h, lib/lightning.c: Implement the new jit_set_data() interface, and the new jit_get_data() helper. Like jit_set_code(), jit_realize() should be called before jit_set_data(). The most common usage should be jit_set_data(JIT_DISABLE_DATA | JIT_DISABLE_NOTE), to force synthesize any float/double constant in the stack and not generate any debug information. * lib/jit_note.c: Minor change to debug note generation as now it uses an alternate temporary data buffer during constants and debug generation to accommodate the possibility of the user setting an alternate data buffer. * lib/jit_hppa-fpu.c, lib/jit_s390x.c, lib/jit_s390x-cpu.c, lib/jit_s390x-fpu.c, lib/jit_sparc.c, lib/jit_sparc-fpu.c, lib/jit_x86-sse.c, lib/jit_x86-x87.c: Implement jit_set_data. * lib/jit_hppa-sz.c, lib/jit_sparc-sz.c, lib/jit_x86-sz.c, lib/jit_s390x-sz.c: Update for several instructions that now have a different maximum length due to jit_set_data. * lib/jit_mips-fpu.c: Implement jit_set_data, but missing validation on n32 and n64 abis (and/or big endian). * lib/jit_mips-sz.c: Update for changes in o32. * lib/jit_ppc-fpu.c: Implement jit_set_data, but missing validation on Darwin PPC. * lib/jit_ppc-sz.c: Update for changes in powerpc 32 and 64 bit. * lib/jit_ia64-fpu.c: Implement untested jit_set_data. * TODO: Add note to list ports that were not tested for the new jit_set_data() feature, due to no longer having access to them. * check/nodata.c: New file implementing a simple test exercising several different conditions created by jit_set_data(). * check/check.nodata.sh: New file implementing a wrapper over the existing *.tst files, that runs all tests without using a data buffer for constants; only meaningful (and enabled) on architectures that used to store float/double constants on a read only data buffer. * configure.ac, check/Makefile.am: Update for the new test cases. * check/lightning.c: Implement the new "-d" option that sets an internal flag to call jit_set_data() disable constants and debug, that is, using only a pure code buffer.
28 lines
891 B
Text
28 lines
891 B
Text
* Validate that divrem in jit_x86-cpu.c is not modifying
|
|
the non result arguments. This is not verified by clobber.tst,
|
|
as it only checks registers not involved in the operation
|
|
(because it does not know about values being set as input
|
|
for the the operation).
|
|
|
|
* Write a simple higher level language implementation generating
|
|
jit with lightning, that could be some lisp or C like language.
|
|
|
|
* rerun ./configure --enable-devel-get-jit-size and regenerate
|
|
the related jit_$arch-sz.c for the ports where nodata is
|
|
meaningful:
|
|
hppa (done)
|
|
i586 (done)
|
|
ia64
|
|
mips o32 (done)
|
|
mips n32
|
|
mips n64
|
|
powerpc 32 (done)
|
|
powerpc 64 (done)
|
|
ppc
|
|
s390x (done)
|
|
sparc (done)
|
|
x86_64 (done)
|
|
Missing ones are due to no longer (remote) access to such hosts
|
|
and may be broken with jit_set_data(..., JIT_DISABLE_DATA).
|
|
(ia64 hp-ux or linx), (irix mips for 32 or 64 abi), and
|
|
(darwin ppc).
|