Commit Graph

801 Commits

Author SHA1 Message Date
Joel Dice
633ef83fa1 fix handling of values which appear more than once on the stack in trySteal 2008-06-10 18:48:46 -06:00
Joel Dice
b80a3cea85 handle constant comparisons (sometimes generated by ProGuard) in compiler 2008-06-10 18:17:44 -06:00
Joel Dice
dc136bb751 fix stack tracking weirdness for jsr instruction 2008-06-10 18:16:02 -06:00
Joel Dice
5b2065e76c only elide constant multiply if constant is one, not zero (duh) 2008-06-10 18:14:15 -06:00
Joel Dice
fc8c5a2ea9 fix a few bugs revealed by ProGuard optimizations, including too-early constant propagation during array loads and stores 2008-06-10 08:49:13 -06:00
Joel Dice
ec791a90de fix process=interpret build 2008-06-04 16:17:06 -06:00
Eric Scharff
2aadbaac38 Force alignment for native calls 2008-06-02 11:43:58 -06:00
Eric Scharff
33306aa2f5 Fix warning on confused Mac OS X gcc 4.0 2008-06-02 10:12:09 -06:00
Joel Dice
3b0e05b739 fix unused parameter warning 2008-06-02 08:13:20 -06:00
Joel Dice
ecfb853f17 use relative branches where possible on amd64 2008-06-02 07:49:09 -06:00
Joel Dice
2f3e1ea393 fix incorrect debug logging message 2008-05-31 19:40:18 -06:00
Joel Dice
7d1ed0da05 Merge branch 'compiler' of oss.readytalk.com:/var/local/git/avian
Conflicts:

	src/compiler.cpp
