Aleksey Demakov
abd69d11d5
add JIT_OP_IABS and JIT_OP_LABS rules
18 years ago
Aleksey Demakov
29c614b744
make comparison opcodes use three-address patterns
18 years ago
Aleksey Demakov
a44186227a
fixed a bug with coalescing values on x87-register stack
18 years ago
Aleksey Demakov
5691831f5f
remove excessive and buggy patterns from JIT_OP_EXPAND_INT and
JIT_OP_EXPAND_UINT rules
18 years ago
Aleksey Demakov
26e8157554
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;
18 years ago
Aleksey Demakov
48f421e169
fix interpreter's struct handling;
fix segmentation fault in interpreter's fixup code;
18 years ago
Aleksey Demakov
5f1a39f6b1
fix uninitialized value use in create_value_entry();
fix return code in interpreter's version of _jit_create_call_return_insns().
18 years ago
Klaus Treichel
d89d2cee39
2006-10-02 Klaus Treichel <ktreichel@web.de>
18 years ago
Aleksey Demakov
8fd919b8d4
resolve stack-walking problem with gcc 4.1 and introduce jit-arch-*.h
headers that may contain architecture dependent code.
18 years ago
Aleksey Demakov
d0a978cb66
add jit_insn_mark_breakpoint_variable() function.
18 years ago
Aleksey Demakov
56e8a52ef8
remove "old" register allocator;
18 years ago
Aleksey Demakov
343fad4827
add _JIT_REGS_CLOBBER_STACK flag to be used for "only" rules
18 years ago
Aleksey Demakov
ccc54b2abd
remove last traces of register allocation from the interpreter
18 years ago
Klaus Treichel
9e8c960f11
2006-08-31 Klaus Treichel <ktreichel@web.de>
18 years ago
Aleksey Demakov
37863fe1ec
do not use jit-rules-x86.sel anymore
18 years ago
Aleksey Demakov
96011fd558
add "frame" keyword to .ins file syntax
18 years ago
Aleksey Demakov
b247520091
replace interpreter stack with 3 dedicated pseudo-registers
18 years ago
Aleksey Demakov
bcc4d64c56
delete extra popping of setjmp context for interpreter
18 years ago
Aleksey Demakov
62c4a16438
add _jit_gen_move_top() to take part of the _jit_gen_exch_top() functionality
thus making the interface cleaner
18 years ago
Aleksey Demakov
b1bf15e2c9
dump jump tables
18 years ago
Klaus Treichel
b2ad9ed8b5
2006-08-28 Klaus Treichel <ktreichel@web.de>
18 years ago
Aleksey Demakov
31ae011dfa
fix is_unsigned usage typo
18 years ago
Thomas Cort
4d5b4360fc
* 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.
18 years ago
Aleksey Demakov
f277d2f934
add kudos to krokas
18 years ago
Aleksey Demakov
4fb1da2861
allocate redirector and indirector buffers in the executable code cache
18 years ago
Klaus Treichel
f9dc32bbdc
2006-08-22 Klaus treichel <ktreichel@web.de>
18 years ago
Aleksey Demakov
f26a341a95
improve handling of three-address instructions
18 years ago
Thomas Cort
318fcfd54b
Add macros for int to fp and fp to int conversions. Use _jit_pad_bufer.
18 years ago
Thomas Cort
eacc55a818
Remove unnecessary code from the prolog, epilog, redirector, and
closure. Implement > and >= opcodes for signed and unsigned values.
18 years ago
Aleksey Demakov
02b95ffc5e
fix a problem with the clobber flag being ignored
18 years ago
Thomas Cort
9feaff0539
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.
18 years ago
Aleksey Demakov
fcec23a85e
add --enable-signals option and some support for signals
18 years ago
Thomas Cort
f788feb4cd
Properly handle fixups on alpha. Implement JIT_OP_CALL_EXTERNAL.
19 years ago
Aleksey Demakov
adf67449d7
Fix bugs revealed by Heiko's test.
19 years ago
Thomas Cort
0a0a9fb41f
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 ago
Thomas Cort
7a20c6928f
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 ago
Aleksey Demakov
207718f6ba
fix problem with moving blocks that go just after init_block
19 years ago
Aleksey Demakov
5a5513281f
fix division by power of two
19 years ago
Aleksey Demakov
dee4d52fad
fix problem with destroying the end register of a long pair;
make new register allocator the default.
19 years ago
Aleksey Demakov
0782c297db
more native x86 instruction selection rules
19 years ago
Aleksey Demakov
d4a875d09e
use $1 instead of $0 for dest register
19 years ago
Aleksey Demakov
f59c4502c2
fix problem with relative instructions
19 years ago
Aleksey Demakov
8d1f04f894
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 ago
Aleksey Demakov
18f20bf523
Fix JIT_OP_IDIV and JIT_OP_IREM rules for the divisor value of -1.
19 years ago
Aleksey Demakov
90cc7c3553
rewrite some manual rules to use regular pattern syntax
19 years ago
Aleksey Demakov
b2282e6f8e
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 ago
Aleksey Demakov
8a8482e496
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 ago
Aleksey Demakov
91a53d22e7
free global values from local registers; tune spill cost calculation;
19 years ago
Aleksey Demakov
4afe9af964
fix spill cost calcualtion for global registers
19 years ago
Aleksey Demakov
abd8f6c4e5
fix spill cost calculation problem
19 years ago