[vmkit-commits] [vmkit] r105910 - in /vmkit/trunk/lib/J3: Classpath/Classpath.inc Classpath/ClasspathField.inc Classpath/ClasspathMethod.inc Classpath/ClasspathReflect.h Classpath/ClasspathVMThread.inc Classpath/ClasspathVMThrowable.inc Classpath/JavaUpcalls.cpp Compiler/JavaAOTCompiler.cpp Compiler/JavaJIT.cpp VMCore/JavaClass.cpp VMCore/JavaClass.h VMCore/JavaObject.cpp VMCore/Jni.cpp VMCore/Jnjvm.cpp VMCore/JnjvmClassLoader.cpp VMCore/VirtualTables.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Sun Jun 13 00:40:56 PDT 2010


Author: geoffray
Date: Sun Jun 13 02:40:55 2010
New Revision: 105910

URL: http://llvm.org/viewvc/llvm-project?rev=105910&view=rev
Log:
Make two distinct methods for accessing fields in J3: static and instance.


Modified:
    vmkit/trunk/lib/J3/Classpath/Classpath.inc
    vmkit/trunk/lib/J3/Classpath/ClasspathField.inc
    vmkit/trunk/lib/J3/Classpath/ClasspathMethod.inc
    vmkit/trunk/lib/J3/Classpath/ClasspathReflect.h
    vmkit/trunk/lib/J3/Classpath/ClasspathVMThread.inc
    vmkit/trunk/lib/J3/Classpath/ClasspathVMThrowable.inc
    vmkit/trunk/lib/J3/Classpath/JavaUpcalls.cpp
    vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp
    vmkit/trunk/lib/J3/Compiler/JavaJIT.cpp
    vmkit/trunk/lib/J3/VMCore/JavaClass.cpp
    vmkit/trunk/lib/J3/VMCore/JavaClass.h
    vmkit/trunk/lib/J3/VMCore/JavaObject.cpp
    vmkit/trunk/lib/J3/VMCore/Jni.cpp
    vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp
    vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp
    vmkit/trunk/lib/J3/VMCore/VirtualTables.cpp

Modified: vmkit/trunk/lib/J3/Classpath/Classpath.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Classpath/Classpath.inc?rev=105910&r1=105909&r2=105910&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Classpath/Classpath.inc (original)
+++ vmkit/trunk/lib/J3/Classpath/Classpath.inc Sun Jun 13 02:40:55 2010
@@ -65,7 +65,7 @@
 
   verifyNull(obj);
   JavaField* field = JavaObjectField::getInternalField(Field);
-  field->setInt8Field(obj, (uint8)val);
+  field->setInstanceInt8Field(obj, (uint8)val);
 
   END_NATIVE_EXCEPTION
 }
@@ -83,7 +83,7 @@
 
   verifyNull(obj);
   JavaField* field = JavaObjectField::getInternalField(Field);
-  field->setInt8Field(obj, (uint8)val);
+  field->setInstanceInt8Field(obj, (uint8)val);
 
   END_NATIVE_EXCEPTION
 }
@@ -101,7 +101,7 @@
 
   verifyNull(obj);
   JavaField* field = JavaObjectField::getInternalField(Field);
-  field->setInt16Field((JavaObject*)obj, (uint16)val);
+  field->setInstanceInt16Field((JavaObject*)obj, (uint16)val);
 
   END_NATIVE_EXCEPTION
 }
@@ -119,7 +119,7 @@
   
   verifyNull(obj);
   JavaField* field = JavaObjectField::getInternalField(Field);
-  field->setInt16Field(obj, (sint16)val);
+  field->setInstanceInt16Field(obj, (sint16)val);
   
   END_NATIVE_EXCEPTION
 }
@@ -137,7 +137,7 @@
   
   verifyNull(obj);
   JavaField* field = JavaObjectField::getInternalField(Field);
-  field->setInt32Field(obj, (sint32)val);
+  field->setInstanceInt32Field(obj, (sint32)val);
 
   END_NATIVE_EXCEPTION
 }
@@ -155,7 +155,7 @@
   
   verifyNull(obj);
   JavaField* field = JavaObjectField::getInternalField(Field);
-  field->setLongField(obj, (sint64)val);
+  field->setInstanceLongField(obj, (sint64)val);
   
   END_NATIVE_EXCEPTION
 }
@@ -173,7 +173,7 @@
   
   verifyNull(obj);
   JavaField* field = JavaObjectField::getInternalField(Field);
-  field->setFloatField(obj, (float)val);
+  field->setInstanceFloatField(obj, (float)val);
   
   END_NATIVE_EXCEPTION
 }
@@ -191,7 +191,7 @@
   
   verifyNull(obj);
   JavaField* field = JavaObjectField::getInternalField(Field);
-  field->setDoubleField(obj, (double)val);
+  field->setInstanceDoubleField(obj, (double)val);
 
   END_NATIVE_EXCEPTION
 }
@@ -210,7 +210,7 @@
   
   verifyNull(obj);
   JavaField* field = JavaObjectField::getInternalField(Field);
-  field->setObjectField(obj, val);
+  field->setInstanceObjectField(obj, val);
 
   END_NATIVE_EXCEPTION
 }

Modified: vmkit/trunk/lib/J3/Classpath/ClasspathField.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Classpath/ClasspathField.inc?rev=105910&r1=105909&r2=105910&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Classpath/ClasspathField.inc (original)
+++ vmkit/trunk/lib/J3/Classpath/ClasspathField.inc Sun Jun 13 02:40:55 2010
@@ -82,11 +82,9 @@
   JavaField* field = JavaObjectField::getInternalField(Field);
   const Typedef* type = field->getSignature();
   bool stat =  isStatic(field->access);
-  void* StatPtr = 0;
   
   if (stat) {
     cl->initialiseClass(vm);
-    StatPtr = cl->getStaticInstance();
   } else {
     verifyNull(obj);
   }
@@ -94,16 +92,33 @@
   if (type->isPrimitive()) {
     const PrimitiveTypedef* prim = (const PrimitiveTypedef*)type;
 
-    if (prim->isInt())
-      res = (sint32)field->getInt32Field(stat ? StatPtr : obj);
-    else if (prim->isChar())
-      res = (uint32)field->getInt16Field(stat ? StatPtr : obj);
-    else if (prim->isByte())
-      res = (sint32)field->getInt8Field(stat ? StatPtr : obj);
-    else if (prim->isShort())
-      res = (sint32)field->getInt16Field(stat ? StatPtr : obj);
-    else
+    if (prim->isInt()) {
+      if (stat) {
+        res = (sint32)field->getStaticInt32Field();
+      } else {
+        res = (sint32)field->getInstanceInt32Field(obj);
+      }
+    } else if (prim->isChar()) {
+      if (stat) {
+        res = (uint32)field->getStaticInt16Field();
+      } else {
+        res = (uint32)field->getInstanceInt16Field(obj);
+      }
+    } else if (prim->isByte()) {
+      if (stat) {
+        res = (sint32)field->getStaticInt8Field();
+      } else {
+        res = (sint32)field->getInstanceInt8Field(obj);
+      }
+    } else if (prim->isShort()) {
+      if (stat) {
+        res = (sint32)field->getStaticInt16Field();
+      } else {
+        res = (sint32)field->getInstanceInt16Field(obj);
+      }
+    } else {
       vm->illegalArgumentException("wrong type");
+    }
   } else {
       vm->illegalArgumentException("wrong type");
   }
@@ -130,12 +145,10 @@
   Jnjvm* vm = JavaThread::get()->getJVM();
   UserClass* cl = JavaObjectField::getClass(Field);
   JavaField* field = JavaObjectField::getInternalField(Field);
-  bool stat =  isStatic(field->access);
-  void* StatPtr = 0;
+  bool stat = isStatic(field->access);
   
   if (stat) {
     cl->initialiseClass(vm);
-    StatPtr = cl->getStaticInstance();
   } else {
     verifyNull(obj);
   }
@@ -144,18 +157,39 @@
   if (type->isPrimitive()) {
     const PrimitiveTypedef* prim = (const PrimitiveTypedef*)type;
     
-    if (prim->isInt())
-      res = (sint64)field->getInt32Field(stat ? StatPtr : obj);
-    else if (prim->isChar())
-      res = (uint64)field->getInt16Field(stat ? StatPtr : obj);
-    else if (prim->isByte())
-      res = (sint64)field->getInt8Field(stat ? StatPtr : obj);
-    else if (prim->isShort())
-      res = (sint64)field->getInt16Field(stat ? StatPtr : obj);
-    else if (prim->isLong())
-      res = (sint64)field->getLongField(stat ? StatPtr : obj);
-    else
+    if (prim->isInt()) {
+      if (stat) {
+        res = (sint64)field->getStaticInt32Field();
+      } else {
+        res = (sint64)field->getInstanceInt32Field(obj);
+      }
+    } else if (prim->isChar()) {
+      if (stat) {
+        res = (uint64)field->getStaticInt16Field();
+      } else {
+        res = (uint64)field->getInstanceInt16Field(obj);
+      }
+    } else if (prim->isByte()) {
+      if (stat) {
+        res = (sint64)field->getStaticInt8Field();
+      } else {
+        res = (sint64)field->getInstanceInt8Field(obj);
+      }
+    } else if (prim->isShort()) {
+      if (stat) {
+        res = (sint64)field->getStaticInt16Field();
+      } else {
+        res = (sint64)field->getInstanceInt16Field(obj);
+      }
+    } else if (prim->isLong()) {
+      if (stat) {
+        res = (sint64)field->getStaticLongField();
+      } else {
+        res = (sint64)field->getInstanceLongField(obj);
+      }
+    } else {
       vm->illegalArgumentException("wrong type");
+    }
   } else {
     vm->illegalArgumentException("wrong type");
   }
@@ -182,11 +216,9 @@
   UserClass* cl = JavaObjectField::getClass(Field);
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat =  isStatic(field->access);
-  void* StatPtr = 0;
    
   if (stat) {
     cl->initialiseClass(vm);
-    StatPtr = cl->getStaticInstance();
   } else {
     verifyNull(obj);
   }
@@ -194,10 +226,15 @@
   const Typedef* type = field->getSignature();
   if (type->isPrimitive()) {
     const PrimitiveTypedef* prim = (const PrimitiveTypedef*)type;
-    if (prim->isBool())  
-      res = (uint8)field->getInt8Field(stat ? StatPtr : obj);
-    else
+    if (prim->isBool()) { 
+      if (stat) {
+        res = (uint8)field->getStaticInt8Field();
+      } else {
+        res = (uint8)field->getInstanceInt8Field(obj);
+      }
+    } else {
       vm->illegalArgumentException("wrong type");
+    }
   } else {
     vm->illegalArgumentException("wrong type");
   }
@@ -224,11 +261,9 @@
   UserClass* cl = JavaObjectField::getClass(Field);
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
-  void* StatPtr = 0;
   
   if (stat) {
     cl->initialiseClass(vm);
-    StatPtr = cl->getStaticInstance();
   } else {
     verifyNull(obj);
   }
