[vmkit-commits] [vmkit] r59303 - in /vmkit/trunk/lib/JnJVM: Classpath/ClasspathConstructor.cpp Classpath/ClasspathField.cpp Classpath/ClasspathMethod.cpp VMCore/JavaMetaJIT.cpp VMCore/NativeUtil.cpp VMCore/NativeUtil.h

Nicolas Geoffray nicolas.geoffray at lip6.fr
Fri Nov 14 07:19:01 PST 2008


Author: geoffray
Date: Fri Nov 14 09:18:56 2008
New Revision: 59303

URL: http://llvm.org/viewvc/llvm-project?rev=59303&view=rev
Log:
Doh, of course (void*)+=2 increments of 16 on a 64-bit. Change
void* arithmetic to uintptr_t arithmetic.


Modified:
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathField.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JavaMetaJIT.cpp
    vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.cpp
    vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.h

Modified: vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp?rev=59303&r1=59302&r2=59303&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp Fri Nov 14 09:18:56 2008
@@ -83,7 +83,7 @@
   sint32 size = meth->getSignature()->args.size();
 
   // Allocate a buffer to store the arguments.
-  void** buf = (void**)alloca(size * sizeof(uint64));
+  uintptr_t buf = (uintptr_t)alloca(size * sizeof(uint64));
   // Record the beginning of the buffer.
   void* startBuf = (void*)buf;
 

Modified: vmkit/trunk/lib/JnJVM/Classpath/ClasspathField.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathField.cpp?rev=59303&r1=59302&r2=59303&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathField.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathField.cpp Fri Nov 14 09:18:56 2008
@@ -422,7 +422,7 @@
   Jnjvm* vm = JavaThread::get()->getJVM();
   JavaField* slot = vm->upcalls->fieldSlot;
   JavaField* field = (JavaField*)slot->getInt32Field((JavaObject*)Field);
-  void** buf = (void**)alloca(sizeof(uint64));
+  uintptr_t buf = (uintptr_t)alloca(sizeof(uint64));
   void* _buf = (void*)buf;
   const Typedef* type = field->getSignature();
   NativeUtil::decapsulePrimitive(vm, buf, (JavaObject*)val, type);

Modified: vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp?rev=59303&r1=59302&r2=59303&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp Fri Nov 14 09:18:56 2008
@@ -92,7 +92,7 @@
   sint32 size = meth->getSignature()->args.size();
   JavaObject* obj = (JavaObject*)_obj;
 
-  void** buf = (void**)alloca(size * sizeof(uint64)); 
+  uintptr_t buf = (uintptr_t)alloca(size * sizeof(uint64)); 
   void* _buf = (void*)buf;
   sint32 index = 0;
   if (nbArgs == size) {

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaMetaJIT.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaMetaJIT.cpp Fri Nov 14 09:18:56 2008
@@ -79,7 +79,7 @@
     } else{\
       ((JavaObject**)buf)[0] = va_arg(ap, JavaObject*);\
     }\
-    buf += 2; \
+    buf += 8; \
   }\
 
 
@@ -93,7 +93,7 @@
   } \
   verifyNull(obj); \
   Signdef* sign = getSignature(); \
-  void** buf = (void**)alloca(sign->args.size() * sizeof(uint64)); \
+  uintptr_t buf = (uintptr_t)alloca(sign->args.size() * sizeof(uint64)); \
   void* _buf = (void*)buf; \
   readArgs(buf, sign, ap); \
   void* func = (((void***)obj)[0])[offset];\
@@ -108,7 +108,7 @@
   \
   verifyNull(obj);\
   Signdef* sign = getSignature(); \
-  void** buf = (void**)alloca(sign->args.size() * sizeof(uint64)); \
+  uintptr_t buf = (uintptr_t)alloca(sign->args.size() * sizeof(uint64)); \
   void* _buf = (void*)buf; \
   readArgs(buf, sign, ap); \
   void* func = this->compiledPtr();\
@@ -122,7 +122,7 @@
   } \
   \
   Signdef* sign = getSignature(); \
