]> git.unchartedbackwaters.co.uk Git - francis/libjit.git/log
francis/libjit.git
18 years agoprovide for user defined on-demand compilation drivers
Aleksey Demakov [Sun, 4 Feb 2007 14:31:32 +0000 (14:31 +0000)]
provide for user defined on-demand compilation drivers

18 years agofix bug with input register thrashing introduced 2006-12-30
Aleksey Demakov [Sun, 28 Jan 2007 20:14:57 +0000 (20:14 +0000)]
fix bug with input register thrashing introduced 2006-12-30

18 years agofix bug loading registers for ternary ops
Aleksey Demakov [Sun, 28 Jan 2007 17:23:32 +0000 (17:23 +0000)]
fix bug loading registers for ternary ops

18 years agotweak gcc version of the _JIT_ARCH_GET_CURRENT_FRAME macro
Aleksey Demakov [Thu, 25 Jan 2007 21:29:08 +0000 (21:29 +0000)]
tweak gcc version of the _JIT_ARCH_GET_CURRENT_FRAME macro

18 years agoremove stack frame set up and restore instructions from redirector
Aleksey Demakov [Thu, 25 Jan 2007 20:55:53 +0000 (20:55 +0000)]
remove stack frame set up and restore instructions from redirector

18 years agoremove the closure_entry field from jit_function_t
Aleksey Demakov [Tue, 23 Jan 2007 06:42:33 +0000 (06:42 +0000)]
remove the closure_entry field from jit_function_t

18 years agocomplete regalloc support for x87
Aleksey Demakov [Wed, 17 Jan 2007 07:38:47 +0000 (07:38 +0000)]
complete regalloc support for x87

18 years agoAdd ChangeLog entry for the typo fix.
Klaus Treichel [Fri, 12 Jan 2007 18:28:53 +0000 (18:28 +0000)]
Add ChangeLog entry for the typo fix.

18 years agofixed a typo
Heiko Weiss [Fri, 12 Jan 2007 07:54:25 +0000 (07:54 +0000)]
fixed a typo

18 years agoRemoved FIXED registers from the alpha register class. Updated some
Thomas Cort [Thu, 4 Jan 2007 11:44:30 +0000 (11:44 +0000)]
Removed FIXED registers from the alpha register class. Updated some
.cvsignore files.

18 years agoadd register classes for alpha.
Thomas Cort [Thu, 4 Jan 2007 02:27:04 +0000 (02:27 +0000)]
add register classes for alpha.

18 years agohandle early_clobber flag for dest value;
Aleksey Demakov [Tue, 2 Jan 2007 17:00:18 +0000 (17:00 +0000)]
handle early_clobber flag for dest value;
apply patch #5540 with some modifications;

18 years agoadd support for register classes, clean up rule syntax and reg alloc interface
Aleksey Demakov [Fri, 29 Dec 2006 23:16:15 +0000 (23:16 +0000)]
add support for register classes, clean up rule syntax and reg alloc interface

18 years agoadd jit-reg-class.[ch] files to Makefile.am
Aleksey Demakov [Fri, 29 Dec 2006 21:11:11 +0000 (21:11 +0000)]
add jit-reg-class.[ch] files to Makefile.am

18 years agoadd register classes
Aleksey Demakov [Fri, 29 Dec 2006 19:08:14 +0000 (19:08 +0000)]
add register classes

18 years agomake sure that backend initialization is done only once
Aleksey Demakov [Tue, 19 Dec 2006 22:05:23 +0000 (22:05 +0000)]
make sure that backend initialization is done only once

18 years ago2006-12-17 Klaus Treichel <ktreichel@web.de>
Klaus Treichel [Sun, 17 Dec 2006 21:06:26 +0000 (21:06 +0000)]
2006-12-17  Klaus Treichel  <ktreichel@web.de>

* include/jit/jit-function.h, jit/jit-function.c: Add the function
jit_function_from_vtable_pointer to convert a vtable pointer back to the
jit_function_t.

