]> git.unchartedbackwaters.co.uk Git - francis/libjit.git/log
francis/libjit.git
19 years agoadd instruction selection rules for new register allocator;
Aleksey Demakov [Tue, 18 Apr 2006 09:53:23 +0000 (09:53 +0000)]
add instruction selection rules for new register allocator;
add --enable-new-reg-alloc configure option.

19 years agoadd _jit_gen_exch_top and _jit_gen_spill_top functions; add some tracing
Aleksey Demakov [Fri, 14 Apr 2006 14:44:29 +0000 (14:44 +0000)]
add _jit_gen_exch_top and _jit_gen_spill_top functions; add some tracing

19 years agonew register allocator is improved and extended to support stack registers
Aleksey Demakov [Fri, 14 Apr 2006 11:46:05 +0000 (11:46 +0000)]
new register allocator is improved and extended to support stack registers

19 years agoinitialize thrown_exception value
Aleksey Demakov [Mon, 10 Apr 2006 19:42:40 +0000 (19:42 +0000)]
initialize thrown_exception value

19 years agoadd jump table into jit_opcodes array
Aleksey Demakov [Sat, 8 Apr 2006 09:26:05 +0000 (09:26 +0000)]
add jump table into jit_opcodes array

19 years agoExtended selection rules syntax.
Aleksey Demakov [Sat, 8 Apr 2006 07:02:57 +0000 (07:02 +0000)]
Extended selection rules syntax.

19 years agoAdded function entry point indirector. Fixed tail call bug.
Aleksey Demakov [Thu, 6 Apr 2006 23:42:31 +0000 (23:42 +0000)]
Added function entry point indirector. Fixed tail call bug.

19 years agoAdd `reversible', `x87arith', `copy' keywords and fix bugs.
Aleksey Demakov [Mon, 3 Apr 2006 05:10:35 +0000 (05:10 +0000)]
Add `reversible', `x87arith', `copy' keywords and fix bugs.

19 years ago2006-03-23 Klaus Treichel <ktreichel@web.de>
Klaus Treichel [Thu, 23 Mar 2006 18:56:52 +0000 (18:56 +0000)]
2006-03-23  Klaus Treichel  <ktreichel@web.de>

* jit/jitc-except.c: Walk the stack to build the stack trace in
jit_exception_get_stack_trace when the frame is not broken.

19 years agoadded gen-rules tool
Aleksey Demakov [Wed, 22 Mar 2006 18:48:02 +0000 (18:48 +0000)]
added gen-rules tool

19 years ago2006-03-12 Klaus Treichel <ktreichel@web.de>
Klaus Treichel [Sun, 12 Mar 2006 20:04:39 +0000 (20:04 +0000)]
2006-03-12  Klaus Treichel  <ktreichel@web.de>

* jit/jit-insn.c: Pop the setjump context on return from functions with
a catcher.

2006-03-11  Kirill Kononenko  <Kirill.Kononenko@gmail.com>

* jit/jit-insn.c (create_call_setup_insn): fix tail calls, work
if the called function is not the callee function
(thanks klausT for finding the bug).

19 years agofixed int to uint and uint to int conversion
Aleksey Demakov [Mon, 27 Feb 2006 13:23:44 +0000 (13:23 +0000)]
fixed int to uint and uint to int conversion

19 years agofixed JIT_OP_STORE_RELATIVE_LONG
Aleksey Demakov [Sun, 26 Feb 2006 17:08:02 +0000 (17:08 +0000)]
fixed JIT_OP_STORE_RELATIVE_LONG

19 years agocorrected opcode in x86_pop_mem and x86_pop_membase
Aleksey Demakov [Sun, 26 Feb 2006 07:59:09 +0000 (07:59 +0000)]
corrected opcode in x86_pop_mem and x86_pop_membase

19 years agofixed jit_insn_address_of_label()
Aleksey Demakov [Thu, 23 Feb 2006 23:58:24 +0000 (23:58 +0000)]
fixed jit_insn_address_of_label()

19 years ago_jit_create_call_return_insns returns 1 (success) if there is no
Aleksey Demakov [Mon, 20 Feb 2006 14:05:03 +0000 (14:05 +0000)]
_jit_create_call_return_insns returns 1 (success) if there is no
return value or the return value is a struct returned via pointer.

