Commit Graph

365 Commits

Author SHA1 Message Date
Joel Dice
168e206812 fix GCC 3.4 build 2009-12-01 17:33:30 -07:00
Joel Dice
f216fe37ff fix regression which led to register exhaustion 2009-12-01 11:14:57 -07:00
Joel Dice
175cb8e89b more floating point bugfixes 2009-12-01 02:06:01 +00:00
Joel Dice
7fa10909f4 more bugfixes for handling 64-bit floats on 32-bit systems 2009-11-30 22:08:59 +00:00
Joel Dice
04454960ec various bugfixes for handling 64-bit floating point values on 32-bit systems 2009-11-30 15:10:34 +00:00
Joel Dice
79d281f7fa encourage loads from memory directly into SSE registers where appropriate 2009-11-30 02:17:08 +00:00
Joel Dice
c615db31fb refine move cost calculation to avoid indirect moves (e.g. memory to memory) 2009-11-28 18:17:17 +00:00
Joel Dice
5ead8fab17 refactor code responsible for moving data in the compiler
This is partially to address incorrect code generation for 64-bit
floating-point values on x86_32 and partially to reduce unnecessary
moves.
2009-11-27 21:15:12 -07:00
Joel Dice
4566e7a7dd avoid infinite loop in deadWord 2009-11-03 14:14:27 -07:00
Joel Dice
ed4206b06d fix order-of-operations bug in compile loop
The code was capturing branch snapshots too early - before the call to
populateSources which might perform further moves.
2009-11-02 21:11:39 -07:00
Joel Dice
c8d5c1faed visit all frame locations in resolveOriginalSites
Previously, we only visited frame locations containing values, but
this invited the possibility of reusing the same site for two
locations in some cases.
2009-10-26 17:59:20 -06:00
Joel Dice
95c3f37bfb fix various bugs involving doubles on 32-bit systems 2009-10-24 17:18:56 -06:00
Joel Dice
c044781807 fix powerpc bootimage build 2009-10-20 08:20:49 -06:00
Joel Dice
984f3106fd fix powerpc build 2009-10-19 10:31:34 -06:00
Joel Dice
15020d77a6 refactor intrinsic support
This ensures that the low-level, architecture specific code need not
be aware of the semantics and names of Java methods.
2009-10-17 19:26:14 -06:00
Joel Dice
cec6444911 fix bootimage build for case where the JIT code area is too far from the AOT code area to do immediate-offset jumps between them 2009-10-17 18:18:03 -06:00
Joel Dice
44a6620aa1 disable use of SSE when compiling ahead-of-time 2009-10-10 17:46:43 -06:00
Joel Dice
38bf29300f enable SSE<->GPR moves when size matches word size 2009-10-10 22:27:35 +00:00
Joel Dice
78d9e51b7e replace hasMoreThanOneSite with uniqueSite; rename Value fields
uniqueSite also checks, if applicable, to see if the second word of a
value shares the specified site with the first value as its sole site.

Also renamed a couple of fields in Value for clarity.
2009-10-10 16:07:30 -06:00
Joel Dice
622b3d1c4e replace compare and branch instructions with combined versions
This allows the assembler to see the operand types of the comparison
and the condition for jumping in the same operation, which is
essential for generating efficient code in cases such as
multiple-precision compare-and-branch.
2009-10-10 15:03:23 -06:00
Joel Dice
609a1a9633 snapshot 2009-10-07 00:50:32 +00:00
Joel Dice
23197da679 fix handling of subroutines in methods of return type long on 32-bit systems 2009-10-06 03:17:12 +00:00
Joel Dice
4f78783ef1 various bugfixes for SSE-based floating-point support 2009-10-05 14:25:12 +00:00
Joel Dice
d25da6116a snapshot 2009-10-04 22:10:36 +00:00
Joel Dice
5dad9bddd6 snapshot 2009-10-04 19:56:48 +00:00
Joel Dice
6cef085d7e snapshot 2009-09-26 19:43:44 +00:00
Joel Dice
325f93b4d1 Merge branch 'master' into wip
Conflicts:

	src/compile.cpp
	src/compiler.cpp
	src/machine.h
	src/x86.cpp
2009-09-20 15:43:32 -06:00
Joel Dice
953cb69e5e move proxy and annotation code from C++ to Java
This allows code shrinkers to remove it if it's not used by the application.
2009-09-19 16:21:15 -06:00
Joel Dice
1a0eef7e2d add support for building with MSVC on Windows 2009-08-26 18:26:44 -06:00
Josh warner
78ea4d20e3 added loneMatch to improve register allocation 2009-08-11 13:46:51 -06:00
Josh warner
cd59222f53 fixed propegation of result sizes 2009-08-11 13:27:25 -06:00
Josh warner
9910e310cb fixed register reserve logic in pickTarget 2009-08-10 13:42:37 -06:00
Josh warner
1d3ef1fc43 Merge branch 'master' of git://oss.readytalk.com/avian, fixed problems that occured in broader testing
Conflicts:
	src/compile.cpp
	src/compiler.cpp
	src/powerpc.cpp
	src/x86.S
	src/x86.cpp
2009-08-10 13:20:23 -06:00
Joel Dice
54bb64cfb2 freeze sites for dead values in resolveOriginalSites
Previously, we simply removed the element from the sites array, but
this led to problems when the junction sites are shared among multiple
junctions such that the value at a given index is live at one junction
and dead at another.
2009-08-10 07:51:19 -06:00
Josh warner
53c0656ee7 added floating point support, split plan method 2009-08-06 10:14:31 -06:00
Joel Dice
63fa0668ff avoid poor performance due to deeply-nested branches in MultiRead::intersect 2009-08-04 18:28:34 -06:00
Joel Dice
d12b441aa1 restore state from subroutine after jsr to avoid later confusion determining basic block boundaries 2009-07-20 08:26:01 -06:00
Joel Dice
e72ff8db0b Merge branch 'master' into gnu
Conflicts:

	src/compile.cpp
2009-07-11 12:11:59 -06:00
Joel Dice
c22b4b4e79 various subroutine handling bugfixes 2009-07-08 08:18:40 -06:00
Joel Dice
562e1e10a8 fix regression in MyCompiler::startLogicalIp 2009-06-30 17:33:54 -06:00
Joel Dice
b308354a3a handle subroutines properly when generating frame maps (initial sketch) 2009-06-26 15:36:04 -06:00
Joel Dice
a21f951e29 consider an instruction reachable if it has no predecessors (i.e. it's the first instruction 2009-06-12 09:45:29 -06:00
Joel Dice
b4dea1f71c fix printf warnings in compiler.cpp 2009-05-28 19:12:26 -06:00
Joel Dice
2608a2ee43 progress towards powerpc continuation and tail call support 2009-05-26 19:02:39 -06:00
Joel Dice
31eb75a736 support tail calls and continuations as build options 2009-05-25 23:27:10 -06:00
Joel Dice
18ec68c7b7 fix word order when pushing 64-bit values as arguments to helper thunks in appendCombine 2009-05-24 00:31:53 -06:00
Joel Dice
57cec2d068 various bugfixes 2009-05-14 20:08:01 -06:00
Joel Dice
eb3bd25aa1 code cleanup and build fixes 2009-05-04 19:04:17 -06:00
Joel Dice
0cd4eb2655 early sketch of continuation support 2009-05-03 14:57:11 -06:00
Joel Dice
fd99691b00 fix CallEvent::popIndex calculation 2009-04-26 21:59:22 -06:00