Commit Graph

1491 Commits

Author SHA1 Message Date
2e3fd111d4 fix regressions on x86_64 2009-02-01 16:19:11 -07:00
8b1801c465 various bugfixes involving multiword values 2009-02-01 16:10:56 -07:00
11408dc2cd fix popIndex calculation in CallEvent ctor 2009-01-31 12:35:45 -07:00
8b6319fbc8 assume stack grows towards negative addresses when loading and storing multiword locals 2009-01-31 12:05:06 -07:00
a11d018dc2 fix assertion in MyCompiler::peek 2009-01-29 18:43:46 -07:00
8dca14af74 remove obsolete assertion from negateRR 2009-01-29 18:43:18 -07:00
1c3504b62a fix various stack bugs 2009-01-29 18:36:19 -07:00
565ece136b begin refactoring compiler.cpp to treat each word of a multiword value seperately 2009-01-25 15:03:38 -07:00
034444db57 fix a couple of bugs handling multi-word values 2009-01-12 09:26:43 -07:00
582e975a8a remove temporary debug code 2009-01-11 16:46:36 -07:00
85ac9b9c71 revert overflow code in sitesToString since we now prune dead buddies from values 2009-01-11 16:46:22 -07:00
05bd86e2ed use upper 32 bits of mask in pickRegisterTarget when picking register for high word; set Target::Impossible to 5 since 4 is a valid cost 2009-01-11 16:42:41 -07:00
04bc58fd95 reorder code in MemorySite::release so we can use low->size before it is overwritten 2009-01-11 16:24:25 -07:00
5a76277b84 remove dead buddies from values so they don't accumulate without bound; when resolving sites, avoid picking those which belong to other values; various bugfixes 2009-01-11 15:53:51 -07:00
e3976e66d3 avoid using all registers when marshalling sites, since we need at least one register free for memory-to-memory moves; various bugfixes 2009-01-11 11:48:02 -07:00
54ad7c4e98 tolerate ConstantValue attributes on non-static fields, since the compiler ensures that they are initialized in any constructors for that class (i.e., the VM does not need to do anything special to initialize them) 2009-01-10 12:25:52 -07:00
8459489212 avoid overflow in sitesToString 2009-01-04 15:58:05 -07:00
9495d03dc6 explicitly load jump target in tableswitch to avoid retaining stale memory sites 2009-01-04 15:56:47 -07:00
c56f37197c marshal values at branches to avoid duplication of effort at junctions 2009-01-04 14:52:46 -07:00
f4689093ee try harder to find an acceptable source site in resolveSourceJunctionSites 2009-01-04 13:35:09 -07:00
ce1e161f52 allocate larger buffer for sitesToString 2009-01-04 12:38:31 -07:00
095e6d7bc3 prefer unowned resources in resourceCost 2009-01-04 12:34:38 -07:00
d76b4121ae fix 64-bit constant case in addCR and subtractCR 2009-01-04 12:32:11 -07:00
ded2ffe437 more compile.cpp refactoring 2009-01-03 18:17:51 -07:00
ae24a6c18e continue refactoring compiler.cpp to simplify register and frame resource allocation 2009-01-03 14:34:45 -07:00
7b546936d6 snapshot 2009-01-02 17:44:47 -07:00
c678fb30a4 snapshot 2008-12-24 13:35:43 -07:00
f96ee3ea73 handle p->value->reads == 0 case in visit 2008-12-22 18:25:00 -07:00
897586aa76 clobber overlapping locals in storeLocal; move fallback code in trySteal to increase its applicability 2008-12-22 17:55:29 -07:00
ac37941fa5 fix build error in previous commit 2008-12-21 18:14:24 -07:00
c9bec0ce96 only steal sites recursively when all else fails in trySteal 2008-12-21 18:14:20 -07:00
c78e76c747 temporarily reacquire source in releaseRegister
This avoids a SEGV when freezing the register.
2008-12-21 14:48:26 -07:00
055ec4dd9f various fixes and cleanups concerning 64-bit values on 32-bit systems 2008-12-21 14:41:56 -07:00
b23f7374e9 don't steal sites in pickJunctionSite 2008-12-20 17:45:52 -07:00
b9b7ae4003 avoid clobbering first operand in CombineEvent.compile 2008-12-20 16:05:01 -07:00
cf4e8e7ec2 various fixes for marshalling values among registers and frame sites 2008-12-20 14:55:45 -07:00
75b3bf98ab pick only unfrozen frame sites in save 2008-12-20 11:13:58 -07:00
bd89b8e00a check for null array in HashMapIterator::find 2008-12-18 20:23:08 -07:00
2622773eb4 support bootimage build on OS X 2008-12-18 19:52:03 -07:00
e55b59905e Merge branch 'master' of oss.readytalk.com:/var/local/git/avian 2008-12-18 16:32:23 -07:00
5e727c8c5d throw an error if a volatile field is encountered, since we don't yet support them properly 2008-12-18 16:32:18 -07:00
7ce35b212f fix GCC 4.0.1 uninitialized value warning 2008-12-18 10:10:19 -07:00
a40ae85588 clear sites from dead value in removeBuddy 2008-12-15 18:21:01 -07:00
8819d01522 only set Context::forfeitedSite if value is live 2008-12-15 17:42:32 -07:00
39358e6652 update junction read based on liveness of local value on first visit to junction, not stub read value 2008-12-15 07:35:19 -07:00
7f4bd51464 don't use trySteal when moving sites between buddies 2008-12-13 13:54:26 -07:00
4717e94fa3 remove value buddies after setting sites to junction sites, not after populating junction sites
This mirrors how snapshots are captured and restored for branch events.
Also, switch back to resolving junction sites before capturing fork
snapshots so we capture the true state of each value immediately before
the branch.
2008-12-13 12:59:02 -07:00
d50febe088 various control-flow related bugfixes 2008-12-11 18:09:36 -07:00
8b2a6f85fc remove divideCR and remainderCR
This forces the compiler to explicitly move the constant operand into
a register, avoiding the possibility that AX or DX might be unavailable
when the assembler needs them.
2008-12-11 18:08:16 -07:00
aa7b47eec4 fix merge confict fallout in heapdump.cpp 2008-12-04 14:35:25 -07:00