19 years agoNew local register allocator.
Aleksey Demakov [Sat, 18 Feb 2006 19:58:10 +0000 (19:58 +0000)]
New local register allocator.

19 years agoAdded index field to jit_value struct. Included CFG code into build.
Aleksey Demakov [Mon, 13 Feb 2006 09:26:18 +0000 (09:26 +0000)]
Added index field to jit_value struct. Included CFG code into build.

19 years agoFixed JIT_OP_CALL_FINALLY
Aleksey Demakov [Sun, 12 Feb 2006 13:55:09 +0000 (13:55 +0000)]
Fixed JIT_OP_CALL_FINALLY

19 years agobuild control flow graph and do liveness analyses on it
Aleksey Demakov [Fri, 10 Feb 2006 14:00:39 +0000 (14:00 +0000)]
build control flow graph and do liveness analyses on it

19 years agofixed typo in JIT_OP_JUMP_TABLE
Aleksey Demakov [Fri, 3 Feb 2006 18:50:14 +0000 (18:50 +0000)]
fixed typo in JIT_OP_JUMP_TABLE

19 years agooptimize _jit_gen_load_value and allow to move a value from one register to another
Aleksey Demakov [Mon, 30 Jan 2006 11:35:01 +0000 (11:35 +0000)]
optimize _jit_gen_load_value and allow to move a value from one register to another

19 years agoNamed proper dpas arrays author.
Aleksey Demakov [Tue, 17 Jan 2006 08:49:46 +0000 (08:49 +0000)]
Named proper dpas arrays author.

19 years agoUpdating working version to "0.0.7".
Rhys Weatherley [Sun, 15 Jan 2006 06:53:05 +0000 (06:53 +0000)]
Updating working version to "0.0.7".

19 years agoUpdate version for the "0.0.6" release. r.0.0.6
Rhys Weatherley [Sun, 15 Jan 2006 06:50:40 +0000 (06:50 +0000)]
Update version for the "0.0.6" release.

19 years agofix register allocation for long values
Aleksey Demakov [Fri, 13 Jan 2006 20:26:19 +0000 (20:26 +0000)]
fix register allocation for long values

19 years agofixed object file name
Aleksey Demakov [Fri, 13 Jan 2006 15:39:26 +0000 (15:39 +0000)]
fixed object file name

19 years agoFixed return type of inrinsic function that return exception code.
Aleksey Demakov [Fri, 13 Jan 2006 11:10:06 +0000 (11:10 +0000)]
Fixed return type of inrinsic function that return exception code.

19 years agoimplement JIT_OP_JUMP_TABLE in interpreter
Aleksey Demakov [Wed, 11 Jan 2006 00:24:42 +0000 (00:24 +0000)]
implement JIT_OP_JUMP_TABLE in interpreter

19 years agoadded jit_insn_jump_table
Aleksey Demakov [Tue, 10 Jan 2006 21:24:42 +0000 (21:24 +0000)]
added jit_insn_jump_table

19 years agoadded fixup_absolute_list field to _jit_block struct
Aleksey Demakov [Tue, 10 Jan 2006 21:03:44 +0000 (21:03 +0000)]
added fixup_absolute_list field to _jit_block struct

19 years agoadded x86_jump_memindex
Aleksey Demakov [Tue, 10 Jan 2006 20:48:35 +0000 (20:48 +0000)]
added x86_jump_memindex

19 years agochange jit_builtin_return_int to use leal instead of movl
Aleksey Demakov [Sun, 8 Jan 2006 04:25:24 +0000 (04:25 +0000)]
change jit_builtin_return_int to use leal instead of movl

19 years agoimplement JIT_OP_MEMMOVE
Aleksey Demakov [Wed, 28 Dec 2005 14:11:38 +0000 (14:11 +0000)]
implement JIT_OP_MEMMOVE

19 years agoremove cache_start
Aleksey Demakov [Sat, 24 Dec 2005 09:48:42 +0000 (09:48 +0000)]
remove cache_start

19 years agoadd jit_cache_get_start_method() and remove jit_function.start_address field
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

19 years agoimplement array expressions
Aleksey Demakov [Fri, 23 Dec 2005 21:26:50 +0000 (21:26 +0000)]
implement array expressions

