lightning.git - Portable just-in-time compiler library

index : lightning.git
Portable just-in-time compiler library
summary refs log tree commit diff
path: root/lib/jit_disasm.c
AgeCommit message (Collapse)AuthorFilesLines
2024年10月23日Add support for Hitachi SH processors Paul Cercueil1-0/+6
Add support for the SH2, SH3 and SH4 processors from Hitachi. All tests pass except for ccall which is affected by a GCC bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115948 Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2023年11月09日Add debug stream parameter to init_jit() Paul Cercueil1-3/+3
Allow specifying where Lightning's messages and disassembly will be printed, instead of inconditionally using the error output. Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2023年02月17日Update copyright year pcpa1-1/+1
2022年12月20日lib/jit_disasm.c: fix build Fabrice Fontaine1-1/+1
Fix the following build failure raised since http://git.savannah.gnu.org/cgit/lightning.git/commit/?id=837c7a1e8d08fb9294578dc84694077f4d6106f9: jit_disasm.c: In function 'fprintf_styled': jit_disasm.c:57:27: error: parameter name omitted 57 | static int fprintf_styled(void *, enum disassembler_style, const char* fmt, ...) | ^~~~~~ jit_disasm.c:57:35: error: parameter name omitted 57 | static int fprintf_styled(void *, enum disassembler_style, const char* fmt, ...) | ^~~~~~~~~~~~~~~~~~~~~~~ Fixes: - http://autobuild.buildroot.org/results/e15e01e98e0d8c873efd3f512b671d98e4daf6c0 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2022年11月17日Correct some string format warnings pcpa1-2/+2
2022年10月06日Update Copyright year. pcpa1-1/+1
Intermediate preparation for a new release in the near future.
2022年09月30日Implement a constant pool at end of code for riscv 64 bits. pcpa1-1/+19
* include/lightning/jit_private.h: Implement new data structures specific to riscv. * lib/jit_disasm.c: Extra disassemble code for riscv constant pool. * lib/jit_riscv-cpu.c: Modify movi to use constant pool if 3 or more instructions are required to construct constant and modify movi_p to use a pc relative load from a constant pool. lib/jit_riscv-sz.c: Update for new constant pool code. Most instructions that need 64 bit constants are significantly reduced. * lib/jit_riscv.c: Implement most of the constant pool code. * lib/jit_size.c: Update for estimate of code generation size. * lib/lightning.c: Update for riscv specific code, and also make sure to mprotect the constant pool as executable.
2022年09月16日Correct issues with disassembler and binutils detection. pcpa1-2/+2
* First time configure is run lightning.h did not yet have been generated. No need to include lightning.h to check binutils version. * The extra fprintf_styled was printing to stdout, while default disassemble descriptor is stderr, and could also be modified to some file. * With devel-disassembler configure option, output could be incorrect due to a putc to stdout, instead of disasm_stream that defaults to stderr.
2022年09月10日jit_disasm: Add support for new binutils 2.38 Paul Cercueil1-0/+19
The INIT_DISASSEMBLE_INFO() macro changed starting from binutils 2.38. Update the configure script to auto-detect the binutils version and use the right format. Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2022年09月10日jit_disasm: Simplify jit_init_debug() Paul Cercueil1-50/+8
Use bfd_get_arch() / bfd_get_mach() to initialize the disasm_info structure, and get rid of things that aren't relevant anymore, like disassemble_init_powerpc(). Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2022年05月13日Fix segfault due to print_stream not initialized pcpa1-0/+1
This was a logic error added for a long time. When attempting to see debug output, it would be required debug level 3 to not segfault when running check/lightning. Now the issue is corrected.
2021年05月17日Default to use stderr for debug output pcpa1-1/+3
2019年09月17日Update copyright year pcpa1-1/+1
2019年06月04日Implement a Linux 64 bit riscv port Paulo Andrade1-0/+8
* include/lightning/jit_riscv.h, lib/jit_riscv-cpu.c, lib/jit_riscv-fpu.c, lib/jit_riscv-sz.c, lib/jit_riscv.c: Implement riscv port. Only 64 bit Linux supported. Built on Fedora 28 image. * check/all.tst, check/float.tst, configure.ac, include/lightning.h, include/lightning/Makefile.am, include/lightning/jit_private.h, lib/Makefile.am, lib/jit_disasm.c, lib/jit_size.c, lib/lightning.c: Minor updates for the new riscv port.
2018年12月28日Free resources allocated by jit_init_debug Paulo Andrade1-0/+2
2018年08月30日Build and pass check with one exception. Paulo Andrade1-0/+4
The exception appears to be a bug in a 6ish months old qemu-hppa. It fails to detect a signed overflow for the pattern 0x7fffffff+1, and fails in this jit pseudo code: movi r0 0x7fffffff movi r1 1 boaddr L1 r0 r1 calli abort L1: The generated assembly should be correct: movi r4 0x7fffffff 0xf8ef5018 ldil L%7ffff800,r4 0xf8ef501c ldo 7ff(r4),r4 movi r5 0x1 0xf8ef5020 ldi 1,r5 boaddr L1 r4 r5 0xf8ef5024 addb,sv,n r5,r4,0xf8ef5044 :a.tst:291 0xf8ef5028 nop calli 0xf8eeb68a [...] L1: * lib/jit_disasm.c: Add hints to select hppa disassembler. * lib/jit_hppa-cpu.c: Correct address of vastart when all argument registers were used as non vararg arguments. * lib/jit_hppa-fpu.c: Disable load/store of rv,ix,rb where rv is the value, ix is an register or integer offset and rb is a base register. These should be better tested, as they do not work on all environments (fail on qemu-hppa).
2017年09月14日Update copyright year pcpa1-1/+1
2017年09月13日Adapt for binutils 2.29 pcpa1-2/+8
* configure.ac: Add check for binutils 2.29 prototype to the disassembler function. * lib/jit_disasm.c: Adapt for binutils 2.29 change.
2015年06月04日Implement new synthesized IR codes sequences pcpa1-2/+7
* lib/jit_rewind.c: New file implementing generic functions to "rewind", or rewrite IR code sequences. * include/lightning.h: Add several new codes, that previously were a function call, that would synthesize the operation. Now, there is a code for the operation, and a new flag to know an operation is synthesized. * include/lightning/jit_private.h: Add several new macros to help construct synthesized IR code sequences. * lib/Makefile.am: Update for lib/jit_rewind.c. * lib/jit_disasm.c: Update for a small rework on jit_node_t, so that --enable-devel-disassembler does not need a change in the layout of jit_node_t. * lib/jit_names.c: Update for the new codes. * lib/jit_print.c: Update to print more readable output, and flag synthesized IR code sequences. * lib/jit_aarch64-sz.c, lib/jit_aarch64.c, lib/jit_arm-sz.c, lib/jit_arm.c, lib/jit_x86-sz.c, lib/jit_x86.c: Update for new synthesized IR code sequences. * lib/jit_ppc-cpu.c, lib/jit_ppc-fpu., lib/jit_ppc-sz.c, lib/jit_ppc.c, lib/jit_mips-cpu.c, lib/jit_mips-fpu.c, lib/jit_mips-sz.c, lib/jit_mips.c, lib/jit_s390-fpu.c, lib/jit_s390-sz.c, lib/jit_s390.c: Update for new synthesized IR code sequences and correct bugs in the initial varargs implementation support. * lib/jit_alpha-sz.c, lib/jit_alpha.c, lib/jit_hppa-sz.c, lib/jit_hppa.c, lib/jit_ia64-sz.c, lib/jit_ia64.c, lib/jit_sparc-sz.c, lib/jit_sparc.c: Add generic, untested support for the new synthesized IR code sequences. Known most likely broken right now, and should be corrected once access to these hosts is available. * lib/lightning.c: Update for new IR codes, and add support for not yet existing instructions that change third argument. * size.c: Change to use different tables for LE and BE PowerPC. Correct a wrong endif for x32.
2015年04月26日Update copyright date pcpa1-1/+1
2015年02月02日Add new --enable-devel-disassembler configure option Paulo Andrade1-0/+15
* configure.ac, include/lightning/jit_private.h, lib/jit_aarch64.c, lib/jit_alpha.c, lib/jit_arm.c, lib/jit_disasm.c, lib/jit_hppa.c, lib/jit_ia64.c, lib/jit_mips.c, lib/jit_ppc.c, lib/jit_print.c, lib/jit_s390.c, lib/jit_sparc.c, lib/jit_x86.c: Add a new --enable-devel-disassembler option, that should be used during development, or lightning debug. This option intermixes previous jit_print and jit_disassemble output, making it easier to visualize what lightning call was used, and what code was generated.
2015年01月15日PPC: Only call binutils function if it is available Paulo Andrade1-0/+8
* configure.ac, lib/jit_disasm.c: Rewrite workaround to apparent problem to initialize powerpc disassembler.
2015年01月08日S390: Add support for 32 bit. pcpa1-1/+5
* include/lightning.h, include/lightning/jit_private.h, include/lightning/jit_s390x.h, lib/jit_disasm.c, lib/jit_s390x-cpu.c, lib/jit_s390x-fpu.c, lib/jit_s390x-sz.c, lib/jit_s390x.c, lib/jit_size.c, lib/lightning.c: Add support for generating jit for s390 32 bit. This change also removed %f15 from the list of temporaries fpr registers; it was not being used, but if were, it would corrupt the stack frame because the spill address would overwrite grp offsets.
2014年12月24日x86: Implement support for the x32 abi Paulo Andrade1-0/+4
* include/lightning/jit_private.h, include/lightning/jit_x86.h, lib/jit_disasm.c, lib/jit_x86-cpu.c, lib/jit_x86-sse.c, lib/jit_x86-sz.c, lib/jit_x86-x87.c, lib/jit_x86.c, size.c: Implement support for the x32 abi. Built and tested on Gentoo default/linux/amd64/13.0/x32 profile.
2014年11月20日ARM: Correct several inconsistencies with ldrd and strd pcpa1-9/+9
* lib/jit_disasm.c: Change thumb or arm disassemble based on jit code before disassembly. * lib/jit_arm-cpu.c: Correct reversed arguments to LDRD and STRD instructions, and correct checking for support of those. * lib/jit_arm-swf.c: Correct wrong use of LDRD and STRD and only use those if the register is even. * check/check.arm.swf.sh, check/check.arm4.swf.sh: New files to test LDRD and STRD, as well as the alternate code path when those are not available, in the .arm4. test case. * check/Makefile.am: Update for the new test cases.
2014年11月01日Resync with new patch to make functions receive a const argument pcpa1-1/+1
2014年10月25日Do not fail gratuitously in jit_init_debug pcpa1-4/+9
* lib/jit_disasm.c: Do not cause an fatal error if init_jit fails in the jit_init_debug call.
2014年10月14日Do not fail if NULL is passed to init_jit. pcpa1-1/+4
This should just tell to disable the disassembler.
2014年08月10日ALPHA: Implement lightning Alpha port. pcpa1-0/+10
* include/lightning/jit_alpha.h, lib/jit_alpha-cpu.c, lib/jit_alpha-fpu.c, lib/jit_alpha-sz.c, lib/jit_alpha.c: New files implementing a lightning Alpha port. Thanks to Trent Nelson and snakebit.net staff for providing access to an Alpha system. * check/float.tst, check/lightning.c, configure.ac, include/lightning.h, include/lightning/Makefile.am, include/lightning/jit_private.h, lib/Makefile.am, lib/jit_disasm.c, lib/jit_size.c, lib/lightning.c: Minor changes to adapt for the new Alpha port.
2014年07月27日Remove the global but not advertised jit_progname variable pcpa1-2/+2
* include/lightning/jit_private.h, lib/jit_disasm.c, lib/lightning.c: Remove the global jit_progname variable. It was being only used in jit_init_debug, that is called from init_jit, so, just pass an argument.
2014年04月04日Correct crash on arm in the doc/printf example. pcpa1-1/+1
* lib/jit_disasm.c: Correct a crash in the doc/printf example on arm due to releasing the data_info information in jit_clear_state. This is a special case for arm only, and actually, only armv5 or older uses the data_info buffer, or when forcing arm instruction set mode besides thumb available.
2013年09月24日Add code to calculate code buffer size based on devel time information. pcpa1-0/+1
* lib/jit_aarch64-sz.c, lib/jit_arm-sz.c, lib/jit_hppa-sz.c, lib/jit_ia64-sz.c, lib/jit_mips-sz.c, lib/jit_ppc-sz.c, lib/jit_s390x-sz.c, lib/jit_size.c, lib/jit_sparc-sz.c, lib/jit_x86-sz.c: New files implementing static tables with longest known instructions length generated to match a lightning instruction. These tables should make it easier to make it very unlikely to ever miscalculate, or by too much, the size of a code buffer. * lib/jit_size.c: New file that aids to either collect jit code size information, or use the information depending on build options. * size.c: New helper file that parses input for, and create an initial jit_$arch-sz.c file, that needs some minor edit for arches with multiple configurations. * configure.ac, Makefile.am: Add the new, devel mode only --enable-devel-get-jit-size configure option, that sets compile time flags to collect jit code size information, that will be used as input for the "noinst size program". * lib/jit_aarch64.c, lib/jit_arm.c, lib/jit_disasm.c, lib/jit_hppa.c, lib/jit_ia64.c, lib/jit_memory.c, lib/jit_mips.c, lib/jit_ppc.c, lib/jit_s390x.c, lib/jit_sparc.c, lib/jit_x86.c, lib/lightning.c: Minor changes for the --enable-devel-get-jit-size build mode, as well as the "production build mode" with jit code size information.
2013年08月11日Correct license to properly advertise LGPLv3 and not GPLv3. pcpa1-8/+10
2013年07月28日New s390x port built on the hercules emulator and fedora 16 image. pcpa1-1/+6
* include/lightning/jit_s390x.h, lib/jit_s390x-cpu.c, lib/jit_s390x-fpu.c, lib/jit_s390x.c: New files implementing the new s390x port. * configure.ac, include/lightning.h, include/lightning/Makefile.am, include/lightning/jit_private.h, lib/Makefile.am, lib/jit_disasm.c, lib/lightning.c: Minor adaptation for the new s390x backend. * check/float.tst: Update for the s390x result of truncating +Inf to integer. * check/qalu_mul.tst: Add extra test cases to better test high word of signed multiplication as the result is adjust from unsigned multiplication on s390x.
2013年06月07日Adjust lightning to work on ppc AIX. pcpa1-1/+5
Many thanks to Trent Nelson from snakebite.org for giving access to a build farm with several different architectures and operating systems. * check/lightning.c, lib/jit_disasm.c, lib/jit_ppc-cpu.c, lib/jit_ppc-fpu.c, lib/jit_ppc.c, include/lightning.h, include/lightning/jit_ppc.h, include/lightning/jit_private.h: Adapt code to work on 32 bit AIX ppc using gcc. Most changes are basically to adapt the elf64 logic to 32 bit, as it does not use the same convention of 32 bit Darwin ppc. * check/stack.tst: Add a fake memcpy function to the test case if running under AIX, as it is not available to dlsym. * configure.ac: Check for getopt.h header, not available in AIX.
2013年06月05日Prepare for the first alpha release of lightning 2.0. lightning-1.99 pcpa1-1/+1
2013年06月01日Add functional hppa port. All tests pass. pcpa1-1/+1
* include/lightning/jit_hppa.h, lib/jit_hppa-cpu.c, lib/jit_hppa-fpu.c, lib/jit_hppa.c: New files implementing the hppa port. Built on Debian Linux PA-RISC 2.0, 32 bit. * check/float.tst: Add preprocessor for hppa expected values when converting NaN and +-Inf to an integer. * check/ldst.inc: Ensure double load/store tests use an 8 byte aligned address by default. * lib/lightning.c: Correct a bug found during tests in the new port, where qmul* and qdiv* were not properly setting one of the result registers as modified in the function, what would be a problem if the only "write" usage were the qmul* or qdiv*. * check/varargs.tst, check/varargs.ok: Add one extra interleaved integer/double test to validate proper code generation in the extra case. * check/lightning.c, configure.ac, include/lightning.h, include/lightning/Makefile.am, include/lightning/jit_private.h, lib/Makefile.am, lib/jit_disasm.c: Update for the hppa port.
2013年03月29日Add a simple memory management wrapper. pcpa1-7/+8
* lib/jit_memory.c: Implement a simple memory allocation wrapper to allow overriding calls to malloc/calloc/realloc/free, as well as ensuring all memory containing pointers is zero or points to allocated memory. * include/lightning.h, include/lightning/jit_private.h: Definitions for the memory allocation wrapper. * lib/Makefile.am: Update for new jit_memory.c file. * lib/jit_arm.c, lib/jit_disasm.c, lib/jit_mips.c, lib/jit_note.c, lib/jit_ppc.c, lib/jit_sparc.c, lib/jit_x86.c, lib/lightning.c: Use the new memory allocation wrapper code.
2013年03月10日Adapt PowerPC port to work in Darwin 32 bit and Linux 64 bit. pcpa1-0/+6
* include/lightning.h: Add check for __powerpc__ defined in Linux, while Darwin defines __ppc__. * include/lightning/jit_ppc.h: Adjust register definitions for Darwin 32 bit and Linux 64 bit ppc usage and/or ABI. * include/lightning/jit_private.h: Add proper check for Linux __powerpc__ and an data definition for an workaround to properly handle code that starts with a jump to a "main" label. * lib/jit_disasm.c: Add extra disassembler initialization for __powerpc64__. * lib/jit_ppc-cpu.c: Add extra macros and functions, and correct/adapt previous ones to handle powerpc64. * lib/jit_ppc-fpu.c: Adapt for 64 bit wordsize. Basically add conversion from/to int32/int64 and proper handling of load/store offsets too large for 32 bit. * lib/jit_ppc.c: Add calls to 64 bit codes and adaptation for the PowerPC 64 bit Linux ABI. * lib/jit_arm.c, lib/jit_mips.c, lib/jit_sparc, lib/jit_x86.c, lib/lightning.c: Correct off by one error when restarting jit of a function due to finding too late that needs to spill/reload some register. Problem was found by accident on a very special condition during PowerPC 64 code adaptation.
2013年03月06日Minor updates when testing on a prototype, quadcore Loongson mips. pcpa1-48/+49
* check/float.tst: Comment out the int to negative infinity test in mips for the moment because not all Loongson agrees on the result. * lib/jit_disasm.c: Add a test instead of an assertion when loading symbols for disassembly due to a failure with a simple binutils build in Debian mipsel64.
2013年03月06日Rework to better describe what is used only during jit generation. pcpa1-4/+4
* include/lightning/jit_private.h, lib/jit_arm-cpu.c, lib/jit_arm.c, lib/jit_disasm.c, lib/jit_mips-cpu.c, lib/jit_mips.c, lib/jit_note.c, lib/jit_ppc-cpu.c, lib/jit_ppc.c, lib/jit_print.c, lib/jit_sparc-cpu.c, lib/jit_sparc.c, lib/jit_x86-cpu.c, lib/jit_x86.c, lib/lightning.c: Add an extra structure for data storage during jit generation, and release it after generating jit, to reduce a bit memory usage, and also to make it easier to understand what data is available during jit runtime.
2013年02月18日Add framework for sparc port. pcpa1-0/+3
* include/lightning/jit_sparc.h, lib/jit_sparc-cpu.c, lib/jit_sparc-fpu.c, lib/jit_sparc.c: New files implementing the basic framework of the sparc port. * configure.ac, include/lightning.h, include/lightning/Makefile.am, include/lightning/jit_private.h, lib/jit_disasm.c: Update for the sparc port framework. * lib/jit_mips.c: Correct reversed retr/reti logic. * lib/jit_ppc.c: Correct misspelled __LITTLE_ENDIAN. * lib/lightning.c: Always do byte hashing in hash_data, because the logic to "compress" strings causes large pointers to not be guaranteed aligned at 4 byte boundaries. Update for the sparc port framework.
2013年01月18日Add the new jit_name call to mark function boundaries pcpa1-15/+15
* check/3to2.tst, check/add.tst, check/allocai.tst, check/bp.tst, check/call.tst, check/ccall.c, check/clobber.tst, check/divi.tst, check/fib.tst, check/ldsti.tst, check/ldstr-c.tst, check/ldstr.tst, check/ldstxi-c.tst, check/ldstxi.tst, check/ldstxr-c.tst, check/ldstxr.tst, check/lightning.c, check/rpn.tst, check/stack.tst, check/varargs.tst, include/lightning.h, include/lightning/jit_private.h, lib/jit_arm.c, lib/jit_disasm.c, lib/jit_mips.c, lib/jit_note.c, lib/jit_ppc.c, lib/jit_print.c, lib/jit_x86.c, lib/lightning.c: Extend the "jit_note" abstraction with the new "jit_name" call, that receives a string argument, and should usually be called to mark boundaries of functions of code generating jit (that is, it is not expected that the language generating jit map its functions to jit functions).
2013年01月11日Add filename and line number annotation abstraction. pcpa1-12/+45
* lib/jit_note.c: New file implementing a simple string+integer annotation, that should be used to map filename and line number to offsets in the generated jit. * include/lightning.h, lib/lightning.c: Update for the new note code. Add an extra mandatory argument to init_jit, that is used as argument to bfd_openr. Change from generic void* to char* the argument to jit_note and add an extra integer argument, to map to filename and line number. * check/ccall.c, check/lightning.c, include/lightning/jit_private.h, lib/jit_arm.c, lib/jit_disasm.c, lib/jit_mips.c, lib/jit_ppc.c, lib/jit_print.c, lib/jit_x86.c: lib/Makefile.am: Update for the new annotation code. * configure.ac, check/Makefile.am: Update to work with latest automake.
2012年12月03日Update code to build and pass test cases in the arm port. pcpa1-15/+17
* configure.ac, include/lightning/jit_private.h, lib/jit_arm-cpu.c, lib/jit_arm-swf.c, lib/jit_arm.c, check/Makefile.am: Correct implementation of the arm backend port to build and pass the current test cases. Tested on armv7 with softfp abi. * lib/jit_disasm.c: Rename and change prototype of static disassemble function as in the arm backend it is required to access state information stored in the jit_state_t object. * check/3to2.tst, check/add.tst: Correct test case code assuming JIT_RO and JIT_RET are the same, and even if they are the same, the logic was incorrect because it must always call jit_retval* to fetch a function call return before any other instruction. The arm backend hash a special condition if jit_retval is not called, because "r0" is not JIT_R0, but is JIT_RET and *also* the first argument for a called function, so JIT_RET must be only used as an argument to jit_retval. * TODO: New file listing important tasks to be resolved.
2012年12月03日Correct implementation problems on ix86. pcpa1-2/+2
* check/all.tst, check/lightning.c: Only declare or use 64 bit interfaces on 64 bit builds. * check/fib.tst: Use simpler logic to not need preprocessor conditionals for 32 or 64 bit. * include/lightning.h: Only declare 64 bit macros on a 64 bit build. Code using lightning must know about wordsize and the jit generation limitations, also, this way it generates a compile time failure, not a runtime assertion. * include/lightning/jit_x86.h: Correct typo in macro name. * lib/jit_arm.c, lib/jit_arm-cpu.c, lib/jit_mips.c, lib/jit_mips-cpu.c, lib/jit_ppc.c, lib/jit_ppc-cpu.c, lib/jit_x86.c, lib/jit_x86-cpu.c: Correct wrong code to get current jit function pointer. * lib/lightning.c: Move call to the simplify() optimization to after register liveness is known. Previous code did work by accident but now with proper test cases the problem was noticed. * lib/jit_disasm.c: Always cast bfd_vma to long long when passing it as printf argument.
2012年12月02日Big merge with new lightning semantics aiming for lightning 2.0. pcpa1-0/+297
2012年12月02日 Paulo Andrade <pcpa@gnu.org> * tests/Makefile.am, tests/3to2.c, tests/3to2.ok, tests/add.c, tests/add.ok, tests/allocai.c, tests/allocai.ok, tests/bp.c, tests/bp.ok, tests/divi.c, tests/divi.ok, tests/fib.c, tests/fib.ok, tests/fibdelay.c, tests/fibdelay.ok, tests/fibit.c, tests/fibit.ok, tests/funcfp.c, tests/funcfp.ok, tests/incr.c, tests/incr.ok, tests/ldst.c, tests/ldst.ok, tests/ldxi.c, tests/ldxi.ok, tests/modi.c, tests/modi.ok, tests/movi.c, tests/movi.ok, tests/printf.c, tests/printf.ok, tests/printf2.c, tests/printf2.ok, tests/ret.c, tests/ret.ok, tests/rpn.c, tests/rpn.ok, tests/rpnfp.c, tests/rpnfp.ok, tests/sete.c, tests/sete.ok, tests/testfp.c, tests/testfp.ok, tests-run-test: Removed previous test suite, in favor of a newer one in the check subdirectory. * check/3to2.ok, check/3to2.tst, check/add.ok, check/add.tst, check/allocai.ok, check/allocai.tst, check/bp.ok, check/bp.tst, check/divi.ok, check/divi.tst, check/fib.ok, check/fib.tst: New sample input for the new test program, loosely matching several of the previous test cases. * check/Makefile.am: New test suite makefile. * check/check.sh, check/run-test: New wrapper files for the new test suite. * check/lightning.c: New file. The main driver of the new test suite, that compiles to a parser of a very simple assembly like language, generates jit and executes it. * check/all.tst: New file. A generic debug and sample test file with a directive to prevent it from being executed, and useful to read disassembly of all possible instructions, using a fixed set of registers. * include/Makefile.am, include/lightning.h, include/lightning/Makefile.am, include/lightning/jit_arm.h, include/lightning/jit_mips.h, include/lightning/jit_ppc.h, include/lightning/jit_private.h, include/lightning/jit_x86.h, lib/Makefile.am, lib/jit_disasm.c, lib/jit_print.c, lib/jit_x86-cpu.c, lib/jit_x86-sse.c, lib/jit_x86-x87.c, lib/jit_x86.c, lib/lightning.c: New files. These files are written from scratch, only by <pcpa@gnu.org>, and have now copyright assignment to the FSF. This is the core of the new lightning rework. Previously it was integrated in code with a garbage collector and several custom types like vectors and hash tables, so this first code merge with lightning converts that code into a library extracting only the jit bits, and at first only for x86_64 GNU/Linux. * lightning.h, m4/lightning.m4: Removed. These are no longer required in the new lightning code. .gitignore, Makefile.am, configure.ac: Update for the new lightning code.
generated by cgit v1.2.3 (git 2.39.1) at 2025年09月17日 11:21:16 +0000

AltStyle によって変換されたページ (->オリジナル) /