@@ -236,21 +271,46 @@
   const Typedef* type = field->getSignature();
   if (type->isPrimitive()) {
     const PrimitiveTypedef* prim = (const PrimitiveTypedef*)type;
-    if (prim->isByte())
-      res = (jfloat)field->getInt8Field(stat ? StatPtr : obj);
-    else if (prim->isInt())
-      res = (jfloat)field->getInt32Field(stat ? StatPtr : obj);
-    else if (prim->isShort())
-      res = (jfloat)field->getInt16Field(stat ? StatPtr : obj);
-    else if (prim->isLong())
-      res = (jfloat)field->getLongField(stat ? StatPtr : obj);
-    else if (prim->isChar())
+    if (prim->isByte()) {
+      if (stat) {
+        res = (jfloat)field->getStaticInt8Field();
+      } else {
+        res = (jfloat)field->getInstanceInt8Field(obj);
+      }
+    } else if (prim->isInt()) {
+      if (stat) {
+        res = (jfloat)field->getStaticInt32Field();
+      } else {
+        res = (jfloat)field->getInstanceInt32Field(obj);
+      }
+    } else if (prim->isShort()) {
+      if (stat) {
+        res = (jfloat)field->getStaticInt16Field();
+      } else {
+        res = (jfloat)field->getInstanceInt16Field(obj);
+      }
+    } else if (prim->isLong()) {
+      if (stat) {
+        res = (jfloat)field->getStaticLongField();
+      } else {
+        res = (jfloat)field->getInstanceLongField(obj);
+      }
+    } else if (prim->isChar()) {
       // Cast to uint32 because char is unsigned.
-      res = (jfloat)(uint32)field->getInt16Field(stat ? StatPtr : obj);
-    else if (prim->isFloat())
-      res = (jfloat)field->getFloatField(stat ? StatPtr : obj);
-    else
+      if (stat) {
+        res = (jfloat)(uint32)field->getStaticInt16Field();
+      } else {
+        res = (jfloat)(uint32)field->getInstanceInt16Field(obj);
+      }
+    } else if (prim->isFloat()) {
+      if (stat) {
+        res = (jfloat)field->getStaticFloatField();
+      } else {
+        res = (jfloat)field->getInstanceFloatField(obj);
+      }
+    } else {
       vm->illegalArgumentException("wrong type");
+    }
   } else {
     vm->illegalArgumentException("wrong type");
   }
@@ -276,11 +336,9 @@
   UserClass* cl = JavaObjectField::getClass(Field);
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
-  void* StatPtr = 0;
   
   if (stat) {
     cl->initialiseClass(vm);
-    StatPtr = cl->getStaticInstance();
   } else {
     verifyNull(obj);
   }
@@ -288,10 +346,15 @@
   const Typedef* type = field->getSignature();
   if (type->isPrimitive()) {
     const PrimitiveTypedef* prim = (const PrimitiveTypedef*)type;
-    if (prim->isByte())
-      res = (sint8)field->getInt8Field(stat ? StatPtr : obj);
-    else
+    if (prim->isByte()) {
+      if (stat) {
+        res = (sint8)field->getStaticInt8Field();
+      } else {
+        res = (sint8)field->getInstanceInt8Field(obj);
+      }
+    } else {
       vm->illegalArgumentException("wrong type");
+    }
   } else {
     vm->illegalArgumentException("wrong type");
   }
@@ -317,11 +380,9 @@
   UserClass* cl = JavaObjectField::getClass(Field);
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
-  void* StatPtr = 0;
   
   if (stat) {
     cl->initialiseClass(vm);
-    StatPtr = cl->getStaticInstance();
   } else {
     verifyNull(obj);
   }
@@ -329,10 +390,15 @@
   const Typedef* type = field->getSignature();
   if (type->isPrimitive()) {
     const PrimitiveTypedef* prim = (const PrimitiveTypedef*)type;
-    if (prim->isChar())
-      res = (uint16)field->getInt16Field(stat ? StatPtr : obj);
-    else
+    if (prim->isChar()) {
+      if (stat) {
+        res = (uint16)field->getStaticInt16Field();
+      } else {
+        res = (uint16)field->getInstanceInt16Field(obj);
+      }
+    } else {
       vm->illegalArgumentException("wrong type");
+    }
   } else {
     vm->illegalArgumentException("wrong type");
   }
@@ -360,11 +426,9 @@
   UserClass* cl = JavaObjectField::getClass(Field);
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
-  void* StatPtr = 0;
   
   if (stat) {
     cl->initialiseClass(vm);
-    StatPtr = cl->getStaticInstance();
   } else {
     verifyNull(obj);
   }
@@ -372,12 +436,21 @@
   const Typedef* type = field->getSignature();
   if (type->isPrimitive()) {
     const PrimitiveTypedef* prim = (const PrimitiveTypedef*)type;
-    if (prim->isShort())
-      res = (sint16)field->getInt16Field(stat ? StatPtr : obj);
-    else if (prim->isByte())
-      res = (sint16)field->getInt8Field(stat ? StatPtr : obj);
-    else
+    if (prim->isShort()) {
+      if (stat) {
+        res = (sint16)field->getStaticInt16Field();
+      } else {
+        res = (sint16)field->getInstanceInt16Field(obj);
+      }
+    } else if (prim->isByte()) {
+      if (stat) {
+        res = (sint16)field->getStaticInt8Field();
+      } else {
+        res = (sint16)field->getInstanceInt8Field(obj);
+      }
+    } else {
       vm->illegalArgumentException("wrong type");
+    }
   } else {
     vm->illegalArgumentException("wrong type");
   }
@@ -403,11 +476,9 @@
   UserClass* cl = JavaObjectField::getClass(Field);
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
-  void* StatPtr = 0;
   
   if (stat) {
     cl->initialiseClass(vm);
-    StatPtr = cl->getStaticInstance();
   } else {
     verifyNull(obj);
   }
@@ -415,22 +486,51 @@
   const Typedef* type = field->getSignature();
   if (type->isPrimitive()) {
     const PrimitiveTypedef* prim = (const PrimitiveTypedef*)type;
-    if (prim->isByte())
-      res = (jdouble)(sint64)field->getInt8Field(stat ? StatPtr : obj);
-    else if (prim->isInt())
-      res = (jdouble)(sint64)field->getInt32Field(stat ? StatPtr : obj);
-    else if (prim->isShort())
-      res = (jdouble)(sint64)field->getInt16Field(stat? StatPtr : obj);
-    else if (prim->isLong())
-      res = (jdouble)(sint64)field->getLongField(stat? StatPtr : obj);
-    else if (prim->isChar())
-      res = (jdouble)(uint64)field->getInt16Field(stat ? StatPtr : obj);
-    else if (prim->isFloat())
-      res = (jdouble)field->getFloatField(stat ? StatPtr : obj);
-    else if (prim->isDouble())
-      res = (jdouble)field->getDoubleField(stat ? StatPtr : obj);
-    else
+    if (prim->isByte()) {
+      if (stat) {
+        res = (jdouble)(sint64)field->getStaticInt8Field();
+      } else {
+        res = (jdouble)(sint64)field->getInstanceInt8Field(obj);
+      }
+    } else if (prim->isInt()) {
+      if (stat) {
+        res = (jdouble)(sint64)field->getStaticInt32Field();
+      } else {
+        res = (jdouble)(sint64)field->getInstanceInt32Field(obj);
+      }
+    } else if (prim->isShort()) {
+      if (stat) {
+        res = (jdouble)(sint64)field->getStaticInt16Field();
+      } else {
+        res = (jdouble)(sint64)field->getInstanceInt16Field(obj);
+      }
+    } else if (prim->isLong()) {
+      if (stat) {
+        res = (jdouble)(sint64)field->getStaticLongField();
+      } else {
+        res = (jdouble)(sint64)field->getInstanceLongField(obj);
+      }
+    } else if (prim->isChar()) {
+      if (stat) {
+        res = (jdouble)(uint64)field->getStaticInt16Field();
+      } else {
+        res = (jdouble)(uint64)field->getInstanceInt16Field(obj);
+      }
+    } else if (prim->isFloat()) {
+      if (stat) {
+        res = (jdouble)field->getStaticFloatField();
+      } else {
+        res = (jdouble)field->getInstanceFloatField(obj);
+      }
+    } else if (prim->isDouble()) {
+      if (stat) {
+        res = (jdouble)field->getStaticDoubleField();
+      } else {
+        res = (jdouble)field->getInstanceDoubleField(obj);
+      }
+    } else {
       vm->illegalArgumentException("wrong type");
+    }
   } else {
     vm->illegalArgumentException("wrong type");
   }
@@ -458,11 +558,9 @@
   UserClass* cl = JavaObjectField::getClass(Field);
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
-  void* StatPtr = 0;
   
   if (stat) {
     cl->initialiseClass(vm);
-    StatPtr = cl->getStaticInstance();
   } else {
     verifyNull(obj);
   }
@@ -471,47 +569,59 @@
   if (type->isPrimitive()) {
     const PrimitiveTypedef* prim = (const PrimitiveTypedef*)type;
     if (prim->isBool()) {
-      uint8 val = field->getInt8Field(stat ? StatPtr : obj);
+      uint8 val =  stat ? field->getStaticInt8Field() :
+                          field->getInstanceInt8Field(obj);
       res = vm->upcalls->boolClass->doNew(vm);
-      vm->upcalls->boolValue->setInt8Field(res, val);
+      vm->upcalls->boolValue->setInstanceInt8Field(res, val);
     }
     else if (prim->isByte()) {
-      sint8 val =  field->getInt8Field(stat ? StatPtr : obj);
+      sint8 val =  stat ? field->getStaticInt8Field() :
+                          field->getInstanceInt8Field(obj);
       res = vm->upcalls->byteClass->doNew(vm);
-      vm->upcalls->byteValue->setInt8Field(res, val);
+      vm->upcalls->byteValue->setInstanceInt8Field(res, val);
     }
     else if (prim->isChar()) {
-      uint16 val =  field->getInt16Field(stat ? StatPtr : obj);
+      uint16 val =  stat ? field->getStaticInt16Field() :
+                           field->getInstanceInt16Field(obj);
       res = vm->upcalls->charClass->doNew(vm);
-      vm->upcalls->charValue->setInt16Field(res, val);
+      vm->upcalls->charValue->setInstanceInt16Field(res, val);
     }
     else if (prim->isShort()) {
-      sint16 val =  field->getInt16Field(stat ? StatPtr : obj);
+      sint16 val =  stat ? field->getStaticInt16Field() :
+                           field->getInstanceInt16Field(obj);
       res = vm->upcalls->shortClass->doNew(vm);
-      vm->upcalls->shortValue->setInt16Field(res, val);
+      vm->upcalls->shortValue->setInstanceInt16Field(res, val);
     }
     else if (prim->isInt()) {
-      sint32 val =  field->getInt32Field(stat ? StatPtr : obj);
+      sint64 val =  stat ? field->getStaticInt32Field() :
+                           field->getInstanceInt32Field(obj);
       res = vm->upcalls->intClass->doNew(vm);
-      vm->upcalls->intValue->setInt32Field(res, val);
+      vm->upcalls->intValue->setInstanceInt32Field(res, val);
     }
     else if (prim->isLong()) {
-      sint64 val =  field->getLongField(stat ? StatPtr : obj);
+      sint64 val =  stat ? field->getStaticLongField() :
+                           field->getInstanceLongField(obj);
       res = vm->upcalls->longClass->doNew(vm);
-      vm->upcalls->longValue->setLongField(res, val);
+      vm->upcalls->longValue->setInstanceLongField(res, val);
     }
     else if (prim->isFloat()) {
-      float val =  field->getFloatField(stat ? StatPtr : obj);
+      float val =  stat ? field->getStaticFloatField() :
+                          field->getInstanceFloatField(obj);
       res = vm->upcalls->floatClass->doNew(vm);
-      vm->upcalls->floatValue->setFloatField(res, val);
+      vm->upcalls->floatValue->setInstanceFloatField(res, val);
     }
     else if (prim->isDouble()) {
-      double val =  field->getDoubleField(stat ? StatPtr : obj);
+      double val =  stat ? field->getStaticDoubleField() :
+                           field->getInstanceDoubleField(obj);
       res = vm->upcalls->doubleClass->doNew(vm);
-      vm->upcalls->doubleValue->setDoubleField(res, val);
+      vm->upcalls->doubleValue->setInstanceDoubleField(res, val);
     }
   } else {
-    res =  field->getObjectField(stat ? StatPtr : obj);
+    if (stat) {
+      res =  field->getStaticObjectField();
+    } else {
+      res =  field->getInstanceObjectField(obj);
+    }
   }
   
   END_NATIVE_EXCEPTION
@@ -536,12 +646,10 @@
   JavaField* field = JavaObjectField::getInternalField(Field);
   jvalue buf;
   bool stat = isStatic(field->access);