18 years agofix bug freeing stack register that is not on the stack top
Aleksey Demakov [Tue, 28 Nov 2006 20:26:42 +0000 (20:26 +0000)]
fix bug freeing stack register that is not on the stack top

18 years agoapplied patch #5503 with some modifications
Aleksey Demakov [Tue, 28 Nov 2006 16:10:07 +0000 (16:10 +0000)]
applied patch #5503 with some modifications

18 years agoadd POSITION_INDEPENDENT context option
Aleksey Demakov [Sun, 26 Nov 2006 20:42:01 +0000 (20:42 +0000)]
add POSITION_INDEPENDENT context option

18 years agopatch #5278
Aleksey Demakov [Sun, 26 Nov 2006 16:34:26 +0000 (16:34 +0000)]
patch #5278

18 years agofix global register use cost computation;
Aleksey Demakov [Sun, 26 Nov 2006 12:05:02 +0000 (12:05 +0000)]
fix global register use cost computation;
mark a few x86 instruction selection rules as commutative;

18 years agofix JIT_OP_LSIGN
Aleksey Demakov [Sat, 25 Nov 2006 15:41:53 +0000 (15:41 +0000)]
fix JIT_OP_LSIGN

18 years agoadd JIT_OP_ISIGN and JIT_OP_LSIGN, optimize JIT_OP_LNEG;
Aleksey Demakov [Sat, 25 Nov 2006 14:43:10 +0000 (14:43 +0000)]
add JIT_OP_ISIGN and JIT_OP_LSIGN, optimize JIT_OP_LNEG;
fix bug freeing stack registers;

19 years agoadd JIT_OP_IABS and JIT_OP_LABS rules
Aleksey Demakov [Fri, 10 Nov 2006 21:03:09 +0000 (21:03 +0000)]
add JIT_OP_IABS and JIT_OP_LABS rules

19 years agomake comparison opcodes use three-address patterns
Aleksey Demakov [Sat, 4 Nov 2006 14:57:10 +0000 (14:57 +0000)]
make comparison opcodes use three-address patterns

19 years agofixed a bug with coalescing values on x87-register stack
Aleksey Demakov [Wed, 1 Nov 2006 17:41:36 +0000 (17:41 +0000)]
fixed a bug with coalescing values on x87-register stack

19 years agoremove excessive and buggy patterns from JIT_OP_EXPAND_INT and
Aleksey Demakov [Sun, 22 Oct 2006 23:51:41 +0000 (23:51 +0000)]
remove excessive and buggy patterns from JIT_OP_EXPAND_INT and
JIT_OP_EXPAND_UINT rules

19 years agoenable coalescing of the destination and source values of a copy operation in
Aleksey Demakov [Wed, 18 Oct 2006 07:58:54 +0000 (07:58 +0000)]
enable coalescing of the destination and source values of a copy operation in
a single register;
tag x86 copy rules with the "copy" keyword;
use separate destination register for x86 trunc rules;

19 years agofix interpreter's struct handling;
Aleksey Demakov [Mon, 16 Oct 2006 02:27:24 +0000 (02:27 +0000)]
fix interpreter's struct handling;
fix segmentation fault in interpreter's fixup code;

19 years agofix uninitialized value use in create_value_entry();
Aleksey Demakov [Sat, 14 Oct 2006 04:24:31 +0000 (04:24 +0000)]
fix uninitialized value use in create_value_entry();
fix return code in interpreter's version of _jit_create_call_return_insns().

19 years ago2006-10-02 Klaus Treichel <ktreichel@web.de>
Klaus Treichel [Mon, 2 Oct 2006 18:01:50 +0000 (18:01 +0000)]
2006-10-02  Klaus Treichel  <ktreichel@web.de>

* jit/jit-intrinsic.c: Fix a copy bug in jit_ulong_mul (replace - by *).

19 years agoadd jit-arch-generic.h and jit-arch-x86.h files
Aleksey Demakov [Mon, 25 Sep 2006 06:56:36 +0000 (06:56 +0000)]
add jit-arch-generic.h and jit-arch-x86.h files

