]>
git.unchartedbackwaters.co.uk Git - francis/libjit.git/log
Rhys Weatherley [Sun, 15 Jan 2006 06:50:40 +0000 (06:50 +0000)]
Update version for the "0.0.6" release.
Aleksey Demakov [Fri, 13 Jan 2006 20:26:19 +0000 (20:26 +0000)]
fix register allocation for long values
Aleksey Demakov [Fri, 13 Jan 2006 15:39:26 +0000 (15:39 +0000)]
fixed object file name
Aleksey Demakov [Fri, 13 Jan 2006 11:10:06 +0000 (11:10 +0000)]
Fixed return type of inrinsic function that return exception code.
Aleksey Demakov [Wed, 11 Jan 2006 00:24:42 +0000 (00:24 +0000)]
implement JIT_OP_JUMP_TABLE in interpreter
Aleksey Demakov [Tue, 10 Jan 2006 21:24:42 +0000 (21:24 +0000)]
added jit_insn_jump_table
Aleksey Demakov [Tue, 10 Jan 2006 21:03:44 +0000 (21:03 +0000)]
added fixup_absolute_list field to _jit_block struct
Aleksey Demakov [Tue, 10 Jan 2006 20:48:35 +0000 (20:48 +0000)]
added x86_jump_memindex
Aleksey Demakov [Sun, 8 Jan 2006 04:25:24 +0000 (04:25 +0000)]
change jit_builtin_return_int to use leal instead of movl
Aleksey Demakov [Wed, 28 Dec 2005 14:11:38 +0000 (14:11 +0000)]
implement JIT_OP_MEMMOVE
Aleksey Demakov [Sat, 24 Dec 2005 09:48:42 +0000 (09:48 +0000)]
remove cache_start
Aleksey Demakov [Sat, 24 Dec 2005 06:55:13 +0000 (06:55 +0000)]
add jit_cache_get_start_method() and remove jit_function.start_address field
Aleksey Demakov [Fri, 23 Dec 2005 21:26:50 +0000 (21:26 +0000)]
implement array expressions
Aleksey Demakov [Thu, 22 Dec 2005 08:24:28 +0000 (08:24 +0000)]
implemented JIT_OP_MEMCPY for x86
Aleksey Demakov [Wed, 21 Dec 2005 21:13:46 +0000 (21:13 +0000)]
implemented JIT_OP_MEMSET for x86
Aleksey Demakov [Mon, 19 Dec 2005 20:36:40 +0000 (20:36 +0000)]
Floating point element load and store optimization. Register allocation fixes.
Aleksey Demakov [Sun, 18 Dec 2005 17:44:54 +0000 (17:44 +0000)]
Implemented jit_stack_trace_get_offset()
Aleksey Demakov [Thu, 15 Dec 2005 18:10:09 +0000 (18:10 +0000)]
jit_insn_address_of() returns 0 for constant values
Gopal V [Thu, 15 Dec 2005 10:14:31 +0000 (10:14 +0000)]
add reviewer for constant patch
Gopal V [Thu, 15 Dec 2005 10:12:26 +0000 (10:12 +0000)]
Use temporaries for address_of constants
Aleksey Demakov [Tue, 13 Dec 2005 16:43:51 +0000 (16:43 +0000)]
floating point changes
Aleksey Demakov [Tue, 13 Dec 2005 08:32:02 +0000 (08:32 +0000)]
Make dump_object_code() work on cygwin.
Make jit_assert() break only if its argument is zero.
Aleksey Demakov [Sat, 10 Dec 2005 12:37:51 +0000 (12:37 +0000)]
More selection rules for x86.
Aleksey Demakov [Sat, 10 Dec 2005 11:40:39 +0000 (11:40 +0000)]
Merged with the latest version of x86-codegen.h from the Mono project
Klaus Treichel [Sat, 19 Nov 2005 17:21:05 +0000 (17:21 +0000)]
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.
Rhys Weatherley [Thu, 18 Nov 2004 01:41:54 +0000 (01:41 +0000)]
Implement tail calls properly.
Rhys Weatherley [Fri, 5 Nov 2004 04:00:59 +0000 (04:00 +0000)]
jit_insn_store: use the destination type to determine the store opcode,
not the source value type.
Rhys Weatherley [Tue, 2 Nov 2004 06:22:07 +0000 (06:22 +0000)]
Return 0 when a sub-function throws an exception, not 1.
Rhys Weatherley [Tue, 2 Nov 2004 06:18:07 +0000 (06:18 +0000)]
jit_function_compile: clear block addresses and fixup lists if we need
to restart on a new cache page (minor alterations by Rhys).
Rhys Weatherley [Sun, 31 Oct 2004 01:53:21 +0000 (01:53 +0000)]
Handle the special case of constant destination pointers in
"store_relative" instructions, because otherwise the register
allocator gets confused.
Gopal V [Fri, 29 Oct 2004 16:14:02 +0000 (16:14 +0000)]
fix ChangeLog entry
Gopal V [Fri, 29 Oct 2004 16:10:44 +0000 (16:10 +0000)]
fix manpage formatting - patch to bug #10779
Rhys Weatherley [Thu, 28 Oct 2004 01:23:08 +0000 (01:23 +0000)]
Implement some of the locking code for the debugging API.
Rhys Weatherley [Wed, 13 Oct 2004 00:03:25 +0000 (00:03 +0000)]
Test case for the long-form backward branch bug.
Rhys Weatherley [Tue, 12 Oct 2004 01:19:24 +0000 (01:19 +0000)]
output_branch: correct the offset when outputting a long-form backward branch.
Rhys Weatherley [Wed, 6 Oct 2004 05:43:15 +0000 (05:43 +0000)]
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.
Rhys Weatherley [Mon, 4 Oct 2004 04:22:23 +0000 (04:22 +0000)]
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.
Rhys Weatherley [Mon, 4 Oct 2004 02:26:41 +0000 (02:26 +0000)]
Clean up the breakpoint API and implement debug hooks for the interpreter.
Rhys Weatherley [Mon, 4 Oct 2004 00:51:45 +0000 (00:51 +0000)]
Add instructions and function API's for supporting debug line
numbers and breakpoints.
Rhys Weatherley [Fri, 10 Sep 2004 03:01:24 +0000 (03:01 +0000)]
Pointer-relative loads and stores for structures in the x86 back end.
Rhys Weatherley [Thu, 9 Sep 2004 03:07:11 +0000 (03:07 +0000)]
Add some support for structure copying to the x86 back end.
Rhys Weatherley [Mon, 6 Sep 2004 07:29:20 +0000 (07:29 +0000)]
The pointer value for indirect and vtable calls was being pushed onto the stack twice.
Rhys Weatherley [Sun, 5 Sep 2004 09:50:57 +0000 (09:50 +0000)]
Add a sample program that demonstrates a simple VM based
on libjit (committed by Rhys).
Rhys Weatherley [Mon, 30 Aug 2004 02:01:22 +0000 (02:01 +0000)]
Fix x86 code generation for floating-point return instructions.
Rhys Weatherley [Mon, 16 Aug 2004 06:45:03 +0000 (06:45 +0000)]
cpuid_query: use %ebx in a way that doesn't confuse PIC mode in some
versions of gcc (bug #10022).
Rhys Weatherley [Fri, 13 Aug 2004 04:06:33 +0000 (04:06 +0000)]
Re-implement the "push_return_area_ptr" patch so as to avoid wasting
stack space in functions with more than one native function call.
Rhys Weatherley [Thu, 12 Aug 2004 00:53:50 +0000 (00:53 +0000)]
Account for the extra value that is added to the stack by the
"push_return_area_ptr" instruction.
Rhys Weatherley [Sun, 8 Aug 2004 01:29:57 +0000 (01:29 +0000)]
Minor fix to previous checkin.
Rhys Weatherley [Sun, 8 Aug 2004 01:14:18 +0000 (01:14 +0000)]
Updating working version to "0.0.3".
Rhys Weatherley [Sun, 8 Aug 2004 01:11:36 +0000 (01:11 +0000)]
Update version for the "0.0.4" release.
Rhys Weatherley [Thu, 5 Aug 2004 00:11:27 +0000 (00:11 +0000)]
Support for parallel builds.
Rhys Weatherley [Thu, 5 Aug 2004 00:07:25 +0000 (00:07 +0000)]
Documentation updates.
Rhys Weatherley [Wed, 4 Aug 2004 06:59:22 +0000 (06:59 +0000)]
Fix the operand types for "call_vtable_ptr".
Rhys Weatherley [Fri, 25 Jun 2004 06:24:40 +0000 (06:24 +0000)]
Write an x86-64 assembly version of "__builtin_apply", because
the version inside gcc has an unusable register ordering.
Rhys Weatherley [Fri, 25 Jun 2004 00:17:59 +0000 (00:17 +0000)]
Fix a crash in gen-apply under x86-64.
Rhys Weatherley [Thu, 24 Jun 2004 04:11:46 +0000 (04:11 +0000)]
Use separate JIT_REG_xxx flags for float32, float64, and nfloat
because some platforms need to put these values in different
types of registers (e.g. x86-64).
Rhys Weatherley [Mon, 21 Jun 2004 21:59:47 +0000 (21:59 +0000)]
Properly set the "may_throw" flag for opcodes that throw exceptions and
which are also supported by the back end.
Rhys Weatherley [Mon, 21 Jun 2004 02:09:44 +0000 (02:09 +0000)]
Move the code for loading/storing small structures into a central location.
Rhys Weatherley [Fri, 18 Jun 2004 06:51:33 +0000 (06:51 +0000)]
Rewrite the x86 and ARM parameter handling routines to centralise the
code and fix several bugs; add new tests for fastcall and stdcall conventions.
Rhys Weatherley [Thu, 17 Jun 2004 00:38:33 +0000 (00:38 +0000)]
Allow floating-point values to be passed in "fastcall" registers.
Rhys Weatherley [Thu, 17 Jun 2004 00:31:03 +0000 (00:31 +0000)]
_jit_regs_set_outgoing: pass 64-bit "fastcall" parameters in ECX:EDX,
not in ECX:EBX.
Rhys Weatherley [Wed, 16 Jun 2004 09:02:08 +0000 (09:02 +0000)]
Add a missing semi-colon.
Rhys Weatherley [Mon, 14 Jun 2004 07:14:28 +0000 (07:14 +0000)]
Enable register allocation for 64-bit values under x86 and ARM; expand some
64-bit opcodes in the instruction selectors.
Rhys Weatherley [Mon, 14 Jun 2004 04:57:02 +0000 (04:57 +0000)]
Add some test cases for parameter passing; fix fastcall/stdcall
conventions for x86.
Rhys Weatherley [Sun, 13 Jun 2004 01:48:58 +0000 (01:48 +0000)]
Add the "outgoing_frame_posn" instruction, to support tail calls.
Rhys Weatherley [Sat, 12 Jun 2004 00:54:22 +0000 (00:54 +0000)]
Implement or stub missing x86 instruction selection rules.
Rhys Weatherley [Fri, 11 Jun 2004 03:48:00 +0000 (03:48 +0000)]
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).
Rhys Weatherley [Fri, 11 Jun 2004 02:01:18 +0000 (02:01 +0000)]
Implement global register allocation for parameters in stack slots.
Rhys Weatherley [Fri, 11 Jun 2004 01:39:00 +0000 (01:39 +0000)]
Implement tail calls from a function to itself.
Rhys Weatherley [Thu, 10 Jun 2004 05:20:05 +0000 (05:20 +0000)]
_jit_regs_load_value: avoid unnecessary spills if a temporary value
won't be used again in the current block.
Rhys Weatherley [Thu, 10 Jun 2004 03:06:07 +0000 (03:06 +0000)]
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.
Rhys Weatherley [Thu, 10 Jun 2004 02:05:56 +0000 (02:05 +0000)]
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.
Rhys Weatherley [Thu, 10 Jun 2004 00:38:35 +0000 (00:38 +0000)]
Dump the hex address of external functions, to aid with debugging
native disassembly dumps.
Rhys Weatherley [Thu, 10 Jun 2004 00:07:36 +0000 (00:07 +0000)]
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.
Rhys Weatherley [Wed, 9 Jun 2004 23:40:34 +0000 (23:40 +0000)]
Redesign the ARM code generation macros so that they have stronger
protection against buffer overruns.
Rhys Weatherley [Wed, 9 Jun 2004 07:39:37 +0000 (07:39 +0000)]
_jit_gen_load_value: use ARM register pairs properly for "long"
and "float64" values.
Rhys Weatherley [Wed, 9 Jun 2004 07:12:10 +0000 (07:12 +0000)]
Optimize the use of rotated immediate values.
Rhys Weatherley [Wed, 9 Jun 2004 06:49:13 +0000 (06:49 +0000)]
_arm_alu_reg_imm: forgot to update the instruction pointer when
loading the immediate value.
Rhys Weatherley [Wed, 9 Jun 2004 02:22:47 +0000 (02:22 +0000)]
Fix some bugs in the encoding of floating-point load and store instructions.
Rhys Weatherley [Wed, 9 Jun 2004 01:16:02 +0000 (01:16 +0000)]
flush_constants: update the instruction location after flushing the
constant table.
Rhys Weatherley [Tue, 8 Jun 2004 10:43:14 +0000 (10:43 +0000)]
Implement a constant pool for ARM, which gets complicated constants out
of the main stream of execution.
Rhys Weatherley [Tue, 8 Jun 2004 07:14:25 +0000 (07:14 +0000)]
ARM parameters cannot be split between registers and the stack.
Rhys Weatherley [Tue, 8 Jun 2004 06:40:53 +0000 (06:40 +0000)]
Minor register assignment bugs.
Rhys Weatherley [Tue, 8 Jun 2004 06:16:12 +0000 (06:16 +0000)]
_jit_gen_spill_reg: spill properly to global registers for ARM.
Rhys Weatherley [Tue, 8 Jun 2004 05:53:41 +0000 (05:53 +0000)]
_jit_gen_spill_reg: spill properly to global registers for ARM.
Rhys Weatherley [Tue, 8 Jun 2004 05:33:37 +0000 (05:33 +0000)]
Introduce conditional rules into "gen-sel" so that we can disable
certain rules on ARM platforms that lack floating-point support.
Rhys Weatherley [Tue, 8 Jun 2004 03:27:50 +0000 (03:27 +0000)]
arm_call: use a more efficient form of call for offsets beyond the
simple target range.
Rhys Weatherley [Tue, 8 Jun 2004 03:17:14 +0000 (03:17 +0000)]
_jit_regs_set_outgoing: implement missing function.
Rhys Weatherley [Tue, 8 Jun 2004 02:30:55 +0000 (02:30 +0000)]
More x86 instruction selection rules.
Rhys Weatherley [Tue, 8 Jun 2004 00:46:54 +0000 (00:46 +0000)]
Remove obsolete opcodes which violate "_jit_load_opcode"'s rules.
Rhys Weatherley [Mon, 7 Jun 2004 22:53:50 +0000 (22:53 +0000)]
Add an API for querying the x86 "cpuid" information.
Rhys Weatherley [Mon, 7 Jun 2004 22:07:11 +0000 (22:07 +0000)]
Fix ROUND_END_PTR so that it adds the size after casting to jit_nuint.
Rhys Weatherley [Mon, 7 Jun 2004 10:00:49 +0000 (10:00 +0000)]
(jit_flush_exec): warning fix for ia64.
Rhys Weatherley [Mon, 7 Jun 2004 09:54:27 +0000 (09:54 +0000)]
Gen-apply fix for ia64.
Rhys Weatherley [Mon, 7 Jun 2004 07:15:30 +0000 (07:15 +0000)]
Bypass the auto-detection logic in gen-apply under MacOSX because
it doesn't work with Apple's version of gcc.
Rhys Weatherley [Mon, 7 Jun 2004 04:36:31 +0000 (04:36 +0000)]
Add "_setjmp" to the list of names to try to work around the
"setjmp" macro (needed for Win32).
Rhys Weatherley [Mon, 7 Jun 2004 04:25:46 +0000 (04:25 +0000)]
Fix misnaming of jit_type_get_abi, jit_abi_stdcall, and jit_abi_fastcall.
Rhys Weatherley [Mon, 7 Jun 2004 04:21:25 +0000 (04:21 +0000)]
Expand floating-point instructions for ARM.
Rhys Weatherley [Mon, 7 Jun 2004 03:18:34 +0000 (03:18 +0000)]
Add floating-point instruction macros.
Rhys Weatherley [Mon, 7 Jun 2004 01:01:33 +0000 (01:01 +0000)]
Use "sigsetjmp" instead of "setjmp", because "setjmp" may
be a macro on some systems.