]> git.unchartedbackwaters.co.uk Git - francis/libjit.git/log
francis/libjit.git
18 years agoFix conversion from ulong to nfloat for values greater than jit_max_long.
Klaus Treichel [Sat, 26 May 2007 14:13:22 +0000 (14:13 +0000)]
Fix conversion from ulong to nfloat for values greater than jit_max_long.

18 years agoremove incorrect optimization in jit_insn_store()
Aleksey Demakov [Sat, 26 May 2007 13:47:31 +0000 (13:47 +0000)]
remove incorrect optimization in jit_insn_store()

18 years agofix compilation for archs without register stack
Aleksey Demakov [Wed, 4 Apr 2007 02:52:05 +0000 (02:52 +0000)]
fix compilation for archs without register stack

18 years agoupdate working version to 0.1.1
Aleksey Demakov [Sun, 4 Mar 2007 16:15:34 +0000 (16:15 +0000)]
update working version to 0.1.1

18 years agoadd doc scripts to EXTRA_DIST; add jit-arch.h to BUILT_SOURCES
Aleksey Demakov [Sat, 3 Mar 2007 18:00:10 +0000 (18:00 +0000)]
add doc scripts to EXTRA_DIST; add jit-arch.h to BUILT_SOURCES

18 years agoUpdates for the 0.1.0 release
Aleksey Demakov [Sat, 3 Mar 2007 14:12:16 +0000 (14:12 +0000)]
Updates for the 0.1.0 release

18 years agofix problem with ops that have x87 dest register and no x87 input registers
Aleksey Demakov [Sat, 24 Feb 2007 19:17:25 +0000 (19:17 +0000)]
fix problem with ops that have x87 dest register and no x87 input registers

18 years agocompile_block() checks if code cache is full
Aleksey Demakov [Thu, 15 Feb 2007 07:31:05 +0000 (07:31 +0000)]
compile_block() checks if code cache is full

18 years agofix texinfo comments
Aleksey Demakov [Mon, 12 Feb 2007 21:38:44 +0000 (21:38 +0000)]
fix texinfo comments

18 years agoremove doc/texinfo.tex from the tree
Aleksey Demakov [Mon, 12 Feb 2007 21:24:55 +0000 (21:24 +0000)]
remove doc/texinfo.tex from the tree

18 years agochange conditions for local and frame patterns to account for the case when
Aleksey Demakov [Mon, 12 Feb 2007 00:18:27 +0000 (00:18 +0000)]
change conditions for local and frame patterns to account for the case when
the use of the value is compiled before its first definition

18 years agomore correctly handle compilation restart
Aleksey Demakov [Sun, 11 Feb 2007 23:28:44 +0000 (23:28 +0000)]
more correctly handle compilation restart

18 years agoflush the output stream upon dumping the function
Aleksey Demakov [Sun, 11 Feb 2007 22:54:25 +0000 (22:54 +0000)]
flush the output stream upon dumping the function

18 years ago2007-02-10 Klaus Treichel <ktreichel@web.de>
Klaus Treichel [Sat, 10 Feb 2007 19:12:28 +0000 (19:12 +0000)]
2007-02-10  Klaus Treichel  <ktreichel@web.de>

* jit/jit-function.c: Use the on-demand compilation driver in
jit_function_apply too. Return the functions' entry point if the
function is allready compiled in jit_function_compile_entry.

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