-  void* StatPtr = 0;
   
   
   if (stat) {
     cl->initialiseClass(vm);
-    StatPtr = cl->getStaticInstance();
   } else {
     verifyNull(obj);
   }
@@ -552,24 +660,61 @@
 
   if (type->isPrimitive()) {
     const PrimitiveTypedef* prim = (const PrimitiveTypedef*)type;
-    if (prim->isBool())
-      field->setInt8Field(stat ? StatPtr : obj, buf.z);
-    else if (prim->isByte())
-      field->setInt8Field(stat ? StatPtr : obj, buf.b);
-    else if (prim->isChar())
-      field->setInt16Field(stat ? StatPtr : obj, buf.c);
-    else if (prim->isShort())
-      field->setInt16Field(stat ? StatPtr : obj, buf.s);
-    else if (prim->isInt())
-      field->setInt32Field(stat ? StatPtr : obj, buf.i);
-    else if (prim->isLong())
-      field->setLongField(stat ? StatPtr : obj, buf.j);
-    else if (prim->isFloat())
-      field->setFloatField(stat ? StatPtr : obj, buf.f);
-    else if (prim->isDouble())
-      field->setDoubleField(stat ? StatPtr : obj, buf.d);
+    if (prim->isBool()) {
+      if (stat) {
+        field->setStaticInt8Field(buf.z);
+      } else {
+        field->setInstanceInt8Field(obj, buf.z);
+      }
+    } else if (prim->isByte()) {
+      if (stat) {
+        field->setStaticInt8Field(buf.b);
+      } else {
+        field->setInstanceInt8Field(obj, buf.b);
+      }
+    } else if (prim->isChar()) {
+      if (stat) {
+        field->setStaticInt16Field(buf.c);
+      } else {
+        field->setInstanceInt16Field(obj, buf.c);
+      }
+    } else if (prim->isShort()) {
+      if (stat) {
+        field->setStaticInt16Field(buf.s);
+      } else {
+        field->setInstanceInt16Field(obj, buf.s);
+      }
+    } else if (prim->isInt()) {
+      if (stat) {
+        field->setStaticInt32Field(buf.i);
+      } else {
+        field->setInstanceInt32Field(obj, buf.i);
+      }
+    } else if (prim->isLong()) {
+      if (stat) {
+        field->setStaticLongField(buf.j);
+      } else {
+        field->setInstanceLongField(obj, buf.j);
+      }
+    } else if (prim->isFloat()) {
+      if (stat) {
+        field->setStaticFloatField(buf.f);
+      } else {
+        field->setInstanceFloatField(obj, buf.f);
+      }
+    } else if (prim->isDouble()) {
+      if (stat) {
+        field->setStaticDoubleField(buf.d);
+      } else {
+        field->setInstanceDoubleField(obj, buf.d);
+      }
+    }
   } else {
-    field->setObjectField(stat ? StatPtr : obj, val);
+    if (stat) {
+      field->setStaticObjectField(val);
+    } else {
+      field->setInstanceObjectField(obj, val);
+    }
   }
 
   END_NATIVE_EXCEPTION
@@ -590,11 +735,9 @@
   UserClass* cl = JavaObjectField::getClass(Field);
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
-  void* StatPtr = 0;
   
   if (stat) {
     cl->initialiseClass(vm);
-    StatPtr = cl->getStaticInstance();
   } else {
     verifyNull(obj);
   }
@@ -602,10 +745,15 @@
   const Typedef* type = field->getSignature();
   if (type->isPrimitive()) {
     const PrimitiveTypedef* prim = (const PrimitiveTypedef*)type;
-    if (prim->isBool())
-      field->setInt8Field(stat ? StatPtr : obj, (uint8)val);
-    else
+    if (prim->isBool()) {
+      if (stat) {
+        field->setStaticInt8Field((uint8)val);
+      } else {
+        field->setInstanceInt8Field(obj, (uint8)val);
+      }
+    } else {
       vm->illegalArgumentException("wrong type");
+    }
   } else {
     vm->illegalArgumentException("wrong type");
   }
@@ -629,11 +777,9 @@
   UserClass* cl = JavaObjectField::getClass(Field);
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
-  void* StatPtr = 0;
   
   if (stat) {
     cl->initialiseClass(vm);
-    StatPtr = cl->getStaticInstance();
   } else {
     verifyNull(obj);
   }
@@ -641,20 +787,45 @@
   const Typedef* type = field->getSignature();
   if (type->isPrimitive()) {
     const PrimitiveTypedef* prim = (const PrimitiveTypedef*)type;
-    if (prim->isByte())
-      field->setInt8Field(stat ? StatPtr : obj, (sint8)val);
-    else if (prim->isShort())
-      field->setInt16Field(stat ? StatPtr : obj, (sint16)val);
-    else if (prim->isInt())
-      field->setInt32Field(stat ? StatPtr : obj, (sint32)val);
-    else if (prim->isLong())
-      field->setLongField(stat ? StatPtr : obj, (sint64)val);
-    else if (prim->isFloat())
-      field->setFloatField(stat ? StatPtr : obj, (float)val);
-    else if (prim->isDouble())
-      field->setDoubleField(stat ? StatPtr : obj, (double)val);
-    else
+    if (prim->isByte()) {
+      if (stat) {
+        field->setStaticInt8Field((sint8)val);
+      } else {
+        field->setInstanceInt8Field(obj, (sint8)val);
+      }
+    } else if (prim->isShort()) {
+      if (stat) {
+        field->setStaticInt16Field((sint16)val);
+      } else {
+        field->setInstanceInt16Field(obj, (sint16)val);
+      }
+    } else if (prim->isInt()) {
+      if (stat) {
+        field->setStaticInt32Field((sint32)val);
+      } else {
+        field->setInstanceInt32Field(obj, (sint32)val);
+      }
+    } else if (prim->isLong()) {
+      if (stat) {
+        field->setStaticLongField((sint64)val);
+      } else {
+        field->setInstanceLongField(obj, (sint64)val);
+      }
+    } else if (prim->isFloat()) {
+      if (stat) {
+        field->setStaticFloatField((float)val);
+      } else {
+        field->setInstanceFloatField(obj, (float)val);
+      }
+    } else if (prim->isDouble()) {
+      if (stat) {
+        field->setStaticDoubleField((double)val);
+      } else {
+        field->setInstanceDoubleField(obj, (double)val);
+      }
+    } else {
       vm->illegalArgumentException("wrong type");
+    }
   } else {
     vm->illegalArgumentException("wrong type");
   }
@@ -677,29 +848,48 @@
   UserClass* cl = JavaObjectField::getClass(Field);
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
-  void* StatPtr = 0;
   
   if (stat) {
     cl->initialiseClass(vm);
-    StatPtr = cl->getStaticInstance();
   } else {
     verifyNull(obj);
   }
   const Typedef* type = field->getSignature();
   if (type->isPrimitive()) {
     const PrimitiveTypedef* prim = (const PrimitiveTypedef*)type;
-    if (prim->isChar())
-      field->setInt16Field(stat ? StatPtr : obj, (uint16)val);
-    else if (prim->isInt())
-      field->setInt32Field(stat ? StatPtr : obj, (uint32)val);
-    else if (prim->isLong())
-      field->setLongField(stat ? StatPtr : obj, (uint64)val);
-    else if (prim->isFloat())
-      field->setFloatField(stat ? StatPtr : obj, (float)(uint32)val);
-    else if (prim->isDouble())
-      field->setDoubleField(stat ? StatPtr : obj, (double)(uint64)val);
-    else
+    if (prim->isChar()) {
+      if (stat) {
+        field->setStaticInt16Field((uint16)val);
+      } else {
+        field->setInstanceInt16Field(obj, (uint16)val);
+      }
+    } else if (prim->isInt()) {
+      if (stat) {
+        field->setStaticInt32Field((uint32)val);
+      } else {
+        field->setInstanceInt32Field(obj, (uint32)val);
+      }
+    } else if (prim->isLong()) {
+      if (stat) {
+        field->setStaticLongField((uint64)val);
+      } else {
+        field->setInstanceLongField(obj, (uint64)val);
+      }
+    } else if (prim->isFloat()) {
+      if (stat) {
+        field->setStaticFloatField((float)(uint32)val);
+      } else {
+        field->setInstanceFloatField(obj, (float)(uint32)val);
+      }
+    } else if (prim->isDouble()) {
+      if (stat) {
+        field->setStaticDoubleField((double)(uint64)val);
+      } else {
+        field->setInstanceDoubleField(obj, (double)(uint64)val);
+      }
+    } else {
       vm->illegalArgumentException("wrong type");
+    }
   } else {
     vm->illegalArgumentException("wrong type");
   }
@@ -722,11 +912,9 @@
   UserClass* cl = JavaObjectField::getClass(Field);
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
-  void* StatPtr = 0;
   
   if (stat) {
     cl->initialiseClass(vm);
-    StatPtr = cl->getStaticInstance();
   } else {
     verifyNull(obj);
   }
@@ -734,18 +922,38 @@
   const Typedef* type = field->getSignature();
   if (type->isPrimitive()) {
     const PrimitiveTypedef* prim = (const PrimitiveTypedef*)type;
-    if (prim->isShort())
-      field->setInt16Field(stat ? StatPtr : obj, (sint16)val);
-    else if (prim->isInt())
-      field->setInt32Field(stat ? StatPtr : obj, (sint32)val);
-    else if (prim->isLong())
-      field->setLongField(stat ? StatPtr : obj, (sint64)val);
-    else if (prim->isFloat())
-      field->setFloatField(stat ? StatPtr : obj, (float)val);
-    else if (prim->isDouble())
-      field->setDoubleField(stat ? StatPtr : obj, (double)val);
-    else
+    if (prim->isShort()) {
+      if (stat) {
+        field->setStaticInt16Field((sint16)val);
+      } else {
+        field->setInstanceInt16Field(obj, (sint16)val);
+      }
+    } else if (prim->isInt()) {
+      if (stat) {
+        field->setStaticInt32Field((sint32)val);
+      } else {
+        field->setInstanceInt32Field(obj, (sint32)val);
+      }
+    } else if (prim->isLong()) {
+      if (stat) {
+        field->setStaticLongField((sint64)val);
+      } else {
+      }
+    } else if (prim->isFloat()) {
+      if (stat) {
+        field->setStaticFloatField((float)val);
+      } else {
+        field->setInstanceFloatField(obj, (float)val);
+      }
+    } else if (prim->isDouble()) {
+      if (stat) {
+        field->setStaticDoubleField((double)val);
+      } else {
+        field->setInstanceDoubleField(obj, (double)val);
+      }
+    } else {
       vm->illegalArgumentException("wrong type");
+    }
   } else {
     vm->illegalArgumentException("wrong type");
   }
@@ -768,11 +976,9 @@
   UserClass* cl = JavaObjectField::getClass(Field);
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
-  void* StatPtr = 0;
   
   if (stat) {
     cl->initialiseClass(vm);
-    StatPtr = cl->getStaticInstance();
   } else {
     verifyNull(obj);
   }
@@ -780,16 +986,33 @@
   const Typedef* type = field->getSignature();
   if (type->isPrimitive()) {
     const PrimitiveTypedef* prim = (const PrimitiveTypedef*)type;
-    if (prim->isInt())
-      field->setInt32Field(stat ? StatPtr : obj, (sint32)val);
-    else if (prim->isLong())
-      field->setLongField(stat ? StatPtr : obj, (sint64)val);
-    else if (prim->isFloat())
-      field->setFloatField(stat ? StatPtr : obj, (float)val);
-    else if (prim->isDouble())
-      field->setDoubleField(stat ? StatPtr : obj, (double)val);
-    else
+    if (prim->isInt()) {
+      if (stat) {
+        field->setStaticInt32Field((sint32)val);
+      } else {
+        field->setInstanceInt32Field(obj, (sint32)val);
+      }
+    } else if (prim->isLong()) {
+      if (stat) {
+        field->setStaticLongField((sint64)val);
+      } else {
+        field->setInstanceLongField(obj, (sint64)val);
+      }
+    } else if (prim->isFloat()) {
+      if (stat) {
+        field->setStaticFloatField((float)val);
+      } else {
+        field->setInstanceFloatField(obj, (float)val);
+      }
+    } else if (prim->isDouble()) {
+      if (stat) {
+        field->setStaticDoubleField((double)val);
+      } else {
+        field->setInstanceDoubleField(obj, (double)val);
+      }
+    } else {
       vm->illegalArgumentException("wrong type");
+    }
   } else {
     vm->illegalArgumentException("wrong type");
   }
