[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