Joel Dice
50eb1cbb71
peek at stack values during bounds checks
2008-04-19 16:13:57 -06:00
Joel Dice
eb77687a57
hello, world
2008-04-19 15:52:45 -06:00
Joel Dice
7b8b7a7b11
snapshot
2008-04-19 14:41:31 -06:00
Joel Dice
b19c52b501
control flow bugfixes
2008-04-19 01:03:59 -06:00
Joel Dice
ab7314e526
more bugfixes
2008-04-18 18:19:45 -06:00
Joel Dice
8fd1290d02
various data flow bugfixes
2008-04-18 12:36:57 -06:00
Joel Dice
a053a228f0
optimize move,op sequences where op doesn't care where its source operand comes from
2008-04-18 11:30:54 -06:00
Joel Dice
c1ba7a7d58
optimize op,move sequences where op can place its result directly into the move's destination
2008-04-18 11:00:55 -06:00
Joel Dice
44b3a7c36d
various bugfixes
2008-04-17 22:16:20 -06:00
Joel Dice
329009ae97
bugfixes involving stack operations
2008-04-17 21:47:42 -06:00
Joel Dice
af2c2e019c
various bugfixes
2008-04-17 18:39:41 -06:00
Joel Dice
a7134a2cd7
fix build
2008-04-17 16:07:32 -06:00
Joel Dice
4d5a57671a
Merge branch 'master' into compiler
2008-04-17 14:52:23 -06:00
Joel Dice
f8a5d02f67
more compiler work
2008-04-17 14:48:26 -06:00
Joel Dice
3f45d39582
more compiler work
2008-04-16 20:55:38 -06:00
Joel Dice
f85510c4c4
more work on design sketch of new compiler
2008-04-16 14:58:21 -06:00
Joel Dice
df4a56d40c
Merge branch 'compiler' of oss.readytalk.com:/var/local/git/avian
2008-04-16 11:16:36 -06:00
Joel Dice
95e5f8203c
enter active state before generating stack trace in Thread.getTrace
2008-04-15 23:27:42 -06:00
Joel Dice
479c48f1dd
fix printf warning
2008-04-15 23:26:58 -06:00
Joel Dice
525f733171
Merge branch 'master' into compiler
...
Conflicts:
src/compile.cpp
src/compiler.cpp
src/compiler.h
2008-04-13 13:48:20 -06:00
Joel Dice
b7ea937708
rough sketch of refined compiler design
2008-04-13 12:54:50 -06:00
Joel Dice
bd8d1c05d0
commit and reserve pages when calling VirtualAlloc on Windows
2008-04-13 12:25:24 -06:00
Joel Dice
0d3e6b7793
simplify memory allocation interfaces
2008-04-13 12:15:04 -06:00
Joel Dice
d77ffa8e21
convert relative calls to absolute indirect calls on x86_64, in case we need to jump further than a 32-bit displacement will allow
2008-04-13 11:16:27 -06:00
Joel Dice
85712d183b
fix stack walking from native methods
2008-04-11 18:06:04 -06:00
Joel Dice
31e5e4c286
fix GC safety bugs in leftRotate and rightRotate
2008-04-11 18:05:03 -06:00
Joel Dice
7eef2e7918
fix GC safety bug in cloneTreeNode
2008-04-11 17:40:36 -06:00
Joel Dice
33b32398c2
fix code ordering bug in finder.cpp
2008-04-11 17:37:56 -06:00
Joel Dice
aa9cb5c086
fix windows build
2008-04-11 17:01:17 -06:00
Joel Dice
d9ec8e20bf
implement Thread.getStackTrace, activeCount, and enumerate
2008-04-11 16:48:39 -06:00
Joel Dice
04c3abc967
fix broken thread tree traversal in machine.cpp
2008-04-11 16:48:05 -06:00
Joel Dice
f7a79f4874
fix frame object map size calculations
2008-04-11 15:00:18 -06:00
Joel Dice
bd618a51f6
translate exception handler table into a form which does not depend on the constant pool after JIT compiling a method
2008-04-11 13:03:40 -06:00
Joel Dice
2cf62a5926
various bugfixes in new stack trace code
2008-04-10 17:48:28 -06:00
Joel Dice
2d6eebf4d1
more progress on general stack tracing
2008-04-09 13:08:13 -06:00
Joel Dice
ebffc5852c
various search tree fixes
2008-04-07 18:14:59 -06:00
Joel Dice
3fb90fdaa4
limit scope of lock acquisition in compileMethod2
2008-04-07 18:03:58 -06:00
Joel Dice
2dba75d7f2
fix reversed logic in treeNodeRed
2008-04-07 18:03:16 -06:00
Joel Dice
2c18ced808
use methodForIp in SegFaultHandler::handleSignal
2008-04-07 17:51:32 -06:00
Joel Dice
7ee29d4939
progress towards general stack trace support
2008-04-07 17:47:41 -06:00
Joel Dice
3915371897
Merge branch 'master' of oss:/var/local/git/avian into dynamic
2008-04-02 06:58:19 -06:00
Joel Dice
6379f50d35
fix thinko in stringChars
2008-04-02 06:57:25 -06:00
Joel Dice
0aebe334b3
Merge branch 'master' of oss:/var/local/git/avian into dynamic
2008-04-01 17:25:18 -06:00
Joel Dice
08b401f337
implement GetStringLength, GetStringChars, and ReleaseStringChars
2008-04-01 17:24:43 -06:00
Joel Dice
d5b0cbb543
Merge branch 'master' of oss:/var/local/git/avian into dynamic
2008-04-01 16:49:28 -06:00
Joel Dice
95a386f2a6
handle null values in IsSameObject
2008-04-01 16:40:53 -06:00
Joel Dice
b12226e878
make private copy of libraryName in BuiltinElement
2008-04-01 16:36:00 -06:00
Joel Dice
1c49b3bc1b
Merge branch 'master' of oss:/var/local/git/avian into dynamic
2008-04-01 11:38:15 -06:00
Joel Dice
4102c97be3
fix bugs wrt calling methods via JNI
2008-04-01 11:37:59 -06:00
Joel Dice
907382bcee
fix broken field alignment in parseFieldTable which caused longs to overlap other fields on 32-bit systems in certain cases
2008-03-31 18:34:57 -06:00
Joel Dice
74295bb707
interpret avian.bootstrap property as a complete file name
2008-03-31 12:57:49 -06:00
Joel Dice
9bcc4dd4ed
fix build for OSX 10.4 and below
2008-03-31 11:58:40 -06:00
Joel Dice
c37f0dcf18
fix darwin build
2008-03-30 22:23:51 -06:00
Joel Dice
357bd29460
support building Avian as a self-contained dynamic library
2008-03-30 21:43:43 -06:00
Joel Dice
9cb21a29a6
fix handling of interface vtables for abstract classes
2008-03-21 17:42:36 -06:00
Joel Dice
50040b24f5
remove unused code from util.cpp
2008-03-21 14:33:44 -06:00
Joel Dice
c7a357aa5e
implement l2d and l2f in interpret.cpp
2008-03-21 13:52:09 -06:00
Joel Dice
9fe2cbff43
implement l2d and l2f byte codes
2008-03-20 18:37:58 -06:00
Joel Dice
56389dd2e1
don't populate interface vtables for abstract classes
2008-03-20 18:37:21 -06:00
Joel Dice
d8889bd4d8
protect local variables from GC in jnienv.cpp
2008-03-20 18:36:53 -06:00
Joel Dice
a51c4cef39
bugfixes
2008-03-16 13:38:43 -06:00
Joel Dice
684b402e82
bugfixes and new instructions
2008-03-15 17:54:20 -06:00
Joel Dice
420a054fd8
support 1- and 2-byte moves to memory
2008-03-15 15:02:19 -06:00
Joel Dice
8141fc21b4
release base and index values of AbstractMemoryValue if necessary; bugfixes
2008-03-15 14:44:14 -06:00
Joel Dice
6bf0ca5bd9
various bugfixes and new instructions
2008-03-15 14:24:04 -06:00
Joel Dice
6a9fbc0c17
allow assembler to acquire and release temporary registers; new machine instruction implementations; bugfixes
2008-03-13 17:43:11 -06:00
Joel Dice
406f173982
handle constant array lengths and indexes properly; various bugfixes
2008-03-13 14:50:56 -06:00
Joel Dice
7cd79736c2
fix tracking of stack operations in compile.cpp
2008-03-11 10:57:35 -06:00
Joel Dice
c5b8b83cc7
clean up code for optimizing stack operations
2008-03-11 10:40:28 -06:00
Joel Dice
9e2e614a15
various fixes to get invokevirtual working
2008-03-10 16:37:21 -06:00
Joel Dice
a388ca19ee
fix build for GCC 4.3
...
Note that this requires removing the -Wconversion flag for now. I'll
see about restoring it when I'm ready to tackle all those warnings.
2008-03-10 13:49:10 -06:00
Joel Dice
0fe748c3a1
avoid unecessary mov instructions
2008-03-10 07:29:42 -06:00
Joel Dice
11dea0ad8e
don't bother calling methods which are known do nothing
2008-03-10 07:28:21 -06:00
Joel Dice
888836f8cd
use push and pop for stack operations instead of mov
2008-03-09 15:27:51 -06:00
Joel Dice
7cfb89bd2a
Merge branch 'master' into compiler
2008-03-09 11:31:55 -06:00
Joel Dice
fbc5463fb1
specify Avian version via a macro defined in makefile
2008-03-06 13:30:26 -07:00
Joel Dice
9fe00836f7
fix stack mapping code to do as many passes as necessary
...
Previously, we had been doing exactly two passes over the event log to
caculate the stack object reference map at each trace point. It turns
out the correct number of passes depends on how many incorrect
assumptions we make about what the stack looks like at instructions with
multiple predecessors (i.e. targets of jumps and branches).
Each time we detect we've made one or more incorrect assumptions during
a pass, we must do another pass to correct those assumptions. That pass
may in turn reveal further incorrect assumptions, and so on.
2008-03-05 14:44:17 -07:00
Joel Dice
3317149cd2
Merge branch 'master' into compiler
...
Conflicts:
src/x86.cpp
2008-02-26 17:56:35 -07:00
Eric Scharff
e616161d5a
Fixes jar file loading for compressed jars.
...
zip files have a central directory header (which has correct information
about files) and a local file header (which sometimes does not.) Always use
the central directory versions to get accurate data.
2008-02-25 17:29:26 -07:00
Joel Dice
823148841a
fix generation of UnsatisfiedLinkError message in resolveNativeMethodData
2008-02-20 10:51:54 -07:00
Joel Dice
9601f2fb04
fix process=interpret build
2008-02-20 10:48:08 -07:00
Eric Scharff
1f48d39a8a
Reset debugging flag
2008-02-20 10:14:42 -07:00
Eric Scharff
8f4cb3315a
do not call dlclose on the main executable (to avoid crashes)
2008-02-20 09:41:30 -07:00
Joel Dice
85abd14137
change avium.version to avian.version
2008-02-20 08:13:15 -07:00
Joel Dice
2f1bdfeb27
remove x86.cpp
2008-02-19 19:10:18 -07:00
Joel Dice
5680f14eb1
remove compiler2.{h,cpp}, since that work has moved to a seperate branch
2008-02-19 19:03:06 -07:00
Joel Dice
2edaa82801
prepend copyright notice and license to all source files; add license.txt and readme.txt
2008-02-19 11:06:52 -07:00
Joel Dice
e8ed2a4749
various bugfixes in new compiler
2008-02-17 15:29:04 -07:00
Joel Dice
d654c943f3
various bugfixes and tweaks in new compiler, primarily related to duplicating stack operands
2008-02-17 13:57:40 -07:00
Joel Dice
6271f878e8
include function prologue and epilogue when compiling
2008-02-12 08:21:51 -07:00
Joel Dice
fa513beb2f
rework compiler interface to explicitly accept a size parameter for each operation where relevant
2008-02-11 19:06:12 -07:00
Joel Dice
b9fa7179d9
more work on new compiler; addition now works
2008-02-11 17:20:32 -07:00
Joel Dice
5b2f351f01
adapt compile.cpp to new compiler
2008-02-11 10:21:41 -07:00
Joel Dice
713ff23881
clean up sketch of new compiler
2008-02-09 13:11:37 -07:00
Joel Dice
dc04c63491
more work on new compiler
2008-02-08 16:18:57 -07:00
Joel Dice
7bb69b1c56
more work on new compiler
2008-02-07 17:24:54 -07:00
Joel Dice
4860060bf8
refine sketch of new compiler a bit
2008-02-07 16:47:48 -07:00
Joel Dice
52c447f68b
early sketch of new compiler
2008-02-07 12:04:18 -07:00
Joel Dice
94404b7f89
remove unused major collection interval code
2008-02-02 13:34:29 -07:00
Joel Dice
2346714d60
move local reference cleanup from invoke() to invokeNative2(), where it belonged all along
2008-02-01 14:17:54 -07:00
Joel Dice
55e3e8871d
trigger major GCs more aggressively under low memory conditions
2008-01-31 17:50:38 -07:00
Joel Dice
491955af05
fix recent regression in native method lookup on Windows
2008-01-30 17:09:21 -07:00
Joel Dice
eeac584474
fix thinko in invokeNative2
2008-01-30 17:08:47 -07:00
Joel Dice
34cc390286
fix uninitialized variable warning
2008-01-29 10:02:58 -07:00
Joel Dice
d693393293
remove Machine::lastLibrary and rename firstLibrary to libraries
2008-01-29 08:19:15 -07:00
Eric Scharff
2363d6e8eb
Fix debug build for Mac OS X
2008-01-28 16:35:23 -07:00
Eric Scharff
e5f95ae89d
Fix pesky compiler warning on unused variable in linux.
2008-01-28 16:22:16 -07:00
Eric Scharff
8a8a123e02
Merge branch 'master' of ssh://dice.ecovate.com/~dicej/git/vm
2008-01-28 16:17:28 -07:00
Eric Scharff
c1f3d28d24
Fixes dynamic symbol loading bug on Mac OS X.
...
On OS X, when you call dlopen() on a null library, and then call dlsym(),
the most recently loaded symbols are always used, no matter what flags
we seem to pass to dlopen(). The solution is to explicitly find the name
of the running executable, and open that as a library.
2008-01-28 16:17:22 -07:00
Dain
098e185ebe
fixed compile error, function in vm namespace needed to call function in the anonymous namespace
2008-01-28 13:24:32 -07:00
Joel Dice
d68c2e6e2c
when looking up native methods, check for both the undecorated and decorated symbol before moving on to the next library
2008-01-28 11:21:09 -07:00
Joel Dice
008ac07079
refactor native method resolution to be simpler and more robust
2008-01-28 10:27:02 -07:00
Joel Dice
de6a1ded92
ensure that we populate the interface vtables of a class which does not declare any new virtual methods but does implement new interfaces relative to its superclass
2008-01-28 08:12:06 -07:00
Joel Dice
941ca81e79
fix build breakage in windows.cpp
2008-01-25 17:48:03 -07:00
Joel Dice
8150b957c9
support JIT compiling methods with unsorted exception handler tables
2008-01-25 17:17:27 -07:00
Joel Dice
e403a625d1
second try to fix library symbol lookup
2008-01-25 16:38:26 -07:00
Joel Dice
4ea8b0a1fe
Merge branch 'master' of dice:git/vm
2008-01-25 16:25:37 -07:00
Joel Dice
35ada0ea65
search libraries for symbols in the order they are loaded
2008-01-25 16:25:30 -07:00
Joel Dice
6bca3a8665
additional tweaks to make embedded resources work on darwin
2008-01-23 10:12:56 -07:00
Joel Dice
618684de6e
support embedded resources on darwin via binaryToMacho.cpp
2008-01-23 09:56:25 -07:00
Joel Dice
73ba3fcef7
fix build breakage in stress mode
2008-01-23 09:55:29 -07:00
Joel Dice
125fe3440e
allow java.lang.Object with no virtual methods, which may occur due to code shrinking
2008-01-21 16:42:12 -07:00
Joel Dice
c9714c73f2
fix frame map calculations involving exception handlers
2008-01-20 16:03:28 -07:00
Joel Dice
422133d1ba
initialize vtables with pointers to JIT function, including native methods, since this allows code shrinkers to eliminate unused methods without confusing the VM
2008-01-20 15:05:59 -07:00
Joel Dice
a69c366d07
save 'this' pointer on entrance to synchronized, non-static, non-native methods so we can release the monitor on exit, reguardless of whether the pointer at local index zero is overwritten
2008-01-20 11:55:08 -07:00
Joel Dice
e9826b2d7f
accept foo.bar.Baz as well as foo/bar/Baz in FindClass
2008-01-19 13:30:11 -07:00
Joel Dice
ee60d48cfe
fix subtle bug in hashMapInsert which caused us to update the old array previously associated with the hash map, whereas a GC causes the table to be resized when a weak reference is removed and thus a new array used
2008-01-19 13:12:16 -07:00
Joel Dice
d97fab6036
comment out some debugging log messages
2008-01-18 18:49:30 -07:00
Joel Dice
35160e46d8
don't include embedded boot classpath in libvm.a, only the executable
2008-01-18 17:54:36 -07:00
Joel Dice
88a8e74a53
fix register to memory mov1 implementation
2008-01-18 15:01:50 -07:00
Joel Dice
e2fc8a62c7
permit state transitions from idle to exclusive
2008-01-17 18:47:32 -07:00
Joel Dice
090cd8a209
re-enter active state before throwing exception in wait()
2008-01-17 18:32:07 -07:00
Joel Dice
9ad00d0ea3
remove unused function and add some thread state assertions
2008-01-17 18:27:44 -07:00
Joel Dice
7252fdcbf3
enter active state immediately upon entry to Release*ArrayElements
2008-01-17 18:26:46 -07:00
Joel Dice
81dde8bdbb
fix thinko in CallLongMethodV
2008-01-17 17:56:55 -07:00
Joel Dice
9a13df3024
fix marshalling return values when calling java methods from native code
2008-01-17 12:55:05 -07:00
Joel Dice
7a7c36f8e0
another attempt to whip Monitor::wait into shape
2008-01-16 15:17:28 -07:00
Joel Dice
bb85f5c94d
fix wait/notify regression introduced in last commit
2008-01-16 14:58:27 -07:00
Joel Dice
6ba7852a62
tweak System::Monitor::wait to avoid notify deadlock
2008-01-16 13:46:39 -07:00
Joel Dice
f5f7b01689
remove extern "C" modifier from vmPrintTrace definition
2008-01-16 10:48:14 -07:00
Joel Dice
4571e75f7a
add vmPrintTrace function which can print a Java stack trace without allocating memory
2008-01-16 10:30:12 -07:00
Joel Dice
86bdd48a66
when invoking Java methods from native code on 32-bit systems, push 32-bit halves of 64-bit values in reverse order since they are reversed again when pushed on the stack
2008-01-15 18:01:11 -07:00
Joel Dice
d1b4dfccd0
fix class cast exception message thinko
2008-01-15 16:33:20 -07:00
Joel Dice
37b33457c1
Merge branch 'master' of dice:git/vm
2008-01-14 16:37:41 -07:00
Joel Dice
2f83468b80
remove context argument from Allocator::tryAllocate and Allocator::allocate, since we aren't using it after all
2008-01-14 16:37:24 -07:00
Eric Scharff
fbec4bec83
Use non-standard MAP_ANON for memory mapping
2008-01-14 10:58:11 -07:00
Joel Dice
2d042616d0
Merge branch 'master' of dice:git/vm
2008-01-14 09:40:27 -07:00
Joel Dice
a89c22b493
force major collection under low memory condition
2008-01-14 09:39:57 -07:00
Joel Dice
029973943e
increase max heap size to 128MB
2008-01-14 09:38:14 -07:00
Dain
faa3052b28
set MAP_32BIT for 32bit machines
2008-01-14 09:33:54 -07:00
Joel Dice
e4c1f6cc8f
protect local variable from GC in findUnwindTarget
2008-01-14 09:33:26 -07:00
Joel Dice
0298865efa
refactor memory allocation to allow better detection and handling of low-memory conditions
2008-01-13 15:05:08 -07:00
Joel Dice
8df1118120
add a comment explaining our dummy libstdc++ functions
2008-01-11 17:34:57 -07:00
Joel Dice
d1ec7cd0e8
remove debug logging
2008-01-11 15:19:44 -07:00
Joel Dice
f0d556b0ec
fix handling of call target resolution for non-virtual calls
2008-01-11 15:16:24 -07:00
Joel Dice
a56c0ad2ef
fix predicate used to determine whether to resolve address operands
2008-01-11 11:11:31 -07:00
Joel Dice
570925ad0e
handle locking for synchronized native methods
2008-01-11 10:49:11 -07:00
Joel Dice
13fae991fd
resolve address operands only when writing the final output
2008-01-11 09:44:16 -07:00
Joel Dice
09a83e63b8
change mov to mov8 in return8
2008-01-10 15:41:57 -07:00
Joel Dice
a17cbf2880
fix reversed operand encoding for shift instructions
2008-01-10 14:56:08 -07:00
Joel Dice
4c938d496e
fix 64-bit bitshifts on 32-bit systems
2008-01-10 13:47:55 -07:00
Joel Dice
15f627701b
fix thinko in 8-byte shift operation implementations
2008-01-10 11:38:25 -07:00
Joel Dice
f75c9c8d33
fix build breakage in interpret.cpp
2008-01-10 10:36:07 -07:00
Eric Scharff
4bce07ea12
Adapt windows code to new memory management system (keep track of length
...
at time of memory free)
2008-01-10 10:31:13 -07:00
Joel Dice
13aaa14a41
use code allocator to allocate indirect caller
2008-01-09 18:51:58 -07:00
Joel Dice
8e5ce11047
refactor memory management code
...
We now support immortal objects, which the GC will scan for references
but not consider for collection. On x86_64, we allocate JIT code memory
via mmap, which lets us map memory into the bottom 2GB of the address
space, ensuring that 32-bit relative jumps and calls work.
2008-01-09 18:20:36 -07:00
Joel Dice
633990b5fe
force a major GC whenever the tenured fixed object footprint doubles
2008-01-09 08:21:58 -07:00
Joel Dice
1a79fc45df
change jump offset asserts to expects
2008-01-08 17:30:55 -07:00
Joel Dice
96ddae1742
assert that jump offsets fit into 32-bit words
2008-01-08 17:23:10 -07:00
Joel Dice
e3be0d197e
maintain memory ceiling for tenured fixed objects and use it to trigger a major GC when appropriate
2008-01-08 17:02:27 -07:00
Joel Dice
811fbf0ab9
don't try to compile a method twice if it was compiled as a side-effect of initializing a class
2008-01-08 14:23:49 -07:00
Joel Dice
cfc959a3d2
invoke static initializers more lazily
2008-01-08 12:36:34 -07:00
Joel Dice
551addc638
make array bounds checking optional; add comments describing stack mapping algorithm
2008-01-08 10:10:24 -07:00
Joel Dice
c8472c4d30
minimize state tracked by stack mapping algorithm
2008-01-08 08:24:57 -07:00
Joel Dice
ef06be3904
fix bad machine code generated for mov2
2008-01-07 18:33:49 -07:00
Joel Dice
6a314ee65d
Merge branch 'master' of dice:git/vm
2008-01-07 16:30:51 -07:00
Joel Dice
74a7da3010
implement and8, or8, and xor8 for 32-bit systems
2008-01-07 16:30:45 -07:00
Eric Scharff
466c3bb06e
Changes for signal contexts in Mac OS X 10.5 (Leopard)
2008-01-07 16:20:48 -07:00
Joel Dice
8dc674b3d2
remove redundant line in multianewarray
2008-01-07 16:09:55 -07:00
Joel Dice
72f7115323
add FORCE_ALIGN attribute to non-trivial functions called from Java land
2008-01-07 15:49:34 -07:00
Joel Dice
2cda000725
fix code ordering bug in compile() which caused us to calculate the stack map incorrectly; logging tweak
2008-01-07 15:04:53 -07:00
Joel Dice
259dd643e0
fix over-agressive state reset in state mapping code; logging tweaks
2008-01-07 14:32:41 -07:00
Joel Dice
25f12ca40a
set Verbose=false
2008-01-07 10:16:41 -07:00
Joel Dice
888dce8f3c
bugfixes and cleanups for new stack mapping code
2008-01-07 09:01:35 -07:00
Joel Dice
a755368add
sketch of new stack mapping algorithm
2008-01-07 07:51:07 -07:00
Joel Dice
a8e9cc521c
move some generally useful bitset functions from heap.cpp to common.h
2008-01-06 12:21:38 -07:00
Joel Dice
89b60bfba0
fix incorrect encoding of neg instruction
2008-01-03 19:16:29 -07:00
Joel Dice
c119d4362e
fix swapped machine codes for sar/shr instructions
2008-01-03 17:29:33 -07:00
Joel Dice
e30302722e
Merge branch 'master' of dice.ecovate.com:git/vm
...
Conflicts:
src/compile.cpp
2008-01-03 16:54:35 -07:00
Joel Dice
4bda925e08
fix thinko in Frame::mapSizeInWords; code cleanup
2008-01-03 16:53:37 -07:00
Joel Dice
ce2f5dd375
fix use of clobbered stack register in multianewarray
2008-01-03 14:28:29 -07:00
Joel Dice
2d6d69a573
fix thinko in invokeNative2
2008-01-03 12:49:07 -07:00
Joel Dice
651a27f73e
sign-extend array indexes from 32 to 64 bits on amd64; provide useful messages for certain runtime exceptions
2008-01-03 11:37:00 -07:00
Joel Dice
6cecdc8295
relax rules for doing major collection; fix overconstrained assertion
2008-01-03 10:09:43 -07:00
Joel Dice
df20ce92f7
set Verbose=false
2008-01-01 18:48:04 -07:00
Joel Dice
eff3ba1418
fix thinko in visitDirtyFixies()
2008-01-01 18:45:23 -07:00
Joel Dice
e797a8f1ca
fix GC bugs involving old fixed objects pointing to new objects
2008-01-01 18:08:27 -07:00
Joel Dice
1d7931a654
fix GC safety bugs in compile.cpp
2008-01-01 18:07:12 -07:00
Joel Dice
4378110506
avoid type aliasing warnings
2008-01-01 15:36:26 -07:00
Joel Dice
3a87011190
handle SIGBUS on OSX; this isn't working on OSX 10.4, but it might on 10.5
2008-01-01 11:19:55 -07:00
Joel Dice
bdd62011eb
fix up access violation handling on windows; refactor posix segv handling to match API change needed for windows
2008-01-01 10:08:47 -07:00
Joel Dice
100fc304ad
sketch of windows access violation handling; posix segv handling bugfixes
2007-12-31 16:21:57 -07:00
Joel Dice
f151d85f4e
intercept SIGSEGV and throw NullPointerExceptions
2007-12-31 15:40:56 -07:00
Joel Dice
069a760918
snapshot
2007-12-30 15:24:48 -07:00
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