19 years agoresolve stack-walking problem with gcc 4.1 and introduce jit-arch-*.h
Aleksey Demakov [Sun, 24 Sep 2006 20:36:51 +0000 (20:36 +0000)]
resolve stack-walking problem with gcc 4.1 and introduce jit-arch-*.h
headers that may contain architecture dependent code.

19 years agoadd jit_insn_mark_breakpoint_variable() function.
Aleksey Demakov [Fri, 15 Sep 2006 16:17:20 +0000 (16:17 +0000)]
add jit_insn_mark_breakpoint_variable() function.

19 years agoremove jit-rules-x86.sel
Aleksey Demakov [Thu, 14 Sep 2006 17:16:36 +0000 (17:16 +0000)]
remove jit-rules-x86.sel

19 years agoremove --enable-new-reg-alloc option
Aleksey Demakov [Thu, 14 Sep 2006 15:13:57 +0000 (15:13 +0000)]
remove --enable-new-reg-alloc option

19 years agoremove "old" register allocator;
Aleksey Demakov [Thu, 14 Sep 2006 06:27:08 +0000 (06:27 +0000)]
remove "old" register allocator;

19 years agoadd _JIT_REGS_CLOBBER_STACK flag to be used for "only" rules
Aleksey Demakov [Sat, 9 Sep 2006 05:21:03 +0000 (05:21 +0000)]
add _JIT_REGS_CLOBBER_STACK flag to be used for "only" rules

19 years agoremove last traces of register allocation from the interpreter
Aleksey Demakov [Sat, 2 Sep 2006 13:46:28 +0000 (13:46 +0000)]
remove last traces of register allocation from the interpreter

19 years agoCommit configure.in which i missed the last time ;)
Klaus Treichel [Thu, 31 Aug 2006 18:24:05 +0000 (18:24 +0000)]
Commit configure.in which i missed the last time ;)

19 years ago2006-08-31 Klaus Treichel <ktreichel@web.de>
Klaus Treichel [Wed, 30 Aug 2006 19:43:13 +0000 (19:43 +0000)]
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.

19 years agodo not use jit-rules-x86.sel anymore
Aleksey Demakov [Wed, 30 Aug 2006 19:23:26 +0000 (19:23 +0000)]
do not use jit-rules-x86.sel anymore

19 years agoadd "frame" keyword to .ins file syntax
Aleksey Demakov [Wed, 30 Aug 2006 18:35:10 +0000 (18:35 +0000)]
add "frame" keyword to .ins file syntax

19 years agoreplace interpreter stack with 3 dedicated pseudo-registers
Aleksey Demakov [Wed, 30 Aug 2006 13:31:58 +0000 (13:31 +0000)]
replace interpreter stack with 3 dedicated pseudo-registers

19 years agodelete extra popping of setjmp context for interpreter
Aleksey Demakov [Tue, 29 Aug 2006 13:29:35 +0000 (13:29 +0000)]
delete extra popping of setjmp context for interpreter

19 years agoadd _jit_gen_move_top() to take part of the _jit_gen_exch_top() functionality
Aleksey Demakov [Tue, 29 Aug 2006 11:57:12 +0000 (11:57 +0000)]
add _jit_gen_move_top() to take part of the _jit_gen_exch_top() functionality
thus making the interface cleaner

19 years agodump jump tables
Aleksey Demakov [Mon, 28 Aug 2006 19:52:48 +0000 (19:52 +0000)]
dump jump tables

19 years ago2006-08-28 Klaus Treichel <ktreichel@web.de>
Klaus Treichel [Mon, 28 Aug 2006 17:19:06 +0000 (17:19 +0000)]
2006-08-28  Klaus Treichel  <ktreichel@web.de>

* dpas/Makefile.am, jit/Makefile.am, tests/Makefile.am: Add missing
sources to fix creation of tarballs (make dist).