@@ -812,11 +1035,9 @@
   UserClass* cl = JavaObjectField::getClass(Field);
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
-  void* StatPtr = 0;
   
   if (stat) {
     cl->initialiseClass(vm);
-    StatPtr = cl->getStaticInstance();
   } else {
     verifyNull(obj);
   }
@@ -824,14 +1045,27 @@
   const Typedef* type = field->getSignature();
   if (type->isPrimitive()) {
     const PrimitiveTypedef* prim = (const PrimitiveTypedef*)type;
-    if (prim->isLong())
-      field->setLongField(stat ? StatPtr : obj, (sint64)val);
-    else if (prim->isFloat())
-      field->setFloatField(stat ? StatPtr : obj, (float)val);
-    else if (prim->isDouble())
-      field->setDoubleField(stat ? StatPtr : obj, (double)val);
-    else
+    if (prim->isLong()) {
+      if (stat) {
+        field->setStaticLongField((sint64)val);
+      } else {
+        field->setInstanceLongField(obj, (sint64)val);
+      }
+    } else if (prim->isFloat()) {
+      if (stat) {
+        field->setStaticFloatField((float)val);
+      } else {
+        field->setInstanceFloatField(obj, (float)val);
+      }
+    } else if (prim->isDouble()) {
+      if (stat) {
+        field->setStaticDoubleField((double)val);
+      } else {
+        field->setInstanceDoubleField(obj, (double)val);
+      }
+    } else {
       vm->illegalArgumentException("wrong type");
+    }
   } else {
     vm->illegalArgumentException("wrong type");
   }
@@ -854,11 +1088,9 @@
   UserClass* cl = JavaObjectField::getClass(Field);
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
-  void* StatPtr = 0;
   
   if (stat) {
     cl->initialiseClass(vm);
-    StatPtr = cl->getStaticInstance();
   } else {
     verifyNull(obj);
   }
@@ -866,12 +1098,21 @@
   const Typedef* type = field->getSignature();
   if (type->isPrimitive()) {
     const PrimitiveTypedef* prim = (const PrimitiveTypedef*)type;
-    if (prim->isFloat())
-      field->setFloatField(stat ? StatPtr : obj, (float)val);
-    else if (prim->isDouble())
-      field->setDoubleField(stat ? StatPtr : obj, (double)val);
-    else 
+    if (prim->isFloat()) {
+      if (stat) {
+        field->setStaticFloatField((float)val);
+      } else {
+        field->setInstanceFloatField(obj, (float)val);
+      }
+    } else if (prim->isDouble()) {
+      if (stat) {
+        field->setStaticDoubleField((double)val);
+      } else {
+        field->setInstanceDoubleField(obj, (double)val);
+      }
+    } else {
       vm->illegalArgumentException("wrong type");
+    }
   } else {
     vm->illegalArgumentException("wrong type");
   }
@@ -894,11 +1135,9 @@
   UserClass* cl = JavaObjectField::getClass(Field);
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
-  void* StatPtr = 0;
   
   if (stat) {
     cl->initialiseClass(vm);
-    StatPtr = cl->getStaticInstance();
   } else {
     verifyNull(obj);
   }
@@ -906,10 +1145,15 @@
   const Typedef* type = field->getSignature();
   if (type->isPrimitive()) {
     const PrimitiveTypedef* prim = (const PrimitiveTypedef*)type;
-    if (prim->isDouble())
-      field->setDoubleField(stat ? StatPtr : obj, (double)val);
-    else
+    if (prim->isDouble()) {
+      if (stat) {
+        field->setStaticDoubleField((double)val);
+      } else {
+        field->setInstanceDoubleField(obj, (double)val);
+      }
+    } else {
       vm->illegalArgumentException("wrong type");
+    }
   } else {
     vm->illegalArgumentException("wrong type");
   }

Modified: vmkit/trunk/lib/J3/Classpath/ClasspathMethod.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Classpath/ClasspathMethod.inc?rev=105910&r1=105909&r2=105910&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Classpath/ClasspathMethod.inc (original)
+++ vmkit/trunk/lib/J3/Classpath/ClasspathMethod.inc Sun Jun 13 02:40:55 2010
@@ -188,42 +188,42 @@
         uint32 val = 0;
         RUN_METH(Int, val);
         res = vm->upcalls->boolClass->doNew(vm);
-        vm->upcalls->boolValue->setInt8Field(res, val);
+        vm->upcalls->boolValue->setInstanceInt8Field(res, val);
       } else if (prim->isByte()) {
         uint32 val = 0;
         RUN_METH(Int, val);
         res = vm->upcalls->byteClass->doNew(vm);
-        vm->upcalls->byteValue->setInt8Field(res, val);
+        vm->upcalls->byteValue->setInstanceInt8Field(res, val);
       } else if (prim->isChar()) {
         uint32 val = 0;
         RUN_METH(Int, val);
         res = vm->upcalls->charClass->doNew(vm);
-        vm->upcalls->charValue->setInt16Field(res, val);
+        vm->upcalls->charValue->setInstanceInt16Field(res, val);
       } else if (prim->isShort()) {
         uint32 val = 0;
         RUN_METH(Int, val);
         res = vm->upcalls->shortClass->doNew(vm);
-        vm->upcalls->shortValue->setInt16Field(res, val);
+        vm->upcalls->shortValue->setInstanceInt16Field(res, val);
       } else if (prim->isInt()) {
         uint32 val = 0;
         RUN_METH(Int, val);
         res = vm->upcalls->intClass->doNew(vm);
-        vm->upcalls->intValue->setInt32Field(res, val);
+        vm->upcalls->intValue->setInstanceInt32Field(res, val);
       } else if (prim->isLong()) {
         sint64 val = 0;
         RUN_METH(Long, val);
         res = vm->upcalls->longClass->doNew(vm);
-        vm->upcalls->longValue->setLongField(res, val);
+        vm->upcalls->longValue->setInstanceLongField(res, val);
       } else if (prim->isFloat()) {
         float val = 0;
         RUN_METH(Float, val);
         res = vm->upcalls->floatClass->doNew(vm);
-        vm->upcalls->floatValue->setFloatField(res, val);
+        vm->upcalls->floatValue->setInstanceFloatField(res, val);
       } else if (prim->isDouble()) {
         double val = 0;
         RUN_METH(Double, val);
         res = vm->upcalls->doubleClass->doNew(vm);
-        vm->upcalls->doubleValue->setDoubleField(res, val);
+        vm->upcalls->doubleValue->setInstanceDoubleField(res, val);
       }
     } else {
       RUN_METH(JavaObject, res);

Modified: vmkit/trunk/lib/J3/Classpath/ClasspathReflect.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Classpath/ClasspathReflect.h?rev=105910&r1=105909&r2=105910&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Classpath/ClasspathReflect.h (original)
+++ vmkit/trunk/lib/J3/Classpath/ClasspathReflect.h Sun Jun 13 02:40:55 2010
@@ -147,7 +147,7 @@
 private:
   JavaObject* thread;
   bool running;
-  void* vmdata;
+  JavaThread* vmdata;
 
 public:
   static void staticDestructor(JavaObjectVMThread* obj) {
@@ -158,6 +158,10 @@
     mvm::Collector::markAndTrace(obj, &obj->thread, closure);
   }
 
+  void setVmdata(JavaThread* internal_thread) {
+    vmdata = internal_thread;
+  }
+
 };
 
 

Modified: vmkit/trunk/lib/J3/Classpath/ClasspathVMThread.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Classpath/ClasspathVMThread.inc?rev=105910&r1=105909&r2=105910&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Classpath/ClasspathVMThread.inc (original)
+++ vmkit/trunk/lib/J3/Classpath/ClasspathVMThread.inc Sun Jun 13 02:40:55 2010
@@ -34,27 +34,28 @@
 
 static void start(JavaThread* thread) {
 
-  JavaObject* vmThread = 0;
+  JavaObjectVMThread* vmThread = NULL;
+  JavaObject* javaThread = NULL;
   llvm_gcroot(vmThread, 0);
+  llvm_gcroot(javaThread, 0);
 
   Jnjvm* vm = thread->getJVM();
 
   // Ok, now that the thread is created we can set the the value of vmdata,
   // which is the JavaThread object.
-  JavaField* field = vm->upcalls->vmdataVMThread;
-  vmThread = thread->vmThread;
+  vmThread = (JavaObjectVMThread*)thread->vmThread;
   assert(vmThread && "Didn't fix the vmThread of a j3 thread");
-  JavaObject* javaThread = thread->javaThread;
-  assert(javaThread && "Didn't fix the javaThread of a j3 thread");
-  field->setObjectField(vmThread, (JavaObject*)(void*)thread);
+  vmThread->setVmdata(thread);
   
   UserClass* vmthClass = (UserClass*)JavaObject::getClass(vmThread);
   ThreadSystem& ts = vm->threadSystem;
   
   
+  javaThread = thread->javaThread;
+  assert(javaThread && "Didn't fix the javaThread of a j3 thread");
   // If the thread is not a daemon, it is added to the list of threads to
   // wait until exit.
-  bool isDaemon = vm->upcalls->daemon->getInt8Field(javaThread);
+  bool isDaemon = vm->upcalls->daemon->getInstanceInt8Field(javaThread);
 
   if (!isDaemon) {
     ts.nonDaemonLock.lock();
@@ -90,7 +91,7 @@
   Jnjvm* vm = JavaThread::get()->getJVM();
   
   // Classpath has set this field.
-  javaThread = vm->upcalls->assocThread->getObjectField(vmThread);
+  javaThread = vm->upcalls->assocThread->getInstanceObjectField(vmThread);
   assert(javaThread && "VMThread with no Java equivalent");
  
   JavaThread* th = new JavaThread(javaThread, vmThread, vm);
@@ -115,10 +116,10 @@
   
   // It's possible that the thread to be interrupted has not finished
   // its initialization. Wait until the initialization is done.
-  while (field->getObjectField(vmthread) == 0)
+  while (field->getInstanceObjectField(vmthread) == 0)
     mvm::Thread::yield();
   
-  JavaThread* th = (JavaThread*)field->getObjectField(vmthread);
+  JavaThread* th = (JavaThread*)field->getInstanceObjectField(vmthread);
   th->interruptFlag = 1;
   JavaLock* lock = th->waitsOn;
 
@@ -174,7 +175,7 @@
 
   Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = vm->upcalls->vmdataVMThread;
-  JavaThread* th = (JavaThread*)field->getObjectField(vmthread);
+  JavaThread* th = (JavaThread*)field->getInstanceObjectField(vmthread);
   return (jboolean)th->interruptFlag;
 }
 

Modified: vmkit/trunk/lib/J3/Classpath/ClasspathVMThrowable.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Classpath/ClasspathVMThrowable.inc?rev=105910&r1=105909&r2=105910&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Classpath/ClasspathVMThrowable.inc (original)
+++ vmkit/trunk/lib/J3/Classpath/ClasspathVMThrowable.inc Sun Jun 13 02:40:55 2010
@@ -46,7 +46,7 @@
   
   // Set the tempory data in the new VMThrowable object.
   vmThrowable = vm->upcalls->newVMThrowable->doNew(vm);
-  vm->upcalls->vmDataVMThrowable->setObjectField(vmThrowable, result);
+  vm->upcalls->vmDataVMThrowable->setInstanceObjectField(vmThrowable, result);
   return vmThrowable;
 }
 
