Alien-LibJIT
view release on metacpan or search on metacpan
libjit/ChangeLog view on Meta::CPAN
* jit/jit-dump.c, jit/jit-function.c, jit/jit-rules-interp.c
* jit/jit-except.c, jit/jit-unwind.c: adjust where appropriate for
cache API change.
2011-12-18 Aleksey Demakov <ademakov@gmail.com>
* jit/Makefile.am:
* jit/jit-varint.h, jit/jit-varint.c: add new files for varaible
length int encoding with algorithm similar but not identical to one
currently used in jit-cache.c. The new algorithm in certain cases
better compresses unsigned ints.
2011-09-30 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-cache.h, jit/jit-cache.c (_jit_cache_new_region):
function removed.
2011-09-03 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-cache.h, jit/jit-cache.c (_jit_cache_get_method_list):
function removed.
2011-07-27 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-config.h: added new file as central location for all
platform config macros deduced from ./configure and cpp.
* jit/Makefile.am: add jit-config.h.
* include/jit/jit-context.h, jit/jit-context.c
(jit_context_supports_threads): removed.
* include/jit/jit-init.h, jit/jit-init.c (jit_supports_threads):
added function to replace jit_context_supports_threads.
* include/jit/jit-init.h, jit/jit-init.c
(jit_supports_virtual_memory): added new function to check if
the jit supports virtual memory routines.
* include/jit/jit-vmem.h, jit/jit-vmem.c (jit_vmem_init)
(jit_vmem_page_size, jit_vmem_round_up, jit_vmem_round_down)
(jit_vmem_reserve, jit_vmem_reserve_committed, jit_vmem_release)
(jit_vmem_commit, jit_vmem_decommit, jit_vmem_protect): added new
files with virtual memory routines.
* include/jit/Makefile.am, include/jit/jit.h: add jit-vmem.h
* jit/Makefile.am: add jit-vmem.c
* jit/jit-init.c (jit_init): call jit_vmem_init().
2011-07-10 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-reg-alloc.c (choose_output_register, _jit_regs_assign):
fix handling of explicitely assigned registers.
* jit/jit-rules-x86.c (shift_reg): remove function.
* jit/jit-rules-x86.ins (JIT_OP_ISHL, JIT_OP_ISHR, JIT_OP_ISHR_UN):
rewrite rules with explicit assignment to "ecx" register, don't use
shift_reg() function.
2011-07-02 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-compile.c (compile_block): amend debug info
2010-11-28 Klaus Treichel <ktreichel@web.de>
* config/jit-opcodes.ops: Set the destination value type for the
address_of_label opcode.
* jit/jit-dump.c (jit_dump_insn): Print the destination value for
the address_of_label opcode.
2010-11-07 Klaus Treichel <ktreichel@web.de>
* jit/jit-cache.h: Fix comment for _jit_cache_get_end_method.
2010-10-24 Klaus Treichel <ktreichel@web.de>
* jit/jit-reg-alloc.c (_jit_regs_alloc_global): Set in_global_register
on global register assignment.
2010-10-04 Klaus Treichel <ktreichel@web.de>
* jit/jit-internal.h: Add missing typedef in the declaration of the
_jit_intrinsic_signature enumaeration. (Really Noah Lavine)
2010-09-21 Klaus Treichel <ktreichel@web.de>
* config/jit-opcodes.ops: Add definitions for the opcode's
intrinsics.
* jit/Makefile.am: Add jit-opcode-apply.c to the sources.
* jit/jit-internal.h (enum _jit_intrinsic_signature): Declare the
various intrinsic signatures.
(struct _jit_intrinsic_info): Declare structure to hold the intrinsic
information for an opcode.
* jit/jit-opcode-apply.c: Add support for constant folding.
* tools/gen-ops-parset.y, tools/gen-ops-scanner.l: Add support for
generating the opcode intrinsic table.
2010-09-12 Klaus Treichel <ktreichel@web.de>
* config/jit-opcodes.ops: Remove the *eq_inv and *ne_inv float
compare a branch opcodes because they behave exactly the same as
the corresponding opcodes without the _INV suffix.
Add macros to map the removed opcodes to their counterparts without
the _INV suffix.
* jit/jit-insn.c (jit_insn_to_not_bool): Replace the mappings
to *EQ_INV and *NE_INV by mappings to *EQ and *NE.
Remove the mappings for *EQ_INV and *NE_INV.
(jit_insn_branch_if): likwise
(jit_insn_branch_if_not): likewise
* jit/jit-interp.c (_jit_run_function): Remove handling of
the *EQ_INV and *NE_INV opcodes.
* jt/jit-rules-interp.c (_jit_gen_insn): Remove the *EQ_INV
and *NE_INV cases.
libjit/ChangeLog view on Meta::CPAN
rules were broken for local byte or short values. Fixed by removing
the local pattern altogether as the reg pattern produces the same
code but without the bug.
2006-10-18 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-reg-alloc.c (clobbers_register, bind_value): enable
coalescing of the destination value of a copy operation with the
source value in a single register.
* jit/jit-rules-x86.ins: tag COPY rules with the "copy" keyword
and change patterns of TRUNC rules to have a separate destination
register.
2006-10-16 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-interp.h, jit/jit-interp.c (_jit_run_function):
* jit/jit-opcode.c, jit/jit-rules-interp.c (_jit_gen_insn): Repair
struct handling broken since the last interpreter reorganization,
remove unused interpreter opcodes.
* jit/jit-rules-interp.c (_jit_gen_start_block): check if the fixup
position is before the cache end. This prevents segmentation fault
when the end of cache block is reached and jit_function_compile()
attempts to generate more code (it checks for the cache end way too
late).
2006-10-14 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-rules-interp.c (_jit_create_call_return_insns): fix return
code in case of no return value or struct returned via pointer (this
is just like 2006-02-20 fix for x86).
* jit/jit-cfg.c (create_value_entry): an uninitialized value was
used (thanks Klaus for spotting).
2006-10-02 Klaus Treichel <ktreichel@web.de>
* jit/jit-intrinsic.c: Fix a copy bug in jit_ulong_mul (replace - by *).
2006-09-25 Aleksey Demakov <ademakov@gmail.com>
* include/jit/jit-arch-x86.h, include/jit/jit-arch-generic.h: add
headers for architecture-specific definitions.
(_JIT_ARCH_GET_CURRENT_FRAME): add macro to find the stack frame
pointer.
* include/jit/Makefile.am: create jit-arch.h as a symlink to one of
the jit-arch-*.h files depending on the JIT_ARCH value.
* configure.in: set JIT_ARCH according to the system architecture.
* include/jit/jit-walk.h (jit_get_current_frame):
* jit/jit-walk.c (jit_get_starting_frame):
* tools/gen-apply.c (find_return_offset, detect_frame_offsets): use
_JIT_ARCH_GET_CURRENT_FRAME macro if available. This resolves the
problem with gcc 4.1.* where __builtin_frame_address() function is
broken (thanks Klaus for identifing the problem).
2006-09-15 Radek Polak <psonek2@seznam.cz>
* include/jit/jit-insn.h, jit/jit-insn.c, jit/jit-debugger.c: new
instruction jit_insn_mark_breakpoint_variable.
2006-09-14 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-reg-alloc.h, jit/jit-reg-alloc.c: remove "old" register
allocation code.
* configure.in: remove --enable-new-reg-alloc option.
* jit/jit-rules-x86.ins: simplify JIT_OP_RETURN_LONG rule, lift code
from load_small_struct() function to JIT_OP_RETURN_SMALL_STRUCT rule.
* jit/jit-rules-x86.c: remove load_small_struct() function.
2006-09-09 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-reg-alloc.h, jit/jit-reg-alloc.c:
* tools/gen-rules-parser.y: add _JIT_REGS_CLOBBER_STACK flag and use
it in the code generated for "only" rules instead of the explicit
stack top check followed by the _jit_regs_spill_all() call.
2006-09-02 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-interp.c (_jit_run_function):
* jit/jit-rules-interp.c (_jit_gen_insn): remove last traces of
register allocation from the interpreter.
2006-08-31 Klaus Treichel <ktreichel@web.de>
* configure.in: Replace the deprecated AM_PROG_LIBTOOL with the current
AC_PROG_LIBTOOL.
* jitdynamic/Makefile.am, jitplus/Makefile.am: Add -no-undefined to the
LDFLAGS to enable building cygwin/mingw dlls.
2006-08-31 Aleksey Demakov <ademakov@gmail.com>
* tools/gen-rules-scanner.l, tools/gen-rules-parser.y: add "frame"
keyword that is just like "local" but forces the value out from the
register into the stack frame.
* jit/jit-rules-x86.ins: rewrite JIT_OP_COPY_STORE_BYTE,
JIT_OP_ADDRESS_OF, and JIT_OP_COPY_STORE_SHORT rules using the
"frame" keyword.
* jit/Makefile.am, jit/jit-rules-x86.c: remove all references to
jit-rules-x86.sel and jit-rules-x86.slc.
* jit/jit-rules-x86.c: remove mov_memindex_reg_byte() and
widen_byte() functions.
2006-08-30 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-interp.h, jit/jit-interp.c, jit/jit-opcode.c,
jit/jit-rules-interp.h, jit/jit-rules-interp.c: major change in the
internal interpreter instruction set. Now the stack is used only for
function arguments. There are three pseudo-registers used instead of
the stack for operands. One is used for the destination value, two
others are used for the source values. The destination register is
spilled after each instruction. This scheme obviates the need for
register allocation for the interpreter backend.
libjit/ChangeLog view on Meta::CPAN
2005-12-12 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-dump.c (dump_object_code): in order to make dump work on
cygwin call "as" and "objdump" in two separate system() calls because
it looks like the ';' separator between commands does not work there.
Also on Win32 use TMP and TEMP environment variables as the tmp
directory names and fallback to "c:/tmp".
* jit/jit-gen-x86.h (jit_assert): change the macro definition to
resolve problems introduced at 2005-12-10.
2005-12-10 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-gen-x86.h: Merged changes from the latest Mono project's
version of this file.
* jit/jit-rules-x86.sel: Done the following rules:
JIT_OP_LOAD_ELEMENT_FLOAT32, JIT_OP_LOAD_ELEMENT_FLOAT64,
JIT_OP_LOAD_ELEMENT_NFLOAT, JIT_OP_STORE_ELEMENT_LONG,
JIT_OP_STORE_ELEMENT_FLOAT32, JIT_OP_STORE_ELEMENT_FLOAT64,
JIT_OP_STORE_ELEMENT_NFLOAT.
2005-11-19 Klaus Treichel <ktreichel@web.de>
* jit/apply-x86-64.h: Change definition of JIT_MEMCPY from "jit_memcpy" to
"jit_memcpy@PLT" to fix the build of a shared library for x86_64.
2004-11-18 Rhys Weatherley <rweather@southern-storm.com.au>
* include/jit/jit-opcode.h, jit/jit-dump.c, jit/jit-insn.c,
jit/jit-interp.c, jit/jit-opcode.c, jit/jit-rules-interp.c,
jit/jit-rules-x86.sel: implement tail calls properly.
2004-11-05 Evin Robertson <evin@users.sourceforge.net>
* jit/jit-insn.c (jit_insn_store): use the destination type
to determine the store opcode, not the source value type.
2004-11-02 Evin Robertson <evin@users.sourceforge.net>
* jit/jit-function.c (jit_function_compile): clear block addresses
and fixup lists if we need to restart on a new cache page (minor
alterations by Rhys).
* jit/jit-function.c (jit_function_apply_vararg): return 0 when a
sub-function throws an exception, not 1.
2004-10-31 Rhys Weatherley <rweather@southern-storm.com.au>
* jit/jit-rules-x86.sel: handle the special case of constant
destination pointers in "store_relative" instructions, because
otherwise the register allocator gets confused.
2004-10-29 Peter Lund <firefly@diku.dk>
* doc/libjit.3: fix manpage formatting issues. (patch attached
to bug #10779, Gopal).
2004-10-28 Rhys Weatherley <rweather@southern-storm.com.au>
* configure.in, jit/jit-debugger.c, jit/jit-thread.c,
jit/jit-thread.h: implement some of the locking code
for the debugging API.
2004-10-12 Evin Robertson <evin@users.sourceforge.net>
* jit/jit-rules-x86.c (output_branch): correct the offset
when outputting a long-form backward branch.
* tests/Makefile.am, tests/loop.pas: test case for the
long-form backward branch bug.
2004-10-06 Rhys Weatherley <rweather@southern-storm.com.au>
* doc/Makefile.am, doc/libjit.texi, include/jit/Makefile.am,
include/jit/jit-common.h, include/jit/jit-context.h,
include/jit/jit-debugger.h, include/jit/jit-except.h,
include/jit/jit-function.h, include/jit/jit.h, jit/Makefile.am,
jit/jit-context.c, jit/jit-debug.c, jit/jit-debugger.c,
jit/jit-insn.c, jit/jit-internal.h, jit/jit-interp.c:
redesign the debugger API so that it contains functions
like "add breakpoint", "run", "step", etc that more closely resemble
what a front end debugger will want to have, shifting the
implementation burden off the front end.
2004-10-04 Rhys Weatherley <rweather@southern-storm.com.au>
* include/jit/jit-function.h, include/jit/jit-insn.h,
include/jit/jit-opcode.h, include/jit/jit-plus.h, jit/jit-function.c,
jit/jit-insn.c, jit/jit-internal.h, jit/jit-interp.c,
jit/jit-opcode.c, jit/jit-rules-interp.c, jit/jit-rules-arm.sel,
jit/jit-rules-x86.sel, jitplus/jit-plus-function.cpp:
add instructions and function API's for supporting debug line
numbers and breakpoints.
* doc/Makefile.am, doc/libjit.texi, include/jit/jit-context.h,
include/jit/jit-insn.h, include/jit/jit-opcode.h,
include/jit/jit-plus.h, jit/Makefile.am, jit/jit-context.c,
jit/jit-debug.c, jit/jit-function.c, jit/jit-insn.c,
jit/jit-internal.h, jit/jit-interp.c, jit/jit-opcode.c,
jit/jit-rules-arm.sel, jit/jit-rules-interp.c, jit/jit-rules-x86.sel,
jitplus/jit-plus-function.cpp: clean up the breakpoint API and
implement debug hooks for the interpreter.
* jit/jit-insn.c, jit/jit-rules-arm.sel, jit/jit-rules-x86.sel:
use a common helper function for performing debug hook tests on
native platforms, to avoid the need to implement breakpoint testing
individually in every native back end.
2004-09-10 Rhys Weatherley <rweather@southern-storm.com.au>
* jit/jit-rules-x86.sel: pointer-relative loads and stores
for structures in the x86 back end.
2004-09-09 Rhys Weatherley <rweather@southern-storm.com.au>
* jit/jit-rules-x86.c, jit/jit-rules-x86.sel: add some support
for structure copying to the x86 back end.
2004-09-06 Rhys Weatherley <rweather@southern-storm.com.au>
* jit/jit-rules-interp.c: the pointer value for indirect and vtable
calls was being pushed onto the stack twice.
2004-09-05 Norbert Bollow <nb@SoftwareEconomics.biz>
* samples/hellovm.c: add a sample program that demonstrates a
simple VM based on libjit (committed by Rhys).
2004-08-30 Rhys Weatherley <rweather@southern-storm.com.au>
* jit-rules-x86.sel: fix x86 code generation for floating-point
return instructions.
2004-08-16 Rhys Weatherley <rweather@southern-storm.com.au>
* jit/jit-cpuid-x86.c (cpuid_query): use %ebx in a way that doesn't
confuse PIC mode in some versions of gcc (bug #10022).
2004-08-13 Rhys Weatherley <rweather@southern-storm.com.au>
* include/jit/jit-insn.h, include/jit/jit-opcode.h,
include/jit/jit-plus.h, jit/jit-insn.c, jit/jit-internal.h,
jit/jit-interp.h, jit/jit-opcode.c, jit/jit-rules-interp.c,
jitplus/jit-plus-function.cpp: re-implement the "push_return_area_ptr"
patch so as to avoid wasting stack space in functions with more
than one native function call.
2004-08-12 Rhys Weatherley <rweather@southern-storm.com.au>
* jit/jit-rules-interp.c: account for the extra value that is
added to the stack by the "push_return_area_ptr" instruction.
2004-08-08 Rhys Weatherley <rweather@southern-storm.com.au>
* configure.in, NEWS: update version for the "0.0.4" release.
* configure.in: updating working version to "0.0.5".
2004-08-05 Rhys Weatherley <rweather@southern-storm.com.au>
* doc/Makefile.am, doc/README, doc/libjit.texi,
jit/jit-dump.c, jit/jit-insn.c: documentation updates.
* dpas/Makefile.am, tools/Makefile.am: support for parallel builds.
libjit/ChangeLog view on Meta::CPAN
* tools/gen-apply.c: allow floating-point values to be passed
in "fastcall" registers.
2004-06-16 Rhys Weatherley <rweather@southern-storm.com.au>
* tools/gen-sel-parser.y: add a missing semi-colon.
2004-06-14 Rhys Weatherley <rweather@southern-storm.com.au>
* dpas/dpas-internal.h, dpas/dpas-parser.y, dpas/dpas-scanner.l,
jit/jit-rules-x86.c, jit/jit-rules-x86.sel, tests/Makefile.am,
tests/param.pas, tools/gen-apply.c: add some test cases for
parameter passing; fix fastcall/stdcall conventions for x86.
* jit/jit-rules-arm.h, jit/jit-rules-arm.sel, jit/jit-rules-x86.h,
jit/jit-rules-x86.sel, tools/gen-sel-parser.y: enable register
allocation for 64-bit values under x86 and ARM; expand some
64-bit opcodes in the instruction selectors.
2004-06-12 Rhys Weatherley <rweather@southern-storm.com.au>
* jit/jit-insn.c, jit/jit-rules-x86.c, jit/jit-rules-x86.sel:
implement or stub missing x86 instruction selection rules.
* include/jit/jit-insn.h, include/jit/jit-opcode.h,
include/jit/jit-plus.h, jit/jit-function.c, jit/jit-insn.c,
jit/jit-interp.c, jit/jit-opcode.c, jit/jit-rules-interp.c,
jitplus/jit-plus-function.cpp: add the "outgoing_frame_posn"
instruction, to support tail calls.
2004-06-11 Rhys Weatherley <rweather@southern-storm.com.au>
* doc/libjit.texi, jit/jit-insn.c, jit/jit-internal.h,
jit/jit-reg-alloc.c, jit/jit-rules-arm.c, jit/jit-rules-arm.sel,
jit/jit-rules-interp.c, jit/jit-rules-x86.c, jit/jit-rules-x86.sel,
jit/jit-rules.h, jit/jit-value.c, tutorial/Makefile.am,
tutorial/t2.c, tutorial/t5.c: implement tail calls from a
function to itself.
* jit/jit-function.c, jit/jit-reg-alloc.c, jit/jit-rules-arm.c,
jit/jit-rules-interp.c, jit/jit-rules-x86.c, jit/jit-rules.h:
implement global register allocation for parameters in stack slots.
* jit/jit-rules-x86.c, jit/jit-rules-x86.sel, jit/jit-rules.h:
optimize the x86 function epilog when we are certain that the
stack height doesn't change between entry and exit (i.e. the
function is a leaf and there are no alloca's).
2004-06-10 Rhys Weatherley <rweather@southern-storm.com.au>
* jit/jit-apply-arm.c, jit/jit-gen-arm.c, jit/jit-gen-arm.h,
jit/jit-rules-arm.c, jit/jit-rules-arm.h, jit/jit-rules-arm.sel,
tools/gen-sel-parser.y: redesign the ARM code generation macros
so that they have stronger protection against buffer overruns.
* jit/jit-rules-arm.sel: flush the constant pool after unconditional
branches, to try to minimize the probability that the pool will
be flushed in the middle of a loop body.
* jit/jit-dump.c: dump the hex address of external functions,
to aid with debugging native disassembly dumps.
* include/jit/jit-insn.h, include/jit/jit-opcode.h,
include/jit/jit-plus.h, jit/jit-insn.c, jit/jit-internal.h,
jit/jit-interp.c, jit/jit-opcode.c, jit/jit-rules-arm.c,
jit/jit-rules-arm.sel, jitplus/jit-plus-function.cpp:
add support for outgoing parameter areas, which should reduce
the overhead of function calls that involve stacked arguments
on non-x86 platforms; use parameter areas in the ARM back end.
* include/jit/jit-plus.h, include/jit/jit-value.h, jit/jit-insn.c,
jit/jit-internal.h, jit/jit-reg-alloc.c, jit/jit-rules-x86.c,
jit/jit-value.c: don't over-allocate x86 stack frames if
EBX, ESI, and EDI don't need to be saved; don't perform global
register allocation on stacked parameters because it confuses
the register spill logic.
* jit/jit-reg-alloc.c (_jit_regs_load_value): avoid unnecessary
spills if a temporary value won't be used again in the current block.
2004-06-09 Rhys Weatherley <rweather@southern-storm.com.au>
* jit/jit-rules-arm.c (flush_constants): update the instruction
location after flushing the constant table.
* jit/jit-gen-arm.h: fix some bugs in the encoding of floating-point
load and store instructions.
* jit/jit-gen-arm.c (_arm_alu_reg_imm): forgot to update the
instruction pointer when loading the immediate value.
* jit/jit-gen-arm.c: optimize the use of rotated immediate values.
* jit/jit-rules-arm.c (_jit_gen_load_value): use ARM register pairs
properly for "long" and "float64" values.
2004-06-08 Rhys Weatherley <rweather@southern-storm.com.au>
* jit/Makefile.am, jit/jit-cpuid-x86.c, jit/jit-cpuid-x86.h:
add an API for querying the x86 "cpuid" information.
* include/jit/jit-opcode.h, jit/jit-interp.c, jit/jit-opcode.c:
remove obsolete opcodes which violate "_jit_load_opcode"'s rules.
* jit/jit-reg-alloc.c, jit/jit-rules-x86.c, jit/jit-rules-x86.sel:
more x86 instruction selection rules.
* jit/jit-reg-alloc.c (_jit_regs_set_outgoing): implement
missing function.
* jit/jit-gen-arm.h (arm_call): use a more efficient form of
call for offsets beyond the simple target range.
* jit/jit-rules-arm.sel, tools/gen-sel-parser.y,
tools/gen-sel-scanner.l: introduce conditional rules into "gen-sel"
so that we can disable certain rules on ARM platforms that lack
floating-point support.
* jit/jit-rules-arm.c (_jit_gen_spill_reg): spill properly to
global registers for ARM.
libjit/ChangeLog view on Meta::CPAN
2004-05-03 Rhys Weatherley <rweather@southern-storm.com.au>
* tools/gen-apply.c: improve the maintainability of the apply macros.
* include/jit/jit-block.h, include/jit/jit-context.h,
include/jit/jit-dump.h, include/jit/jit-elf.h, include/jit/jit-init.h,
include/jit/jit-meta.h, include/jit/jit-type.h, include/jit/jit-util.h,
jit/jit-type.c, jit/jit-value.c: add more instances of JIT_NOTHROW
to the headers; add some special meta tags for types.
* include/jit/jit-type.h, jit/jit-type.c: tag the system-dependent
types so that they can be distinguished from the fixed-sized types
when it is necessary to do so.
* jit/Makefile.am, jit/jit-mangle.c: add the beginnings of a C++
name mangler, to help with extracting C++ symbols from dynamic
shared libraries.
* doc/Makefile.am, doc/libjit.texi, doc/mangling_rules.txt,
include/jit/jit-type.h, include/jit/jit-util.h, jit/jit-mangle.c,
jit/jit-type.c: continue the implementation of the C++ name
mangling routines.
2004-05-01 Rhys Weatherley <rweather@southern-storm.com.au>
* jit/jit-apply-x86.c, jit/jit-rules-x86.c, tools/gen-apply.c:
fix function prolog and epilog handling for structure returns
under x86/cdecl.
* configure.in: set the initial working version to 0.0.1.
* jit/jit-rules-x86.c: implement x86 code generation for some of
the basic operators.
* include/jit/jit-insn.h, include/jit/jit-opcode.h,
include/jit/jit-plus.h, jit/jit-insn.c, jit/jit-interp.cpp,
jit/jit-opcode.c, jit/jit-reg-alloc.c, jit/jit-reg-alloc.h,
jit/jit-rules-interp.c, jitplus/jit-plus-function.cpp:
add array access instructions.
* tools/gen-apply.c: clean up the builder/parser macros and
detect padding of the floating-point registers.
2004-04-30 Rhys Weatherley <rweather@southern-storm.com.au>
* include/jit/jit-function.h, include/jit/jit-insn.h,
include/jit/jit-opcode.h, include/jit/jit-plus.h, jit/jit-except.cpp,
jit/jit-function.c, jit/jit-insn.c, jit/jit-internal.h,
jit/jit-interp.cpp, jit/jit-interp.h, jit/jit-opcode.c,
jit/jit-rules-arm.c, jit/jit-rules-interp.c, jit/jit-rules-x86.c,
jit/jit-rules.h, jitplus/jit-plus-function.cpp: put some
infrastructure in place to support "try"-related instructions.
* dpas/dpas-parser.y, dpas/dpas-scope.h, dpas/dpas-semantics.h:
introduce effective address based l-values into dpas.
2004-04-27 Rhys Weatherley <rweather@southern-storm.com.au>
* jit/jit-dump.c, jit/jit-reg-alloc.c: fix a register stack bug
in "_jit_regs_set_value"; add some more debug code.
* include/jit/jit-opcode.h, jit/jit-insn.c, jit/jit-internal.h,
jit/jit-interp.cpp, jit/jit-opcode.c: wrap function calls
with code to set up and remove exception frame information.
* jit/jit-function.c, jit/jit-insn.c, jit/jit-internal.h:
intuit "nothrow" and "noreturn" flags for compiled functions.
* include/jit/jit-insn.h, include/jit/jit-plus.h, jit/jit-insn.c,
jitplus/jit-plus-function.cpp: add "jit_insn_throw",
"jit_insn_rethrow", and "jit_insn_get_call_stack" to assist
with throwing exceptions.
* include/jit/jit-insn.h, jit/jit-block.c, jit/jit-insn.c,
jit/jit-internal.h: add some instructions for managing "try" blocks.
* include/jit/jit-opcode.h, jit/jit-block.c, jit/jit-insn.c,
jit/jit-internal.h, jit/jit-opcode.c: more work on "try" blocks.
2004-04-26 Rhys Weatherley <rweather@southern-storm.com.au>
* jit/jit-reg-alloc.c, jit/jit-reg-alloc.h: add functions to
assist with register allocation on stack-based architectures.
* jit/jit-rules-interp.c: implement "_jit_gen_load_value" for
the interpreter backend.
* jit/jit-interp.cpp, jit/jit-interp.h: fix some opcode names that
should be prefixed with "JIT_OP".
* jit/jit-function.c, jit/jit-internal.h, jit/jit-reg-alloc.c,
jit/jit-reg-alloc.h, jit/jit-rules-arm.c, jit/jit-rules-interp.c,
jit/jit-rules-interp.h, jit/jit-rules-x86.c, jit/jit-rules.h:
interpreter back end code generation for binary, unary, and
branch opcodes.
* doc/libjit.texi, jit/jit-rules-interp.c: fix the Texinfo section
markers in the "Porting" chapter.
* jit/jit-rules-interp.c: code generation for interpreter return's.
* include/jit/jit-except.h, include/jit/jit-function.h,
include/jit/jit-plus.h, jit/jit-except.cpp, jit/jit-function.c,
jit/jit-interp.cpp, jit/jit-interp.h, jit/jit-rules-interp.c,
jitplus/jit-plus-function.cpp: implement "jit_function_apply"
and "jit_function_apply_vararg" for the interpreter back end.
* jitplus/jit-plus-function.cpp: initialization errors in
the C++ binding.
* jit/jit-function.c, jit/jit-insn.c, jit/jit-interp.cpp,
jit/jit-rules-interp.c: work on code generation for function calls.
* doc/libjit.texi, include/jit/jit-insn.h, include/jit/jit-plus.h,
jit/jit-insn.c, jitplus/jit-plus-function.cpp, tutorial/t2.c:
add a "flags" parmeter to "jit_insn_call" and friends, so that
"nothrow", "noreturn", and "tail" options can be supplied.
* jit/jit-dump.c, jit/jit-interp.cpp, jit/jit-interp.h,
jit/jit-opcode.c, jit/jit-rules-interp.c: dump the translated
( run in 0.520 second using v1.01-cache-2.11-cpan-02777c243ea )