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
Joel Dice
efb4e0241b
do all java->native class via Compiler::indirectCall to ensure we can always make an accurate stack trace (part 2)
2008-04-21 11:31:10 -06:00
Joel Dice
8c450a75a1
do all java->native class via Compiler::indirectCall to ensure we can always make an accurate stack trace
2008-04-21 11:29:36 -06:00
Joel Dice
61f866ce89
do a garbage collection in compile.cpp if throwing an exception that required creating a backup heap
2008-04-20 10:21:32 -06:00
Joel Dice
479c48f1dd
fix printf warning
2008-04-15 23:26:58 -06:00
Joel Dice
0d3e6b7793
simplify memory allocation interfaces
2008-04-13 12:15:04 -06:00
Joel Dice
85712d183b
fix stack walking from native methods
2008-04-11 18:06:04 -06:00
Joel Dice
aa9cb5c086
fix windows build
2008-04-11 17:01:17 -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
3fb90fdaa4
limit scope of lock acquisition in compileMethod2
2008-04-07 18:03:58 -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
4102c97be3
fix bugs wrt calling methods via JNI
2008-04-01 11:37:59 -06:00
Joel Dice
9fe2cbff43
implement l2d and l2f byte codes
2008-03-20 18:37:58 -06: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
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
2346714d60
move local reference cleanup from invoke() to invokeNative2(), where it belonged all along
2008-02-01 14:17:54 -07:00
Joel Dice
eeac584474
fix thinko in invokeNative2
2008-01-30 17:08:47 -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
8150b957c9
support JIT compiling methods with unsorted exception handler tables
2008-01-25 17:17:27 -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
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
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
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
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
570925ad0e
handle locking for synchronized native methods
2008-01-11 10:49:11 -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
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
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