Alien-LibJIT
view release on metacpan or search on metacpan
libjit/NEWS view on Meta::CPAN
0.1.2 (10 Decemeber 2008)
* Switch from GPL to LGPL 2.1 license.
* Implement x86-64 backend (Klaus Treichel).
* Fix interpreter backend (Klaus Treichel, Aleksey Demakov).
* Introduce jit-unwind interface (Aleksey Demakov, Klaus Treichel).
* Code cache pages can now grow if needed (Aleksey Demakov).
* Various fixes (Klaus Treichel, Aleksey Demakov, Juan Jesus Garcia
de Soria, Dalibor Topic, Arto Bendiken)
0.1.0 (3 March 2007)
General improvements:
* Add on-demand compilation driver (Aleksey Demakov, Klaus Treichel).
* Add jit_function_from_vtable_pointer function (Klaus Treichel).
* Add jit_insn_mark_breakpoint_variable function (Radek Polak).
* Add signal handlers (Kirill Kononenko).
* Add JIT_OPTION_POSITION_INDEPENDENT context option (not supported
by the backends yet) (Aleksey Demakov).
* Add function indirectors (Klaus Treichel).
* Allocate function redirectors and indirectors in the code cache
(Aleksey Demakov).
* Use mmap to allocate executable memory where available
(Klaus Treichel).
* Now can dump to any stream not just stdout and stderr (Radek Polak).
* Use a global lock during context initialization (Aleksey Demakov).
* Fix problems that take place after compilation is restarted on cache
page overflow (Aleksey Demakov).
Register allocation/instruction selection improvements (Aleksey Demakov):
* Completely rewrite register allocator. The new allocator works with
three-value intermediate instructions rather than with individual
values. This allows to fully analyze the effect of the instruction
and makes it possible to optimize commutative instructions and
eliminate in some cases redundant register spills and loads.
* Support three-address architectures.
* Add register classes.
* The allocator may now allocate scratch registers for instructions.
* The allocator now automatically handles cases when a global register
is clobbered by the instruction (which may happen on the register
constrained x86 architecture).
* Implement value coalescing for copy instructions.
* Provide for efficient handling of x87 floating point stack.
* Add gen-rules program that supersedes gen-sel. It generates code for
new register allocator and extends the syntax of instruction selection
rules to make use of new features such as register classes, scratch
registers, etc.
Alpha:
* Add Alpha backend (not yet fully functional) (Thomas Cort).
x86:
* Update x86 instruction selector for new register allocator and rules
syntax. Take advantage of their new features to generate better code
and/or simplify rules (Aleksey Demakov).
* optimize code generated by throw_builtin, JIT_OP_THROW, JIT_OP_LOAD_PC
if the position-independent option is not set (Kirill Kononenko).
* Implement JIT_OP_IMIN_UN, JIT_OP_ISIGN, JIT_OP_LSIGN, JIT_OP_IABS,
JIT_OP_LABS, JIT_OP_LOW_WORD, JIT_OP_EXPAND_INT, JIT_OP_EXPAND_UINT,
JIT_OP_INT_TO_NFLOAT, JIT_OP_UINT_TO_NFLOAT, JIT_OP_LONG_TO_NFLOAT,
JIT_OP_ULONG_TO_NFLOAT rules (Aleksey Demakov, Kirill Kononenko).
* optimize loading of zero constants. (Aleksey Demakov).
Interpreter:
* The interpreter backend does not use register stack and register
allocator anymore (Aleksey Demakov).
0.0.6 (15 January 2006)
x86:
* Be careful when using EBX in cpuid instructions so as not to confuse
gcc in PIC mode (Rhys W).
* Fixes to floating point instruction selection (Rhys Weatherley).
* Some support for structure copying (Rhys Weatherley).
* Pointer-relative loads and stores (Rhys Weatherley).
* Correct the offset for long-form backwards branches (Evin Robertson).
* Constant pointers in relative offset operations (Rhys Weatherley).
* Merge in Mono's changes to jit-gen-x86.h (Aleksey Demakov).
* Array loads and stores for floating point values (Aleksey Demakov).
* Memcpy, memset, and memmove operations (Aleksey Demakov).
* Return buffer problems in apply function with gcc 4.0.2 (Aleksey Demakov).
x86-64:
* Use the correct library entry point when calling jit_memcpy from
compiled code (Klaus Treichel).
Interpreter:
* Return area pointers (Rhys Weatherley).
* Prevent double push of indirect function pointers (Rhys Weatherley).
Function/instruction core:
* Clear block addresses and fixup lists if a function restart is needed
(Evin Robertson).
* Use destination type for store type, not source type (Evin Robertson).
* Tail call implementation (Rhys Weatherley).
* Address of constants (Avinash Atreya, Aleksey Demakov).
* Functions for locating the proper start of a function in the cache
(Aleksey Demakov).
* New exception type for array out of bounds (Aleksey Demakov).
* Jump tables (Aleksey Demakov).
* Intrinsics that return exception codes should be labeled "int" (Aleksy D).
* Spill both parts of a register pair properly (Aleksey Demakov).
* Fixes to freeing of register pairs (Aleksey Demakov).
Dpas:
* Throw builtin exceptions (Aleksey Demakov).
* Implement array expressions (Avinash Atreya).
Other:
( run in 0.793 second using v1.01-cache-2.11-cpan-119454b85a5 )