-  void** buf = (void**)alloca(sign->args.size() * sizeof(uint64)); \
+  uintptr_t buf = (uintptr_t)alloca(sign->args.size() * sizeof(uint64)); \
   void* _buf = (void*)buf; \
   readArgs(buf, sign, ap); \
   void* func = this->compiledPtr();\

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.cpp Fri Nov 14 09:18:56 2008
@@ -195,7 +195,7 @@
   return cl;
 }
 
-void NativeUtil::decapsulePrimitive(Jnjvm *vm, void** &buf,
+void NativeUtil::decapsulePrimitive(Jnjvm *vm, uintptr_t &buf,
                                     JavaObject* obj,
                                     const Typedef* signature) {
 
@@ -204,7 +204,7 @@
       vm->illegalArgumentException("wrong type argument");
     }
     ((JavaObject**)buf)[0] = obj;
-    buf += 2;
+    buf += 8;
     return;
   } else if (obj == 0) {
     vm->illegalArgumentException("");
@@ -220,12 +220,12 @@
     if (prim->isShort()) {
       if (value == vm->upcalls->OfShort) {
         ((uint16*)buf)[0] = vm->upcalls->shortValue->getInt16Field(obj);
-        buf += 2;
+        buf += 8;
         return;
       } else if (value == vm->upcalls->OfByte) {
         ((sint16*)buf)[0] = 
           (sint16)vm->upcalls->byteValue->getInt8Field(obj);
-        buf += 2;
+        buf += 8;
         return;
       } else {
         vm->illegalArgumentException("");
@@ -233,7 +233,7 @@
     } else if (prim->isByte()) {
       if (value == vm->upcalls->OfByte) {
         ((uint8*)buf)[0] = vm->upcalls->byteValue->getInt8Field(obj);
-        buf += 2;
+        buf += 8;
         return;
       } else {
         vm->illegalArgumentException("");
@@ -241,7 +241,7 @@
     } else if (prim->isBool()) {
       if (value == vm->upcalls->OfBool) {
         ((uint8*)buf)[0] = vm->upcalls->boolValue->getInt8Field(obj);
-        buf += 2;
+        buf += 8;
         return;
       } else {
         vm->illegalArgumentException("");
@@ -260,7 +260,7 @@
         vm->illegalArgumentException("");
       }
       ((sint32*)buf)[0] = val;
-      buf += 2;
+      buf += 8;
       return;
     } else if (prim->isChar()) {
       uint16 val = 0;
@@ -270,7 +270,7 @@
         vm->illegalArgumentException("");
       }
       ((uint16*)buf)[0] = val;
-      buf += 2;
+      buf += 8;
       return;
     } else if (prim->isFloat()) {
       float val = 0;
@@ -290,7 +290,7 @@
         vm->illegalArgumentException("");
       }
       ((float*)buf)[0] = val;
-      buf += 2;
+      buf += 8;
       return;
     } else if (prim->isDouble()) {
       double val = 0;
@@ -312,7 +312,7 @@
         vm->illegalArgumentException("");
       }
       ((double*)buf)[0] = val;
-      buf += 2;
+      buf += 8;
       return;
     } else if (prim->isLong()) {
       sint64 val = 0;
@@ -330,7 +330,7 @@
         vm->illegalArgumentException("");
       }
       ((sint64*)buf)[0] = val;
-      buf += 2;
+      buf += 8;
       return;
     }
   }

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.h Fri Nov 14 09:18:56 2008
@@ -29,8 +29,9 @@
 
   static Jnjvm* myVM(JNIEnv* env);
   static intptr_t nativeLookup(CommonClass* cl, JavaMethod* meth, bool& jnjvm);
-  static UserCommonClass* resolvedImplClass(Jnjvm* vm, jclass clazz, bool doClinit);
-  static void decapsulePrimitive(Jnjvm *vm, void**&buf, JavaObject* obj,
+  static UserCommonClass* resolvedImplClass(Jnjvm* vm, jclass clazz,
+                                            bool doClinit);
+  static void decapsulePrimitive(Jnjvm *vm, uintptr_t &buf, JavaObject* obj,
                                  const Typedef* signature);
 
   static JavaObject* getClassType(JnjvmClassLoader* loader, Typedef* type);





More information about the vmkit-commits mailing list