Age | Commit message (Collapse) | Author | Files | Lines |
2024年10月23日 | Add support for Hitachi SH processors | Paul Cercueil | 1 | -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 Cercueil | 1 | -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 | pcpa | 1 | -1/+1 |
|
2022年12月20日 | lib/jit_disasm.c: fix build | Fabrice Fontaine | 1 | -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 | pcpa | 1 | -2/+2 |
|
2022年10月06日 | Update Copyright year. | pcpa | 1 | -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. | pcpa | 1 | -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. | pcpa | 1 | -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 Cercueil | 1 | -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 Cercueil | 1 | -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 | pcpa | 1 | -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 | pcpa | 1 | -1/+3 |
|
2019年09月17日 | Update copyright year | pcpa | 1 | -1/+1 |
|
2019年06月04日 | Implement a Linux 64 bit riscv port | Paulo Andrade | 1 | -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 Andrade | 1 | -0/+2 |
|
2018年08月30日 | Build and pass check with one exception. | Paulo Andrade | 1 | -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 | pcpa | 1 | -1/+1 |
|
2017年09月13日 | Adapt for binutils 2.29 | pcpa | 1 | -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 | pcpa | 1 | -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 | pcpa | 1 | -1/+1 |
|
2015年02月02日 | Add new --enable-devel-disassembler configure option | Paulo Andrade | 1 | -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 Andrade | 1 | -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. | pcpa | 1 | -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 Andrade | 1 | -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 | pcpa | 1 | -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 | pcpa | 1 | -1/+1 |
|
2014年10月25日 | Do not fail gratuitously in jit_init_debug | pcpa | 1 | -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. | pcpa | 1 | -1/+4 |
|
This should just tell to disable the disassembler.
|
2014年08月10日 | ALPHA: Implement lightning Alpha port. | pcpa | 1 | -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 | pcpa | 1 | -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. | pcpa | 1 | -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. | pcpa | 1 | -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. | pcpa | 1 | -8/+10 |
|
2013年07月28日 | New s390x port built on the hercules emulator and fedora 16 image. | pcpa | 1 | -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. | pcpa | 1 | -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 | pcpa | 1 | -1/+1 |
|
2013年06月01日 | Add functional hppa port. All tests pass. | pcpa | 1 | -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. | pcpa | 1 | -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. | pcpa | 1 | -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. | pcpa | 1 | -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. | pcpa | 1 | -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. | pcpa | 1 | -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 | pcpa | 1 | -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. | pcpa | 1 | -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. | pcpa | 1 | -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. | pcpa | 1 | -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. | pcpa | 1 | -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.
|