Joel Dice
|
c147ef4e5c
|
allow concurrent reads and writes on trace node hashtable, requiring only writes to acquire the the class lock
|
2007-12-28 09:50:26 -07:00 |
|
Joel Dice
|
8d140c162d
|
eliminate unecessary register and memory operand construction
|
2007-12-28 08:42:30 -07:00 |
|
Joel Dice
|
5d65e7c220
|
handle synchronized methods properly in JIT mode
|
2007-12-27 17:02:05 -07:00 |
|
Joel Dice
|
96f3749c01
|
implement 64-bit shift instructions for 32-bit arch; code cleanups
|
2007-12-27 15:55:59 -07:00 |
|
Joel Dice
|
bc44f468de
|
set Verbose=false in compile.cpp
|
2007-12-27 13:33:58 -07:00 |
|
Joel Dice
|
00c095b564
|
pop address off stack in jsr instruction before compiling the code which follows
|
2007-12-27 13:32:34 -07:00 |
|
Joel Dice
|
ea2935f5f1
|
use storeObjectOrAddress in all astore* instructions
|
2007-12-27 09:02:03 -07:00 |
|
Joel Dice
|
8e7f3b6821
|
add force_align_arg_pointer attribute to divideLong and moduloLong functions for OSX
|
2007-12-27 08:28:25 -07:00 |
|
Joel Dice
|
848a67b397
|
implement jsr, jsr_w, and ret; various bugfixes to get SWT example working in JIT mode
|
2007-12-26 16:59:55 -07:00 |
|
Joel Dice
|
c0cf15bb37
|
add missing instructions and fix shift long instructions to pop an int instead of a long as the shift count
|
2007-12-26 12:19:45 -07:00 |
|
Joel Dice
|
fdd57ad326
|
do a 32-bit comparison for cmp4 instruction on amd64
|
2007-12-26 12:18:51 -07:00 |
|
Joel Dice
|
6ed28a13c3
|
fix x86-32 regressions due to JIT refactoring
|
2007-12-26 10:16:21 -07:00 |
|
Joel Dice
|
b361e1b637
|
refactor JIT code to make operand size an explicit part of each applicable instruction
|
2007-12-26 09:56:14 -07:00 |
|
Joel Dice
|
8cd18d6193
|
more JIT bugfixes
|
2007-12-23 13:06:24 -07:00 |
|
Joel Dice
|
271797bead
|
GC safety fix in resolveTarget
|
2007-12-23 12:26:35 -07:00 |
|
Joel Dice
|
f87a78833b
|
fix JIT regressions on amd64
|
2007-12-23 12:18:34 -07:00 |
|
Joel Dice
|
15857135c0
|
more JIT fixes; all tests now pass on x86-32
|
2007-12-23 11:48:22 -07:00 |
|
Joel Dice
|
a020a3f6bb
|
handle various return types properly in invokeNative2
|
2007-12-23 11:09:41 -07:00 |
|
Joel Dice
|
31cf1754ce
|
fix frame trace bug leading to incomplete stack coverage during GC; fix thinko pushing arguments in vmInvoke
|
2007-12-23 11:01:41 -07:00 |
|
Joel Dice
|
6c532e2ba4
|
fix register allocation bugs in floating point instructions
|
2007-12-22 17:15:46 -07:00 |
|
Joel Dice
|
f116225933
|
fix 64-bit arithmetic support on x86-32
|
2007-12-22 17:00:35 -07:00 |
|
Joel Dice
|
0dfdcd87d9
|
Merge jdpc:p/vm/
|
2007-12-21 17:32:21 -07:00 |
|
Joel Dice
|
a867e4d587
|
snapshot
|
2007-12-21 17:26:55 -07:00 |
|
Joel Dice
|
f3e2795990
|
Merge branch 'master' of dice:git/vm
|
2007-12-21 17:26:34 -07:00 |
|
Joel Dice
|
e58972a968
|
fix regression in push instruction on amd64
|
2007-12-20 16:47:01 -07:00 |
|
Eric Scharff
|
ef97a5d8da
|
Fix for assembler symbols for Mac build
|
2007-12-20 16:22:40 -07:00 |
|
Joel Dice
|
06109792e5
|
JIT build fixes
|
2007-12-20 16:19:48 -07:00 |
|
Joel Dice
|
640d1d0654
|
sketch some 64-bit-arithmetic-on-32-bit-system instructions
|
2007-12-20 09:02:00 -07:00 |
|
Joel Dice
|
be42c325d8
|
32-bit JIT bugfixes; still broken
|
2007-12-19 18:42:12 -07:00 |
|
Joel Dice
|
7dd81c803a
|
fix native call argument marshalling regression
|
2007-12-19 17:02:32 -07:00 |
|
Joel Dice
|
9b08fe083c
|
snapshot
|
2007-12-18 18:28:55 -07:00 |
|
Joel Dice
|
3bafbf08bb
|
implement shr and ushr; teach add and sub about 32 bit immediate operands
|
2007-12-17 19:10:12 -07:00 |
|
Joel Dice
|
6895ffaa99
|
GC safety and sign extension fixes
|
2007-12-17 19:09:32 -07:00 |
|
Joel Dice
|
2e33856d6b
|
align stack to 16 byte boundary on amd64
|
2007-12-17 19:08:17 -07:00 |
|
Joel Dice
|
b2cb8e0a69
|
JIT bugfixes; implement or and xor
|
2007-12-17 17:22:37 -07:00 |
|
Joel Dice
|
5c807a4ddc
|
implement shl; fix thinko in Frame::Protector; fix uninitialized value warnings
|
2007-12-17 15:38:59 -07:00 |
|
Joel Dice
|
4c3a2575ba
|
lots of JIT bugfixes; all top-level tests now pass
|
2007-12-17 13:55:31 -07:00 |
|
Joel Dice
|
25ea07aed5
|
snapshot - JIT broken
|
2007-12-16 18:46:46 -07:00 |
|
Joel Dice
|
56a8ce8fb1
|
more JIT bugfixes; implement mul instruction
|
2007-12-16 16:52:38 -07:00 |
|
Joel Dice
|
e4fbadd051
|
JIT-related GC safety fixes
|
2007-12-16 15:41:07 -07:00 |
|
Joel Dice
|
fb29fd11d8
|
more JIT bugfixes
|
2007-12-16 14:30:19 -07:00 |
|
Joel Dice
|
86218ebcb8
|
fix stack pointer calculation in unwind code and set rbx to thread pointer when unwinding
|
2007-12-15 18:00:25 -07:00 |
|
Joel Dice
|
796a64a426
|
lots of JIT bugfixes and cleanups
|
2007-12-15 17:24:15 -07:00 |
|
Joel Dice
|
403a6b0200
|
lots of JIT bugfixes
|
2007-12-14 18:11:01 -07:00 |
|
Joel Dice
|
12e10b57f5
|
JIT bugfixes and new instructions; exception propagation and stack traces are functional but not yet entirely correct
|
2007-12-14 11:27:56 -07:00 |
|
Joel Dice
|
b3918a0d7d
|
support encoding instructions with indexed and scaled memory offsets
|
2007-12-13 18:59:56 -07:00 |
|
Joel Dice
|
ec8fc80ebe
|
refactor compile.cpp to delay code generation until after all byte code has been visited; bugfixes
|
2007-12-13 17:27:09 -07:00 |
|
Joel Dice
|
c4347bd7d3
|
more JIT bugfixes and new instructions
|
2007-12-12 17:18:31 -07:00 |
|
Joel Dice
|
b2147c2c99
|
lots of JIT bugfixes and a few new instructions
|
2007-12-12 15:19:13 -07:00 |
|
Joel Dice
|
fe24005ff0
|
remove virtual stack code due to problems with jumps, to be revisited along with other optimizations when everything is working; various bugfixes
|
2007-12-12 11:59:45 -07:00 |
|
Joel Dice
|
fab77e4d96
|
don't call prologue and epilogue from compileDefault, since we want the original rbp and rsp values
|
2007-12-11 18:19:03 -07:00 |
|
Joel Dice
|
33b2a4a1e8
|
support absolute operands on virtual stack and absolute to memory movs
|
2007-12-11 17:27:04 -07:00 |
|
Joel Dice
|
740e86a084
|
remove unused function; call logicalFlush in pop functions
|
2007-12-11 17:08:55 -07:00 |
|
Joel Dice
|
d70e3aaefb
|
JIT progress: new, invokespecial, etc.
|
2007-12-11 16:52:28 -07:00 |
|
Joel Dice
|
396c979de8
|
fix interpret.cpp build breakage
|
2007-12-11 14:29:04 -07:00 |
|
Joel Dice
|
fdeafe46fd
|
2+2 test now works with new JIT code
|
2007-12-11 14:26:59 -07:00 |
|
Joel Dice
|
286f290665
|
more JIT progress
|
2007-12-10 17:48:09 -07:00 |
|
Joel Dice
|
6b1f01511b
|
refactor logical stack mechanism in JIT code
|
2007-12-09 16:06:47 -07:00 |
|
Joel Dice
|
f8cda0cd85
|
more JIT compiler progress
|
2007-12-09 15:45:43 -07:00 |
|
Joel Dice
|
5b5a4fe8d7
|
progress on JIT compiler sketch
|
2007-12-09 13:03:21 -07:00 |
|
Joel Dice
|
55b956916f
|
initial sketch of JIT compiler
|
2007-12-08 16:22:13 -07:00 |
|
Joel Dice
|
22edd2e6a4
|
set Verbose to false in heap.cpp
|
2007-12-08 16:19:48 -07:00 |
|
Joel Dice
|
00b7fa3b9d
|
assert that fixed object has object mask before marking it
|
2007-12-07 15:58:38 -07:00 |
|
Joel Dice
|
d057ac6a47
|
mark classes containing object array fields as needing an object mask in type-generator.cpp
|
2007-12-07 10:05:10 -07:00 |
|
Joel Dice
|
c096c8f1e4
|
only consider gen2 oversized if its capacity exceeds (InitialGen2CapacityInBytes / BytesPerWord)
|
2007-12-07 08:35:28 -07:00 |
|
Joel Dice
|
612f4fa0b8
|
shrink gen2 segment if it grows too large
|
2007-12-07 08:31:41 -07:00 |
|
Joel Dice
|
edf415102a
|
assert heap count is empty in System::dispose()
|
2007-12-07 08:30:30 -07:00 |
|
Joel Dice
|
0a63fc3865
|
fix a couple thinkos in jnienv.cpp
|
2007-11-29 08:04:07 -07:00 |
|
Joel Dice
|
d8374a76e2
|
check again for entry in monitorMap after entering the exclusive state in objectMonitor() in case another thread beat us to creating a monitor for the object
|
2007-11-29 08:03:45 -07:00 |
|
Joel Dice
|
5b6a63cbca
|
avoid uninitialized value warnings
|
2007-11-27 16:04:15 -07:00 |
|
Joel Dice
|
5fa7b074b4
|
various threading bugfixes
|
2007-11-27 15:23:00 -07:00 |
|
Joel Dice
|
56a5cf2503
|
fix thinko in jsr_w implementation
|
2007-11-27 15:22:05 -07:00 |
|
Joel Dice
|
6ac124f2fb
|
protect local variables in red-black tree implementation from GC
|
2007-11-27 08:46:31 -07:00 |
|
Joel Dice
|
466c958d2b
|
implement persistent red-black tree in util.cpp based on PersistentSet.java
|
2007-11-26 18:40:47 -07:00 |
|
Joel Dice
|
0bbe9489a7
|
flesh out call tracing in new JIT code
|
2007-11-26 16:15:53 -07:00 |
|
Joel Dice
|
49ed41daa0
|
refactor stack walking interface in processor.h and sketch stack walking implementation in compile2.cpp
|
2007-11-25 16:00:55 -07:00 |
|
Joel Dice
|
856935acc2
|
more work on new JIT code
|
2007-11-21 15:15:33 -07:00 |
|
Joel Dice
|
a017dab73a
|
handle weak maps properly in hashMapResize, hashMapRemove, etc.; move Processor::parameterFootprint() into machine.h/machine.cpp
|
2007-11-20 15:24:02 -07:00 |
|
Joel Dice
|
ded1016b32
|
clean up compile2.cpp so it compiles (but does not yet link)
|
2007-11-20 09:21:17 -07:00 |
|
Joel Dice
|
6c8a35c341
|
move populateMultiArray from interpret.cpp to process.h
|
2007-11-20 09:20:26 -07:00 |
|
Joel Dice
|
37a1aa72f9
|
sketch of Frame class implementation for new JIT code
|
2007-11-19 14:37:50 -07:00 |
|
Joel Dice
|
2eeff1d50e
|
sketch implementations of lookupswitch and tableswitch
|
2007-11-19 08:11:39 -07:00 |
|
Joel Dice
|
7eb49f272c
|
sketch or stub-out remaining instructions in new JIT code
|
2007-11-18 13:32:31 -07:00 |
|
Joel Dice
|
e9fc1d9057
|
initial sketch of new JIT code
|
2007-11-18 12:19:27 -07:00 |
|
Joel Dice
|
cab88c7e1f
|
remove JIT-related data structures from types.def since that code is being reworked
|
2007-11-18 12:18:37 -07:00 |
|
Joel Dice
|
d105a180db
|
remove unecessary namespace qualifier
|
2007-11-18 12:17:14 -07:00 |
|
Joel Dice
|
115622f54a
|
add GetArrayLength, NewObject, NewObjectV, MonitorEnter, and MonitorExit JNIEnv methods
|
2007-11-14 16:22:29 -07:00 |
|
Joel Dice
|
313816ee34
|
minor tweaks to reduce memory usage
|
2007-11-06 08:29:05 -07:00 |
|
Joel Dice
|
fe0e542afe
|
finish support for inline vtables in class objects; convert constant pools from arrays to singletons to reduce memory footprint
|
2007-11-05 14:40:17 -07:00 |
|
Joel Dice
|
f1bc2be9f9
|
if we can't resolve a bootstrap class in isAssignableFrom(), we swallow the exception and return false
|
2007-11-05 09:08:08 -07:00 |
|
Joel Dice
|
fe0708c09a
|
check for all non-virtual methods in invoke(), not just static ones
|
2007-11-05 08:52:03 -07:00 |
|
Joel Dice
|
16ea75f91c
|
preserve vm flags of bootstrap class (except for BootstrapFlag) in updateBootstrapClass()
|
2007-11-05 08:39:48 -07:00 |
|
Joel Dice
|
19d36cc463
|
implement impdep1 instruction for lazily loading bootstrap classes
|
2007-11-05 08:29:43 -07:00 |
|
Joel Dice
|
6c0e0c37e2
|
snapshot
|
2007-11-05 07:28:46 -07:00 |
|
Joel Dice
|
514be2dc87
|
snapshot
|
2007-11-04 16:10:33 -07:00 |
|
Joel Dice
|
94e9bd0fd2
|
clean up bootstrap type generation to eliminate redundancy (broken)
|
2007-11-04 14:15:28 -07:00 |
|
Joel Dice
|
bea4a73f54
|
Merge branch 'singleton'
|
2007-11-02 15:56:48 -06:00 |
|
Joel Dice
|
7dfbd87a40
|
bugfixes
|
2007-11-02 15:42:19 -06:00 |
|
Joel Dice
|
e820b6a8a4
|
sketch of singleton support
|
2007-11-02 15:08:14 -06:00 |
|
Joel Dice
|
80775f6cf8
|
initial sketch of singleton support
|
2007-11-02 08:15:06 -06:00 |
|