]> git.unchartedbackwaters.co.uk Git - francis/libjit.git/log
francis/libjit.git
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.

21 years agoOptimize the use of rotated immediate values.
Rhys Weatherley [Wed, 9 Jun 2004 07:12:10 +0000 (07:12 +0000)]
Optimize the use of rotated immediate values.

21 years ago_arm_alu_reg_imm: forgot to update the instruction pointer when
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.

21 years agoFix some bugs in the encoding of floating-point load and store instructions.
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.

21 years agoflush_constants: update the instruction location after flushing the
Rhys Weatherley [Wed, 9 Jun 2004 01:16:02 +0000 (01:16 +0000)]
flush_constants: update the instruction location after flushing the
constant table.

21 years agoImplement a constant pool for ARM, which gets complicated constants out
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.

21 years agoARM parameters cannot be split between registers and the stack.
Rhys Weatherley [Tue, 8 Jun 2004 07:14:25 +0000 (07:14 +0000)]
ARM parameters cannot be split between registers and the stack.

21 years agoMinor register assignment bugs.
Rhys Weatherley [Tue, 8 Jun 2004 06:40:53 +0000 (06:40 +0000)]
Minor register assignment bugs.

21 years ago_jit_gen_spill_reg: spill properly to global registers for ARM.
Rhys Weatherley [Tue, 8 Jun 2004 06:16:12 +0000 (06:16 +0000)]
_jit_gen_spill_reg: spill properly to global registers for ARM.

21 years ago_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.

21 years agoIntroduce conditional rules into "gen-sel" so that we can disable
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.

21 years agoarm_call: use a more efficient form of call for offsets beyond the
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.

21 years ago_jit_regs_set_outgoing: implement missing function.
Rhys Weatherley [Tue, 8 Jun 2004 03:17:14 +0000 (03:17 +0000)]
_jit_regs_set_outgoing: implement missing function.

21 years agoMore x86 instruction selection rules.
Rhys Weatherley [Tue, 8 Jun 2004 02:30:55 +0000 (02:30 +0000)]
More x86 instruction selection rules.

21 years agoRemove obsolete opcodes which violate "_jit_load_opcode"'s rules.
Rhys Weatherley [Tue, 8 Jun 2004 00:46:54 +0000 (00:46 +0000)]
Remove obsolete opcodes which violate "_jit_load_opcode"'s rules.

21 years agoAdd an API for querying the x86 "cpuid" information.
Rhys Weatherley [Mon, 7 Jun 2004 22:53:50 +0000 (22:53 +0000)]
Add an API for querying the x86 "cpuid" information.

21 years agoFix ROUND_END_PTR so that it adds the size after casting to jit_nuint.
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.

21 years ago(jit_flush_exec): warning fix for ia64.
Rhys Weatherley [Mon, 7 Jun 2004 10:00:49 +0000 (10:00 +0000)]
(jit_flush_exec): warning fix for ia64.

21 years agoGen-apply fix for ia64.
Rhys Weatherley [Mon, 7 Jun 2004 09:54:27 +0000 (09:54 +0000)]
Gen-apply fix for ia64.

21 years agoBypass the auto-detection logic in gen-apply under MacOSX because
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.

21 years agoAdd "_setjmp" to the list of names to try to work around the
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).

21 years agoFix misnaming of jit_type_get_abi, jit_abi_stdcall, and jit_abi_fastcall.
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.