19 years agofix is_unsigned usage typo
Aleksey Demakov [Mon, 28 Aug 2006 14:21:54 +0000 (14:21 +0000)]
fix is_unsigned usage typo

19 years ago* jit/jit-apply-alpha.c jit/jit-apply-alpha.h: Fix jit_redirector_size.
Thomas Cort [Tue, 22 Aug 2006 23:41:32 +0000 (23:41 +0000)]
* jit/jit-apply-alpha.c jit/jit-apply-alpha.h: Fix jit_redirector_size.
alpha_call is 6 instructions, not 1. 5 to load the addr, 1 to call.

* jit/jit-gen-alpha.h: add macros for fp sign copy and arithmetic.

* jit/jit-rules-alpha.c: remove TODO() from unused functions.

19 years agoadd kudos to krokas
Aleksey Demakov [Tue, 22 Aug 2006 21:41:57 +0000 (21:41 +0000)]
add kudos to krokas

19 years agoallocate redirector and indirector buffers in the executable code cache
Aleksey Demakov [Tue, 22 Aug 2006 20:55:25 +0000 (20:55 +0000)]
allocate redirector and indirector buffers in the executable code cache

19 years ago2006-08-22 Klaus treichel <ktreichel@web.de>
Klaus Treichel [Tue, 22 Aug 2006 18:02:55 +0000 (18:02 +0000)]
2006-08-22  Klaus treichel  <ktreichel@web.de>

* jit/jit-alloc.c: Use mmap and munmap to allocate executable memory
where available because memory allocated with malloc is not executable
on some archs/distros.

19 years agoimprove handling of three-address instructions
Aleksey Demakov [Tue, 22 Aug 2006 17:30:09 +0000 (17:30 +0000)]
improve handling of three-address instructions

19 years agoAdd macros for int to fp and fp to int conversions. Use _jit_pad_bufer.
Thomas Cort [Mon, 21 Aug 2006 14:23:44 +0000 (14:23 +0000)]
Add macros for int to fp and fp to int conversions. Use _jit_pad_bufer.

19 years agoRemove unnecessary code from the prolog, epilog, redirector, and
Thomas Cort [Sun, 20 Aug 2006 15:47:54 +0000 (15:47 +0000)]
Remove unnecessary code from the prolog, epilog, redirector, and
closure. Implement > and >= opcodes for signed and unsigned values.

19 years agofix a problem with the clobber flag being ignored
Aleksey Demakov [Fri, 18 Aug 2006 18:14:27 +0000 (18:14 +0000)]
fix a problem with the clobber flag being ignored

19 years agoAdd a TODO() macro to print unimplemented warnings. Fix some
Thomas Cort [Tue, 15 Aug 2006 01:08:59 +0000 (01:08 +0000)]
Add a TODO() macro to print unimplemented warnings. Fix some
casting warnings. Implement _jit_gen_redirector(...). Fix
JIT_CDECL_WORD_REG_PARAMS to use the correct parameter
registers. Add some stack push and pop instructions.

19 years agoadd --enable-signals option and some support for signals
Aleksey Demakov [Mon, 14 Aug 2006 19:21:19 +0000 (19:21 +0000)]
add --enable-signals option and some support for signals

19 years agoProperly handle fixups on alpha. Implement JIT_OP_CALL_EXTERNAL.
Thomas Cort [Sat, 12 Aug 2006 01:36:59 +0000 (01:36 +0000)]
Properly handle fixups on alpha. Implement JIT_OP_CALL_EXTERNAL.

19 years agoFix bugs revealed by Heiko's test.
Aleksey Demakov [Sat, 29 Jul 2006 15:11:47 +0000 (15:11 +0000)]
Fix bugs revealed by Heiko's test.

19 years agoImplement the redirector for alpha. Continue to implement more functions
Thomas Cort [Sun, 23 Jul 2006 04:45:36 +0000 (04:45 +0000)]
Implement the redirector for alpha. Continue to implement more functions
in jit/jit-rules-alpha.c.