2008-05-31 19:30:28 -06:00
Joel Dice
7cdff9f1ee disable debug logging and fix build warnings 2008-05-31 17:06:45 -06:00
Joel Dice
eacca98c3f fix regressions affecting 32-bit systems 2008-05-31 16:53:37 -06:00
Joel Dice
1450b12e5b visit thunk objects during GC in MyProcessor::visitObjects 2008-05-31 16:24:32 -06:00
Joel Dice
e68a18248c use codePromise helper function in CallEvent ctor 2008-05-31 16:24:04 -06:00
Joel Dice
65830a76c5 improve efficiency of array bounds checks and generate a thunk table for native functions called indirectly 2008-05-31 16:14:27 -06:00
Joel Dice
51256f3cc2 fix moveCM for 64-bit constants on 64-bit machines 2008-05-22 18:16:44 -06:00
Joel Dice
f05318b787 fix thinkos in d2i and friends 2008-05-22 18:08:41 -06:00
Joel Dice
3326aafdac various 32-bit fixes 2008-05-22 11:15:18 -06:00
Joel Dice
21cb1c3c8f remove Event::validate, since it is no longer needed and actually causes trouble 2008-05-20 16:47:53 -06:00
Joel Dice
36dbf1ad14 fix another local variable caching bug 2008-05-20 15:24:10 -06:00
Joel Dice
d604efd8f5 fix local variable caching bug 2008-05-20 13:11:42 -06:00
Joel Dice
651c4559db implement compareAR 2008-05-19 10:39:05 -06:00
Joel Dice
983e64c86a preserve old value of local variable *before* it is overwritten 2008-05-19 10:14:54 -06:00
Joel Dice
83da1ec205 preserve old value of local variable across store if it will be used later; tweak site ownership transfer in MoveEvent.compile 2008-05-19 08:53:40 -06:00
Joel Dice
292f84a3fa fix thinko in laload implementation 2008-05-19 08:50:37 -06:00
Joel Dice
08a1921eb7 only set target equal to src->source in MoveEvent.compile if it is a simple load or store 2008-05-19 07:44:39 -06:00
Joel Dice
ad6153612b disallow memory,constant comparisons on x86 2008-05-19 07:43:37 -06:00
Joel Dice
b52cefa86e disallow memory operands in 32-bit comparisons on amd64 2008-05-19 07:27:05 -06:00
Joel Dice
3c30e815ec optimize multiple loads from the same local variable 2008-05-18 22:31:52 -06:00
Joel Dice
56d8851764 constrain temporary register in moveMM according to moveMR's requirements 2008-05-18 22:28:47 -06:00
Joel Dice
b2e25f4e17 reorder makeMultidimensionalArray parameters to remove the need for the caller to save the stack pointer in a temporary register 2008-05-18 09:45:11 -06:00
Joel Dice
4858972dbc support 64-bit subtracts on 32-bit systems; allow constant shift counts in MyAssembler::plan 2008-05-18 09:43:31 -06:00
Joel Dice
392132cb0e Merge branch 'compiler' of la.merseine.nu:p/avian-compiler into compiler 2008-05-17 21:34:46 -06:00
Joel Dice
b6b84af123 various bugfixes 2008-05-17 21:32:14 -06:00
Joel Dice
2bb310981d clean up MoveEvent.compile 2008-05-17 19:26:36 -06:00
Joel Dice
15c2eb13f2 don't generate code for a move from a register to itself 2008-05-17 18:13:27 -06:00
Joel Dice
85a772b0a7 add read of size 4 in CombineEvent for first operand of shift operation 2008-05-16 10:18:36 -06:00
Joel Dice
790e2fee42 respect constraints specified by Assembler::plan in MoveEvent::compile 2008-05-16 10:01:24 -06:00
Joel Dice
21c5eb2d9e fix thinko in appendCombine 2008-05-15 18:35:17 -06:00
Joel Dice
d7fc4aa438 fix offset computation in compareCR and compareCM 2008-05-15 18:34:48 -06:00
Joel Dice
7f72a6469d more register marshalling bugfixes; simple swt apps now run on amd64 2008-05-15 17:19:23 -06:00
Joel Dice
bbd1ee5540 various register marshalling bugfixes 2008-05-15 14:00:57 -06:00
Joel Dice
2ed6247cec fix freezing and thawing of read sites where the same value is read multiple times in compile() 2008-05-15 08:29:19 -06:00
Joel Dice
505d6df7ae reorder code in CallEvent ctor to ensure we don't clobber argument registers when it comes time to marshal values for reading 2008-05-14 18:04:25 -06:00
Joel Dice
8434abaa0e implement swapRR 2008-05-14 17:33:55 -06:00
Joel Dice
04f4ad4f58 fix variadic argument passing bug on amd64 2008-05-14 17:22:44 -06:00
Joel Dice
73b8cc5595 fix unused variable warnings 2008-05-14 17:19:41 -06:00
Joel Dice
482065f91a fix code ordering bug in popNow() 2008-05-14 16:36:22 -06:00
Joel Dice
13d6ab023f implement addCM 2008-05-13 11:28:19 -06:00
Joel Dice
08beaad1b6 various bugfixes related to new register allocation code 2008-05-13 11:27:57 -06:00
Joel Dice
a40635fdba rework register allocation to be more flexible 2008-05-12 07:54:47 -06:00
Joel Dice
f1809897bd fix build 2008-05-06 15:13:02 -06:00
Joel Dice
1cb9d0327a initialize body of exception handler table for GC safety 2008-05-05 19:17:29 -06:00
Joel Dice
7dcd109567 assert thread is in exclusive or exit state in removeMonitor 2008-05-05 07:07:59 -06:00
Joel Dice
ebb498587f enter exclusive state in collect function instead of requiring caller to enter that state before calling 2008-05-05 07:04:53 -06:00
Joel Dice
efb30b2256 progress towards more flexible register allocation in compiler 2008-05-04 14:55:34 -06:00
Joel Dice
2e108861da remove operand marshalling from the assembler in favor of doing it in the compiler 2008-05-04 13:09:12 -06:00
Joel Dice
7b809efd3f fix shift bugs 2008-04-30 12:44:27 -06:00
Joel Dice
bf08cc4c53 fix array bounds checks 2008-04-30 11:47:25 -06:00
Joel Dice
918193fa60 fix 32-bit right unsigned shifts on amd64 2008-04-30 11:15:21 -06:00
Joel Dice
844841937f fix use of wrong constant in x86.cpp 2008-04-30 10:46:46 -06:00
Joel Dice
2226627e53 fix incorrect comment 2008-04-30 10:43:33 -06:00
Joel Dice
e2b24263a2 various bugfixes 2008-04-30 09:44:17 -06:00
Joel Dice
3909e3f032 fix thinko concerning stack resets in compile() 2008-04-29 17:18:28 -06:00
Joel Dice
7640590153 implement orCR and compareRC 2008-04-29 17:16:53 -06:00
Joel Dice
59f92b6208 support 64-bit multiplies on 32-bit systems 2008-04-29 16:11:17 -06:00
Joel Dice
4c2d44099b support more 64-bit operations on 32-bit systems 2008-04-29 14:24:52 -06:00
Joel Dice
3fa3fd0796 fix stack index calculation when pushing operands 2008-04-29 14:24:08 -06:00
Joel Dice
4652b7aea0 enable 64-bit various operations on 32-bit systems 2008-04-29 10:56:29 -06:00
Joel Dice
9dafe37ff3 fix code ordering bug in MyCompiler::peek 2008-04-29 10:55:56 -06:00
Joel Dice
377e2864d9 fix argument marshalling for floating point helper functions on 32-bit systems 2008-04-29 10:40:44 -06:00
Joel Dice
d50e3aaee0 preserve operands to CombineEvent and TranslateEvent when necessary 2008-04-29 10:25:20 -06:00
Joel Dice
22382a5c8b fix amd64 regression in PushEvent::skipMove 2008-04-29 09:30:41 -06:00
Joel Dice
c96f44d77d don't skip move when MoveEvent is followed by a PushEvent which is not active; use existing register site in ValueSite when possible 2008-04-29 08:59:12 -06:00
Joel Dice
7791b1df80 support 64-bit operands on 32-bit systems in compareCR 2008-04-29 08:57:24 -06:00
Joel Dice
a07a189ddb fix various register marshalling bugs 2008-04-28 18:58:02 -06:00
Joel Dice
8738bddcb9 bugfixes, mainly concerning 32-bit machines 2008-04-28 16:08:31 -06:00
Joel Dice
90ae9a70ee fix encoding reg-to-reg moves of one and two byte sizes 2008-04-28 10:52:54 -06:00
Joel Dice
1b5f14d847 re-enable tests in Misc and get them working 2008-04-28 09:53:48 -06:00
Joel Dice
5e45475f36 fix unused parameter warnings 2008-04-27 16:43:15 -06:00
Joel Dice
9f8d77a2a9 Merge branch 'master' into compiler
Conflicts:

	src/compile.cpp
	src/compiler.cpp
	src/compiler.h
