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
19 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
d718981426
Fix a typo in jit/jit-apply-alpha.c
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
Thomas Cort
7bd246b7d1
Added trap barrier macro alpha_trapb. Implemented _jit_gen_prolog and
_jit_gen_epilog for alpha.
19 years ago
Aleksey Demakov
207718f6ba
fix problem with moving blocks that go just after init_block
19 years ago
Thomas Cort
ef26ecd2cd
Initial commit of the alpha port.
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
8269db2b08
use $1 instead of $0 for dest register
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
673c7b8610
missed from the previous commit
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
54747d29c3
fix problem with long constants introduced by previous commit
19 years ago
Aleksey Demakov
90cc7c3553
rewrite some manual rules to use regular pattern syntax
19 years ago
Aleksey Demakov
23c2933e5a
add *.inc files to cvsignore
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
Aleksey Demakov
4fe29ff197
extend instruction selector syntax to allow independent destination register
19 years ago
Aleksey Demakov
450b0ae1c3
fix computation of stack register index
19 years ago
Aleksey Demakov
7090cf19fc
Save input values beforehand. Clean up and refactor spill code.
19 years ago
Aleksey Demakov
a2c6df4d88
a few fixes for new register allocator
19 years ago
Aleksey Demakov
0378d87ccc
remove extra spills and add missing jit_cache_end_output()
19 years ago
Aleksey Demakov
9291f97087
fix spilling and many problems with stack registers
19 years ago
Aleksey Demakov
62d643164f
make dump work for any stream not just stdout and stderr
19 years ago
Aleksey Demakov
93300b9241
Fix JIT_OP_ADDRESS_OF rule
19 years ago
Aleksey Demakov
422829cb61
fix JIT_OP_ADDRESS_OF rule
19 years ago
Aleksey Demakov
8c9385fc25
rewrite block ops using new register allocator
19 years ago
Aleksey Demakov
3d40ef5372
register allocator now supports register set constraints
19 years ago
Aleksey Demakov
3618e62861
fix generation of `if' pattern code
19 years ago
Aleksey Demakov
5c91a071b0
fix warning in jit/jit-rules-x86.c;
fix generation of scratch and clobber code;
add `any' keyword.
19 years ago
Aleksey Demakov
4e64c61c4c
add instruction selection rules for new register allocator;
add --enable-new-reg-alloc configure option.
19 years ago
Aleksey Demakov
3a0f454739
add _jit_gen_exch_top and _jit_gen_spill_top functions; add some tracing
19 years ago
Aleksey Demakov
07a42b4091
new register allocator is improved and extended to support stack registers
19 years ago