[vmkit-commits] [vmkit] r54682 - in /vmkit/trunk/lib/JnJVM/VMCore: JavaArray.h JavaClass.cpp JavaClass.h JavaJIT.cpp JnjvmModule.cpp JnjvmModule.h LockedMap.h

Nicolas Geoffray nicolas.geoffray at lip6.fr
Tue Aug 12 06:21:55 PDT 2008


Author: geoffray
Date: Tue Aug 12 08:21:50 2008
New Revision: 54682

URL: http://llvm.org/viewvc/llvm-project?rev=54682&view=rev
Log:
Fix compilation for isolate build.


Modified:
    vmkit/trunk/lib/JnJVM/VMCore/JavaArray.h
    vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h
    vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h
    vmkit/trunk/lib/JnJVM/VMCore/LockedMap.h

Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaArray.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaArray.h?rev=54682&r1=54681&r2=54682&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaArray.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaArray.h Tue Aug 12 08:21:50 2008
@@ -167,11 +167,22 @@
   bool equals(const UTF8* other) const {
     return this == other;
   }
+
+  bool lessThan(const UTF8* other) const {
+    return this < other;
+  }
 #else
   bool equals(const UTF8* other) const {
     if (size != other->size) return false;
     else return !memcmp(elements, other->elements, size * sizeof(uint16));
   }
+
+  bool lessThan(const UTF8* other) const {
+    if (size < other->size) return true;
+    else if (size > other->size) return false;
+    else return memcmp((const char*)elements, (const char*)other->elements, 
+                       size * sizeof(uint16)) < 0;
+  }
 #endif
   
   /// print - Prints the UTF8 for debugging purposes.

Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp?rev=54682&r1=54681&r2=54682&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp Tue Aug 12 08:21:50 2008
@@ -24,6 +24,7 @@
 #include "JavaTypes.h"
 #include "Jnjvm.h"
 #include "JnjvmModuleProvider.h"
+#include "LockedMap.h"
 #include "Reader.h"
 
 using namespace jnjvm;
@@ -80,6 +81,13 @@
   return 0;
 }
 
+bool CommonClass::FieldCmp::operator<(const CommonClass::FieldCmp &cmp) const {
+  if (name->lessThan(cmp.name)) return true;
+  else if (cmp.name->lessThan(name)) return false;
+  else return type->lessThan(cmp.type);
+}
+
+
 CommonClass::~CommonClass() {
   free(display);
   free(virtualVT);
@@ -552,10 +560,11 @@
     (JavaObject*)JavaThread::get()->isolate->allocateObject(staticSize,
                                                             staticVT);
   val->initialise(this);
-  for (std::vector<JavaField*>::iterator i = this->staticFields.begin(),
+  for (field_iterator i = this->staticFields.begin(),
             e = this->staticFields.end(); i!= e; ++i) {
     
-    (*i)->initField(val);
+    JavaField* cur = i->second;
+    cur->initField(val);
   }
   
   Jnjvm* vm = JavaThread::get()->isolate;

Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h?rev=54682&r1=54681&r2=54682&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h Tue Aug 12 08:21:50 2008
@@ -136,11 +136,7 @@
 
   FieldCmp(const UTF8* n, const UTF8* t) : name(n), type(t) {}
   
-  inline bool operator<(const FieldCmp &cmp) const {
-    if (name < cmp.name) return true;
-    else if (name > cmp.name) return false;
-    else return type < cmp.type;
-  }
+  inline bool operator<(const FieldCmp &cmp) const;
 };
 
 public:

Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp?rev=54682&r1=54681&r2=54682&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp Tue Aug 12 08:21:50 2008
@@ -1105,9 +1105,9 @@
 #else
           val = (void*)utf8;
           gv =
-            new GlobalVariable(JnjvmModule::ArrayUInt16Type, false, 
+            new GlobalVariable(JnjvmModule::JavaArrayUInt16Type, false, 
                                GlobalValue::ExternalLinkage,
-                               UTF8NullConstant, "",
+                               JnjvmModule::UTF8NullConstant, "",
                                module);
 #endif
         

Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp?rev=54682&r1=54681&r2=54682&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp Tue Aug 12 08:21:50 2008
@@ -131,11 +131,11 @@
 Value* LLVMCommonClassInfo::getVar(JavaJIT* jit) {
   if (!varGV) {
 #ifdef MULTIPLE_VM
-    if (jit->compilingClass->isolate->module == Jnjvm::bootstrapVM->module &&
-        isArray && classDef->isolate != Jnjvm::bootstrapVM) {
+    if (jit->compilingClass->isolate->TheModule == Jnjvm::bootstrapVM->TheModule &&
+        classDef->isArray && classDef->isolate != Jnjvm::bootstrapVM) {
       // We know the array class can belong to bootstrap
-      CommonClass* cl = Jnjvm::bootstrapVM->constructArray(this->name, 0);
-      return getVar(cl, jit);
+      CommonClass* cl = Jnjvm::bootstrapVM->constructArray(classDef->name, 0);
+      return cl->isolate->TheModule->getClassInfo(cl)->getVar(jit);
     }
 #endif
       
@@ -166,8 +166,8 @@
   }
   return new LoadInst(delegateeGV, "", jit->currentBlock);
 #else
-  Value* ld = llvmVar(jit);
-  return llvm::CallInst::Create(JnjvmModule::getClassDelegateeLLVM, ld, "",
+  Value* ld = getVar(jit);
+  return llvm::CallInst::Create(JnjvmModule::GetClassDelegateeFunction, ld, "",
                                 jit->currentBlock);
 #endif
 }
@@ -472,8 +472,7 @@
   return new LoadInst(staticVarGV, "", jit->currentBlock);
 
 #else
-  Value* var = getVar(jit->compilingClass->isolate->module);
-  Value* ld = new LoadInst(var, "", jit->currentBlock);
+  Value* ld = getVar(jit);
   ld = jit->invoke(JnjvmModule::InitialisationCheckFunction, ld, "",
                    jit->currentBlock);
   return jit->invoke(JnjvmModule::GetStaticInstanceFunction, ld,

Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h?rev=54682&r1=54681&r2=54682&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h Tue Aug 12 08:21:50 2008
@@ -73,8 +73,11 @@
   LLVMCommonClassInfo(CommonClass* cl, JnjvmModule* M) : 
     classDef(cl),
     module(M),
-    varGV(0),
-    delegateeGV(0) {}
+    varGV(0)
+#ifndef MULTIPLE_VM
+    ,delegateeGV(0)
+#endif
+    {}
 };
 
 class LLVMClassInfo : public LLVMCommonClassInfo {

Modified: vmkit/trunk/lib/JnJVM/VMCore/LockedMap.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/LockedMap.h?rev=54682&r1=54681&r2=54682&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/LockedMap.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/LockedMap.h Tue Aug 12 08:21:50 2008
@@ -33,20 +33,10 @@
 
 struct ltutf8
 {
-#ifdef MULTIPLE_VM
   bool operator()(const UTF8* s1, const UTF8* s2) const
   {
-    if (s1->size < s2->size) return true;
-    else if (s1->size > s2->size) return false;
-    else return memcmp((const char*)s1->elements, (const char*)s2->elements, 
-                       s1->size * sizeof(uint16)) < 0;
+    return s1->lessThan(s2);
   }
-#else
-  bool operator()(const UTF8* s1, const UTF8* s2) const
-  {
-    return s1 < s2;
-  }
-#endif
 };
 
 template<class Key, class Container, class Compare>





More information about the vmkit-commits mailing list