There is enough done on the alpha port to compile the following function
"void func(void) { return; }" and call it 1,000,000 times without anything
crashing. jit_dump_function shows a properly generated prolog and epilog.

19 years agoFix a typo in jit/jit-apply-alpha.c
Thomas Cort [Sun, 16 Jul 2006 03:18:15 +0000 (03:18 +0000)]
Fix a typo in jit/jit-apply-alpha.c

19 years agoImplement closure for alpha. Use jsr instead of bsr in alpha_call. Clean up
Thomas Cort [Sun, 16 Jul 2006 03:15:35 +0000 (03:15 +0000)]
Implement closure for alpha. Use jsr instead of bsr in alpha_call. Clean up
prolog and epilog generation for alpha to be more readable. Add missing
ChangeLog entries.

19 years agoAdded trap barrier macro alpha_trapb. Implemented _jit_gen_prolog and
Thomas Cort [Thu, 13 Jul 2006 03:11:57 +0000 (03:11 +0000)]
Added trap barrier macro alpha_trapb. Implemented _jit_gen_prolog and
_jit_gen_epilog for alpha.

19 years agofix problem with moving blocks that go just after init_block
Aleksey Demakov [Wed, 12 Jul 2006 16:43:03 +0000 (16:43 +0000)]
fix problem with moving blocks that go just after init_block

19 years agoInitial commit of the alpha port.
Thomas Cort [Wed, 12 Jul 2006 03:06:49 +0000 (03:06 +0000)]
Initial commit of the alpha port.

19 years agofix division by power of two
Aleksey Demakov [Thu, 6 Jul 2006 12:04:07 +0000 (12:04 +0000)]
fix division by power of two

19 years agofix problem with destroying the end register of a long pair;
Aleksey Demakov [Tue, 4 Jul 2006 17:28:07 +0000 (17:28 +0000)]
fix problem with destroying the end register of a long pair;
make new register allocator the default.

19 years agomore native x86 instruction selection rules
Aleksey Demakov [Sun, 2 Jul 2006 23:01:24 +0000 (23:01 +0000)]
more native x86 instruction selection rules

19 years agouse $1 instead of $0 for dest register
Aleksey Demakov [Thu, 29 Jun 2006 13:59:27 +0000 (13:59 +0000)]
use $1 instead of $0 for dest register

19 years agouse $1 instead of $0 for dest register
Aleksey Demakov [Wed, 28 Jun 2006 13:45:36 +0000 (13:45 +0000)]
use $1 instead of $0 for dest register

19 years agofix problem with relative instructions
Aleksey Demakov [Tue, 27 Jun 2006 15:03:11 +0000 (15:03 +0000)]
fix problem with relative instructions

19 years agomissed from the previous commit
Aleksey Demakov [Fri, 16 Jun 2006 18:13:32 +0000 (18:13 +0000)]
missed from the previous commit

19 years agoExtend register allocator to allow separate specification of the destination
Aleksey Demakov [Fri, 16 Jun 2006 17:53:51 +0000 (17:53 +0000)]
Extend register allocator to allow separate specification of the destination
register. Take advantage of this for some x86 rules. Tweak the allocator's
API.

19 years agoFix JIT_OP_IDIV and JIT_OP_IREM rules for the divisor value of -1.
Aleksey Demakov [Fri, 16 Jun 2006 02:35:16 +0000 (02:35 +0000)]
Fix JIT_OP_IDIV and JIT_OP_IREM rules for the divisor value of -1.

19 years agofix problem with long constants introduced by previous commit
Aleksey Demakov [Thu, 8 Jun 2006 18:32:12 +0000 (18:32 +0000)]
fix problem with long constants introduced by previous commit

19 years agorewrite some manual rules to use regular pattern syntax
Aleksey Demakov [Thu, 8 Jun 2006 17:11:26 +0000 (17:11 +0000)]
rewrite some manual rules to use regular pattern syntax

19 years agoadd *.inc files to cvsignore
Aleksey Demakov [Wed, 7 Jun 2006 16:29:05 +0000 (16:29 +0000)]
add *.inc files to cvsignore

