]>
git.unchartedbackwaters.co.uk Git - francis/libjit.git/log
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.
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
Aleksey Demakov [Tue, 28 Nov 2006 16:10:07 +0000 (16:10 +0000)]
applied patch #5503 with some modifications
Aleksey Demakov [Sun, 26 Nov 2006 20:42:01 +0000 (20:42 +0000)]
add POSITION_INDEPENDENT context option
Aleksey Demakov [Sun, 26 Nov 2006 16:34:26 +0000 (16:34 +0000)]
patch #5278
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;
Aleksey Demakov [Sat, 25 Nov 2006 15:41:53 +0000 (15:41 +0000)]
fix JIT_OP_LSIGN
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;
Aleksey Demakov [Fri, 10 Nov 2006 21:03:09 +0000 (21:03 +0000)]
add JIT_OP_IABS and JIT_OP_LABS rules
Aleksey Demakov [Sat, 4 Nov 2006 14:57:10 +0000 (14:57 +0000)]
make comparison opcodes use three-address patterns
Aleksey Demakov [Wed, 1 Nov 2006 17:41:36 +0000 (17:41 +0000)]
fixed a bug with coalescing values on x87-register stack
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
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;
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;
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().
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 *).
Aleksey Demakov [Mon, 25 Sep 2006 06:56:36 +0000 (06:56 +0000)]
add jit-arch-generic.h and jit-arch-x86.h files
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.
Aleksey Demakov [Fri, 15 Sep 2006 16:17:20 +0000 (16:17 +0000)]
add jit_insn_mark_breakpoint_variable() function.
Aleksey Demakov [Thu, 14 Sep 2006 17:16:36 +0000 (17:16 +0000)]
remove jit-rules-x86.sel
Aleksey Demakov [Thu, 14 Sep 2006 15:13:57 +0000 (15:13 +0000)]
remove --enable-new-reg-alloc option
Aleksey Demakov [Thu, 14 Sep 2006 06:27:08 +0000 (06:27 +0000)]
remove "old" register allocator;
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
Aleksey Demakov [Sat, 2 Sep 2006 13:46:28 +0000 (13:46 +0000)]
remove last traces of register allocation from the interpreter
Klaus Treichel [Thu, 31 Aug 2006 18:24:05 +0000 (18:24 +0000)]
Commit configure.in which i missed the last time ;)
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.
Aleksey Demakov [Wed, 30 Aug 2006 19:23:26 +0000 (19:23 +0000)]
do not use jit-rules-x86.sel anymore
Aleksey Demakov [Wed, 30 Aug 2006 18:35:10 +0000 (18:35 +0000)]
add "frame" keyword to .ins file syntax
Aleksey Demakov [Wed, 30 Aug 2006 13:31:58 +0000 (13:31 +0000)]
replace interpreter stack with 3 dedicated pseudo-registers
Aleksey Demakov [Tue, 29 Aug 2006 13:29:35 +0000 (13:29 +0000)]
delete extra popping of setjmp context for interpreter
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
Aleksey Demakov [Mon, 28 Aug 2006 19:52:48 +0000 (19:52 +0000)]
dump jump tables
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).
Aleksey Demakov [Mon, 28 Aug 2006 14:21:54 +0000 (14:21 +0000)]
fix is_unsigned usage typo
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.
Aleksey Demakov [Tue, 22 Aug 2006 21:41:57 +0000 (21:41 +0000)]
add kudos to krokas
Aleksey Demakov [Tue, 22 Aug 2006 20:55:25 +0000 (20:55 +0000)]
allocate redirector and indirector buffers in the executable code cache
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.
Aleksey Demakov [Tue, 22 Aug 2006 17:30:09 +0000 (17:30 +0000)]
improve handling of three-address instructions
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.
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.
Aleksey Demakov [Fri, 18 Aug 2006 18:14:27 +0000 (18:14 +0000)]
fix a problem with the clobber flag being ignored
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.
Aleksey Demakov [Mon, 14 Aug 2006 19:21:19 +0000 (19:21 +0000)]
add --enable-signals option and some support for signals
Thomas Cort [Sat, 12 Aug 2006 01:36:59 +0000 (01:36 +0000)]
Properly handle fixups on alpha. Implement JIT_OP_CALL_EXTERNAL.
Aleksey Demakov [Sat, 29 Jul 2006 15:11:47 +0000 (15:11 +0000)]
Fix bugs revealed by Heiko's test.
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.
Thomas Cort [Sun, 16 Jul 2006 03:18:15 +0000 (03:18 +0000)]
Fix a typo in jit/jit-apply-alpha.c
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.
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.
Aleksey Demakov [Wed, 12 Jul 2006 16:43:03 +0000 (16:43 +0000)]
fix problem with moving blocks that go just after init_block
Thomas Cort [Wed, 12 Jul 2006 03:06:49 +0000 (03:06 +0000)]
Initial commit of the alpha port.
Aleksey Demakov [Thu, 6 Jul 2006 12:04:07 +0000 (12:04 +0000)]
fix division by power of two
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.
Aleksey Demakov [Sun, 2 Jul 2006 23:01:24 +0000 (23:01 +0000)]
more native x86 instruction selection rules
Aleksey Demakov [Thu, 29 Jun 2006 13:59:27 +0000 (13:59 +0000)]
use $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
Aleksey Demakov [Tue, 27 Jun 2006 15:03:11 +0000 (15:03 +0000)]
fix problem with relative instructions
Aleksey Demakov [Fri, 16 Jun 2006 18:13:32 +0000 (18:13 +0000)]
missed from the previous commit
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.
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.
Aleksey Demakov [Thu, 8 Jun 2006 18:32:12 +0000 (18:32 +0000)]
fix problem with long constants introduced by previous commit
Aleksey Demakov [Thu, 8 Jun 2006 17:11:26 +0000 (17:11 +0000)]
rewrite some manual rules to use regular pattern syntax
Aleksey Demakov [Wed, 7 Jun 2006 16:29:05 +0000 (16:29 +0000)]
add *.inc files to cvsignore
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.
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.
Aleksey Demakov [Sat, 27 May 2006 10:18:59 +0000 (10:18 +0000)]
free global values from local registers; tune spill cost calculation;
Aleksey Demakov [Thu, 25 May 2006 16:01:02 +0000 (16:01 +0000)]
fix spill cost calcualtion for global registers
Aleksey Demakov [Wed, 24 May 2006 18:56:32 +0000 (18:56 +0000)]
fix spill cost calculation problem
Aleksey Demakov [Sun, 21 May 2006 13:17:19 +0000 (13:17 +0000)]
extend instruction selector syntax to allow independent destination register
Aleksey Demakov [Sat, 20 May 2006 10:43:17 +0000 (10:43 +0000)]
fix computation of stack register index
Aleksey Demakov [Fri, 19 May 2006 17:38:31 +0000 (17:38 +0000)]
Save input values beforehand. Clean up and refactor spill code.
Aleksey Demakov [Wed, 10 May 2006 16:39:33 +0000 (16:39 +0000)]
a few fixes for new register allocator
Aleksey Demakov [Mon, 8 May 2006 10:55:46 +0000 (10:55 +0000)]
remove extra spills and add missing jit_cache_end_output()
Aleksey Demakov [Fri, 5 May 2006 10:13:07 +0000 (10:13 +0000)]
fix spilling and many problems with stack registers
Aleksey Demakov [Thu, 4 May 2006 06:35:45 +0000 (06:35 +0000)]
make dump work for any stream not just stdout and stderr
Aleksey Demakov [Mon, 1 May 2006 11:11:32 +0000 (11:11 +0000)]
Fix JIT_OP_ADDRESS_OF rule
Aleksey Demakov [Mon, 1 May 2006 10:47:37 +0000 (10:47 +0000)]
fix JIT_OP_ADDRESS_OF rule
Aleksey Demakov [Sun, 23 Apr 2006 11:18:54 +0000 (11:18 +0000)]
rewrite block ops using new register allocator
Aleksey Demakov [Sun, 23 Apr 2006 07:56:59 +0000 (07:56 +0000)]
register allocator now supports register set constraints
Aleksey Demakov [Thu, 20 Apr 2006 12:22:33 +0000 (12:22 +0000)]
fix generation of `if' pattern code
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.
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.
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
Aleksey Demakov [Fri, 14 Apr 2006 11:46:05 +0000 (11:46 +0000)]
new register allocator is improved and extended to support stack registers
Aleksey Demakov [Mon, 10 Apr 2006 19:42:40 +0000 (19:42 +0000)]
initialize thrown_exception value
Aleksey Demakov [Sat, 8 Apr 2006 09:26:05 +0000 (09:26 +0000)]
add jump table into jit_opcodes array
Aleksey Demakov [Sat, 8 Apr 2006 07:02:57 +0000 (07:02 +0000)]
Extended selection rules syntax.
Aleksey Demakov [Thu, 6 Apr 2006 23:42:31 +0000 (23:42 +0000)]
Added function entry point indirector. Fixed tail call bug.
Aleksey Demakov [Mon, 3 Apr 2006 05:10:35 +0000 (05:10 +0000)]
Add `reversible', `x87arith', `copy' keywords and fix bugs.
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.
Aleksey Demakov [Wed, 22 Mar 2006 18:48:02 +0000 (18:48 +0000)]
added gen-rules tool
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).
Aleksey Demakov [Mon, 27 Feb 2006 13:23:44 +0000 (13:23 +0000)]
fixed int to uint and uint to int conversion
Aleksey Demakov [Sun, 26 Feb 2006 17:08:02 +0000 (17:08 +0000)]
fixed JIT_OP_STORE_RELATIVE_LONG
Aleksey Demakov [Sun, 26 Feb 2006 07:59:09 +0000 (07:59 +0000)]
corrected opcode in x86_pop_mem and x86_pop_membase
Aleksey Demakov [Thu, 23 Feb 2006 23:58:24 +0000 (23:58 +0000)]
fixed jit_insn_address_of_label()
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.
Aleksey Demakov [Sat, 18 Feb 2006 19:58:10 +0000 (19:58 +0000)]
New local register allocator.
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.