19 years agoimplemented JIT_OP_MEMCPY for x86
Aleksey Demakov [Thu, 22 Dec 2005 08:24:28 +0000 (08:24 +0000)]
implemented JIT_OP_MEMCPY for x86

19 years agoimplemented JIT_OP_MEMSET for x86
Aleksey Demakov [Wed, 21 Dec 2005 21:13:46 +0000 (21:13 +0000)]
implemented JIT_OP_MEMSET for x86

19 years agoFloating point element load and store optimization. Register allocation fixes.
Aleksey Demakov [Mon, 19 Dec 2005 20:36:40 +0000 (20:36 +0000)]
Floating point element load and store optimization. Register allocation fixes.

19 years agoImplemented jit_stack_trace_get_offset()
Aleksey Demakov [Sun, 18 Dec 2005 17:44:54 +0000 (17:44 +0000)]
Implemented jit_stack_trace_get_offset()

19 years agojit_insn_address_of() returns 0 for constant values
Aleksey Demakov [Thu, 15 Dec 2005 18:10:09 +0000 (18:10 +0000)]
jit_insn_address_of() returns 0 for constant values

19 years agoadd reviewer for constant patch
Gopal V [Thu, 15 Dec 2005 10:14:31 +0000 (10:14 +0000)]
add reviewer for constant patch

19 years agoUse temporaries for address_of constants
Gopal V [Thu, 15 Dec 2005 10:12:26 +0000 (10:12 +0000)]
Use temporaries for address_of constants

19 years agofloating point changes
Aleksey Demakov [Tue, 13 Dec 2005 16:43:51 +0000 (16:43 +0000)]
floating point changes

19 years agoMake dump_object_code() work on cygwin.
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.

19 years agoMore selection rules for x86.
Aleksey Demakov [Sat, 10 Dec 2005 12:37:51 +0000 (12:37 +0000)]
More selection rules for x86.

19 years agoMerged with the latest version of x86-codegen.h from the Mono project
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

19 years ago2005-11-19 Klaus Treichel <ktreichel@web.de>
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.

20 years agoImplement tail calls properly.
Rhys Weatherley [Thu, 18 Nov 2004 01:41:54 +0000 (01:41 +0000)]
Implement tail calls properly.

21 years agojit_insn_store: use the destination type to determine the store opcode,
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.

21 years agoReturn 0 when a sub-function throws an exception, not 1.
Rhys Weatherley [Tue, 2 Nov 2004 06:22:07 +0000 (06:22 +0000)]
Return 0 when a sub-function throws an exception, not 1.

21 years agojit_function_compile: clear block addresses and fixup lists if we need
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).

21 years agoHandle the special case of constant destination pointers in
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.

21 years agofix ChangeLog entry
Gopal V [Fri, 29 Oct 2004 16:14:02 +0000 (16:14 +0000)]
fix ChangeLog entry

21 years agofix manpage formatting - patch to bug #10779
Gopal V [Fri, 29 Oct 2004 16:10:44 +0000 (16:10 +0000)]
fix manpage formatting - patch to bug #10779

21 years agoImplement some of the locking code for the debugging API.
Rhys Weatherley [Thu, 28 Oct 2004 01:23:08 +0000 (01:23 +0000)]
Implement some of the locking code for the debugging API.

21 years agoTest case for the long-form backward branch bug.
Rhys Weatherley [Wed, 13 Oct 2004 00:03:25 +0000 (00:03 +0000)]
Test case for the long-form backward branch bug.

21 years agooutput_branch: correct the offset when outputting a long-form backward branch.
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.

21 years agoRedesign the debugger API so that it contains functions
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.

21 years agoUse a common helper function for performing debug hook tests on
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.

21 years agoClean up the breakpoint API and implement debug hooks for the interpreter.
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.

21 years agoAdd instructions and function API's for supporting debug line
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.

21 years agoPointer-relative loads and stores for structures in the x86 back end.
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.

21 years agoAdd some support for structure copying to 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.

21 years agoThe pointer value for indirect and vtable calls was being pushed onto the stack twice.
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.

21 years agoAdd a sample program that demonstrates a simple VM based
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).

21 years agoFix x86 code generation for floating-point return instructions.
Rhys Weatherley [Mon, 30 Aug 2004 02:01:22 +0000 (02:01 +0000)]
Fix x86 code generation for floating-point return instructions.