19 years agofix problem with push float freeing wrong register;
Aleksey Demakov [Sat, 3 Jun 2006 13:39:53 +0000 (13:39 +0000)]
fix problem with push float freeing wrong register;
fix problem with restarted compilation getting constants as already loaded.
allow long pairs to use EBX even if it is used as a global register.

19 years agoAt the end of initialize setjmp block add a label that is moved along with
Aleksey Demakov [Sun, 28 May 2006 11:11:57 +0000 (11:11 +0000)]
At the end of initialize setjmp block add a label that is moved along with
the block code and use it as the jump target.

19 years agofree global values from local registers; tune spill cost calculation;
Aleksey Demakov [Sat, 27 May 2006 10:18:59 +0000 (10:18 +0000)]
free global values from local registers; tune spill cost calculation;

19 years agofix spill cost calcualtion for global registers
Aleksey Demakov [Thu, 25 May 2006 16:01:02 +0000 (16:01 +0000)]
fix spill cost calcualtion for global registers

19 years agofix spill cost calculation problem
Aleksey Demakov [Wed, 24 May 2006 18:56:32 +0000 (18:56 +0000)]
fix spill cost calculation problem

19 years agoextend instruction selector syntax to allow independent destination register
Aleksey Demakov [Sun, 21 May 2006 13:17:19 +0000 (13:17 +0000)]
extend instruction selector syntax to allow independent destination register

19 years agofix computation of stack register index
Aleksey Demakov [Sat, 20 May 2006 10:43:17 +0000 (10:43 +0000)]
fix computation of stack register index

19 years agoSave input values beforehand. Clean up and refactor spill code.
Aleksey Demakov [Fri, 19 May 2006 17:38:31 +0000 (17:38 +0000)]
Save input values beforehand. Clean up and refactor spill code.

19 years agoa few fixes for new register allocator
Aleksey Demakov [Wed, 10 May 2006 16:39:33 +0000 (16:39 +0000)]
a few fixes for new register allocator

19 years agoremove extra spills and add missing jit_cache_end_output()
Aleksey Demakov [Mon, 8 May 2006 10:55:46 +0000 (10:55 +0000)]
remove extra spills and add missing jit_cache_end_output()

19 years agofix spilling and many problems with stack registers
Aleksey Demakov [Fri, 5 May 2006 10:13:07 +0000 (10:13 +0000)]
fix spilling and many problems with stack registers

19 years agomake dump work for any stream not just stdout and stderr
Aleksey Demakov [Thu, 4 May 2006 06:35:45 +0000 (06:35 +0000)]
make dump work for any stream not just stdout and stderr

19 years agoFix JIT_OP_ADDRESS_OF rule
Aleksey Demakov [Mon, 1 May 2006 11:11:32 +0000 (11:11 +0000)]
Fix JIT_OP_ADDRESS_OF rule

19 years agofix JIT_OP_ADDRESS_OF rule
Aleksey Demakov [Mon, 1 May 2006 10:47:37 +0000 (10:47 +0000)]
fix JIT_OP_ADDRESS_OF rule

19 years agorewrite block ops using new register allocator
Aleksey Demakov [Sun, 23 Apr 2006 11:18:54 +0000 (11:18 +0000)]
rewrite block ops using new register allocator

19 years agoregister allocator now supports register set constraints
Aleksey Demakov [Sun, 23 Apr 2006 07:56:59 +0000 (07:56 +0000)]
register allocator now supports register set constraints

19 years agofix generation of `if' pattern code
Aleksey Demakov [Thu, 20 Apr 2006 12:22:33 +0000 (12:22 +0000)]
fix generation of `if' pattern code

19 years agofix warning in jit/jit-rules-x86.c;
Aleksey Demakov [Wed, 19 Apr 2006 14:33:21 +0000 (14:33 +0000)]
fix warning in jit/jit-rules-x86.c;
fix generation of scratch and clobber code;
add `any' keyword.

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