@@ -125,7 +125,7 @@
   BEGIN_NATIVE_EXCEPTION(0)
   Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = vm->upcalls->vmDataVMThrowable;
-  stack = field->getObjectField(vmthrow);
+  stack = field->getInstanceObjectField(vmthrow);
   
   // remove the VMThrowable.fillInStackTrace method and the last method
   // on the stack.

Modified: vmkit/trunk/lib/J3/Classpath/JavaUpcalls.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Classpath/JavaUpcalls.cpp?rev=105910&r1=105909&r2=105910&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Classpath/JavaUpcalls.cpp (original)
+++ vmkit/trunk/lib/J3/Classpath/JavaUpcalls.cpp Sun Jun 13 02:40:55 2010
@@ -229,8 +229,9 @@
 
 void Classpath::CreateJavaThread(Jnjvm* vm, JavaThread* myth,
                                  const char* thName, JavaObject* Group) {
-  JavaObject* vmth = 0;
-  JavaObject* th = 0;
+  JavaObject* vmth = NULL;
+  JavaObject* th = NULL;
+  JavaObject* name = NULL;
   llvm_gcroot(Group, 0);
   llvm_gcroot(vmth, 0);
   llvm_gcroot(th, 0);
@@ -238,16 +239,17 @@
   th = newThread->doNew(vm);
   myth->javaThread = th;
   vmth = newVMThread->doNew(vm);
+  name = vm->asciizToStr(thName);
   
-  threadName->setObjectField(th, vm->asciizToStr(thName));
-  priority->setInt32Field(th, (uint32)1);
-  daemon->setInt8Field(th, (uint32)0);
-  vmThread->setObjectField(th, vmth);
-  assocThread->setObjectField(vmth, th);
-  running->setInt8Field(vmth, (uint32)1);
-  vmdataVMThread->setObjectField(vmth, (JavaObject*)myth);
+  threadName->setInstanceObjectField(th, name);
+  priority->setInstanceInt32Field(th, (uint32)1);
+  daemon->setInstanceInt8Field(th, (uint32)0);
+  vmThread->setInstanceObjectField(th, vmth);
+  assocThread->setInstanceObjectField(vmth, th);
+  running->setInstanceInt8Field(vmth, (uint32)1);
+  ((JavaObjectVMThread*)vmdataVMThread)->setVmdata(myth);
   
-  group->setObjectField(th, Group);
+  group->setInstanceObjectField(th, Group);
   groupAddThread->invokeIntSpecial(vm, threadGroup, Group, &th);
   
   finaliseCreateInitialThread->invokeIntStatic(vm, inheritableThreadLocal, &th);
@@ -273,8 +275,7 @@
   threadGroup->initialiseClass(vm);
 
   // Create the main thread
-  void* Stat = threadGroup->getStaticInstance();
-  RG = rootGroup->getObjectField(Stat);
+  RG = rootGroup->getStaticObjectField();
   assert(RG && "No root group");
   assert(vm->getMainThread() && "VM did not set its main thread");
   CreateJavaThread(vm, (JavaThread*)vm->getMainThread(), "main", RG);
@@ -283,7 +284,7 @@
   SystemGroup = threadGroup->doNew(vm);
   initGroup->invokeIntSpecial(vm, threadGroup, SystemGroup);
   systemName = vm->asciizToStr("system");
-  groupName->setObjectField(SystemGroup, systemName);
+  groupName->setInstanceObjectField(SystemGroup, systemName);
 
   // Create the finalizer thread.
   assert(vm->getFinalizerThread() && "VM did not set its finalizer thread");

Modified: vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp?rev=105910&r1=105909&r2=105910&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp (original)
+++ vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp Sun Jun 13 02:40:55 2010
@@ -391,45 +391,44 @@
     Attribut* attribut = field.lookupAttribut(Attribut::constantAttribut);
 
     if (!attribut) {
-      void* obj = cl->getStaticInstance();
-      if (obj) {
+      if (cl->getStaticInstance() != NULL) {
         if (type->isPrimitive()) {
           const PrimitiveTypedef* prim = (const PrimitiveTypedef*)type;
           if (prim->isBool() || prim->isByte()) {
             ConstantInt* CI = ConstantInt::get(
                 Type::getInt8Ty(getLLVMContext()),
-                field.getInt8Field(obj));
+                field.getStaticInt8Field());
             Elts.push_back(CI);
           } else if (prim->isShort() || prim->isChar()) {
             ConstantInt* CI = ConstantInt::get(
                 Type::getInt16Ty(getLLVMContext()),
-                field.getInt16Field(obj));
+                field.getStaticInt16Field());
             Elts.push_back(CI);
           } else if (prim->isInt()) {
             ConstantInt* CI = ConstantInt::get(
                 Type::getInt32Ty(getLLVMContext()),
-                field.getInt32Field(obj));
+                field.getStaticInt32Field());
             Elts.push_back(CI);
           } else if (prim->isLong()) {
             ConstantInt* CI = ConstantInt::get(
                 Type::getInt64Ty(getLLVMContext()),
-                field.getLongField(obj));
+                field.getStaticLongField());
             Elts.push_back(CI);
           } else if (prim->isFloat()) {
             Constant* CF = ConstantFP::get(
                 Type::getFloatTy(getLLVMContext()),
-                field.getFloatField(obj));
+                field.getStaticFloatField());
             Elts.push_back(CF);
           } else if (prim->isDouble()) {
             Constant* CF = ConstantFP::get(
                 Type::getDoubleTy(getLLVMContext()),
-                field.getDoubleField(obj));
+                field.getStaticDoubleField());
             Elts.push_back(CF);
           } else {
             abort();
           }
         } else {
-          JavaObject* val = field.getObjectField(obj);
+          JavaObject* val = field.getStaticObjectField();
           if (val) {
             JnjvmClassLoader* JCL = cl->classLoader;
             CommonClass* FieldCl = field.getSignature()->assocClass(JCL);
@@ -676,33 +675,33 @@
           const PrimitiveTypedef* prim = (const PrimitiveTypedef*)type;
           if (prim->isBool() || prim->isByte()) {
             ConstantInt* CI = ConstantInt::get(Type::getInt8Ty(getLLVMContext()),
-                                               field.getInt8Field(obj));
+                                               field.getInstanceInt8Field(obj));
             TempElts.push_back(CI);
           } else if (prim->isShort() || prim->isChar()) {
             ConstantInt* CI = ConstantInt::get(Type::getInt16Ty(getLLVMContext()),
-                                               field.getInt16Field(obj));
+                                               field.getInstanceInt16Field(obj));
             TempElts.push_back(CI);
           } else if (prim->isInt()) {
             ConstantInt* CI = ConstantInt::get(Type::getInt32Ty(getLLVMContext()),
-                                               field.getInt32Field(obj));
+                                               field.getInstanceInt32Field(obj));
             TempElts.push_back(CI);
           } else if (prim->isLong()) {
             ConstantInt* CI = ConstantInt::get(Type::getInt64Ty(getLLVMContext()),
-                                               field.getLongField(obj));
+                                               field.getInstanceLongField(obj));
             TempElts.push_back(CI);
           } else if (prim->isFloat()) {
             Constant* CF = ConstantFP::get(Type::getFloatTy(getLLVMContext()),
-                                           field.getFloatField(obj));
+                                           field.getInstanceFloatField(obj));
             TempElts.push_back(CF);
           } else if (prim->isDouble()) {
             Constant* CF = ConstantFP::get(Type::getDoubleTy(getLLVMContext()),
-                                           field.getDoubleField(obj));
+                                           field.getInstanceDoubleField(obj));
             TempElts.push_back(CF);
           } else {
             abort();
           }
         } else {
-          JavaObject* val = field.getObjectField(obj);
+          JavaObject* val = field.getInstanceObjectField(obj);
           if (val) {
             JnjvmClassLoader* JCL = cl->classLoader;
             CommonClass* FieldCl = field.getSignature()->assocClass(JCL);

Modified: vmkit/trunk/lib/J3/Compiler/JavaJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Compiler/JavaJIT.cpp?rev=105910&r1=105909&r2=105910&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Compiler/JavaJIT.cpp (original)
+++ vmkit/trunk/lib/J3/Compiler/JavaJIT.cpp Sun Jun 13 02:40:55 2010
@@ -2093,39 +2093,38 @@
     JavaField* field = compilingClass->ctpInfo->lookupField(index, true);
     if (field && field->classDef->isReady()) final = isFinal(field->access);
     if (final) {
-      void* Obj = field->classDef->getStaticInstance();
       if (sign->isPrimitive()) {
         const PrimitiveTypedef* prim = (PrimitiveTypedef*)sign;
         if (prim->isInt()) {
-          sint32 val = field->getInt32Field(Obj);
+          sint32 val = field->getStaticInt32Field();
           push(ConstantInt::get(Type::getInt32Ty(*llvmContext), val), false);
         } else if (prim->isByte()) {
-          sint8 val = (sint8)field->getInt8Field(Obj);
+          sint8 val = (sint8)field->getStaticInt8Field();
           push(ConstantInt::get(Type::getInt8Ty(*llvmContext), val), false);
         } else if (prim->isBool()) {
-          uint8 val = (uint8)field->getInt8Field(Obj);
+          uint8 val = (uint8)field->getStaticInt8Field();
           push(ConstantInt::get(Type::getInt8Ty(*llvmContext), val), true);
         } else if (prim->isShort()) {
-          sint16 val = (sint16)field->getInt16Field(Obj);
+          sint16 val = (sint16)field->getStaticInt16Field();
           push(ConstantInt::get(Type::getInt16Ty(*llvmContext), val), false);
         } else if (prim->isChar()) {
-          uint16 val = (uint16)field->getInt16Field(Obj);
+          uint16 val = (uint16)field->getStaticInt16Field();
           push(ConstantInt::get(Type::getInt16Ty(*llvmContext), val), true);
         } else if (prim->isLong()) {
-          sint64 val = (sint64)field->getLongField(Obj);
+          sint64 val = (sint64)field->getStaticLongField();
           push(ConstantInt::get(Type::getInt64Ty(*llvmContext), val), false);
         } else if (prim->isFloat()) {
-          float val = (float)field->getFloatField(Obj);
+          float val = (float)field->getStaticFloatField();
           push(ConstantFP::get(Type::getFloatTy(*llvmContext), val), false);
         } else if (prim->isDouble()) {
-          double val = (double)field->getDoubleField(Obj);
+          double val = (double)field->getStaticDoubleField();
           push(ConstantFP::get(Type::getDoubleTy(*llvmContext), val), false);
         } else {
           abort();
         }
       } else {
         if (TheCompiler->isStaticCompiling()) {
-          JavaObject* val = field->getObjectField(Obj);
+          JavaObject* val = field->getStaticObjectField();
           JnjvmClassLoader* JCL = field->classDef->classLoader;
           Value* V = TheCompiler->getFinalObject(val, sign->assocClass(JCL));
           CommonClass* cl = mvm::Collector::begOf(val) ?

Modified: vmkit/trunk/lib/J3/VMCore/JavaClass.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/JavaClass.cpp?rev=105910&r1=105909&r2=105910&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/JavaClass.cpp (original)
+++ vmkit/trunk/lib/J3/VMCore/JavaClass.cpp Sun Jun 13 02:40:55 2010
@@ -948,50 +948,43 @@
 
 #ifndef ISOLATE_SHARING
 void Class::resolveClass() {
+  JavaObject* exc = 0;
+  llvm_gcroot(exc, 0);
   if (!isResolved() && !isErroneous()) {
     acquire();
     if (isResolved() || isErroneous()) {
       release();
     } else if (!isResolving()) {
       setOwnerClass(JavaThread::get());
-      
-      {
-        JavaObject* exc = 0;
-        llvm_gcroot(exc, 0);
-        TRY {
-          readClass();
-        } CATCH {
-          exc = JavaThread::get()->pendingException;
-          JavaThread::get()->clearException();
-        } END_CATCH;
-
-        if (exc) {
-          setErroneous();        
-          setOwnerClass(0);
-          broadcastClass();
-          release();
-          JavaThread::get()->throwException(exc);
-        }
+      TRY {
+        readClass();
+      } CATCH {
+        exc = JavaThread::get()->pendingException;
+        JavaThread::get()->clearException();
+      } END_CATCH;
+
+      if (exc != NULL) {
+        setErroneous();        
+        setOwnerClass(0);
+        broadcastClass();
+        release();
+        JavaThread::get()->throwException(exc);
       }
  
       release();
       
-      {
-        JavaObject* exc = 0;
-        llvm_gcroot(exc, 0);
-        TRY {
-          loadParents();
-        } CATCH {
-          setInitializationState(loaded);
-          exc = JavaThread::get()->pendingException;
-          JavaThread::get()->clearException();
-        } END_CATCH;
+      TRY {
+        loadParents();
+      } CATCH {
+        setInitializationState(loaded);
+        exc = JavaThread::get()->pendingException;
+        JavaThread::get()->clearException();
+      } END_CATCH;
       
-        if (exc) {
-          setErroneous();        
-          setOwnerClass(0);
-          JavaThread::get()->throwException(exc);
-        }
+      if (exc != NULL) {
+        setErroneous();        
+        setOwnerClass(0);
+        JavaThread::get()->throwException(exc);
       }
       
       makeVT();
@@ -1142,10 +1135,12 @@
 }
 
 JavaObject* CommonClass::setDelegatee(JavaObject* val) {
+  JavaObject* prev = NULL;
+  llvm_gcroot(val, 0);
+  llvm_gcroot(prev, 0);
   JavaObject** obj = &(delegatee[JavaThread::get()->getJVM()->IsolateID]);
 
-  JavaObject* prev = (JavaObject*)
-    __sync_val_compare_and_swap((uintptr_t)obj, NULL, val);
+  prev = (JavaObject*)__sync_val_compare_and_swap((uintptr_t)obj, NULL, val);
 
   if (!prev) return val;
   else return prev;
@@ -1154,8 +1149,10 @@
 #else
 
 JavaObject* CommonClass::setDelegatee(JavaObject* val) {
-  JavaObject* prev = (JavaObject*)
-    __sync_val_compare_and_swap(&(delegatee[0]), NULL, val);
+  JavaObject* prev = NULL;
+  llvm_gcroot(val, 0);
+  llvm_gcroot(prev, 0);
+  prev = (JavaObject*)__sync_val_compare_and_swap(&(delegatee[0]), NULL, val);
 
   if (!prev) return val;
   else return prev;

Modified: vmkit/trunk/lib/J3/VMCore/JavaClass.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/JavaClass.h?rev=105910&r1=105909&r2=105910&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/JavaClass.h (original)
+++ vmkit/trunk/lib/J3/VMCore/JavaClass.h Sun Jun 13 02:40:55 2010
@@ -304,12 +304,12 @@
   /// getClassDelegatee - Return the java/lang/Class representation of this
   /// class.
   ///
-  JavaObject* getClassDelegatee(Jnjvm* vm, JavaObject* pd = 0);
+  JavaObject* getClassDelegatee(Jnjvm* vm, JavaObject* pd = NULL);
   
   /// getClassDelegateePtr - Return a pointer on the java/lang/Class
   /// representation of this class. Used for JNI.
   ///
-  JavaObject* const* getClassDelegateePtr(Jnjvm* vm, JavaObject* pd = 0);
+  JavaObject* const* getClassDelegateePtr(Jnjvm* vm, JavaObject* pd = NULL);
   
   /// CommonClass - Create a class with th given name.
   ///
@@ -1339,41 +1339,94 @@
   ///
   Attribut* lookupAttribut(const UTF8* key);
 
-  JavaObject** getObjectFieldPtr(void* obj) {
+  JavaObject** getStaticObjectFieldPtr() {
     assert(classDef->isResolved());
-    void* ptr = (void*)((uint64)obj + ptrOffset);
-    return (JavaObject**)ptr;
+    return (JavaObject**)((uint64)classDef->getStaticInstance() + ptrOffset);
+  }
+
+  JavaObject** getInstanceObjectFieldPtr(JavaObject* obj) {
+    llvm_gcroot(obj, 0);
+    return (JavaObject**)((uint64)obj + ptrOffset);
+  }
+
+  /// getStatic*Field - Get a static field.
+  ///
+  #define GETSTATICFIELD(TYPE, TYPE_NAME)                                   \
+  TYPE getStatic##TYPE_NAME##Field() {                                      \
+    assert(classDef->isResolved());                                         \
+    void* ptr = (void*)((uint64)classDef->getStaticInstance() + ptrOffset); \
+    return ((TYPE*)ptr)[0];                                                 \
   }
 
-  /// getVritual*Field - Get a virtual field of an object.
+  /// setStatic*Field - Set a field of an object.
   ///
-  #define GETFIELD(TYPE, TYPE_NAME) \
-  TYPE get##TYPE_NAME##Field(void* obj) { \
-    assert(classDef->isResolved()); \
-    void* ptr = (void*)((uint64)obj + ptrOffset); \
-    return ((TYPE*)ptr)[0]; \
+  #define SETSTATICFIELD(TYPE, TYPE_NAME)                                   \
+  void setStatic##TYPE_NAME##Field(TYPE val) {                              \
+    assert(classDef->isResolved());                                         \
+    void* ptr = (void*)((uint64)classDef->getStaticInstance() + ptrOffset); \
+    ((TYPE*)ptr)[0] = val;                                                  \
   }
 
-  /// set*Field - Set a field of an object.
+  /// getInstance*Field - Get an instance field.
   ///
-  #define SETFIELD(TYPE, TYPE_NAME) \
-  void set##TYPE_NAME##Field(void* obj, TYPE val) { \
-    assert(classDef->isResolved()); \
-    void* ptr = (void*)((uint64)obj + ptrOffset); \
-    ((TYPE*)ptr)[0] = val; \
+  #define GETINSTANCEFIELD(TYPE, TYPE_NAME)                                 \
+  TYPE getInstance##TYPE_NAME##Field(JavaObject* obj) {                     \
+    llvm_gcroot(obj, 0);                                                    \
+    assert(classDef->isResolved());                                         \
+    void* ptr = (void*)((uint64)obj + ptrOffset);                           \
+    return ((TYPE*)ptr)[0];                                                 \
   }
 
-  #define MK_ASSESSORS(TYPE, TYPE_NAME) \
-    GETFIELD(TYPE, TYPE_NAME) \
-    SETFIELD(TYPE, TYPE_NAME) \
+  /// setInstance*Field - Set an instance field.
+  ///
+  #define SETINSTANCEFIELD(TYPE, TYPE_NAME)                                 \
+  void setInstance##TYPE_NAME##Field(JavaObject* obj, TYPE val) {           \
+    llvm_gcroot(obj, 0);                                                    \
+    assert(classDef->isResolved());                                         \
+    void* ptr = (void*)((uint64)obj + ptrOffset);                           \
+    ((TYPE*)ptr)[0] = val;                                                  \
+  }
+
+  #define MK_ASSESSORS(TYPE, TYPE_NAME)                                     \
+    GETSTATICFIELD(TYPE, TYPE_NAME)                                         \
+    SETSTATICFIELD(TYPE, TYPE_NAME)                                         \
+    GETINSTANCEFIELD(TYPE, TYPE_NAME)                                       \
+    SETINSTANCEFIELD(TYPE, TYPE_NAME)                                       \
 
   MK_ASSESSORS(float, Float);
   MK_ASSESSORS(double, Double);
-  MK_ASSESSORS(JavaObject*, Object);
   MK_ASSESSORS(uint8, Int8);
   MK_ASSESSORS(uint16, Int16);
   MK_ASSESSORS(uint32, Int32);
   MK_ASSESSORS(sint64, Long);
+
+  JavaObject* getStaticObjectField() {
+    assert(classDef->isResolved());
+    void* ptr = (void*)((uint64)classDef->getStaticInstance() + ptrOffset);
+    return ((JavaObject**)ptr)[0];
+  }
+
+  void setStaticObjectField(JavaObject* val) {
+    llvm_gcroot(val, 0);
+    assert(classDef->isResolved());
+    void* ptr = (void*)((uint64)classDef->getStaticInstance() + ptrOffset);
+    ((JavaObject**)ptr)[0] = val;
+  }
+
+  JavaObject* getInstanceObjectField(JavaObject* obj) {
+    llvm_gcroot(obj, 0);
+    assert(classDef->isResolved());
+    void* ptr = (void*)((uint64)obj + ptrOffset);
+    return ((JavaObject**)ptr)[0];
+  }
+
+  void setInstanceObjectField(JavaObject* obj, JavaObject* val) {
+    llvm_gcroot(obj, 0);
+    llvm_gcroot(val, 0);
+    assert(classDef->isResolved());
+    void* ptr = (void*)((uint64)obj + ptrOffset);
+    ((JavaObject**)ptr)[0] = val;
+  }
   
   bool isReference() {
     uint16 val = type->elements[0];

Modified: vmkit/trunk/lib/J3/VMCore/JavaObject.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/JavaObject.cpp?rev=105910&r1=105909&r2=105910&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/JavaObject.cpp (original)
+++ vmkit/trunk/lib/J3/VMCore/JavaObject.cpp Sun Jun 13 02:40:55 2010
@@ -228,95 +228,95 @@
     
     if (prim->isShort()) {
       if (value == vm->upcalls->OfShort) {
-        (*buf).s = vm->upcalls->shortValue->getInt16Field(obj);
+        (*buf).s = vm->upcalls->shortValue->getInstanceInt16Field(obj);
         return;
       } else if (value == vm->upcalls->OfByte) {
-        (*buf).s = (sint16)vm->upcalls->byteValue->getInt8Field(obj);
+        (*buf).s = (sint16)vm->upcalls->byteValue->getInstanceInt8Field(obj);
         return;
       } else {
         vm->illegalArgumentException("");
       }
     } else if (prim->isByte()) {
       if (value == vm->upcalls->OfByte) {
-        (*buf).b = vm->upcalls->byteValue->getInt8Field(obj);
+        (*buf).b = vm->upcalls->byteValue->getInstanceInt8Field(obj);
         return;
       } else {
         vm->illegalArgumentException("");
       }
     } else if (prim->isBool()) {
       if (value == vm->upcalls->OfBool) {
-        (*buf).z = vm->upcalls->boolValue->getInt8Field(obj);
+        (*buf).z = vm->upcalls->boolValue->getInstanceInt8Field(obj);
         return;
       } else {
         vm->illegalArgumentException("");
       }
     } else if (prim->isInt()) {
       if (value == vm->upcalls->OfInt) {
-        (*buf).i = vm->upcalls->intValue->getInt32Field(obj);
+        (*buf).i = vm->upcalls->intValue->getInstanceInt32Field(obj);
       } else if (value == vm->upcalls->OfByte) {
-        (*buf).i = (sint32)vm->upcalls->byteValue->getInt8Field(obj);
+        (*buf).i = (sint32)vm->upcalls->byteValue->getInstanceInt8Field(obj);
       } else if (value == vm->upcalls->OfChar) {
-        (*buf).i = (uint32)vm->upcalls->charValue->getInt16Field(obj);
+        (*buf).i = (uint32)vm->upcalls->charValue->getInstanceInt16Field(obj);
       } else if (value == vm->upcalls->OfShort) {
-        (*buf).i = (sint32)vm->upcalls->shortValue->getInt16Field(obj);
+        (*buf).i = (sint32)vm->upcalls->shortValue->getInstanceInt16Field(obj);
       } else {
         vm->illegalArgumentException("");
       }
       return;
     } else if (prim->isChar()) {
       if (value == vm->upcalls->OfChar) {
-        (*buf).c = (uint16)vm->upcalls->charValue->getInt16Field(obj);
+        (*buf).c = (uint16)vm->upcalls->charValue->getInstanceInt16Field(obj);
       } else {
         vm->illegalArgumentException("");
       }
       return;
     } else if (prim->isFloat()) {
       if (value == vm->upcalls->OfFloat) {
-        (*buf).f = (float)vm->upcalls->floatValue->getFloatField(obj);
+        (*buf).f = (float)vm->upcalls->floatValue->getInstanceFloatField(obj);
       } else if (value == vm->upcalls->OfByte) {
-        (*buf).f = (float)(sint32)vm->upcalls->byteValue->getInt8Field(obj);
+        (*buf).f = (float)(sint32)vm->upcalls->byteValue->getInstanceInt8Field(obj);
       } else if (value == vm->upcalls->OfChar) {
-        (*buf).f = (float)(uint32)vm->upcalls->charValue->getInt16Field(obj);
+        (*buf).f = (float)(uint32)vm->upcalls->charValue->getInstanceInt16Field(obj);
       } else if (value == vm->upcalls->OfShort) {
-        (*buf).f = (float)(sint32)vm->upcalls->shortValue->getInt16Field(obj);
+        (*buf).f = (float)(sint32)vm->upcalls->shortValue->getInstanceInt16Field(obj);
       } else if (value == vm->upcalls->OfInt) {
-        (*buf).f = (float)(sint32)vm->upcalls->intValue->getInt32Field(obj);
+        (*buf).f = (float)(sint32)vm->upcalls->intValue->getInstanceInt32Field(obj);
       } else if (value == vm->upcalls->OfLong) {
-        (*buf).f = (float)vm->upcalls->longValue->getLongField(obj);
+        (*buf).f = (float)vm->upcalls->longValue->getInstanceLongField(obj);
       } else {
         vm->illegalArgumentException("");
       }
       return;
     } else if (prim->isDouble()) {
       if (value == vm->upcalls->OfDouble) {
-        (*buf).d = (double)vm->upcalls->doubleValue->getDoubleField(obj);
+        (*buf).d = (double)vm->upcalls->doubleValue->getInstanceDoubleField(obj);
       } else if (value == vm->upcalls->OfFloat) {
-        (*buf).d = (double)vm->upcalls->floatValue->getFloatField(obj);
+        (*buf).d = (double)vm->upcalls->floatValue->getInstanceFloatField(obj);
       } else if (value == vm->upcalls->OfByte) {
-        (*buf).d = (double)(sint64)vm->upcalls->byteValue->getInt8Field(obj);
+        (*buf).d = (double)(sint64)vm->upcalls->byteValue->getInstanceInt8Field(obj);
       } else if (value == vm->upcalls->OfChar) {
-        (*buf).d = (double)(uint64)vm->upcalls->charValue->getInt16Field(obj);
+        (*buf).d = (double)(uint64)vm->upcalls->charValue->getInstanceInt16Field(obj);
       } else if (value == vm->upcalls->OfShort) {
-        (*buf).d = (double)(sint16)vm->upcalls->shortValue->getInt16Field(obj);
+        (*buf).d = (double)(sint16)vm->upcalls->shortValue->getInstanceInt16Field(obj);
       } else if (value == vm->upcalls->OfInt) {
-        (*buf).d = (double)(sint32)vm->upcalls->intValue->getInt32Field(obj);
+        (*buf).d = (double)(sint32)vm->upcalls->intValue->getInstanceInt32Field(obj);
       } else if (value == vm->upcalls->OfLong) {
-        (*buf).d = (double)(sint64)vm->upcalls->longValue->getLongField(obj);
+        (*buf).d = (double)(sint64)vm->upcalls->longValue->getInstanceLongField(obj);
       } else {
         vm->illegalArgumentException("");
       }
       return;
     } else if (prim->isLong()) {
       if (value == vm->upcalls->OfByte) {
-        (*buf).j = (sint64)vm->upcalls->byteValue->getInt8Field(obj);
+        (*buf).j = (sint64)vm->upcalls->byteValue->getInstanceInt8Field(obj);
       } else if (value == vm->upcalls->OfChar) {
-        (*buf).j = (sint64)(uint64)vm->upcalls->charValue->getInt16Field(obj);
+        (*buf).j = (sint64)(uint64)vm->upcalls->charValue->getInstanceInt16Field(obj);
       } else if (value == vm->upcalls->OfShort) {
-        (*buf).j = (sint64)vm->upcalls->shortValue->getInt16Field(obj);
+        (*buf).j = (sint64)vm->upcalls->shortValue->getInstanceInt16Field(obj);
       } else if (value == vm->upcalls->OfInt) {
-        (*buf).j = (sint64)vm->upcalls->intValue->getInt32Field(obj);
+        (*buf).j = (sint64)vm->upcalls->intValue->getInstanceInt32Field(obj);
       } else if (value == vm->upcalls->OfLong) {
-        (*buf).j = (sint64)vm->upcalls->intValue->getLongField(obj);
+        (*buf).j = (sint64)vm->upcalls->intValue->getInstanceLongField(obj);
       } else {
         vm->illegalArgumentException("");
       }

Modified: vmkit/trunk/lib/J3/VMCore/Jni.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/Jni.cpp?rev=105910&r1=105909&r2=105910&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/Jni.cpp (original)
+++ vmkit/trunk/lib/J3/VMCore/Jni.cpp Sun Jun 13 02:40:55 2010
@@ -1273,7 +1273,7 @@
   JavaField* field = (JavaField*)fieldID;
 
   // Store local reference.
-  res = field->getObjectField(obj);
+  res = field->getInstanceObjectField(obj);
 
   JavaThread* th = JavaThread::get();
   jobject ret = (jobject)th->pushJNIRef(res);
@@ -1293,7 +1293,7 @@
   llvm_gcroot(obj, 0);
 
   JavaField* field = (JavaField*)fieldID;
-  uint8 res = (uint8)field->getInt8Field(obj);
+  uint8 res = (uint8)field->getInstanceInt8Field(obj);
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -1310,7 +1310,7 @@
   llvm_gcroot(obj, 0);
 
   JavaField* field = (JavaField*)fieldID;
-  sint8 res = (sint8)field->getInt8Field(obj);
+  sint8 res = (sint8)field->getInstanceInt8Field(obj);
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -1327,7 +1327,7 @@
   llvm_gcroot(obj, 0);
   
   JavaField* field = (JavaField*)fieldID;
-  uint16 res = (uint16)field->getInt16Field(obj);
+  uint16 res = (uint16)field->getInstanceInt16Field(obj);
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -1344,7 +1344,7 @@
   llvm_gcroot(obj, 0);
 
   JavaField* field = (JavaField*)fieldID;
-  sint16 res = (sint16)field->getInt16Field(obj);
+  sint16 res = (sint16)field->getInstanceInt16Field(obj);
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -1361,7 +1361,7 @@
   llvm_gcroot(obj, 0);
 
   JavaField* field = (JavaField*)fieldID;
-  sint32 res = (sint32)field->getInt32Field(obj);
+  sint32 res = (sint32)field->getInstanceInt32Field(obj);
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -1378,7 +1378,7 @@
   llvm_gcroot(obj, 0);
   
   JavaField* field = (JavaField*)fieldID;
-  sint64 res = (sint64)field->getLongField(obj);
+  sint64 res = (sint64)field->getInstanceLongField(obj);
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -1395,7 +1395,7 @@
   llvm_gcroot(obj, 0);
 
   JavaField* field = (JavaField*)fieldID;
-  jfloat res = (jfloat)field->getFloatField(obj);
+  jfloat res = (jfloat)field->getInstanceFloatField(obj);
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -1412,7 +1412,7 @@
   llvm_gcroot(obj, 0);
   
   JavaField* field = (JavaField*)fieldID;
-  jdouble res = (jdouble)field->getDoubleField(obj);
+  jdouble res = (jdouble)field->getInstanceDoubleField(obj);
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -1431,7 +1431,7 @@
   llvm_gcroot(value, 0);
 
   JavaField* field = (JavaField*)fieldID;
-  field->setObjectField(obj, value);
+  field->setInstanceObjectField(obj, value);
   
   RETURN_VOID_FROM_JNI;
 
@@ -1451,7 +1451,7 @@
   llvm_gcroot(obj, 0);
 
   JavaField* field = (JavaField*)fieldID;
-  field->setInt8Field(obj, (uint8)value);
+  field->setInstanceInt8Field(obj, (uint8)value);
   
   RETURN_VOID_FROM_JNI;
 
@@ -1470,7 +1470,7 @@
   llvm_gcroot(obj, 0);
   
   JavaField* field = (JavaField*)fieldID;
-  field->setInt8Field(obj, (uint8)value);
+  field->setInstanceInt8Field(obj, (uint8)value);
   
   RETURN_VOID_FROM_JNI;
 
@@ -1489,7 +1489,7 @@
   llvm_gcroot(obj, 0);
 
   JavaField* field = (JavaField*)fieldID;
-  field->setInt16Field(obj, (uint16)value);
+  field->setInstanceInt16Field(obj, (uint16)value);
   
   RETURN_VOID_FROM_JNI;
   
@@ -1508,7 +1508,7 @@
   llvm_gcroot(obj, 0);
   
   JavaField* field = (JavaField*)fieldID;
-  field->setInt16Field(obj, (sint16)value);
+  field->setInstanceInt16Field(obj, (sint16)value);
   
   RETURN_VOID_FROM_JNI;
 
@@ -1527,7 +1527,7 @@
   llvm_gcroot(obj, 0);
   
   JavaField* field = (JavaField*)fieldID;
-  field->setInt32Field(obj, (sint32)value);
+  field->setInstanceInt32Field(obj, (sint32)value);
   
   RETURN_VOID_FROM_JNI;
 
@@ -1546,7 +1546,7 @@
   llvm_gcroot(obj, 0);
   
   JavaField* field = (JavaField*)fieldID;
-  field->setLongField(obj, (sint64)value);
+  field->setInstanceLongField(obj, (sint64)value);
   
   RETURN_VOID_FROM_JNI;
 
@@ -1565,7 +1565,7 @@
   llvm_gcroot(obj, 0);
   
   JavaField* field = (JavaField*)fieldID;
-  field->setFloatField(obj, (float)value);
+  field->setInstanceFloatField(obj, (float)value);
   
   RETURN_VOID_FROM_JNI;
 
@@ -1584,7 +1584,7 @@
   llvm_gcroot(obj, 0);
   
   JavaField* field = (JavaField*)fieldID;
-  field->setDoubleField(obj, (float)value);
+  field->setInstanceDoubleField(obj, (float)value);
   
   RETURN_VOID_FROM_JNI;
 
@@ -2190,17 +2190,12 @@
   BEGIN_JNI_EXCEPTION
   
   // Local object references.
-  JavaObject* clazz = *(JavaObject**)_clazz;
   JavaObject* obj = 0;
-  llvm_gcroot(clazz, 0);
   llvm_gcroot(obj, 0);
 
   JavaThread* th = JavaThread::get();
-  Jnjvm* vm = th->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
-  void* Stat = cl->asClass()->getStaticInstance();
-  obj = field->getObjectField(Stat);
+  obj = field->getStaticObjectField();
   jobject res = (jobject)th->pushJNIRef(obj);
   RETURN_FROM_JNI(res);
 
@@ -2213,15 +2208,8 @@
   
   BEGIN_JNI_EXCEPTION
   
-  // Local object references.
-  JavaObject* clazz = *(JavaObject**)_clazz;
-  llvm_gcroot(clazz, 0);
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
-  void* Stat = cl->asClass()->getStaticInstance();
-  jboolean res = (jboolean)field->getInt8Field(Stat);
+  jboolean res = (jboolean)field->getStaticInt8Field();
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -2233,15 +2221,8 @@
 
   BEGIN_JNI_EXCEPTION
   
-  // Local object references.
-  JavaObject* clazz = *(JavaObject**)_clazz;
-  llvm_gcroot(clazz, 0);
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
-  void* Stat = cl->asClass()->getStaticInstance();
-  jbyte res = (jbyte)field->getInt8Field(Stat);
+  jbyte res = (jbyte)field->getStaticInt8Field();
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -2253,15 +2234,8 @@
 
   BEGIN_JNI_EXCEPTION
 
-  // Local object references.
-  JavaObject* clazz = *(JavaObject**)_clazz;
-  llvm_gcroot(clazz, 0);
-  
-  Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
-  void* Stat = cl->asClass()->getStaticInstance();
-  jchar res = (jchar)field->getInt16Field(Stat);
+  jchar res = (jchar)field->getStaticInt16Field();
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -2273,15 +2247,8 @@
 
   BEGIN_JNI_EXCEPTION
 
-  // Local object references.
-  JavaObject* clazz = *(JavaObject**)_clazz;
-  llvm_gcroot(clazz, 0);
-  
-  Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
-  void* Stat = cl->asClass()->getStaticInstance();
-  jshort res = (jshort)field->getInt16Field(Stat);
+  jshort res = (jshort)field->getStaticInt16Field();
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -2293,15 +2260,8 @@
 
   BEGIN_JNI_EXCEPTION
 
-  // Local object references.
-  JavaObject* clazz = *(JavaObject**)_clazz;
-  llvm_gcroot(clazz, 0);
-  
-  Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
-  void* Stat = cl->asClass()->getStaticInstance();
-  jint res = (jint)field->getInt32Field(Stat);
+  jint res = (jint)field->getStaticInt32Field();
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -2313,15 +2273,8 @@
 
   BEGIN_JNI_EXCEPTION
   
-  // Local object references.
-  JavaObject* clazz = *(JavaObject**)_clazz;
-  llvm_gcroot(clazz, 0);
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
-  void* Stat = cl->asClass()->getStaticInstance();
-  jlong res = (jlong)field->getLongField(Stat);
+  jlong res = (jlong)field->getStaticLongField();
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -2333,15 +2286,8 @@
 
   BEGIN_JNI_EXCEPTION
   
-  // Local object references.
-  JavaObject* clazz = *(JavaObject**)_clazz;
-  llvm_gcroot(clazz, 0);
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
-  void* Stat = cl->asClass()->getStaticInstance();
-  jfloat res = (jfloat)field->getFloatField(Stat);
+  jfloat res = (jfloat)field->getStaticFloatField();
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -2353,15 +2299,8 @@
 
   BEGIN_JNI_EXCEPTION
 
-  // Local object references.
-  JavaObject* clazz = *(JavaObject**)_clazz;
-  llvm_gcroot(clazz, 0);
-  
-  Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
-  void* Stat = cl->asClass()->getStaticInstance();
-  jdouble res = (jdouble)field->getDoubleField(Stat);
+  jdouble res = (jdouble)field->getStaticDoubleField();
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -2375,16 +2314,11 @@
   BEGIN_JNI_EXCEPTION
   
   // Local object references.
-  JavaObject* clazz = *(JavaObject**)_clazz;
   JavaObject* value = *(JavaObject**)_value;
-  llvm_gcroot(clazz, 0);
   llvm_gcroot(value, 0);
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
-  void* Stat = cl->asClass()->getStaticInstance();
-  field->setObjectField(Stat, value);
+  field->setStaticObjectField(value);
   
   RETURN_VOID_FROM_JNI;
   
@@ -2399,14 +2333,8 @@
   
   BEGIN_JNI_EXCEPTION
   
-  // Local object references.
-  JavaObject* clazz = *(JavaObject**)_clazz;
-  
-  Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
-  void* Stat = cl->asClass()->getStaticInstance();
-  field->setInt8Field(Stat, (uint8)value);
+  field->setStaticInt8Field((uint8)value);
   
   RETURN_VOID_FROM_JNI;
 
@@ -2421,15 +2349,8 @@
 
   BEGIN_JNI_EXCEPTION
 
-  // Local object references.
-  JavaObject* clazz = *(JavaObject**)_clazz;
-  llvm_gcroot(clazz, 0);
-  
-  Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
-  void* Stat = cl->asClass()->getStaticInstance();
-  field->setInt8Field(Stat, (sint8)value);
+  field->setStaticInt8Field((sint8)value);
   
   RETURN_VOID_FROM_JNI;
 
@@ -2444,15 +2365,8 @@
 
   BEGIN_JNI_EXCEPTION
   
-  // Local object references.
-  JavaObject* clazz = *(JavaObject**)_clazz;
-  llvm_gcroot(clazz, 0);
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
-  void* Stat = cl->asClass()->getStaticInstance();
-  field->setInt16Field(Stat, (uint16)value);
+  field->setStaticInt16Field((uint16)value);
   
   RETURN_VOID_FROM_JNI;
 
@@ -2467,15 +2381,8 @@
 
   BEGIN_JNI_EXCEPTION
   
-  // Local object references.
-  JavaObject* clazz = *(JavaObject**)_clazz;
-  llvm_gcroot(clazz, 0);
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
-  void* Stat = cl->asClass()->getStaticInstance();
-  field->setInt16Field(Stat, (sint16)value);
+  field->setStaticInt16Field((sint16)value);
   
   RETURN_VOID_FROM_JNI;
 
@@ -2490,15 +2397,8 @@
 
   BEGIN_JNI_EXCEPTION
   
-  // Local object references.
-  JavaObject* clazz = *(JavaObject**)_clazz;
-  llvm_gcroot(clazz, 0);
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
-  void* Stat = cl->asClass()->getStaticInstance();
-  field->setInt32Field(Stat, (sint32)value);
+  field->setStaticInt32Field((sint32)value);
   
   RETURN_VOID_FROM_JNI;
 
@@ -2513,15 +2413,8 @@
 
   BEGIN_JNI_EXCEPTION
   
-  // Local object references.
-  JavaObject* clazz = *(JavaObject**)_clazz;
-  llvm_gcroot(clazz, 0);
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
-  void* Stat = cl->asClass()->getStaticInstance();
-  field->setLongField(Stat, (sint64)value);
+  field->setStaticLongField((sint64)value);
   
   RETURN_VOID_FROM_JNI;
 
@@ -2536,15 +2429,8 @@
 
   BEGIN_JNI_EXCEPTION
   
-  // Local object references.
-  JavaObject* clazz = *(JavaObject**)_clazz;
-  llvm_gcroot(clazz, 0);
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
-  void* Stat = cl->asClass()->getStaticInstance();
-  field->setFloatField(Stat, (float)value);
+  field->setStaticFloatField((float)value);
   
   RETURN_VOID_FROM_JNI;
 
@@ -2559,15 +2445,8 @@
 
   BEGIN_JNI_EXCEPTION
   
-  // Local object references.
-  JavaObject* clazz = *(JavaObject**)_clazz;
-  llvm_gcroot(clazz, 0);
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* field = (JavaField*)fieldID;
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
-  void* Stat = cl->asClass()->getStaticInstance();
-  field->setDoubleField(Stat, (double)value);
+  field->setStaticDoubleField((double)value);
   
   RETURN_VOID_FROM_JNI;
 
@@ -3709,11 +3588,11 @@
 #if (__WORDSIZE == 32)
   UserClass* PP = myvm->upcalls->newPointer32;
   p = PP->doNew(myvm);
-  myvm->upcalls->dataPointer32->setInt32Field(p, (uint32)address);
+  myvm->upcalls->dataPointer32->setInstanceInt32Field(p, (uint32)address);
 #else
   UserClass* PP = myvm->upcalls->newPointer64;
   p = PP->doNew(myvm);
-  myvm->upcalls->dataPointer64->setLongField(p, (jlong)address);
+  myvm->upcalls->dataPointer64->setInstanceLongField(p, (jlong)address);
 #endif
 
   myvm->upcalls->InitDirectByteBuffer->invokeIntSpecial(myvm, BB, res, 0, &p,
@@ -3740,12 +3619,12 @@
   llvm_gcroot(address, 0);
 
   Jnjvm* vm = myVM(env);
-  address = vm->upcalls->bufferAddress->getObjectField(buf);
+  address = vm->upcalls->bufferAddress->getInstanceObjectField(buf);
   if (address != 0) {
 #if (__WORDSIZE == 32)
-    int res = vm->upcalls->dataPointer32->getInt32Field(address);
+    int res = vm->upcalls->dataPointer32->getInstanceInt32Field(address);
 #else
-    jlong res = vm->upcalls->dataPointer64->getLongField(address);
+    jlong res = vm->upcalls->dataPointer64->getInstanceLongField(address);
 #endif
     RETURN_FROM_JNI((void*)res);
   } else {

Modified: vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp?rev=105910&r1=105909&r2=105910&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp (original)
+++ vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp Sun Jun 13 02:40:55 2010
@@ -180,7 +180,6 @@
 
     if (!vmjced) {
       JavaField* fields = cl->getStaticFields();
-      void* val = cl->getStaticInstance();
       for (uint32 i = 0; i < cl->nbStaticFields; ++i) {
         fields[i].InitStaticField(vm);
       }
@@ -1200,7 +1199,7 @@
     JavaThread* th = JavaThread::get();
     th->clearException();
     obj = th->currentThread();
-    group = upcalls->group->getObjectField(obj);
+    group = upcalls->group->getInstanceObjectField(obj);
     TRY {
       upcalls->uncaughtException->invokeIntSpecial(this, upcalls->threadGroup,
                                                    group, &obj, &exc);

Modified: vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp?rev=105910&r1=105909&r2=105910&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp (original)
+++ vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp Sun Jun 13 02:40:55 2010
@@ -849,18 +849,18 @@
   JnjvmClassLoader* JCL = 0;
   Classpath* upcalls = vm->bootstrapLoader->upcalls;
   vmdata = 
-    (VMClassLoader*)(upcalls->vmdataClassLoader->getObjectField(loader));
+    (VMClassLoader*)(upcalls->vmdataClassLoader->getInstanceObjectField(loader));
   
   if (vmdata == NULL) {
     JavaObject::acquire(loader);
     vmdata = 
-      (VMClassLoader*)(upcalls->vmdataClassLoader->getObjectField(loader));
+      (VMClassLoader*)(upcalls->vmdataClassLoader->getInstanceObjectField(loader));
     if (!vmdata) {
       mvm::BumpPtrAllocator* A = new mvm::BumpPtrAllocator();    
       JCL = new(*A, "Class loader") JnjvmClassLoader(*A, *vm->bootstrapLoader,
                                                      loader, vm);
       vmdata = VMClassLoader::allocate(JCL);
-      upcalls->vmdataClassLoader->setObjectField(loader, (JavaObject*)vmdata);
+      upcalls->vmdataClassLoader->setInstanceObjectField(loader, (JavaObject*)vmdata);
     }
     JavaObject::release(loader);
   } else {

Modified: vmkit/trunk/lib/J3/VMCore/VirtualTables.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/VirtualTables.cpp?rev=105910&r1=105909&r2=105910&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/VirtualTables.cpp (original)
+++ vmkit/trunk/lib/J3/VMCore/VirtualTables.cpp Sun Jun 13 02:40:55 2010
@@ -117,7 +117,7 @@
     for (uint32 i = 0; i < cl->nbVirtualFields; ++i) {
       JavaField& field = cl->virtualFields[i];
       if (field.isReference()) {
-        JavaObject** ptr = field.getObjectFieldPtr(obj);
+        JavaObject** ptr = field.getInstanceObjectFieldPtr(obj);
         mvm::Collector::markAndTrace(obj, ptr, closure);
       }
     }
@@ -176,7 +176,7 @@
       for (uint32 i = 0; i < nbStaticFields; ++i) {
         JavaField& field = staticFields[i];
         if (field.isReference()) {
-          JavaObject** ptr = field.getObjectFieldPtr(M.staticInstance);
+          JavaObject** ptr = field.getStaticObjectFieldPtr();
           mvm::Collector::markAndTraceRoot(ptr, closure);
         }
       }





More information about the vmkit-commits mailing list