2008-04-27 16:40:53 -06:00
Joel Dice
505e0bd7db treat 4-byte reg-to-reg moves as 8-byte moves on amd64 since the intention is to copy integer values verbatim; all tests now pass on amd64 2008-04-27 16:25:17 -06:00
Joel Dice
8be4cf8fa6 fix pushState and popState to work as intended 2008-04-27 15:58:29 -06:00
Joel Dice
cc64668657 add support for more instructions to assembler 2008-04-27 14:42:57 -06:00
Joel Dice
5b7372a3bb various bugfixes; majority of tests now pass 2008-04-27 14:15:18 -06:00
Joel Dice
d5137a7cdf use stack instead of registers to save data across jumps and branches; bugfixes 2008-04-26 14:56:03 -06:00
Joel Dice
23572b58bd fix code ordering bug in MyProcessor::getStackTrace which caused the stack trace footprint calculation to be inaccurate 2008-04-25 16:18:19 -06:00
Joel Dice
fdfeabbb37 Merge branch 'master' of oss.readytalk.com:/var/local/git/avian 2008-04-24 16:13:03 -06:00
Joel Dice
0655b55378 resolve catch type for each exception handler during compilation 2008-04-24 16:06:36 -06:00
Eric Scharff
584e1005e3 Fix Mac compiler warnings for fprintf format strings 2008-04-24 11:07:20 -06:00
Joel Dice
18d25468fe optimize common case of setting a single object field so we don't acquire the heap lock unnecessarily 2008-04-23 18:08:24 -06:00
Joel Dice
1d7b00baff backport getstatic/putstatic optimization from compiler branch 2008-04-23 16:56:02 -06:00
Joel Dice
f49174da28 set the base pointer in vmNativeCall to point to the return address per convention, allowing us to safely walk the stack in Process::getStackTrace 2008-04-23 15:07:14 -06:00
Joel Dice
7e1a2ea876 don't remove nodes from call node table, since it leads to a race condition 2008-04-23 15:01:47 -06:00
Joel Dice
d072b71c39 nth attempt to clean up MyStackWalker 2008-04-23 10:33:31 -06:00
Joel Dice
9e8e4b3de7 fix stack walker to properly handle the case of a native method calling another native method 2008-04-22 10:21:54 -06:00
Joel Dice
c7d679467f handle case of visiting thread when it is executing one of the transition procedures 2008-04-22 09:31:40 -06:00
Joel Dice
df5258d1d8 various bugfixes concerning Thread.getStackTrace 2008-04-21 16:36:13 -06:00