21 years agocpuid_query: use %ebx in a way that doesn't confuse PIC mode in some
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).

21 years agoRe-implement the "push_return_area_ptr" patch so as to avoid wasting
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.

21 years agoAccount for the extra value that is added to the stack by the
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.

21 years agoMinor fix to previous checkin.
Rhys Weatherley [Sun, 8 Aug 2004 01:29:57 +0000 (01:29 +0000)]
Minor fix to previous checkin.

21 years agoUpdating working version to "0.0.3".
Rhys Weatherley [Sun, 8 Aug 2004 01:14:18 +0000 (01:14 +0000)]
Updating working version to "0.0.3".

21 years agoUpdate version for the "0.0.4" release. r.0.0.4
Rhys Weatherley [Sun, 8 Aug 2004 01:11:36 +0000 (01:11 +0000)]
Update version for the "0.0.4" release.

21 years agoSupport for parallel builds.
Rhys Weatherley [Thu, 5 Aug 2004 00:11:27 +0000 (00:11 +0000)]
Support for parallel builds.

21 years agoDocumentation updates.
Rhys Weatherley [Thu, 5 Aug 2004 00:07:25 +0000 (00:07 +0000)]
Documentation updates.

21 years agoFix the operand types for "call_vtable_ptr".
Rhys Weatherley [Wed, 4 Aug 2004 06:59:22 +0000 (06:59 +0000)]
Fix the operand types for "call_vtable_ptr".

21 years agoWrite an x86-64 assembly version of "__builtin_apply", because
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.

21 years agoFix a crash in gen-apply under x86-64.
Rhys Weatherley [Fri, 25 Jun 2004 00:17:59 +0000 (00:17 +0000)]
Fix a crash in gen-apply under x86-64.

21 years agoUse separate JIT_REG_xxx flags for float32, float64, and nfloat
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).

21 years agoProperly set the "may_throw" flag for opcodes that throw exceptions and
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.

21 years agoMove the code for loading/storing small structures into a central location.
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.

21 years agoRewrite the x86 and ARM parameter handling routines to centralise the
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.

21 years agoAllow floating-point values to be passed in "fastcall" registers.
Rhys Weatherley [Thu, 17 Jun 2004 00:38:33 +0000 (00:38 +0000)]
Allow floating-point values to be passed in "fastcall" registers.

21 years ago_jit_regs_set_outgoing: pass 64-bit "fastcall" parameters in ECX:EDX,
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.

21 years agoAdd a missing semi-colon.
Rhys Weatherley [Wed, 16 Jun 2004 09:02:08 +0000 (09:02 +0000)]
Add a missing semi-colon.

21 years agoEnable register allocation for 64-bit values under x86 and ARM; expand some
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.

21 years agoAdd some test cases for parameter passing; fix fastcall/stdcall
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.

21 years agoAdd the "outgoing_frame_posn" instruction, to support tail calls.
Rhys Weatherley [Sun, 13 Jun 2004 01:48:58 +0000 (01:48 +0000)]
Add the "outgoing_frame_posn" instruction, to support tail calls.

21 years agoImplement or stub missing x86 instruction selection rules.
Rhys Weatherley [Sat, 12 Jun 2004 00:54:22 +0000 (00:54 +0000)]
Implement or stub missing x86 instruction selection rules.

21 years agoOptimize the x86 function epilog when we are certain that the
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).

21 years agoImplement global register allocation for parameters in stack slots.
Rhys Weatherley [Fri, 11 Jun 2004 02:01:18 +0000 (02:01 +0000)]
Implement global register allocation for parameters in stack slots.

21 years agoImplement tail calls from a function to itself.
Rhys Weatherley [Fri, 11 Jun 2004 01:39:00 +0000 (01:39 +0000)]
Implement tail calls from a function to itself.

21 years ago_jit_regs_load_value: avoid unnecessary spills if a temporary value
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.

21 years agoDon't over-allocate x86 stack frames if EBX, ESI, and EDI don't need to
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.

21 years agoAdd support for outgoing parameter areas, which should reduce
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.

21 years agoDump the hex address of external functions, to aid with debugging
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.

21 years agoFlush the constant pool after unconditional branches, to try to
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.

21 years agoRedesign the ARM code generation macros so that they have stronger
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.

21 years ago_jit_gen_load_value: use ARM register pairs properly for "long"
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.