Joel Dice
7b546936d6
snapshot
2009-01-02 17:44:47 -07:00
Joel Dice
c678fb30a4
snapshot
2008-12-24 13:35:43 -07:00
Joel Dice
f96ee3ea73
handle p->value->reads == 0 case in visit
2008-12-22 18:25:00 -07:00
Joel Dice
897586aa76
clobber overlapping locals in storeLocal; move fallback code in trySteal to increase its applicability
2008-12-22 17:55:29 -07:00
Joel Dice
ac37941fa5
fix build error in previous commit
2008-12-21 18:14:24 -07:00
Joel Dice
c9bec0ce96
only steal sites recursively when all else fails in trySteal
2008-12-21 18:14:20 -07:00
Joel Dice
c78e76c747
temporarily reacquire source in releaseRegister
...
This avoids a SEGV when freezing the register.
2008-12-21 14:48:26 -07:00
Joel Dice
055ec4dd9f
various fixes and cleanups concerning 64-bit values on 32-bit systems
2008-12-21 14:41:56 -07:00
Joel Dice
b23f7374e9
don't steal sites in pickJunctionSite
2008-12-20 17:45:52 -07:00
Joel Dice
b9b7ae4003
avoid clobbering first operand in CombineEvent.compile
2008-12-20 16:05:01 -07:00
Joel Dice
cf4e8e7ec2
various fixes for marshalling values among registers and frame sites
2008-12-20 14:55:45 -07:00
Joel Dice
75b3bf98ab
pick only unfrozen frame sites in save
2008-12-20 11:13:58 -07:00
Joel Dice
a40ae85588
clear sites from dead value in removeBuddy
2008-12-15 18:21:01 -07:00
Joel Dice
8819d01522
only set Context::forfeitedSite if value is live
2008-12-15 17:42:32 -07:00
Joel Dice
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
Joel Dice
7f4bd51464
don't use trySteal when moving sites between buddies
2008-12-13 13:54:26 -07:00
Joel Dice
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
Joel Dice
d50febe088
various control-flow related bugfixes
2008-12-11 18:09:36 -07:00
Joel Dice
264779ed2a
copy site if necessary to avoid chaining to another site in resolveJunctionSite
2008-11-25 19:23:47 -07:00
Joel Dice
58a9718d82
clean stack sites more aggressively after function calls to avoid GC bugs
2008-11-25 16:00:40 -07:00
Joel Dice
eea2225176
save locals to memory before executing any instruction which might trigger an exception if that instruction lies within an exception handler
2008-11-25 10:34:48 -07:00
Joel Dice
3d9e508e3e
fix regression in last commit
2008-11-17 08:44:35 -07:00
Joel Dice
9aee242408
Merge branch 'powerpc' of oss:/var/local/git/avian into powerpc
...
Conflicts:
src/compiler.cpp
2008-11-17 08:22:07 -07:00
Joel Dice
7ea5a4a64f
avoid inifinite recursion in trySteal
2008-11-17 08:20:48 -07:00
Joel Dice
92a8a4d83b
clean up subroutine code in wake of merge from master branch
2008-11-15 18:03:43 -07:00
Joel Dice
fb770d10fb
implement jsr/ret support
...
The Subroutine test won't pass due to a bug in the stack mapping code
such that objects may be missed during GC.
2008-11-13 17:59:21 -07:00
Joel Dice
fae0ccfe96
fix unused parameter warnings
2008-11-11 18:09:45 -07:00
Joel Dice
6f5613ebd9
minor code cleanup in MoveEvent::compile
2008-11-11 17:48:21 -07:00
Joel Dice
191bfb6141
fix 4-to-8 byte sign extensions for ia32 and clean up MoveEvent; all tests now pass on ia32
2008-11-11 17:39:26 -07:00
Joel Dice
671fd1c0f9
set popIndex for stack arguments in CallEvent constructor
2008-11-11 11:56:23 -07:00
Joel Dice
c80eb51c17
Merge branch 'master' into powerpc
...
Conflicts:
makefile
src/assembler.h
src/compile.cpp
src/compiler.cpp
src/compiler.h
src/finder.cpp
2008-11-11 08:21:48 -07:00
Joel Dice
2304a656cf
in releaseRegister, if the register is not the exclusive site of a value, steal it
2008-11-10 21:25:36 -07:00
Joel Dice
96a7c71c30
fix loading 8-byte values on 32-bit systems
2008-11-10 19:12:36 -07:00
Joel Dice
5fc9ad058b
more bugfixes; all tests pass on amd64
2008-11-10 17:07:44 -07:00
Joel Dice
00d8142de9
various bugfixes; all but one test are passing on amd64
2008-11-09 16:56:37 -07:00
Joel Dice
000aeb25c1
handle case where first instruction is the target of a branch properly
2008-11-08 16:21:30 -07:00
Joel Dice
decd24965a
implement multiplyCR and divideCR
2008-11-08 15:42:26 -07:00
Joel Dice
61539bae31
fix stack mapping bugs which broke GC
2008-11-08 15:36:38 -07:00
Joel Dice
312539af64
fix moves involving sign or zero extension
2008-11-08 13:47:26 -07:00
Joel Dice
f01f4441d9
various bugfixes and instructions implemented to get more tests passing
2008-11-06 17:39:38 -07:00
Joel Dice
1ba497d90a
fix Exceptions test for amd64
2008-11-02 15:25:51 -07:00
Joel Dice
04da77e95b
snapshot
2008-11-02 13:35:35 -07:00
Joel Dice
3e81405a33
snapshot
2008-11-01 16:16:18 -06:00
Joel Dice
dd4dc18916
snapshot
2008-11-01 13:14:13 -06:00
Joel Dice
d20ee74d79
fix stack frame offset calculations for 64-bit values; insert dummy events for instructions which start with stack activity
2008-10-24 20:12:02 -06:00
Joel Dice
7d6ca28b2f
snapshot
2008-10-18 18:15:57 -06:00
Joel Dice
26614e2182
use same code to spill registers and stack frame slots
2008-10-16 18:10:35 -06:00
Joel Dice
5391c68efd
bugfixes
2008-10-14 18:45:31 -06:00
Joel Dice
aaaf388652
fix handling of instructions which are targets of more than one conditional branch
2008-10-13 18:18:18 -06:00
Joel Dice
3c798f5bd7
various bugfixes concerning control flow boundaries
2008-10-11 18:23:08 -06:00