[vmkit-commits] [vmkit] r83140 - in /vmkit/trunk/lib: JnJVM/VMCore/JavaThread.cpp Mvm/Compiler/JIT.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Tue Sep 29 21:04:48 PDT 2009
Author: geoffray
Date: Tue Sep 29 23:04:47 2009
New Revision: 83140
URL: http://llvm.org/viewvc/llvm-project?rev=83140&view=rev
Log:
Fix stub magic value to match with LLVM's value.
Modified:
vmkit/trunk/lib/JnJVM/VMCore/JavaThread.cpp
vmkit/trunk/lib/Mvm/Compiler/JIT.cpp
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaThread.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaThread.cpp?rev=83140&r1=83139&r2=83140&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaThread.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaThread.cpp Tue Sep 29 23:04:47 2009
@@ -163,6 +163,8 @@
do {
void* ip = FRAME_IP(addr);
+ bool isStub = ((unsigned char*)ip)[0] == 0xCE;
+ if (isStub) ip = addr[2];
context.push_back(ip);
addr = (void**)addr[0];
// We end walking the stack when we cross a native -> Java call. Here
@@ -198,6 +200,8 @@
do {
void* ip = FRAME_IP(addr);
+ bool isStub = ((unsigned char*)ip)[0] == 0xCE;
+ if (isStub) ip = addr[2];
if (index == level) {
JavaMethod* meth = getJVM()->IPToMethod<JavaMethod>(ip);
return meth->classDef;
@@ -241,6 +245,8 @@
do {
void* ip = FRAME_IP(addr);
+ bool isStub = ((unsigned char*)ip)[0] == 0xCE;
+ if (isStub) ip = addr[2];
JavaMethod* meth = getJVM()->IPToMethod<JavaMethod>(ip);
JnjvmClassLoader* loader = meth->classDef->classLoader;
obj = loader->getJavaClassLoader();
@@ -320,6 +326,8 @@
do {
void* ip = FRAME_IP(addr);
+ bool isStub = ((unsigned char*)ip)[0] == 0xCE;
+ if (isStub) ip = addr[2];
JavaMethod* meth = vm->IPToMethod<JavaMethod>(ip);
assert(meth && "Wrong stack");
fprintf(stderr, "; %p in %s.%s\n", ip,
Modified: vmkit/trunk/lib/Mvm/Compiler/JIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/Mvm/Compiler/JIT.cpp?rev=83140&r1=83139&r2=83140&view=diff
==============================================================================
--- vmkit/trunk/lib/Mvm/Compiler/JIT.cpp (original)
+++ vmkit/trunk/lib/Mvm/Compiler/JIT.cpp Tue Sep 29 23:04:47 2009
@@ -347,7 +347,8 @@
std::vector<void*>::iterator it = th->addresses.end();
VirtualMachine* vm = th->MyVM;
- void** addr = mvm::Thread::get() == th ? (void**)FRAME_PTR() : (void**)th->getLastSP();
+ void** addr = mvm::Thread::get() == th ?
+ (void**)FRAME_PTR() : (void**)th->getLastSP();
void** oldAddr = addr;
// Loop until we cross the first Java frame.
@@ -395,7 +396,7 @@
do {
void* ip = FRAME_IP(addr);
- bool isStub = ((unsigned char*)ip)[0] == 0xCD;
+ bool isStub = ((unsigned char*)ip)[0] == 0xCE;
if (isStub) ip = addr[2];
camlframe* CF = (camlframe*)VirtualMachine::GCMap.GCInfos[ip];
if (CF) {
@@ -416,7 +417,7 @@
for (llvm::GCFunctionInfo::live_iterator K = GFI->live_begin(J),
KE = GFI->live_end(J); K != KE; ++K) {
intptr_t obj = *(intptr_t*)(spaddr + K->StackOffset);
- // Verify that obj does cnot come from a JSR bytecode.
+ // Verify that obj does not come from a JSR bytecode.
if (!(obj & 1)) Collector::scanObject((void*)obj);
}
}
More information about the vmkit-commits
mailing list