[vmkit-commits] [vmkit] r73763 - in /vmkit/trunk: lib/JnJVM/Classpath/ lib/JnJVM/VMCore/ lib/Mvm/Compiler/ tools/jnjvm/ tools/llcj/libjnjvm/ tools/llcj/libjnjvmjit/ tools/n3-mono/ tools/n3-pnetlib/ tools/vmjc/ tools/vmkit/

Nicolas Geoffray nicolas.geoffray at lip6.fr
Fri Jun 19 01:26:56 PDT 2009


Author: geoffray
Date: Fri Jun 19 03:26:36 2009
New Revision: 73763

URL: http://llvm.org/viewvc/llvm-project?rev=73763&view=rev
Log:
Move to new LLVM API and Makefile machinery.


Added:
    vmkit/trunk/lib/JnJVM/Classpath/Classpath.inc
      - copied unchanged from r73608, vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.inc
      - copied, changed from r73608, vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathField.inc
      - copied unchanged from r73608, vmkit/trunk/lib/JnJVM/Classpath/ClasspathField.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.inc
      - copied, changed from r73608, vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClass.inc
      - copied unchanged from r73608, vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClass.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.inc
      - copied unchanged from r73608, vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.inc
      - copied unchanged from r73608, vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMRuntime.inc
      - copied unchanged from r73608, vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMRuntime.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMStackWalker.inc
      - copied unchanged from r73608, vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMStackWalker.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystem.inc
      - copied unchanged from r73608, vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystem.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystemProperties.inc
      - copied unchanged from r73608, vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystemProperties.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThread.inc
      - copied unchanged from r73608, vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThread.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThrowable.inc
      - copied unchanged from r73608, vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThrowable.cpp
    vmkit/trunk/lib/JnJVM/Classpath/JavaUpcalls.cpp
      - copied, changed from r73608, vmkit/trunk/lib/JnJVM/VMCore/JavaUpcalls.cpp
    vmkit/trunk/lib/JnJVM/Classpath/JavaUpcalls.h
      - copied unchanged from r73694, vmkit/trunk/lib/JnJVM/VMCore/JavaUpcalls.h
Removed:
    vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp
    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/Classpath/ClasspathVMClass.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMRuntime.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMStackWalker.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystem.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystemProperties.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThread.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThrowable.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JavaUpcalls.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JavaUpcalls.h
Modified:
    vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp
    vmkit/trunk/lib/Mvm/Compiler/JIT.cpp
    vmkit/trunk/tools/jnjvm/Makefile
    vmkit/trunk/tools/llcj/libjnjvm/Makefile
    vmkit/trunk/tools/llcj/libjnjvmjit/Makefile
    vmkit/trunk/tools/n3-mono/Makefile
    vmkit/trunk/tools/n3-pnetlib/Makefile
    vmkit/trunk/tools/vmjc/Makefile
    vmkit/trunk/tools/vmkit/Makefile

Removed: vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp?rev=73762&view=auto

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp (removed)
@@ -1,327 +0,0 @@
-//===-------- Classpath.cpp - Configuration for classpath -------------------===//
-//
-//                              JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-
-
-#include "Classpath.h"
-#include "ClasspathReflect.h"
-#include "JavaClass.h"
-#include "JavaThread.h"
-#include "JavaUpcalls.h"
-#include "Jnjvm.h"
-
-
-using namespace jnjvm;
-
-extern "C" {
-
-// Define hasClassInitializer because of a buggy implementation in Classpath.
-JNIEXPORT bool JNICALL Java_java_io_VMObjectStreamClass_hasClassInitializer(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jclass Cl) {
-  
-  bool res = false;
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  verifyNull(Cl);
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = 
-    UserCommonClass::resolvedImplClass(vm, (JavaObject*)Cl, true);
-  
-  if (cl->isClass() && 
-      cl->asClass()->lookupMethodDontThrow(vm->bootstrapLoader->clinitName,
-                                           vm->bootstrapLoader->clinitType, 
-                                           true, false, 0))
-    res = true;
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-
-// Redefine some VMObjectStreamClass functions because of a slow implementation
-// in Classpath.
-
-JNIEXPORT void JNICALL Java_java_io_VMObjectStreamClass_setBooleanNative(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-JavaObjectField* Field, jobject obj, jboolean val) {
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  verifyNull(obj);
-  JavaField* field = Field->getInternalField();
-  field->setInt8Field((JavaObject*)obj, (uint8)val);
-
-  END_NATIVE_EXCEPTION
-}
-
-JNIEXPORT void JNICALL Java_java_io_VMObjectStreamClass_setByteNative(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-JavaObjectField* Field, jobject obj, jbyte val) {
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  verifyNull(obj);
-  JavaField* field = Field->getInternalField();
-  field->setInt8Field((JavaObject*)obj, (uint8)val);
-
-  END_NATIVE_EXCEPTION
-}
-
-JNIEXPORT void JNICALL Java_java_io_VMObjectStreamClass_setCharNative(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-JavaObjectField* Field, jobject obj, jchar val) {
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  verifyNull(obj);
-  JavaField* field = Field->getInternalField();
-  field->setInt16Field((JavaObject*)obj, (uint16)val);
-
-  END_NATIVE_EXCEPTION
-}
-
-JNIEXPORT void JNICALL Java_java_io_VMObjectStreamClass_setShortNative(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-JavaObjectField* Field, jobject obj, jshort val) {
-  
-  BEGIN_NATIVE_EXCEPTION(0)
-  
-  verifyNull(obj);
-  JavaField* field = Field->getInternalField();
-  field->setInt16Field((JavaObject*)obj, (sint16)val);
-  
-  END_NATIVE_EXCEPTION
-}
-
-JNIEXPORT void JNICALL Java_java_io_VMObjectStreamClass_setIntNative(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-JavaObjectField* Field, jobject obj, jint val) {
-  
-  BEGIN_NATIVE_EXCEPTION(0)
-  
-  verifyNull(obj);
-  JavaField* field = Field->getInternalField();
-  field->setInt32Field((JavaObject*)obj, (sint32)val);
-
-  END_NATIVE_EXCEPTION
-}
-
-JNIEXPORT void JNICALL Java_java_io_VMObjectStreamClass_setLongNative(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-JavaObjectField* Field, jobject obj, jlong val) {
-  
-  BEGIN_NATIVE_EXCEPTION(0)
-  
-  verifyNull(obj);
-  JavaField* field = Field->getInternalField();
-  field->setLongField((JavaObject*)obj, (sint64)val);
-  
-  END_NATIVE_EXCEPTION
-}
-
-JNIEXPORT void JNICALL Java_java_io_VMObjectStreamClass_setFloatNative(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-JavaObjectField* Field, jobject obj, jfloat val) {
-  
-  BEGIN_NATIVE_EXCEPTION(0)
-  
-  verifyNull(obj);
-  JavaField* field = Field->getInternalField();
-  field->setFloatField((JavaObject*)obj, (float)val);
-  
-  END_NATIVE_EXCEPTION
-}
-
-JNIEXPORT void JNICALL Java_java_io_VMObjectStreamClass_setDoubleNative(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-JavaObjectField* Field, jobject obj, jdouble val) {
-  
-  BEGIN_NATIVE_EXCEPTION(0)
-  
-  verifyNull(obj);
-  JavaField* field = Field->getInternalField();
-  field->setDoubleField((JavaObject*)obj, (double)val);
-
-  END_NATIVE_EXCEPTION
-}
-
-JNIEXPORT void JNICALL Java_java_io_VMObjectStreamClass_setObjectNative(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-JavaObjectField* Field, jobject obj, jobject val) {
-  
-  BEGIN_NATIVE_EXCEPTION(0)
-  
-  verifyNull(obj);
-  JavaField* field = Field->getInternalField();
-  field->setObjectField((JavaObject*)obj, (JavaObject*)val);
-
-  END_NATIVE_EXCEPTION
-}
-
-JNIEXPORT jobject JNICALL Java_java_io_VMObjectInputStream_allocateObject(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jclass target, jclass constr, JavaObjectConstructor* cons) {
-  
-  jobject res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-  
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = 
-    (UserClass*)UserCommonClass::resolvedImplClass(vm, (JavaObject*)target, true);
-  JavaObject* obj = cl->doNew(vm);
-  JavaMethod* meth = cons->getInternalMethod();
-  meth->invokeIntSpecial(vm, cl, obj);
-  res = (jobject)obj;
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_reflect_VMArray_createObjectArray(
-#ifdef NATIVE_JNI
-JNIEnv * env,
-jclass thisClass,
-#endif
-jclass arrayType, jint arrayLength) {
-
-  jobject res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-  
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* base = 
-    UserCommonClass::resolvedImplClass(vm, (JavaObject*)arrayType, true);
-  JnjvmClassLoader* loader = base->classLoader;
-  const UTF8* name = base->getName();
-  const UTF8* arrayName = loader->constructArrayName(1, name);
-  UserClassArray* array = loader->constructArray(arrayName, base);
-  res = (jobject)array->doNew(arrayLength, vm);
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-
-// Never throws.
-JNIEXPORT 
-bool JNICALL Java_java_util_concurrent_atomic_AtomicLong_VMSupportsCS8(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-) {
-  return false;
-}
-
-// Never throws.
-JNIEXPORT bool JNICALL Java_sun_misc_Unsafe_compareAndSwapLong(
-#ifdef NATIVE_JNI
-JNIEnv *env, 
-#endif
-JavaObject* unsafe, JavaObject* obj, jlong offset, jlong expect, jlong update) {
-
-  jlong *ptr; 
-  jlong  value;
-
-  ptr = (jlong *) (((uint8 *) obj) + offset);
-
-  value = *ptr;
-
-  if (value == expect) {
-    *ptr = update;
-    return true;
-  } else {
-    return false;
-  }
-
-}
-
-// Never throws.
-JNIEXPORT bool JNICALL Java_sun_misc_Unsafe_compareAndSwapInt(
-#ifdef NATIVE_JNI
-JNIEnv *env, 
-#endif
-JavaObject* unsafe, JavaObject* obj, jlong offset, jint expect, jint update) {
-
-  jint *ptr; 
-
-  ptr = (jint *) (((uint8 *) obj) + offset);
-
-  return __sync_bool_compare_and_swap(ptr, expect, update);
-}
-
-// Never throws.
-JNIEXPORT bool JNICALL Java_sun_misc_Unsafe_compareAndSwapObject(
-#ifdef NATIVE_JNI
-JNIEnv *env, 
-#endif
-JavaObject* unsafe, JavaObject* obj, jlong offset, jobject expect,
-jobject update) {
-
-  jobject *ptr; 
-
-  ptr = (jobject *) (((uint8 *) obj) + offset);
-
-  return __sync_bool_compare_and_swap(ptr, expect, update);
-}
-
-// Never throws.
-JNIEXPORT void JNICALL Java_sun_misc_Unsafe_putObjectVolatile(
-#ifdef NATIVE_JNI
-JNIEnv *env, 
-#endif
-jobject unsafe, jobject obj, jlong offset, jobject value) {
-
-  jobject *ptr; 
-
-  ptr = (jobject *) (((uint8 *) obj) + offset);
-
-  *ptr = value;
-
-}
-
-}

Removed: vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp?rev=73762&view=auto

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp (removed)
@@ -1,196 +0,0 @@
-//===- ClasspathConstructor.cpp -------------------------------------------===//
-//===----------- GNU classpath java/lang/reflect/Constructor --------------===//
-//
-//                              JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "types.h"
-
-#include "Classpath.h"
-#include "ClasspathReflect.h"
-#include "JavaArray.h"
-#include "JavaClass.h"
-#include "JavaObject.h"
-#include "JavaThread.h"
-#include "JavaTypes.h"
-#include "JavaUpcalls.h"
-#include "Jnjvm.h"
-#include "JnjvmClassLoader.h"
-
-using namespace jnjvm;
-
-extern "C" {
-
-JNIEXPORT jobject JNICALL Java_java_lang_reflect_Constructor_getParameterTypes(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObjectConstructor* cons) {
-
-  jobject res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  verifyNull(cons);
-  UserClass* cl = cons->getClass();
-  JavaMethod* meth = cons->getInternalMethod();
-  JnjvmClassLoader* loader = cl->classLoader;
-
-  res = (jobject)meth->getParameterTypes(loader);
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-JNIEXPORT jint JNICALL Java_java_lang_reflect_Constructor_getModifiersInternal(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObjectConstructor* cons) {
-
-  jint res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  verifyNull(cons);
-  JavaMethod* meth = cons->getInternalMethod();
-  res = meth->access;
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-static jobject proceed(JavaObjectConstructor* cons, jobject _args, jclass Clazz,
-                       jint index) __attribute__ ((noinline));
- 
-static jobject proceed(JavaObjectConstructor* cons, jobject _args, jclass Clazz,
-                       jint index) {
-  jobject res = 0;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  JavaMethod* meth = cons->getInternalMethod();
-  UserClass* cl = cons->getClass();
-  JavaArray* args = (JavaArray*)_args;
-  sint32 nbArgs = args ? args->size : 0;
-  Signdef* sign = meth->getSignature();
-  sint32 size = sign->nbArguments;
-
-  if (isAbstract(cl->access)) vm->instantiationException(cl);
-
-  // Allocate a buffer to store the arguments.
-  uintptr_t buf = size ? (uintptr_t)alloca(size * sizeof(uint64)) : 0;
-  // Record the beginning of the buffer.
-  void* startBuf = (void*)buf;
-  
-  // Do it after alloca
-
-  if (nbArgs == size) {
-    UserCommonClass* _cl = 
-      UserCommonClass::resolvedImplClass(vm, (JavaObject*)Clazz, false);
-    UserClass* cl = _cl->asClass();
-    if (cl) {
-      cl->initialiseClass(vm);
-      JavaObject* obj = cl->doNew(vm);
-      res = (jobject) obj;
-      JavaObject** ptr = (JavaObject**)(void*)(args->elements);
-      
-      Typedef* const* arguments = sign->getArgumentsType();
-      // Store the arguments, unboxing primitives if necessary.
-      for (sint32 i = 0; i < size; ++i) {
-        ptr[i]->decapsulePrimitive(vm, buf, arguments[i]);
-      }
-      
-      JavaObject* excp = 0;
-      JavaThread* th = JavaThread::get();
-      try {
-        meth->invokeIntSpecialBuf(vm, cl, obj, startBuf);
-      } catch(...) {
-        excp = th->getJavaException();
-        if (excp->getClass()->isAssignableFrom(vm->upcalls->newException)) {
-          th->clearException();
-          // If it's an exception, we encapsule it in an
-          // invocationTargetException
-          vm->invocationTargetException(excp);
-        } else {
-          // If it's an error, throw it again.
-          th->throwPendingException();
-        }
-      }
-    
-    } else {
-      vm->illegalArgumentException("class is not a regular class");
-    }
-  } else {
-    vm->illegalArgumentException("wrong number of arguments");
-  }
- 
-  return res;
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_reflect_Constructor_constructNative(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObjectConstructor* cons, jobject _args, jclass Clazz, jint index) {
-
-  jobject res = 0;
-  
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  // Proceed in another function because we are using alloca.
-  res = proceed(cons, _args, Clazz, index);
-  
-  END_NATIVE_EXCEPTION
-  
-  return res;
-}
-
-JNIEXPORT 
-jobjectArray JNICALL Java_java_lang_reflect_Constructor_getExceptionTypes(
-#ifdef NATIVE_JNI
-JNIEnv *env, 
-#endif
-JavaObjectConstructor* cons) {
-  
-  jobjectArray res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-  
-  verifyNull(cons);
-  UserClass* cl = cons->getClass();
-  JavaMethod* meth = cons->getInternalMethod();
-  JnjvmClassLoader* loader = cl->classLoader;
-
-  res = (jobjectArray)meth->getExceptionTypes(loader);
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_reflect_Constructor_getSignature(
-#ifdef NATIVE_JNI
-JNIEnv *env, 
-#endif
-JavaObjectConstructor* Meth) {
-
-  jobject result = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  verifyNull(Meth);
-  JavaMethod* meth = Meth->getInternalMethod();
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  result = (jobject)(vm->internalUTF8ToStr(meth->type));
-  
-  END_NATIVE_EXCEPTION
-
-  return result;
-}
-
-
-}

Copied: vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.inc (from r73608, vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp)
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.inc?p2=vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.inc&p1=vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp&r1=73608&r2=73763&rev=73763&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.inc Fri Jun 19 03:26:36 2009
@@ -65,11 +65,12 @@
   return res;
 }
 
-static jobject proceed(JavaObjectConstructor* cons, jobject _args, jclass Clazz,
-                       jint index) __attribute__ ((noinline));
+static jobject proceedConstructor(JavaObjectConstructor* cons, jobject _args,
+                                  jclass Clazz, jint index) 
+  __attribute__ ((noinline));
  
-static jobject proceed(JavaObjectConstructor* cons, jobject _args, jclass Clazz,
-                       jint index) {
+static jobject proceedConstructor(JavaObjectConstructor* cons, jobject _args,
+                                  jclass Clazz, jint index) {
   jobject res = 0;
   Jnjvm* vm = JavaThread::get()->getJVM();
   JavaMethod* meth = cons->getInternalMethod();
@@ -142,7 +143,7 @@
   BEGIN_NATIVE_EXCEPTION(0)
 
   // Proceed in another function because we are using alloca.
-  res = proceed(cons, _args, Clazz, index);
+  res = proceedConstructor(cons, _args, Clazz, index);
   
   END_NATIVE_EXCEPTION
   

Removed: vmkit/trunk/lib/JnJVM/Classpath/ClasspathField.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathField.cpp?rev=73762&view=auto

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathField.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathField.cpp (removed)
@@ -1,883 +0,0 @@
-//===- ClasspathVMField.cpp - GNU classpath java/lang/reflect/Field -------===//
-//
-//                              JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "Classpath.h"
-#include "ClasspathReflect.h"
-#include "JavaClass.h"
-#include "JavaThread.h"
-#include "JavaTypes.h"
-#include "JavaUpcalls.h"
-#include "Jnjvm.h"
-
-using namespace jnjvm;
-
-extern "C" {
-
-
-JNIEXPORT jint JNICALL Java_java_lang_reflect_Field_getModifiersInternal(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObjectField* Field) {
-  jint res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  JavaField* field = Field->getInternalField();
-  res = field->access;
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-JNIEXPORT jclass JNICALL Java_java_lang_reflect_Field_getType(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObjectField* Field) {
-  
-  jclass res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = Field->getClass();
-  JavaField* field = Field->getInternalField();
-  JnjvmClassLoader* loader = cl->classLoader;
-  UserCommonClass* fieldCl = field->getSignature()->assocClass(loader);
-  res = (jclass)fieldCl->getClassDelegatee(vm);
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-JNIEXPORT jint JNICALL Java_java_lang_reflect_Field_getInt(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObjectField* Field, jobject obj) {
-  
-  jint res = 0;
-  
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = Field->getClass();
-  JavaField* field = Field->getInternalField();
-  const Typedef* type = field->getSignature();
-  
-  void* Obj = (void*)obj;
-  
-  if (isStatic(field->access)) {
-    cl->initialiseClass(vm);
-    Obj = cl->getStaticInstance();
-  } else {
-    verifyNull(Obj);
-  }
-  
-  if (type->isPrimitive()) {
-    const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
-
-    if (prim->isInt())
-      res = (sint32)field->getInt32Field(Obj);
-    else if (prim->isChar())
-      res = (uint32)field->getInt16Field(Obj);
-    else if (prim->isByte())
-      res = (sint32)field->getInt8Field(Obj);
-    else if (prim->isShort())
-      res = (sint32)field->getInt16Field(Obj);
-    else
-      vm->illegalArgumentException("wrong type");
-  } else {
-      vm->illegalArgumentException("wrong type");
-  }
-  
-  END_NATIVE_EXCEPTION
-  
-  return res;
-  
-}
-
-JNIEXPORT jlong JNICALL Java_java_lang_reflect_Field_getLong(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObjectField* Field, jobject obj) {
-
-  jlong res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = Field->getClass();
-  JavaField* field = Field->getInternalField();
-  
-  void* Obj = (void*)obj;
-  
-  if (isStatic(field->access)) {
-    cl->initialiseClass(vm);
-    Obj = cl->getStaticInstance();
-  } else {
-    verifyNull(Obj);
-  }
-  
-  const Typedef* type = field->getSignature();
-  if (type->isPrimitive()) {
-    const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
-    
-    if (prim->isInt())
-      res = (sint64)field->getInt32Field(Obj);
-    else if (prim->isChar())
-      res = (uint64)field->getInt16Field(Obj);
-    else if (prim->isByte())
-      res = (sint64)field->getInt8Field(Obj);
-    else if (prim->isShort())
-      res = (sint64)field->getInt16Field(Obj);
-    else if (prim->isLong())
-      res = (sint64)field->getLongField(Obj);
-    else
-      vm->illegalArgumentException("wrong type");
-  } else {
-    vm->illegalArgumentException("wrong type");
-  }
-  
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-JNIEXPORT jboolean JNICALL Java_java_lang_reflect_Field_getBoolean(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObjectField* Field, jobject obj) {
-
-  jboolean res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = Field->getClass();
-  JavaField* field = Field->getInternalField();
-  
-  void* Obj = (void*)obj;
-  
-  if (isStatic(field->access)) {
-    cl->initialiseClass(vm);
-    Obj = cl->getStaticInstance();
-  } else {
-    verifyNull(Obj);
-  }
-  
-  const Typedef* type = field->getSignature();
-  if (type->isPrimitive()) {
-    const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
-    if (prim->isBool())  
-      res = (uint8)field->getInt8Field(Obj);
-    else
-      vm->illegalArgumentException("wrong type");
-  } else {
-    vm->illegalArgumentException("wrong type");
-  }
-  
-  END_NATIVE_EXCEPTION
-
-  return res;
-  
-}
-
-JNIEXPORT jfloat JNICALL Java_java_lang_reflect_Field_getFloat(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObjectField* Field, jobject obj) {
-  
-  jfloat res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-  
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = Field->getClass();
-  JavaField* field = Field->getInternalField();
-  
-  void* Obj = (void*)obj;
-  
-  if (isStatic(field->access)) {
-    cl->initialiseClass(vm);
-    Obj = cl->getStaticInstance();
-  } else {
-    verifyNull(Obj);
-  }
-  
-  const Typedef* type = field->getSignature();
-  if (type->isPrimitive()) {
-    const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
-    if (prim->isByte())
-      res = (jfloat)field->getInt8Field(Obj);
-    else if (prim->isInt())
-      res = (jfloat)field->getInt32Field(Obj);
-    else if (prim->isShort())
-      res = (jfloat)field->getInt16Field(Obj);
-    else if (prim->isLong())
-      res = (jfloat)field->getLongField(Obj);
-    else if (prim->isChar())
-      // Cast to uint32 because char is unsigned.
-      res = (jfloat)(uint32)field->getInt16Field(Obj);
-    else if (prim->isFloat())
-      res = (jfloat)field->getFloatField(Obj);
-    else
-      vm->illegalArgumentException("wrong type");
-  } else {
-    vm->illegalArgumentException("wrong type");
-  }
-  
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-JNIEXPORT jbyte JNICALL Java_java_lang_reflect_Field_getByte(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObjectField* Field, jobject obj) {
-
-  jbyte res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = Field->getClass();
-  JavaField* field = Field->getInternalField();
-  
-  void* Obj = (void*)obj;
-  
-  if (isStatic(field->access)) {
-    cl->initialiseClass(vm);
-    Obj = cl->getStaticInstance();
-  } else {
-    verifyNull(Obj);
-  }
-  
-  const Typedef* type = field->getSignature();
-  if (type->isPrimitive()) {
-    const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
-    if (prim->isByte())
-      res = (sint8)field->getInt8Field(Obj);
-    else
-      vm->illegalArgumentException("wrong type");
-  } else {
-    vm->illegalArgumentException("wrong type");
-  }
-  
-  END_NATIVE_EXCEPTION
-  
-  return res;
-}
-
-JNIEXPORT jchar JNICALL Java_java_lang_reflect_Field_getChar(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObjectField* Field, jobject obj) {
-  
-  jchar res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-  
-  
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = Field->getClass();
-  JavaField* field = Field->getInternalField();
-  
-  void* Obj = (void*)obj;
-  
-  if (isStatic(field->access)) {
-    cl->initialiseClass(vm);
-    Obj = cl->getStaticInstance();
-  } else {
-    verifyNull(Obj);
-  }
-  
-  const Typedef* type = field->getSignature();
-  if (type->isPrimitive()) {
-    const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
-    if (prim->isChar())
-      res = (uint16)field->getInt16Field(Obj);
-    else
-      vm->illegalArgumentException("wrong type");
-  } else {
-    vm->illegalArgumentException("wrong type");
-  }
-
-  END_NATIVE_EXCEPTION
-  
-  return res;
-  
-}
-
-JNIEXPORT jshort JNICALL Java_java_lang_reflect_Field_getShort(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObjectField* Field, jobject obj) {
-
-
-  jshort res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = Field->getClass();
-  JavaField* field = Field->getInternalField();
-  
-  void* Obj = (void*)obj;
-  
-  if (isStatic(field->access)) {
-    cl->initialiseClass(vm);
-    Obj = cl->getStaticInstance();
-  } else {
-    verifyNull(Obj);
-  }
-  
-  const Typedef* type = field->getSignature();
-  if (type->isPrimitive()) {
-    const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
-    if (prim->isShort())
-      res = (sint16)field->getInt16Field(Obj);
-    else if (prim->isByte())
-      res = (sint16)field->getInt8Field(Obj);
-    else
-      vm->illegalArgumentException("wrong type");
-  } else {
-    vm->illegalArgumentException("wrong type");
-  }
-  
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-  
-JNIEXPORT jdouble JNICALL Java_java_lang_reflect_Field_getDouble(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObjectField* Field, jobject obj) {
-  
-  jdouble res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-  
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = Field->getClass();
-  JavaField* field = Field->getInternalField();
-  
-  void* Obj = (void*)obj;
-  
-  if (isStatic(field->access)) {
-    cl->initialiseClass(vm);
-    Obj = cl->getStaticInstance();
-  } else {
-    verifyNull(Obj);
-  }
-  
-  const Typedef* type = field->getSignature();
-  if (type->isPrimitive()) {
-    const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
-    if (prim->isByte())
-      res = (jdouble)(sint64)field->getInt8Field(Obj);
-    else if (prim->isInt())
-      res = (jdouble)(sint64)field->getInt32Field(Obj);
-    else if (prim->isShort())
-      res = (jdouble)(sint64)field->getInt16Field(Obj);
-    else if (prim->isLong())
-      res = (jdouble)(sint64)field->getLongField(Obj);
-    else if (prim->isChar())
-      res = (jdouble)(uint64)field->getInt16Field(Obj);
-    else if (prim->isFloat())
-      res = (jdouble)field->getFloatField(Obj);
-    else if (prim->isDouble())
-      res = (jdouble)field->getDoubleField(Obj);
-    else
-      vm->illegalArgumentException("wrong type");
-  } else {
-    vm->illegalArgumentException("wrong type");
-  }
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_reflect_Field_get(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObjectField* Field, jobject _obj) {
-
-
-  jobject result = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = Field->getClass();
-  JavaField* field = Field->getInternalField();
-  
-  void* Obj = (void*)_obj;
-  
-  if (isStatic(field->access)) {
-    cl->initialiseClass(vm);
-    Obj = cl->getStaticInstance();
-  } else {
-    verifyNull(Obj);
-  }
-  
-  JavaObject* res = 0;
-  const Typedef* type = field->getSignature();
-  if (type->isPrimitive()) {
-    const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
-    if (prim->isBool()) {
-      uint8 val =  field->getInt8Field(Obj);
-      res = vm->upcalls->boolClass->doNew(vm);
-      vm->upcalls->boolValue->setInt8Field(res, val);
-    }
-    else if (prim->isByte()) {
-      sint8 val =  field->getInt8Field(Obj);
-      res = vm->upcalls->byteClass->doNew(vm);
-      vm->upcalls->byteValue->setInt8Field(res, val);
-    }
-    else if (prim->isChar()) {
-      uint16 val =  field->getInt16Field(Obj);
-      res = vm->upcalls->charClass->doNew(vm);
-      vm->upcalls->charValue->setInt16Field(res, val);
-    }
-    else if (prim->isShort()) {
-      sint16 val =  field->getInt16Field(Obj);
-      res = vm->upcalls->shortClass->doNew(vm);
-      vm->upcalls->shortValue->setInt16Field(res, val);
-    }
-    else if (prim->isInt()) {
-      sint32 val =  field->getInt32Field(Obj);
-      res = vm->upcalls->intClass->doNew(vm);
-      vm->upcalls->intValue->setInt32Field(res, val);
-    }
-    else if (prim->isLong()) {
-      sint64 val =  field->getLongField(Obj);
-      res = vm->upcalls->longClass->doNew(vm);
-      vm->upcalls->longValue->setLongField(res, val);
-    }
-    else if (prim->isFloat()) {
-      float val =  field->getFloatField(Obj);
-      res = vm->upcalls->floatClass->doNew(vm);
-      vm->upcalls->floatValue->setFloatField(res, val);
-    }
-    else if (prim->isDouble()) {
-      double val =  field->getDoubleField(Obj);
-      res = vm->upcalls->doubleClass->doNew(vm);
-      vm->upcalls->doubleValue->setDoubleField(res, val);
-    }
-  } else {
-    res =  field->getObjectField(Obj);
-  }
-  
-  result = (jobject) res;
-
-  END_NATIVE_EXCEPTION
-
-  return (jobject)result;
-}
-
-JNIEXPORT void JNICALL Java_java_lang_reflect_Field_set(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObjectField* Field, jobject obj, jobject val) {
-  
-  
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = Field->getClass();
-  JavaField* field = Field->getInternalField();
-  uintptr_t buf = (uintptr_t)alloca(sizeof(uint64));
-  
-  // Do it after alloca
-  BEGIN_NATIVE_EXCEPTION(0)
-  
-  void* _buf = (void*)buf;
-  const Typedef* type = field->getSignature();
-  ((JavaObject*)val)->decapsulePrimitive(vm, buf, type);
-
-  
-  void* Obj = (void*)obj;
-  
-  if (isStatic(field->access)) {
-    cl->initialiseClass(vm);
-    Obj = cl->getStaticInstance();
-  } else {
-    verifyNull(Obj);
-  }
-  
-
-  if (type->isPrimitive()) {
-    const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
-    if (prim->isBool())
-      field->setInt8Field(Obj, ((uint8*)_buf)[0]);
-    else if (prim->isByte())
-      field->setInt8Field(Obj, ((sint8*)_buf)[0]);
-    else if (prim->isChar())
-      field->setInt16Field(Obj, ((uint16*)_buf)[0]);
-    else if (prim->isShort())
-      field->setInt16Field(Obj, ((sint16*)_buf)[0]);
-    else if (prim->isInt())
-      field->setInt32Field(Obj, ((sint32*)_buf)[0]);
-    else if (prim->isLong())
-      field->setLongField(Obj, ((sint64*)_buf)[0]);
-    else if (prim->isFloat())
-      field->setFloatField(Obj, ((float*)_buf)[0]);
-    else if (prim->isDouble())
-      field->setDoubleField(Obj, ((double*)_buf)[0]);
-  } else {
-    field->setObjectField(Obj, ((JavaObject**)_buf)[0]);
-  }
-
-  END_NATIVE_EXCEPTION
-}
-
-JNIEXPORT void JNICALL Java_java_lang_reflect_Field_setBoolean(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObjectField* Field, jobject obj, jboolean val) {
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = Field->getClass();
-  JavaField* field = Field->getInternalField();
-  
-  void* Obj = (void*)obj;
-  
-  if (isStatic(field->access)) {
-    cl->initialiseClass(vm);
-    Obj = cl->getStaticInstance();
-  } else {
-    verifyNull(Obj);
-  }
- 
-  const Typedef* type = field->getSignature();
-  if (type->isPrimitive()) {
-    const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
-    if (prim->isBool())
-      field->setInt8Field(Obj, (uint8)val);
-    else
-      vm->illegalArgumentException("wrong type");
-  } else {
-    vm->illegalArgumentException("wrong type");
-  }
-
-  END_NATIVE_EXCEPTION
-  
-}
-
-JNIEXPORT void JNICALL Java_java_lang_reflect_Field_setByte(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObjectField* Field, jobject obj, jbyte val) {
-  
-  BEGIN_NATIVE_EXCEPTION(0)
-  
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = Field->getClass();
-  JavaField* field = Field->getInternalField();
-  
-  void* Obj = (void*)obj;
-  
-  if (isStatic(field->access)) {
-    cl->initialiseClass(vm);
-    Obj = cl->getStaticInstance();
-  } else {
-    verifyNull(Obj);
-  }
-
-  const Typedef* type = field->getSignature();
-  if (type->isPrimitive()) {
-    const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
-    if (prim->isByte())
-      field->setInt8Field(Obj, (sint8)val);
-    else if (prim->isShort())
-      field->setInt16Field(Obj, (sint16)val);
-    else if (prim->isInt())
-      field->setInt32Field(Obj, (sint32)val);
-    else if (prim->isLong())
-      field->setLongField(Obj, (sint64)val);
-    else if (prim->isFloat())
-      field->setFloatField(Obj, (float)val);
-    else if (prim->isDouble())
-      field->setDoubleField(Obj, (double)val);
-    else
-      vm->illegalArgumentException("wrong type");
-  } else {
-    vm->illegalArgumentException("wrong type");
-  }
-
-  END_NATIVE_EXCEPTION
-}
-
-JNIEXPORT void JNICALL Java_java_lang_reflect_Field_setChar(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObjectField* Field, jobject obj, jchar val) {
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = Field->getClass();
-  JavaField* field = Field->getInternalField();
-  
-  void* Obj = (void*)obj;
-  
-  if (isStatic(field->access)) {
-    cl->initialiseClass(vm);
-    Obj = cl->getStaticInstance();
-  } else {
-    verifyNull(Obj);
-  }
-  const Typedef* type = field->getSignature();
-  if (type->isPrimitive()) {
-    const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
-    if (prim->isChar())
-      field->setInt16Field(Obj, (uint16)val);
-    else if (prim->isInt())
-      field->setInt32Field(Obj, (uint32)val);
-    else if (prim->isLong())
-      field->setLongField(Obj, (uint64)val);
-    else if (prim->isFloat())
-      field->setFloatField(Obj, (float)(uint32)val);
-    else if (prim->isDouble())
-      field->setDoubleField(Obj, (double)(uint64)val);
-    else
-      vm->illegalArgumentException("wrong type");
-  } else {
-    vm->illegalArgumentException("wrong type");
-  }
-
-  END_NATIVE_EXCEPTION
-}
-
-JNIEXPORT void JNICALL Java_java_lang_reflect_Field_setShort(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObjectField* Field, jobject obj, jshort val) {
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = Field->getClass();
-  JavaField* field = Field->getInternalField();
-  
-  void* Obj = (void*)obj;
-  
-  if (isStatic(field->access)) {
-    cl->initialiseClass(vm);
-    Obj = cl->getStaticInstance();
-  } else {
-    verifyNull(Obj);
-  }
-  
-  const Typedef* type = field->getSignature();
-  if (type->isPrimitive()) {
-    const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
-    if (prim->isShort())
-      field->setInt16Field(Obj, (sint16)val);
-    else if (prim->isInt())
-      field->setInt32Field(Obj, (sint32)val);
-    else if (prim->isLong())
-      field->setLongField(Obj, (sint64)val);
-    else if (prim->isFloat())
-      field->setFloatField(Obj, (float)val);
-    else if (prim->isDouble())
-      field->setDoubleField(Obj, (double)val);
-    else
-      vm->illegalArgumentException("wrong type");
-  } else {
-    vm->illegalArgumentException("wrong type");
-  }
-
-  END_NATIVE_EXCEPTION
-}
-
-JNIEXPORT void JNICALL Java_java_lang_reflect_Field_setInt(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObjectField* Field, jobject obj, jint val) {
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = Field->getClass();
-  JavaField* field = Field->getInternalField();
-  
-  void* Obj = (void*)obj;
-  
-  if (isStatic(field->access)) {
-    cl->initialiseClass(vm);
-    Obj = cl->getStaticInstance();
-  } else {
-    verifyNull(Obj);
-  }
-  
-  const Typedef* type = field->getSignature();
-  if (type->isPrimitive()) {
-    const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
-    if (prim->isInt())
-      field->setInt32Field(Obj, (sint32)val);
-    else if (prim->isLong())
-      field->setLongField(Obj, (sint64)val);
-    else if (prim->isFloat())
-      field->setFloatField(Obj, (float)val);
-    else if (prim->isDouble())
-      field->setDoubleField(Obj, (double)val);
-    else
-      vm->illegalArgumentException("wrong type");
-  } else {
-    vm->illegalArgumentException("wrong type");
-  }
-
-  END_NATIVE_EXCEPTION
-}
-
-JNIEXPORT void JNICALL Java_java_lang_reflect_Field_setLong(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObjectField* Field, jobject obj, jlong val) {
-  
-  BEGIN_NATIVE_EXCEPTION(0)
-  
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = Field->getClass();
-  JavaField* field = Field->getInternalField();
-  
-  void* Obj = (void*)obj;
-  
-  if (isStatic(field->access)) {
-    cl->initialiseClass(vm);
-    Obj = cl->getStaticInstance();
-  } else {
-    verifyNull(Obj);
-  }
-
-  const Typedef* type = field->getSignature();
-  if (type->isPrimitive()) {
-    const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
-    if (prim->isLong())
-      field->setLongField(Obj, (sint64)val);
-    else if (prim->isFloat())
-      field->setFloatField(Obj, (float)val);
-    else if (prim->isDouble())
-      field->setDoubleField(Obj, (double)val);
-    else
-      vm->illegalArgumentException("wrong type");
-  } else {
-    vm->illegalArgumentException("wrong type");
-  }
-
-  END_NATIVE_EXCEPTION
-}
-
-JNIEXPORT void JNICALL Java_java_lang_reflect_Field_setFloat(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObjectField* Field, jobject obj, jfloat val) {
-
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = Field->getClass();
-  JavaField* field = Field->getInternalField();
-  
-  void* Obj = (void*)obj;
-  
-  if (isStatic(field->access)) {
-    cl->initialiseClass(vm);
-    Obj = cl->getStaticInstance();
-  } else {
-    verifyNull(Obj);
-  }
-  
-  const Typedef* type = field->getSignature();
-  if (type->isPrimitive()) {
-    const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
-    if (prim->isFloat())
-      field->setFloatField(Obj, (float)val);
-    else if (prim->isDouble())
-      field->setDoubleField(Obj, (double)val);
-    else 
-      vm->illegalArgumentException("wrong type");
-  } else {
-    vm->illegalArgumentException("wrong type");
-  }
-
-  END_NATIVE_EXCEPTION
-}
-
-JNIEXPORT void JNICALL Java_java_lang_reflect_Field_setDouble(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObjectField* Field, JavaObject* obj, jdouble val) {
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = Field->getClass();
-  JavaField* field = Field->getInternalField();
-  
-  void* Obj = (void*)obj;
-
-  if (isStatic(field->access)) {
-    cl->initialiseClass(vm);
-    Obj = cl->getStaticInstance();
-  } else {
-    verifyNull(Obj);
-  }
-  
-  const Typedef* type = field->getSignature();
-  if (type->isPrimitive()) {
-    const PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
-    if (prim->isDouble())
-      field->setDoubleField(Obj, (double)val);
-    else
-      vm->illegalArgumentException("wrong type");
-  } else {
-    vm->illegalArgumentException("wrong type");
-  }
-
-  END_NATIVE_EXCEPTION
-}
-
-// Never throws.
-JNIEXPORT jlong JNICALL Java_sun_misc_Unsafe_objectFieldOffset(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-JavaObject* Unsafe, JavaObjectField* Field) {
-  JavaField* field = Field->getInternalField();
-  return (jlong)field->ptrOffset;
-}
-
-}

Removed: vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp?rev=73762&view=auto

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp (removed)
@@ -1,284 +0,0 @@
-//===- ClasspathMethod.cpp ------------------------------------------------===//
-//===------------- GNU classpath java/lang/reflect/Method -----------------===//
-//
-//                              JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "types.h"
-
-#include "Classpath.h"
-#include "ClasspathReflect.h"
-#include "JavaArray.h"
-#include "JavaClass.h"
-#include "JavaObject.h"
-#include "JavaTypes.h"
-#include "JavaThread.h"
-#include "JavaUpcalls.h"
-#include "Jnjvm.h"
-#include "JnjvmClassLoader.h"
-
-using namespace jnjvm;
-
-extern "C" {
-
-JNIEXPORT jint JNICALL Java_java_lang_reflect_Method_getModifiersInternal(
-#ifdef NATIVE_JNI
-JNIEnv *env, 
-#endif
-JavaObjectMethod* Meth) { 
-  
-  jint res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-  
-  JavaMethod* meth = Meth->getInternalMethod(); 
-  res = meth->access;
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-JNIEXPORT jclass JNICALL Java_java_lang_reflect_Method_getReturnType(
-#ifdef NATIVE_JNI
-JNIEnv *env, 
-#endif
-JavaObjectMethod* Meth) {
-
-  jclass res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  UserClass* cl = Meth->getClass();
-  JavaMethod* meth = Meth->getInternalMethod(); 
-  JnjvmClassLoader* loader = cl->classLoader;
-  res = (jclass)meth->getReturnType(loader);
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-
-JNIEXPORT jobject JNICALL Java_java_lang_reflect_Method_getParameterTypes(
-#ifdef NATIVE_JNI
-JNIEnv *env, 
-#endif
-JavaObjectMethod* Meth) {
-
-  jobject res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  UserClass* cl = Meth->getClass();
-  JavaMethod* meth = Meth->getInternalMethod();
-  JnjvmClassLoader* loader = cl->classLoader;
-  
-  res = (jobject)(meth->getParameterTypes(loader));
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-static jobject proceed(JavaObjectMethod* Meth, jobject _obj, jobject _args, 
-                       jclass Cl, jint index) __attribute__((noinline));
-
-static jobject proceed(JavaObjectMethod* Meth, jobject _obj, jobject _args, 
-                       jclass Cl, jint index) {
-
-  JavaObject* res = 0;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-
-  JavaMethod* meth = Meth->getInternalMethod();
-  
-  JavaArray* args = (JavaArray*)_args;
-  sint32 nbArgs = args ? args->size : 0;
-  Signdef* sign = meth->getSignature();
-  sint32 size = sign->nbArguments;
-  JavaObject* obj = (JavaObject*)_obj;
-
-  uintptr_t buf = size ? (uintptr_t)alloca(size * sizeof(uint64)) : 0;
-  
-
-  void* _buf = (void*)buf;
-  if (nbArgs == size) {
-    UserCommonClass* _cl = 
-      UserCommonClass::resolvedImplClass(vm, (JavaObject*)Cl, false);
-    UserClass* cl = (UserClass*)_cl;
-    
-    if (isVirtual(meth->access)) {
-      verifyNull(obj);
-      UserCommonClass* objCl = obj->getClass();
-      if (!(objCl->isAssignableFrom(cl))) {
-        vm->illegalArgumentException("<this> is not a valid type");
-      }
-
-      if (isInterface(cl->access)) {
-        cl->initialiseClass(vm);
-        UserClass* methodCl = 0;
-        UserClass* lookup = objCl->isArray() ? objCl->super : objCl->asClass();
-        meth = lookup->lookupMethod(meth->name, meth->type, false, true,
-                                    &methodCl);
-      }
-    } else {
-      cl->initialiseClass(vm);
-    }
-    
-    JavaObject** ptr = (JavaObject**)(void*)(args->elements);
-    Typedef* const* arguments = sign->getArgumentsType();
-    for (sint32 i = 0; i < size; ++i) {
-      ptr[i]->decapsulePrimitive(vm, buf, arguments[i]);
-    }
-    
-    JavaObject* exc = 0;
-    JavaThread* th = JavaThread::get();
-
-#define RUN_METH(TYPE) \
-    try{ \
-      if (isVirtual(meth->access)) { \
-        if (isPublic(meth->access) && !isFinal(meth->access) && \
-            !isFinal(meth->classDef->access)) { \
-          val = meth->invoke##TYPE##VirtualBuf(vm, cl, obj, _buf); \
-        } else { \
-          val = meth->invoke##TYPE##SpecialBuf(vm, cl, obj, _buf); \
-        } \
-      } else { \
-        val = meth->invoke##TYPE##StaticBuf(vm, cl, _buf); \
-      } \
-    } catch(...) { \
-      exc = th->getJavaException(); \
-      if (exc->getClass()->isAssignableFrom(vm->upcalls->newException)) { \
-        th->clearException(); \
-        th->getJVM()->invocationTargetException(exc); \
-      } else { \
-        th->throwPendingException(); \
-      } \
-    } \
-    
-    Typedef* retType = sign->getReturnType();
-    if (retType->isPrimitive()) {
-      PrimitiveTypedef* prim = (PrimitiveTypedef*)retType;
-      if (prim->isVoid()) {
-        res = 0;
-        uint32 val = 0;
-        RUN_METH(Int);
-      } else if (prim->isBool()) {
-        uint32 val = 0;
-        RUN_METH(Int);
-        res = vm->upcalls->boolClass->doNew(vm);
-        vm->upcalls->boolValue->setInt8Field(res, val);
-      } else if (prim->isByte()) {
-        uint32 val = 0;
-        RUN_METH(Int);
-        res = vm->upcalls->byteClass->doNew(vm);
-        vm->upcalls->byteValue->setInt8Field(res, val);
-      } else if (prim->isChar()) {
-        uint32 val = 0;
-        RUN_METH(Int);
-        res = vm->upcalls->charClass->doNew(vm);
-        vm->upcalls->charValue->setInt16Field(res, val);
-      } else if (prim->isShort()) {
-        uint32 val = 0;
-        RUN_METH(Int);
-        res = vm->upcalls->shortClass->doNew(vm);
-        vm->upcalls->shortValue->setInt16Field(res, val);
-      } else if (prim->isInt()) {
-        uint32 val = 0;
-        RUN_METH(Int);
-        res = vm->upcalls->intClass->doNew(vm);
-        vm->upcalls->intValue->setInt32Field(res, val);
-      } else if (prim->isLong()) {
-        sint64 val = 0;
-        RUN_METH(Long);
-        res = vm->upcalls->longClass->doNew(vm);
-        vm->upcalls->longValue->setLongField(res, val);
-      } else if (prim->isFloat()) {
-        float val = 0;
-        RUN_METH(Float);
-        res = vm->upcalls->floatClass->doNew(vm);
-        vm->upcalls->floatValue->setFloatField(res, val);
-      } else if (prim->isDouble()) {
-        double val = 0;
-        RUN_METH(Double);
-        res = vm->upcalls->doubleClass->doNew(vm);
-        vm->upcalls->doubleValue->setDoubleField(res, val);
-      }
-    } else {
-      JavaObject* val = 0;
-      RUN_METH(JavaObject);
-      res = val;
-    } 
-  } else {
-    vm->illegalArgumentException("wrong number of arguments"); 
-  }
-
-  return (jobject)res;
-}
-
-#undef RUN_METH
-
-JNIEXPORT jobject JNICALL Java_java_lang_reflect_Method_invokeNative(
-#ifdef NATIVE_JNI
-JNIEnv *env, 
-#endif
-JavaObjectMethod* Meth, jobject _obj, jobject _args, jclass Cl, jint index) {
-  
-  jobject res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  // Create a new function because we use alloca.
-  res = proceed(Meth, _obj, _args, Cl, index);
-  
-  END_NATIVE_EXCEPTION
-
-  return (jobject) res;
-}
-
-JNIEXPORT jobjectArray JNICALL Java_java_lang_reflect_Method_getExceptionTypes(
-#ifdef NATIVE_JNI
-JNIEnv *env, 
-#endif
-JavaObjectMethod* Meth) {
-
-  jobjectArray res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  verifyNull(Meth);
-  UserClass* cl = Meth->getClass();
-  JavaMethod* meth = Meth->getInternalMethod();
-  JnjvmClassLoader* loader = cl->classLoader;
-  res = (jobjectArray)meth->getExceptionTypes(loader);
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_reflect_Method_getSignature(
-#ifdef NATIVE_JNI
-JNIEnv *env, 
-#endif
-JavaObjectMethod* Meth) {
-
-  jobject result = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  verifyNull(Meth);
-  JavaMethod* meth = Meth->getInternalMethod();
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  result = (jobject)(vm->internalUTF8ToStr(meth->type));
-  
-  END_NATIVE_EXCEPTION
-
-  return result;
-}
-
-}

Copied: vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.inc (from r73608, vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp)
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.inc?p2=vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.inc&p1=vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp&r1=73608&r2=73763&rev=73763&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.inc Fri Jun 19 03:26:36 2009
@@ -85,11 +85,12 @@
   return res;
 }
 
-static jobject proceed(JavaObjectMethod* Meth, jobject _obj, jobject _args, 
-                       jclass Cl, jint index) __attribute__((noinline));
+static jobject proceedMethod(JavaObjectMethod* Meth, jobject _obj,
+                             jobject _args, jclass Cl, jint index) 
+  __attribute__((noinline));
 
-static jobject proceed(JavaObjectMethod* Meth, jobject _obj, jobject _args, 
-                       jclass Cl, jint index) {
+static jobject proceedMethod(JavaObjectMethod* Meth, jobject _obj,
+                             jobject _args, jclass Cl, jint index) {
 
   JavaObject* res = 0;
   Jnjvm* vm = JavaThread::get()->getJVM();
@@ -233,7 +234,7 @@
   BEGIN_NATIVE_EXCEPTION(0)
 
   // Create a new function because we use alloca.
-  res = proceed(Meth, _obj, _args, Cl, index);
+  res = proceedMethod(Meth, _obj, _args, Cl, index);
   
   END_NATIVE_EXCEPTION
 

Removed: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClass.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClass.cpp?rev=73762&view=auto

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClass.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClass.cpp (removed)
@@ -1,593 +0,0 @@
-//===---- ClasspathVMClass.cpp - GNU classpath java/lang/VMClass ----------===//
-//
-//                              JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "types.h"
-
-#include "Classpath.h"
-#include "ClasspathReflect.h"
-#include "JavaAccess.h"
-#include "JavaArray.h"
-#include "JavaClass.h"
-#include "JavaObject.h"
-#include "JavaString.h"
-#include "JavaTypes.h"
-#include "JavaThread.h"
-#include "JavaUpcalls.h"
-#include "Jnjvm.h"
-
-using namespace jnjvm;
-
-extern "C" {
-
-// Never throws
-JNIEXPORT jboolean JNICALL Java_java_lang_VMClass_isArray(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jobject klass) {
-
-  UserCommonClass* cl = ((JavaObjectClass*)klass)->getClass();
-
-  return cl->isArray();
-  
-}
-
-JNIEXPORT jclass JNICALL Java_java_lang_VMClass_forName(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-JavaString* str, 
-jboolean clinit, 
-JavaObject* loader) {
-
-  jclass res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM(); 
-  JnjvmClassLoader* JCL = 
-    JnjvmClassLoader::getJnjvmLoaderFromJavaObject(loader, vm);
-  UserCommonClass* cl = JCL->loadClassFromJavaString(str, true, false);
-
-  if (cl != 0) {
-    if (clinit && cl->asClass()) {
-      cl->asClass()->initialiseClass(vm);
-    }
-    res =(jclass)(cl->getClassDelegatee(vm));
-  } else {
-    vm->classNotFoundException(str);
-  }
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMClass_getDeclaredConstructors(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jclass Cl, 
-jboolean publicOnly) {
-
-  jobject result = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = 
-    UserCommonClass::resolvedImplClass(vm, (JavaObject*)Cl, false);
-
-  if (cl->isArray() || cl->isInterface() || cl->isPrimitive()) {
-    result = (jobject)vm->upcalls->constructorArrayClass->doNew(0, vm);
-  } else {
-    UserClass* realCl = (Class*)cl;
-    JnjvmClassLoader* classLoader = cl->classLoader;
-    uint32 size = 0;
-    
-    for (uint32 i = 0; i < realCl->nbVirtualMethods; ++i) {
-      JavaMethod* meth = &realCl->virtualMethods[i];
-      bool pub = isPublic(meth->access);
-      if (meth->name->equals(classLoader->bootstrapLoader->initName) && 
-          (!publicOnly || pub)) {
-        ++size;
-      }
-    }
-  
-
-    ArrayObject* ret = 
-      (ArrayObject*)vm->upcalls->constructorArrayClass->doNew(size, vm);
-    sint32 index = 0;
-    for (uint32 i = 0; i < realCl->nbVirtualMethods; ++i) {
-      JavaMethod* meth = &realCl->virtualMethods[i];
-      bool pub = isPublic(meth->access);
-      if (meth->name->equals(classLoader->bootstrapLoader->initName) && 
-          (!publicOnly || pub)) {
-        UserClass* Cons = vm->upcalls->newConstructor;
-        JavaObject* tmp = Cons->doNew(vm);
-        vm->upcalls->initConstructor->invokeIntSpecial(vm, Cons, tmp, Cl, i);
-        ret->elements[index++] = tmp;
-      }
-    }
-    result = (jobject)ret;
-  }
-
-  END_NATIVE_EXCEPTION
-
-  return result;
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMClass_getDeclaredMethods(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jclass Cl, 
-jboolean publicOnly) {
-
-  jobject result = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = 
-    UserCommonClass::resolvedImplClass(vm, (JavaObject*)Cl, false);
-  Classpath* upcalls = vm->upcalls;
-
-  if (cl->isArray() || cl->isPrimitive()) {
-    result = (jobject)upcalls->methodArrayClass->doNew(0, vm);
-  } else {
-    UserClass* realCl = (Class*)cl;
-    JnjvmClassLoader* classLoader = cl->classLoader;
-    uint32 size = 0;
-
-    for (uint32 i = 0; i < realCl->nbVirtualMethods + realCl->nbStaticMethods;
-         ++i) {
-      JavaMethod* meth = &realCl->virtualMethods[i];
-      bool pub = isPublic(meth->access);
-      if (!(meth->name->equals(classLoader->bootstrapLoader->initName)) && 
-          (!publicOnly || pub)) {
-        ++size; 
-      }
-    }
-
-    
-    ArrayObject* ret = (ArrayObject*)upcalls->methodArrayClass->doNew(size, vm);
-
-    sint32 index = 0;
-    for (uint32 i = 0; i < realCl->nbVirtualMethods + realCl->nbStaticMethods;
-         ++i) {
-      JavaMethod* meth = &realCl->virtualMethods[i];
-      bool pub = isPublic(meth->access);
-      if (!(meth->name->equals(classLoader->bootstrapLoader->initName)) && 
-          (!publicOnly || pub)) {
-        // TODO: check parameter types
-        UserClass* Meth = vm->upcalls->newMethod;
-        JavaObject* tmp = Meth->doNew(vm);
-        JavaString* str = vm->internalUTF8ToStr(meth->name);
-        upcalls->initMethod->invokeIntSpecial(vm, Meth, tmp, Cl, str, i);
-        ret->elements[index++] = tmp;
-      }
-    }
-    result = (jobject)ret;
-  }
-
-  END_NATIVE_EXCEPTION
-
-  return result;
-}
-
-JNIEXPORT jint JNICALL Java_java_lang_VMClass_getModifiers(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jclass Cl, 
-jboolean ignore) {
-  
-  jint res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = 
-    UserCommonClass::resolvedImplClass(vm, (JavaObject*)Cl, false);
-  res = cl->getAccess();
-
-  END_NATIVE_EXCEPTION
-  return res;
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMClass_getName(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz, 
-#endif
-jobject Cl) {
-
-  jobject result = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = ((JavaObjectClass*)Cl)->getClass();
-  
-  const UTF8* iname = cl->getName();
-  result = (jobject)JavaString::internalToJava(iname, vm);
-
-  END_NATIVE_EXCEPTION
-
-  return result;
-}
-
-JNIEXPORT jboolean JNICALL Java_java_lang_VMClass_isPrimitive(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz, 
-#endif
-jclass Cl) {
- 
-  jboolean res = 0;
-  BEGIN_NATIVE_EXCEPTION(0)
-  
-  UserCommonClass* cl = ((JavaObjectClass*)Cl)->getClass();
-  
-  res = cl->isPrimitive();
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-JNIEXPORT jboolean JNICALL Java_java_lang_VMClass_isInterface(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz, 
-#endif
-jclass Cl) {
-
-  jboolean res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = 
-    UserCommonClass::resolvedImplClass(vm, (JavaObject*)Cl, false);
-
-  res = cl->isInterface();
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-JNIEXPORT jclass JNICALL Java_java_lang_VMClass_getComponentType(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz, 
-#endif
-jclass Cl) {
-  
-  jclass res = 0;
-  
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = ((JavaObjectClass*)Cl)->getClass();
-
-  if (cl->isArray()) {
-    UserCommonClass* bc = ((UserClassArray*)cl)->baseClass();
-    res = (jclass)(bc->getClassDelegatee(vm));
-  } else {
-    res = 0;
-  }
-
-  END_NATIVE_EXCEPTION
-  return res;
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMClass_getClassLoader(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz, 
-#endif
-jclass Cl) {
-
-  jobject res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  UserCommonClass* cl = ((JavaObjectClass*)Cl)->getClass();
-  res = (jobject)cl->classLoader->getJavaClassLoader();
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-JNIEXPORT jboolean JNICALL Java_java_lang_VMClass_isAssignableFrom(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz, 
-#endif
-jclass Cl1, jclass Cl2) {
-  
-  jboolean res = 0;
-  
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  if (!Cl2) JavaThread::get()->getJVM()->nullPointerException();
-
-  UserCommonClass* cl1 = ((JavaObjectClass*)Cl1)->getClass();
-  UserCommonClass* cl2 = ((JavaObjectClass*)Cl2)->getClass();
-
-  if (cl1->isClass()) cl1->asClass()->resolveClass();
-  if (cl2->asClass()) cl2->asClass()->resolveClass();
-  res = cl2->isAssignableFrom(cl1);
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMClass_getSuperclass(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz, 
-#endif
-jclass Cl) {
-
-  jobject res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = ((JavaObjectClass*)Cl)->getClass();
-  if (cl->isInterface()) res = 0;
-  else {
-    if (cl->asClass()) cl->asClass()->resolveClass();
-    if (cl->getSuper()) res = (jobject)cl->getSuper()->getClassDelegatee(vm);
-    else res = 0;
-  }
-
-  END_NATIVE_EXCEPTION
-  
-  return res;
-}
-
-JNIEXPORT bool JNICALL Java_java_lang_VMClass_isInstance(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz, 
-#endif
-jclass Cl, jobject obj) {
-
-  bool res = false;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  UserCommonClass* cl = ((JavaObjectClass*)Cl)->getClass();
-  res = ((JavaObject*)obj)->instanceOf(cl);
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMClass_getDeclaredFields(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz, 
-#endif
-jclass Cl, jboolean publicOnly) {
-
-  jobject result = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = 
-    UserCommonClass::resolvedImplClass(vm, (JavaObject*)Cl, false)->asClass();
-
-  if (!cl) {
-    result = (jobject)vm->upcalls->fieldArrayClass->doNew(0, vm);
-  } else {
-    
-    uint32 size = 0;
-    for (uint32 i = 0; i < cl->nbVirtualFields + cl->nbStaticFields; ++i) {
-      JavaField* field = &cl->virtualFields[i];
-      if (!publicOnly || isPublic(field->access)) {
-        ++size;
-      }
-    }
-
-
-    ArrayObject* ret = 
-      (ArrayObject*)vm->upcalls->fieldArrayClass->doNew(size, vm);
-    sint32 index = 0;
-    for (uint32 i = 0; i < cl->nbVirtualFields + cl->nbStaticFields; ++i) {
-      JavaField* field = &cl->virtualFields[i];
-      if (!publicOnly || isPublic(field->access)) {
-        // TODO: check parameter types
-        UserClass* Field = vm->upcalls->newField;
-        JavaObject* tmp = Field->doNew(vm);
-        JavaString* name = vm->internalUTF8ToStr(field->name);
-        vm->upcalls->initField->invokeIntSpecial(vm, Field, tmp, Cl, name, i);
-        ret->elements[index++] = tmp;
-      }
-    }
-    result = (jobject)ret;
-  }
-
-  END_NATIVE_EXCEPTION
-
-  return result;
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMClass_getInterfaces(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz, 
-#endif
-jclass Cl) {
-
-  jobject res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = 
-    UserCommonClass::resolvedImplClass(vm, (JavaObject*)Cl, false);
-  ArrayObject* ret = 
-    (ArrayObject*)vm->upcalls->classArrayClass->doNew(cl->nbInterfaces, vm);
-  for (uint16 i = 0; i < cl->nbInterfaces; ++i) {
-    UserClass* klass = cl->interfaces[i];
-    ret->elements[i] = klass->getClassDelegatee(vm);
-  }
-  res = (jobject)ret;
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-
-JNIEXPORT jclass JNICALL Java_java_lang_VMClass_getDeclaringClass(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz, 
-#endif
-jclass Cl) {
-  jclass res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = 
-    UserCommonClass::resolvedImplClass(vm, (JavaObject*)Cl, false)->asClass();
-  if (cl) {
-    cl->resolveInnerOuterClasses();
-    UserClass* outer = cl->getOuterClass();
-    if (outer) {
-      res = (jclass)outer->getClassDelegatee(vm);
-    }
-  }
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMClass_getDeclaredClasses(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz, 
-#endif
-jclass Cl, bool publicOnly) {
-
-
-  jobject result = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = 
-    UserCommonClass::resolvedImplClass(vm, (JavaObject*)Cl, false)->asClass();
-  if (cl) {
-    cl->resolveInnerOuterClasses();
-    UserClassArray* array = vm->upcalls->constructorArrayClass;
-    
-    uint16 sizeArray = 0;
-
-    if (publicOnly) {
-      for (uint16 i = 0; i < cl->nbInnerClasses; ++i) {
-        UserClass* klass = cl->innerClasses[i];
-        if (isPublic(klass->innerAccess)) ++sizeArray;
-      }
-    } else {
-      sizeArray = cl->nbInnerClasses;
-    }
-
-    ArrayObject* res = (ArrayObject*)array->doNew(sizeArray, vm);
-    for (uint16 i = 0; i < cl->nbInnerClasses; ++i) {
-      UserClass* klass = cl->innerClasses[i];
-      if (!publicOnly || isPublic(klass->innerAccess))
-        res->elements[i] = klass->getClassDelegatee(vm); 
-    }
-    result = (jobject)res;
-  }
-  
-
-  END_NATIVE_EXCEPTION
-
-  return result;
-
-}
-
-// Only throws.
-JNIEXPORT void JNICALL Java_java_lang_VMClass_throwException(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz, 
-#endif
-jobject throwable) {
-  assert(throwable && "Using internal VM throw exception without exception");
-  JavaThread::get()->pendingException = (JavaObject*)throwable;
-}
-
-JNIEXPORT jobjectArray Java_java_lang_VMClass_getDeclaredAnnotations(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz, 
-#endif
-jclass Cl) {
-  // TODO implement me
-  
-  jobjectArray res = 0;
-  
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClassArray* array = vm->upcalls->constructorArrayAnnotation;
-  res = (jobjectArray) array->doNew(0, vm);
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-JNIEXPORT jboolean Java_java_lang_VMClass_isAnonymousClass(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz, 
-#endif
-jclass Cl) {
- 
-  jboolean res = false;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-  
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = 
-    UserCommonClass::resolvedImplClass(vm, (JavaObject*)Cl, false)->asClass();
-
-  if (cl) res = cl->isAnonymous;
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-
-}

Removed: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp?rev=73762&view=auto

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp (removed)
@@ -1,353 +0,0 @@
-//===- ClasspathVMClassLoader.cpp - GNU classpath java/lang/VMClassLoader -===//
-//
-//                              JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "types.h"
-
-#include "Classpath.h"
-#include "JavaArray.h"
-#include "JavaClass.h"
-#include "JavaObject.h"
-#include "JavaString.h"
-#include "JavaThread.h"
-#include "JavaUpcalls.h"
-#include "Jnjvm.h"
-#include "Reader.h"
-
-using namespace jnjvm;
-
-extern "C" {
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMClassLoader_getPrimitiveClass(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jchar byteId) {
-  
-  jobject res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClassPrimitive* prim = 
-    UserClassPrimitive::byteIdToPrimitive(byteId, vm->upcalls);
-  if (!prim) {
-    fprintf(stderr, "unknown byte primitive %c", byteId);
-    abort();
-  }
-  
-  res = (jobject)prim->getClassDelegatee(vm);
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-  
-}
-
-JNIEXPORT jclass JNICALL Java_java_lang_VMClassLoader_findLoadedClass(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jobject loader, 
-jobject _name) {
-  
-  jclass res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  JavaString* name = (JavaString*)_name;
-  JnjvmClassLoader* JCL = 
-    JnjvmClassLoader::getJnjvmLoaderFromJavaObject((JavaObject*)loader, vm);
-  UserCommonClass* cl = JCL->lookupClassFromJavaString(name);
-
-  if (cl) res = (jclass)(cl->getClassDelegatee(vm));
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-  
-  return 0;
-}
-
-JNIEXPORT jclass JNICALL Java_java_lang_VMClassLoader_loadClass(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jobject _str, 
-jboolean doResolve) {
-
-  jclass res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  JavaString* str = (JavaString*)_str;
-
-  JnjvmClassLoader* JCL = vm->bootstrapLoader;
-  UserCommonClass* cl = JCL->loadClassFromJavaString(str, doResolve, false);
-
-  if (cl != 0)
-    res = (jclass)cl->getClassDelegatee(vm);
-  
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-JNIEXPORT jclass JNICALL Java_java_lang_VMClassLoader_defineClass(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz, 
-#endif
-jobject loader, 
-jobject _str, 
-jobject bytes, 
-jint off, 
-jint len, 
-jobject pd) {
-  
-  jclass res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
- 
-  // Before creating a class, do a check on the bytes.  
-  Reader reader((ArrayUInt8*)bytes);
-  uint32 magic = reader.readU4();
-  if (magic != Jnjvm::Magic) {
-    JavaThread::get()->getJVM()->classFormatError("bad magic number");
-  }
-
-  JnjvmClassLoader* JCL = 
-    JnjvmClassLoader::getJnjvmLoaderFromJavaObject((JavaObject*)loader, vm);
-  
-  JavaString* str = (JavaString*)_str;
-  const UTF8* name = str->javaToInternal(JCL->hashUTF8);
-  UserCommonClass* cl = JCL->lookupClass(name);
-  
-  if (!cl) {
-    UserClass* cl = JCL->constructClass(name, (ArrayUInt8*)bytes);
-    cl->resolveClass();
-
-    res = (jclass)(cl->getClassDelegatee(vm, (JavaObject*)pd));
-  } else {
-    JavaObject* obj = vm->CreateLinkageError("duplicate class definition");
-    JavaThread::get()->throwException(obj);
-  }
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-JNIEXPORT void JNICALL Java_java_lang_VMClassLoader_resolveClass(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jclass Cl) {
-  
-  BEGIN_NATIVE_EXCEPTION(0)
-  
-  verifyNull(Cl);
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass::resolvedImplClass(vm, (JavaObject*)Cl, false);
-
-  END_NATIVE_EXCEPTION
-}
-
-#define NUM_BOOT_PACKAGES 168
-
-static const char* bootPackages[NUM_BOOT_PACKAGES] = {
-				"java.applet",
-				"java.awt",
-				"java.awt.color",
-				"java.awt.datatransfer",
-				"java.awt.dnd",
-				"java.awt.dnd.peer",
-				"java.awt.event",
-				"java.awt.font",
-				"java.awt.geom",
-				"java.awt.im",
-				"java.awt.im.spi",
-				"java.awt.image",
-				"java.awt.image.renderable",
-				"java.awt.peer",
-				"java.awt.print",
-				"java.beans",
-				"java.beans.beancontext",
-				"java.io",
-				"java.lang",
-				"java.lang.annotation",
-				"java.lang.instrument",
-				"java.lang.management",
-				"java.lang.ref",
-				"java.lang.reflect",
-				"java.math",
-				"java.net",
-				"java.nio",
-				"java.nio.channels",
-				"java.nio.channels.spi",
-				"java.nio.charset",
-				"java.nio.charset.spi",
-				"java.rmi",
-				"java.rmi.activation",
-				"java.rmi.dgc",
-				"java.rmi.registry",
-				"java.rmi.server",
-				"java.security",
-				"java.security.acl",
-				"java.security.cert",
-				"java.security.interfaces",
-				"java.security.spec",
-				"java.sql",
-				"java.text",
-				"java.util",
-				"java.util.concurrent",
-				"java.util.concurrent.atomic",
-				"java.util.concurrent.locks",
-				"java.util.jar",
-				"java.util.logging",
-				"java.util.prefs",
-				"java.util.regex",
-				"java.util.zip",
-				"javax.accessibility",
-				"javax.activity",
-				"javax.crypto",
-				"javax.crypto.interfaces",
-				"javax.crypto.spec",
-				"javax.imageio",
-				"javax.imageio.event",
-				"javax.imageio.metadata",
-				"javax.imageio.plugins.bmp",
-				"javax.imageio.plugins.jpeg",
-				"javax.imageio.spi",
-				"javax.imageio.stream",
-				"javax.management",
-				"javax.management.loading",
-				"javax.management.modelmbean",
-				"javax.management.monitor",
-				"javax.management.openmbean",
-				"javax.management.relation",
-				"javax.management.remote",
-				"javax.management.remote.rmi",
-				"javax.management.timer",
-				"javax.naming",
-				"javax.naming.directory",
-				"javax.naming.event",
-				"javax.naming.ldap",
-				"javax.naming.spi",
-				"javax.net",
-				"javax.net.ssl",
-				"javax.print",
-				"javax.print.attribute",
-				"javax.print.attribute.standard",
-				"javax.print.event",
-				"javax.rmi",
-				"javax.rmi.CORBA",
-				"javax.rmi.ssl",
-				"javax.security.auth",
-				"javax.security.auth.callback",
-				"javax.security.auth.kerberos",
-				"javax.security.auth.login",
-				"javax.security.auth.spi",
-				"javax.security.auth.x500",
-				"javax.security.cert",
-				"javax.security.sasl",
-				"javax.sound.midi",
-				"javax.sound.midi.spi",
-				"javax.sound.sampled",
-				"javax.sound.sampled.spi",
-				"javax.sql",
-				"javax.sql.rowset",
-				"javax.sql.rowset.serial",
-				"javax.sql.rowset.spi",
-				"javax.swing",
-				"javax.swing.border",
-				"javax.swing.colorchooser",
-				"javax.swing.event",
-				"javax.swing.filechooser",
-				"javax.swing.plaf",
-				"javax.swing.plaf.basic",
-				"javax.swing.plaf.metal",
-				"javax.swing.plaf.multi",
-				"javax.swing.plaf.synth",
-				"javax.swing.table",
-				"javax.swing.text",
-				"javax.swing.text.html",
-				"javax.swing.text.html.parser",
-				"javax.swing.text.rtf",
-				"javax.swing.tree",
-				"javax.swing.undo",
-				"javax.transaction",
-				"javax.transaction.xa",
-				"javax.xml",
-				"javax.xml.datatype",
-				"javax.xml.namespace",
-				"javax.xml.parsers",
-				"javax.xml.transform",
-				"javax.xml.transform.dom",
-				"javax.xml.transform.sax",
-				"javax.xml.transform.stream",
-				"javax.xml.validation",
-				"javax.xml.xpath",
-				"org.ietf.jgss",
-				"org.omg.CORBA",
-				"org.omg.CORBA_2_3",
-				"org.omg.CORBA_2_3.portable",
-				"org.omg.CORBA.DynAnyPackage",
-				"org.omg.CORBA.ORBPackage",
-				"org.omg.CORBA.portable",
-				"org.omg.CORBA.TypeCodePackage",
-				"org.omg.CosNaming",
-				"org.omg.CosNaming.NamingContextExtPackage",
-				"org.omg.CosNaming.NamingContextPackage",
-				"org.omg.Dynamic",
-				"org.omg.DynamicAny",
-				"org.omg.DynamicAny.DynAnyFactoryPackage",
-				"org.omg.DynamicAny.DynAnyPackage",
-				"org.omg.IOP",
-				"org.omg.IOP.CodecFactoryPackage",
-				"org.omg.IOP.CodecPackage",
-				"org.omg.Messaging",
-				"org.omg.PortableInterceptor",
-				"org.omg.PortableInterceptor.ORBInitInfoPackage",
-				"org.omg.PortableServer",
-				"org.omg.PortableServer.CurrentPackage",
-				"org.omg.PortableServer.POAManagerPackage",
-				"org.omg.PortableServer.POAPackage",
-				"org.omg.PortableServer.portable",
-				"org.omg.PortableServer.ServantLocatorPackage",
-				"org.omg.SendingContext",
-				"org.omg.stub.java.rmi",
-				"org.w3c.dom",
-				"org.w3c.dom.bootstrap",
-				"org.w3c.dom.events",
-				"org.w3c.dom.ls",
-				"org.xml.sax",
-				"org.xml.sax.ext",
-				"org.xml.sax.helpers"
-};
-
-extern "C" ArrayObject* nativeGetBootPackages() {
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  ArrayObject* obj = 
-    (ArrayObject*)vm->upcalls->ArrayOfString->doNew(NUM_BOOT_PACKAGES, vm);
-  for (uint32 i = 0; i < NUM_BOOT_PACKAGES; ++i) {
-    obj->elements[i] = vm->asciizToStr(bootPackages[i]);
-  }
-  return obj;
-}
-
-
-}

Removed: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.cpp?rev=73762&view=auto

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.cpp (removed)
@@ -1,135 +0,0 @@
-//===------ ClasspathVMObject.cpp - GNU classpath java/lang/VMObject ------===//
-//
-//                              JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "types.h"
-
-#include "Classpath.h"
-#include "JavaArray.h"
-#include "JavaClass.h"
-#include "JavaObject.h"
-#include "JavaThread.h"
-#include "Jnjvm.h"
-
-using namespace jnjvm;
-
-extern "C" {
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMObject_clone(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz, 
-#endif
-jobject _src) {
-  
-  JavaObject* res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  JavaObject* src = (JavaObject*)_src;
-  UserCommonClass* cl = src->getClass();
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  uint64 size = 0;
-  if (cl->isArray()) {
-    UserClassArray* array = cl->asArrayClass();
-    UserCommonClass* base = array->baseClass();
-    uint32 logSize = base->isPrimitive() ? 
-      base->asPrimitiveClass()->logSize : (sizeof(JavaObject*) == 8 ? 3 : 2);
-
-    size = sizeof(JavaObject) + sizeof(ssize_t) + 
-                            (((JavaArray*)src)->size << logSize);
-  } else {
-    assert(cl->isClass() && "Not a class!");
-    size = cl->asClass()->getVirtualSize();
-  }
-  res = (JavaObject*)
-    vm->gcAllocator.allocateManagedObject(size, src->getVirtualTable());
-  memcpy(res, src, size);
-  res->lock.initialise();
-
-  END_NATIVE_EXCEPTION
-
-  return (jobject)res;
-} 
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMObject_getClass(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jobject _obj) {
-  
-  jobject res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  JavaObject* obj = (JavaObject*)_obj;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  res = (jobject)(obj->getClass()->getClassDelegatee(vm)); 
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-JNIEXPORT void JNICALL Java_java_lang_VMObject_notifyAll(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jobject _obj) {
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  JavaObject* obj = (JavaObject*)_obj;
-  obj->notifyAll();
-
-  END_NATIVE_EXCEPTION
-}
-
-
-JNIEXPORT void JNICALL Java_java_lang_VMObject_wait(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jobject _object, jlong ms, jint ns) {
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  uint32 sec = (uint32) (ms / 1000);
-  uint32 usec = (ns / 1000) + 1000 * (ms % 1000);
-  if (ns && !usec) usec = 1;
-  JavaObject* obj = (JavaObject*)_object;
-  if (sec || usec) {
-    struct timeval t;
-    t.tv_sec = sec;
-    t.tv_usec = usec;
-    obj->timedWait(t);
-  } else {
-    obj->wait();
-  }
-
-  END_NATIVE_EXCEPTION
-}
-
-JNIEXPORT void JNICALL Java_java_lang_VMObject_notify(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jobject obj) {
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  ((JavaObject*)obj)->notify();
-
-  END_NATIVE_EXCEPTION
-}
-
-}

Removed: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMRuntime.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMRuntime.cpp?rev=73762&view=auto

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMRuntime.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMRuntime.cpp (removed)
@@ -1,221 +0,0 @@
-//===------ ClasspathVMRuntime.cpp - GNU classpath java/lang/VMRuntime ----===//
-//
-//                              JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-
-#include "MvmGC.h"
-
-#include "types.h"
-
-#include "Classpath.h"
-#include "JavaArray.h"
-#include "JavaClass.h"
-#include "JavaObject.h"
-#include "JavaString.h"
-#include "JavaThread.h"
-#include "JavaUpcalls.h"
-#include "Jnjvm.h"
-
-#include <csetjmp>
-#include <cstring>
-
-using namespace jnjvm;
-
-extern "C" {
-
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMRuntime_mapLibraryName(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jobject _strLib) {
-  
-  jobject res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  JavaString* strLib = (JavaString*)_strLib;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-
-  const ArrayUInt16* utf8Lib = strLib->value;
-  uint32 stLib = strLib->offset;
-  sint32 lgLib = strLib->count;
-  sint32 lgPre = vm->bootstrapLoader->prelib->size;
-  sint32 lgPost = vm->bootstrapLoader->postlib->size;
-  
-  uint32 size = (uint32)(lgPre + lgLib + lgPost);
-  ArrayUInt16* array = (ArrayUInt16*)vm->upcalls->ArrayOfChar->doNew(size, vm);
-  uint16* elements = array->elements;
-
-  memmove(elements, vm->bootstrapLoader->prelib->elements,
-          lgPre * sizeof(uint16));
-  memmove(&(elements[lgPre]), &(utf8Lib->elements[stLib]), 
-          lgLib * sizeof(uint16));
-  memmove(&(elements[lgPre + lgLib]), vm->bootstrapLoader->postlib->elements,
-           lgPost * sizeof(uint16));
-  
-  res = (jobject)(vm->constructString(array));
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-  
-}
-
-#if defined(__MACH__)
-typedef int* jumpbuf_t;
-#else
-typedef __jmp_buf_tag* jumpbuf_t;
-#endif
-
-typedef int (*onLoad_t)(const void**, void*);
-extern "C" void  jnjvmJNIProceedPendingException();
-
-// Calls the JNI_OnLoad function of a dynamic library.
-void callOnLoad(void* res, JnjvmClassLoader* loader, Jnjvm* vm) {
-
-  onLoad_t onLoad = (onLoad_t)loader->loadInLib("JNI_OnLoad", res);
-  
-  if (onLoad) {
-    JavaThread* th = JavaThread::get();
-    mvm::Allocator& allocator = th->getJVM()->gcAllocator;
-    void** buf = (void**)allocator.allocateTemporaryMemory(sizeof(jmp_buf));
-    th->sjlj_buffers.push_back((jmp_buf*)buf);
-
-    th->startNative(1);
-    if (setjmp((jumpbuf_t)buf) == 0) {
-      onLoad(&vm->javavmEnv, res);
-    }
-    jnjvmJNIProceedPendingException();
-  }
-}
-
-// Never throws.
-JNIEXPORT jint JNICALL Java_java_lang_VMRuntime_nativeLoad(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jobject _str,
-jobject _loader) {
-  
-  void* res = 0;
-
-  JavaString* str = (JavaString*)_str;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  JnjvmClassLoader* loader = 
-    JnjvmClassLoader::getJnjvmLoaderFromJavaObject((JavaObject*)_loader, vm);
-
-  char* buf = str->strToAsciiz();
-  
-  res = loader->loadLib(buf);
- 
-  if (res) callOnLoad(res, loader, vm);
-
-  delete[] buf;
-
-  return res != 0;
-}
-
-
-JNIEXPORT void JNICALL Java_java_lang_VMRuntime_gc(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-) {
-  BEGIN_NATIVE_EXCEPTION(0)
-  
-  mvm::Collector::collect();
-
-  END_NATIVE_EXCEPTION
-}
-
-JNIEXPORT void JNICALL Java_java_lang_VMRuntime_runFinalization(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-) {
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  vm->wakeUpFinalizers();
-  // Sleep a bit.
-  sleep(1);
-  return;
-}
-
-JNIEXPORT void JNICALL Java_java_lang_VMRuntime_runFinalizationForExit(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-) {
-  return;
-}
-
-JNIEXPORT void JNICALL Java_java_lang_VMRuntime_runFinalizersOnExit(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-uint8 value
-) {
-  return;
-}
-
-JNIEXPORT void JNICALL Java_java_lang_VMRuntime_exit(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jint par1) {
-#if defined(ISOLATE) || defined(ISOLATE_SHARING)
-  // TODO: do a longjmp
-  exit(par1);
-#else
-  exit(par1);
-#endif
-}
-
-JNIEXPORT jlong Java_java_lang_VMRuntime_freeMemory(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-) {
-  return (jlong)mvm::Collector::getFreeMemory();
-}
-
-JNIEXPORT jlong Java_java_lang_VMRuntime_totalMemory(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-) {
-  return (jlong)mvm::Collector::getTotalMemory();
-}
-
-JNIEXPORT jlong Java_java_lang_VMRuntime_maxMemory(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-) {
-  return (jlong)mvm::Collector::getMaxMemory();
-}
-
-JNIEXPORT jint Java_java_lang_VMRuntime_availableProcessors(){
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-  return 1;
-}
-}
-

Removed: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMStackWalker.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMStackWalker.cpp?rev=73762&view=auto

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMStackWalker.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMStackWalker.cpp (removed)
@@ -1,82 +0,0 @@
-//===- ClasspathVMStackWalker.cpp -----------------------------------------===//
-//===------------ GNU classpath gnu/classpath/VMStackWalker ---------------===//
-//
-//                              JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "types.h"
-
-#include "Classpath.h"
-#include "ClasspathReflect.h"
-#include "JavaArray.h"
-#include "JavaClass.h"
-#include "JavaObject.h"
-#include "JavaThread.h"
-#include "JavaUpcalls.h"
-#include "Jnjvm.h"
-
-using namespace jnjvm;
-
-extern "C" {
-
-JNIEXPORT jobject JNICALL Java_gnu_classpath_VMStackWalker_getClassContext(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-) {
-
-  jobject result = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  JavaThread* th = JavaThread::get();
-  Jnjvm* vm = th->getJVM();
-  std::vector<void*> stack;
-  
-  th->getJavaFrameContext(stack);
-  
-  ArrayObject* res = (ArrayObject*)
-    vm->upcalls->stackTraceArray->doNew(stack.size(), vm);
-
-  std::vector<void*>::iterator i = stack.begin(), e = stack.end();
-  uint32 index = 0;
- 
-  for (; i != e; ++i) {
-    JavaMethod* meth = vm->IPToMethod<JavaMethod>(*i);
-    assert(meth && "Wrong stack trace");
-    res->elements[index++] = meth->classDef->getClassDelegatee(vm);
-  }
-  
-  result = (jobject)res;
-  
-  END_NATIVE_EXCEPTION
-
-  return result;
-}
-
-JNIEXPORT jobject JNICALL Java_gnu_classpath_VMStackWalker_getClassLoader(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jclass _Cl) {
-  
-  jobject res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-  
-  JavaObject* Cl = (JavaObject*)_Cl;
-  UserCommonClass* cl = ((JavaObjectClass*)Cl)->getClass();
-  res = (jobject)cl->classLoader->getJavaClassLoader();
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-}

Removed: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystem.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystem.cpp?rev=73762&view=auto

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystem.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystem.cpp (removed)
@@ -1,110 +0,0 @@
-//===-- ClasspathVMSystem.cpp - GNU classpath java/lang/VMSystem ----------===//
-//
-//                              JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "types.h"
-
-#include "Classpath.h"
-#include "JavaArray.h"
-#include "JavaClass.h"
-#include "JavaObject.h"
-#include "JavaThread.h"
-#include "Jnjvm.h"
-
-using namespace jnjvm;
-
-extern "C" {
-
-JNIEXPORT void JNICALL Java_java_lang_VMSystem_arraycopy(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass _cl,
-#endif
-jobject _src,
-jint sstart,
-jobject _dst,
-jint dstart,
-jint len) {
-  
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  jnjvm::Jnjvm *vm = JavaThread::get()->getJVM();
-  JavaArray* src = (JavaArray*)_src;
-  JavaArray* dst = (JavaArray*)_dst;
-
-  verifyNull(src);
-  verifyNull(dst);
-  
-  if (!(src->getClass()->isArray() && dst->getClass()->isArray())) {
-    vm->arrayStoreException();
-  }
-  
-  UserClassArray* ts = (UserClassArray*)src->getClass();
-  UserClassArray* td = (UserClassArray*)dst->getClass();
-  UserCommonClass* dstType = td->baseClass();
-  UserCommonClass* srcType = ts->baseClass();
-
-  if (len > src->size) {
-    vm->indexOutOfBounds(src, len);
-  } else if (len > dst->size) {
-    vm->indexOutOfBounds(dst, len);
-  } else if (len + sstart > src->size) {
-    vm->indexOutOfBounds(src, len + sstart);
-  } else if (len + dstart > dst->size) {
-    vm->indexOutOfBounds(dst, len + dstart);
-  } else if (dstart < 0) {
-    vm->indexOutOfBounds(dst, dstart);
-  } else if (sstart < 0) {
-    vm->indexOutOfBounds(src, sstart);
-  } else if (len < 0) {
-    vm->indexOutOfBounds(src, len);
-  } else if ((dstType->isPrimitive() || srcType->isPrimitive()) &&
-             srcType != dstType) {
-    vm->arrayStoreException();
-  }
-  
-  jint i = sstart;
-  bool doThrow = false;
-  if (!(dstType->isPrimitive())) {
-    while (i < sstart + len && !doThrow) {
-      JavaObject* cur = ((ArrayObject*)src)->elements[i];
-      if (cur) {
-        if (!(cur->getClass()->isAssignableFrom(dstType))) {
-          doThrow = true;
-          len = i;
-        }
-      }
-      ++i;
-    }
-  }
-  
-  uint32 logSize = dstType->isPrimitive() ? 
-    dstType->asPrimitiveClass()->logSize : (sizeof(JavaObject*) == 8 ? 3 : 2);
-
-  void* ptrDst = (void*)((int64_t)(dst->elements) + (dstart << logSize));
-  void* ptrSrc = (void*)((int64_t)(src->elements) + (sstart << logSize));
-  memmove(ptrDst, ptrSrc, len << logSize);
-
-  if (doThrow)
-    vm->arrayStoreException();
-  
-  
-  END_NATIVE_EXCEPTION
-
-}
-
-JNIEXPORT jint JNICALL Java_java_lang_VMSystem_identityHashCode(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jobject obj) {
-  return (jint)(intptr_t)obj;
-}
-
-}

Removed: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystemProperties.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystemProperties.cpp?rev=73762&view=auto

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystemProperties.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMSystemProperties.cpp (removed)
@@ -1,140 +0,0 @@
-//===- ClasspathVMSystem/Properties.cpp -----------------------------------===//
-//===--------------------- GNU classpath gnu/classpath/VMSystemProperties -===//
-//
-//                              JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include <sys/utsname.h>
-
-#include "types.h"
-
-#include "Classpath.h"
-#include "JavaArray.h"
-#include "JavaClass.h"
-#include "JavaObject.h"
-#include "JavaThread.h"
-#include "JavaUpcalls.h"
-#include "Jnjvm.h"
-
-using namespace jnjvm;
-
-extern "C" {
-
-static void setProperty(Jnjvm* vm, JavaObject* prop, const char* key,
-                        const char* val) {
-  vm->upcalls->setProperty->invokeIntSpecial(vm, (UserClass*)prop->getClass(),
-                                             prop,
-                                             vm->asciizToStr(key),
-                                             vm->asciizToStr(val));
-}
-
-static void setUnameProp(Jnjvm* vm, JavaObject* prop) {
-  struct utsname infos;
-  uname(&infos);
-  setProperty(vm, prop, "os.name", infos.sysname);
-  setProperty(vm, prop, "os.arch", infos.machine);
-  setProperty(vm, prop, "os.version", infos.release);
-  if (!strcmp(infos.machine, "ppc")) {
-    setProperty(vm, prop, "gnu.cpu.endian","big");
-  } else {
-    setProperty(vm, prop, "gnu.cpu.endian","little");
-  }
-}
-
-JNIEXPORT void JNICALL Java_gnu_classpath_VMSystemProperties_preInit(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jobject _prop) {
-  
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  JavaObject* prop = (JavaObject*)_prop;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  const char* tmp;
-  setProperty(vm, prop, "java.vm.specification.version", "1.0");
-  setProperty(vm, prop, "java.vm.specification.vendor",
-              "Sun Microsystems, Inc");
-  setProperty(vm, prop, "java.vm.specification.name",
-              "Java Virtual Machine Specification");
-  setProperty(vm, prop, "java.specification.version", "1.5");
-  setProperty(vm, prop, "java.specification.vendor", "Sun Microsystems, Inc");
-  setProperty(vm, prop, "java.specification.name",
-              "Java Platform API Specification");
-  setProperty(vm, prop, "java.version", "1.5");
-  setProperty(vm, prop, "java.runtime.version", "1.5");
-  setProperty(vm, prop, "java.vendor", "The VMKit Project");
-  setProperty(vm, prop, "java.vendor.url", "http://vmkit.llvm.org");
-  
-  tmp = getenv("JAVA_HOME");
-  if (!tmp) tmp = "";
-  setProperty(vm, prop, "java.home", tmp);
-  
-  JnjvmBootstrapLoader* JCL = vm->bootstrapLoader;
-  setProperty(vm, prop, "java.class.version", "49.0");
-  setProperty(vm, prop, "java.class.path", vm->classpath);
-  setProperty(vm, prop, "java.boot.class.path", JCL->bootClasspathEnv);
-  setProperty(vm, prop, "sun.boot.class.path", JCL->bootClasspathEnv);
-  setProperty(vm, prop, "java.vm.version", "2.0");
-  setProperty(vm, prop, "java.vm.vendor", "VVM Project");
-  setProperty(vm, prop, "java.vm.name", "JnJVM");
-  setProperty(vm, prop, "java.specification.version", "1.5");
-  setProperty(vm, prop, "java.io.tmpdir", "/tmp");
-  
-  tmp = getenv("JAVA_COMPILER");
-  if (!tmp) tmp = "gcj";
-  setProperty(vm, prop, "java.compiler", tmp);
-  
-  setProperty(vm, prop, "build.compiler", "gcj");
-  setProperty(vm, prop, "gcj.class.path", JCL->bootClasspathEnv);
-  setProperty(vm, prop, "gnu.classpath.boot.library.path",
-              JCL->libClasspathEnv);
-  
-  setUnameProp(vm, prop);
-  
-  setProperty(vm, prop, "file.separator", vm->dirSeparator);
-  setProperty(vm, prop, "path.separator", vm->envSeparator);
-  setProperty(vm, prop, "line.separator", "\n");
-  
-  tmp = getenv("USERNAME");
-  if (!tmp) tmp = getenv("LOGNAME");
-  else if (!tmp) tmp = getenv("NAME");
-  else if (!tmp) tmp = "";
-  setProperty(vm, prop, "user.name", tmp);
-  
-  tmp  = getenv("HOME");
-  if (!tmp) tmp = "";
-  setProperty(vm, prop, "user.home", tmp);
-  
-  tmp = getenv("PWD");
-  if (!tmp) tmp = "";
-  setProperty(vm, prop, "user.dir", tmp);
- 
-  // Disable this property. The Classpath iconv implementation is really
-  // not optimized (it over-abuses JNI calls).
-  //setProperty(vm, prop, "gnu.classpath.nio.charset.provider.iconv", "true"); 
-  setProperty(vm, prop, "file.encoding", "ISO8859_1");
-  setProperty(vm, prop, "gnu.java.util.zoneinfo.dir", "/usr/share/zoneinfo");
-
-  END_NATIVE_EXCEPTION
-}
-
-extern "C" void nativePropertiesPostInit(JavaObject* prop) {
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  for (std::vector<std::pair<char*, char*> >::iterator i = 
-       vm->postProperties.begin(), e = vm->postProperties.end(); i!= e; i++) {
-    setProperty(vm, prop, i->first, i->second);
-  }
-
-  END_NATIVE_EXCEPTION
-}
-
-}

Removed: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThread.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThread.cpp?rev=73762&view=auto

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThread.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThread.cpp (removed)
@@ -1,203 +0,0 @@
-//===- ClasspathVMThread.cpp - GNU classpath java/lang/VMThread -----------===//
-//
-//                              JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "types.h"
-
-#include "Classpath.h"
-#include "JavaArray.h"
-#include "JavaClass.h"
-#include "JavaObject.h"
-#include "JavaThread.h"
-#include "JavaUpcalls.h"
-#include "Jnjvm.h"
-
-using namespace jnjvm;
-
-extern "C" {
-
-// Never throws.
-// Never calls Java code.
-JNIEXPORT jobject JNICALL Java_java_lang_VMThread_currentThread(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz
-#endif
-) {
-  return (jobject)(JavaThread::get()->currentThread());
-}
-
-static void start(JavaThread* thread) {
-
-  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;
-  JavaObject* vmThread = thread->vmThread;
-  assert(vmThread && "Didn't fix the vmThread of a jnjvm thread");
-  JavaObject* javaThread = thread->javaThread;
-  assert(javaThread && "Didn't fix the javaThread of a jnjvm thread");
-  field->setObjectField(vmThread, (JavaObject*)(void*)thread);
-  
-  UserClass* vmthClass = (UserClass*)vmThread->getClass();
-  ThreadSystem& ts = vm->threadSystem;
-  
-  
-  // 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);
-
-  if (!isDaemon) {
-    ts.nonDaemonLock.lock();
-    ts.nonDaemonThreads++;
-    ts.nonDaemonLock.unlock();
-  }
-  
-  // Run the VMThread::run function
-  vm->upcalls->runVMThread->invokeIntSpecial(vm, vmthClass, vmThread);
- 
-  // Remove the thread from the list.
-  if (!isDaemon) {
-    ts.nonDaemonLock.lock();
-    ts.nonDaemonThreads--;
-    if (ts.nonDaemonThreads == 0)
-      ts.nonDaemonVar.signal();
-    ts.nonDaemonLock.unlock();
-  }
-}
-
-JNIEXPORT void JNICALL Java_java_lang_VMThread_start(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject _vmThread, sint64 stackSize) {
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  JavaObject* vmThread = (JavaObject*)_vmThread;
-  
-  // Classpath has set this field.
-  JavaObject* javaThread = vm->upcalls->assocThread->getObjectField(vmThread);
-  assert(javaThread && "VMThread with no Java equivalent");
- 
-  JavaThread* th = new JavaThread(javaThread, vmThread, vm);
-  if (!th) vm->outOfMemoryError();
-  th->start((void (*)(mvm::Thread*))start);
-
-  END_NATIVE_EXCEPTION
-}
-
-JNIEXPORT void JNICALL Java_java_lang_VMThread_interrupt(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject _vmthread) {
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  JavaObject* vmthread = (JavaObject*)_vmthread;
-  JavaField* field = vm->upcalls->vmdataVMThread; 
-  
-  // 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)
-    mvm::Thread::yield();
-  
-  JavaThread* th = (JavaThread*)field->getObjectField(vmthread);
-  th->interruptFlag = 1;
-  LockObj* lock = th->waitsOn;
-
-  // If the thread is blocked on a wait. We also verify nextWaiting in case
-  // the thread has been notified.
-  if (lock && th->nextWaiting) {
-    th->state = JavaThread::StateInterrupted;
-  
-    // Make sure the thread is waiting.
-    uint32 locked = 0;
-    while (true) {
-      locked = (lock->tryAcquire() == 0);
-      if (locked || (lock->getOwner() != th && lock->getOwner() != 0))
-        break;
-      else mvm::Thread::yield();
-    }
-    
-    // Interrupt the thread.
-    th->varcond.signal();
-
-    // Release the lock if we acquired it.
-    if (locked) lock->release();
-  }
-
-  // Here we could also raise a signal for interrupting I/O
-  
-  END_NATIVE_EXCEPTION
-}
-
-// Never throws.
-// Never calls Java code.
-JNIEXPORT jboolean JNICALL Java_java_lang_VMThread_interrupted(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-) {
-  JavaThread* th = JavaThread::get();
-  uint32 interrupt = th->interruptFlag;
-  th->interruptFlag = 0;
-  return (jboolean)interrupt;
-}
-
-// Never throws.
-// Never calls Java code.
-JNIEXPORT jboolean JNICALL Java_java_lang_VMThread_isInterrupted(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject _vmthread) {
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  JavaObject* vmthread = (JavaObject*)_vmthread;
-  JavaField* field = vm->upcalls->vmdataVMThread;
-  JavaThread* th = (JavaThread*)field->getObjectField(vmthread);
-  return (jboolean)th->interruptFlag;
-}
-
-// Never throws.
-// Never calls Java code.
-JNIEXPORT void JNICALL Java_java_lang_VMThread_nativeSetPriority(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject vmthread, jint prio) {
-  // Currently not implemented
-}
-
-// Never throws.
-// Never calls Java code.
-JNIEXPORT void JNICALL Java_java_lang_VMThread_nativeStop(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject vmthread, jobject exc) {
-  // Currently not implemented
-}
-
-// Never throws.
-// Never calls Java code.
-JNIEXPORT void JNICALL Java_java_lang_VMThread_yield(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-) {
-  mvm::Thread::yield();
-}
-
-}

Removed: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThrowable.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThrowable.cpp?rev=73762&view=auto

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThrowable.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMThrowable.cpp (removed)
@@ -1,140 +0,0 @@
-//===- ClasspathVMClassLoader.cpp - GNU classpath java/lang/VMClassLoader -===//
-//
-//                              JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include <vector>
-
-#include "types.h"
-
-#include "Classpath.h"
-#include "JavaAccess.h"
-#include "JavaArray.h"
-#include "JavaClass.h"
-#include "JavaConstantPool.h"
-#include "JavaObject.h"
-#include "JavaString.h"
-#include "JavaThread.h"
-#include "JavaUpcalls.h"
-#include "Jnjvm.h"
-#include "Reader.h"
-
-using namespace jnjvm;
-
-extern "C" {
-
-JavaObject* internalFillInStackTrace(JavaObject* throwable) {
-  JavaThread* th = JavaThread::get();
-  Jnjvm* vm = th->getJVM();
-  
-  // Allocate the temporary data.
-  std::vector<void*>* stack = new std::vector<void*>();
-
-  // Get the frame context.
-  th->getJavaFrameContext(*stack);
-  
-  // Set the tempory data in the new VMThrowable object.
-  JavaObject* vmThrowable = vm->upcalls->newVMThrowable->doNew(vm);
-  uint64 ptr = (uint64)vmThrowable + vm->upcalls->vmDataVMThrowable->ptrOffset;
-  ((JavaObject**)ptr)[0] = (JavaObject*)stack;
-  return vmThrowable;
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMThrowable_fillInStackTrace(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-jclass clazz,
-#endif
-jobject throwable) {
-  
-  jobject res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  res = (jobject)internalFillInStackTrace((JavaObject*)throwable);
-
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-
-static JavaObject* consStackElement(JavaMethod* meth, void* ip) {
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  JavaObject* methodName = vm->internalUTF8ToStr(meth->name);
-  Class* cl = meth->classDef;
-  JavaObject* className = JavaString::internalToJava(cl->name, vm);
-  JavaObject* sourceName = 0;
-  
-  Attribut* sourceAtt = cl->lookupAttribut(Attribut::sourceFileAttribut);
-  
-  // We don't have the bytes if the class was vmjc'ed.
-  if (sourceAtt && cl->getBytes()) {
-    Reader reader(sourceAtt, cl->getBytes());
-    uint16 index = reader.readU2();
-    sourceName = vm->internalUTF8ToStr(cl->getConstantPool()->UTF8At(index));
-  }
-
-  bool native = isNative(meth->access);
-
-  UserClass* newS = vm->upcalls->newStackTraceElement;
-  JavaObject* res = newS->doNew(vm);
-  vm->upcalls->initStackTraceElement->invokeIntSpecial(vm, newS, res,
-                                                       sourceName,
-                                                       0, // source line
-                                                       className,
-                                                       methodName, native);
-  return res;
-}
-
-JNIEXPORT jobject JNICALL Java_java_lang_VMThrowable_getStackTrace(
-#ifdef NATIVE_JNI
-JNIEnv *env,
-#endif
-jobject vmthrow, jobject throwable) {
-
-  jobject result = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  JavaField* field = vm->upcalls->vmDataVMThrowable;
-  std::vector<void*>* stack = (std::vector<void*>*)
-    field->getObjectField((JavaObject*)vmthrow);
-  
-  std::vector<void*>::iterator i = stack->begin(), e = stack->end();
-  // remove the VMThrowable.fillInStackTrace method
-  uint32 index = 1;
-  ++i;
-  while (i != e) {
-    JavaMethod* meth = vm->IPToMethod<JavaMethod>(*i);
-    assert(meth && "Wrong stack trace");
-    if (meth->classDef->isAssignableFrom(vm->upcalls->newThrowable)) {
-      ++i;
-      ++index;
-    } else break;
-  }
-
-  ArrayObject* res = (ArrayObject*)
-    vm->upcalls->stackTraceArray->doNew(stack->size() - index, vm);
-  
-  index = 0;
-  for (; i != e; ++i) {
-    JavaMethod* meth = vm->IPToMethod<JavaMethod>(*i);
-    assert(meth && "Wrong stack trace");
-    res->elements[index++] = consStackElement(meth, *i);
-  }
-  
-  delete stack;
-  result = (jobject)res;
-
-  END_NATIVE_EXCEPTION
-
-  return result;
-}
-
-}
-

Copied: vmkit/trunk/lib/JnJVM/Classpath/JavaUpcalls.cpp (from r73608, vmkit/trunk/lib/JnJVM/VMCore/JavaUpcalls.cpp)
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/JavaUpcalls.cpp?p2=vmkit/trunk/lib/JnJVM/Classpath/JavaUpcalls.cpp&p1=vmkit/trunk/lib/JnJVM/VMCore/JavaUpcalls.cpp&r1=73608&r2=73763&rev=73763&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaUpcalls.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/JavaUpcalls.cpp Fri Jun 19 03:26:36 2009
@@ -958,3 +958,17 @@
   JavaObjectReference* obj = (JavaObjectReference*)_obj;
   obj->setReferent(0);
 }
+
+#include "ClasspathConstructor.inc"
+#include "Classpath.inc"
+#include "ClasspathField.inc"
+#include "ClasspathMethod.inc"
+#include "ClasspathVMClass.inc"
+#include "ClasspathVMClassLoader.inc"
+#include "ClasspathVMObject.inc"
+#include "ClasspathVMRuntime.inc"
+#include "ClasspathVMStackWalker.inc"
+#include "ClasspathVMSystem.inc"
+#include "ClasspathVMSystemProperties.inc"
+#include "ClasspathVMThread.inc"
+#include "ClasspathVMThrowable.inc"

Removed: vmkit/trunk/lib/JnJVM/VMCore/JavaUpcalls.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaUpcalls.cpp?rev=73762&view=auto

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaUpcalls.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaUpcalls.cpp (removed)
@@ -1,960 +0,0 @@
-//===-------- JavaUpcalls.cpp - Upcalls to Java entities ------------------===//
-//
-//                              JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "ClasspathReflect.h"
-#include "JavaAccess.h"
-#include "JavaClass.h"
-#include "JavaObject.h"
-#include "JavaString.h"
-#include "JavaThread.h"
-#include "JavaUpcalls.h"
-#include "Jnjvm.h"
-
-#define COMPILE_METHODS(cl) \
-  for (CommonClass::method_iterator i = cl->virtualMethods.begin(), \
-            e = cl->virtualMethods.end(); i!= e; ++i) { \
-    i->second->compiledPtr(); \
-  } \
-  \
-  for (CommonClass::method_iterator i = cl->staticMethods.begin(), \
-            e = cl->staticMethods.end(); i!= e; ++i) { \
-    i->second->compiledPtr(); \
-  }
-
-
-using namespace jnjvm;
-
-#ifndef ISOLATE_SHARING
-Class*      Classpath::newThread;
-Class*      Classpath::newVMThread;
-JavaField*  Classpath::assocThread;
-JavaField*  Classpath::vmdataVMThread;
-JavaMethod* Classpath::finaliseCreateInitialThread;
-JavaMethod* Classpath::initVMThread;
-JavaMethod* Classpath::groupAddThread;
-JavaField*  Classpath::threadName;
-JavaField*  Classpath::groupName;
-JavaMethod* Classpath::initGroup;
-JavaField*  Classpath::priority;
-JavaField*  Classpath::daemon;
-JavaField*  Classpath::group;
-JavaField*  Classpath::running;
-Class*      Classpath::threadGroup;
-JavaField*  Classpath::rootGroup;
-JavaField*  Classpath::vmThread;
-JavaMethod* Classpath::uncaughtException;
-Class*      Classpath::inheritableThreadLocal;
-
-JavaMethod* Classpath::runVMThread;
-JavaMethod* Classpath::setContextClassLoader;
-JavaMethod* Classpath::getSystemClassLoader;
-Class*      Classpath::newString;
-Class*      Classpath::newClass;
-Class*      Classpath::newThrowable;
-Class*      Classpath::newException;
-JavaMethod* Classpath::initClass;
-JavaMethod* Classpath::initClassWithProtectionDomain;
-JavaField*  Classpath::vmdataClass;
-JavaMethod* Classpath::setProperty;
-JavaMethod* Classpath::initString;
-JavaMethod* Classpath::getCallingClassLoader;
-JavaMethod* Classpath::initConstructor;
-Class*      Classpath::newConstructor;
-ClassArray* Classpath::constructorArrayClass;
-ClassArray* Classpath::constructorArrayAnnotation;
-JavaField*  Classpath::constructorSlot;
-JavaMethod* Classpath::initMethod;
-JavaMethod* Classpath::initField;
-Class*      Classpath::newField;
-Class*      Classpath::newMethod;
-ClassArray* Classpath::methodArrayClass;
-ClassArray* Classpath::fieldArrayClass;
-JavaField*  Classpath::methodSlot;
-JavaField*  Classpath::fieldSlot;
-ClassArray* Classpath::classArrayClass;
-JavaMethod* Classpath::loadInClassLoader;
-JavaMethod* Classpath::initVMThrowable;
-JavaField*  Classpath::vmDataVMThrowable;
-Class*      Classpath::newVMThrowable;
-JavaField*  Classpath::bufferAddress;
-JavaField*  Classpath::dataPointer32;
-JavaField*  Classpath::dataPointer64;
-Class*      Classpath::newPointer32;
-Class*      Classpath::newPointer64;
-Class*      Classpath::newDirectByteBuffer;
-JavaField*  Classpath::vmdataClassLoader;
-JavaMethod* Classpath::InitDirectByteBuffer;
-Class*      Classpath::newClassLoader;
-
-
-JavaField*  Classpath::boolValue;
-JavaField*  Classpath::byteValue;
-JavaField*  Classpath::shortValue;
-JavaField*  Classpath::charValue;
-JavaField*  Classpath::intValue;
-JavaField*  Classpath::longValue;
-JavaField*  Classpath::floatValue;
-JavaField*  Classpath::doubleValue;
-
-Class*      Classpath::newStackTraceElement;
-ClassArray* Classpath::stackTraceArray;
-JavaMethod* Classpath::initStackTraceElement;
-
-Class* Classpath::voidClass;
-Class* Classpath::boolClass;
-Class* Classpath::byteClass;
-Class* Classpath::shortClass;
-Class* Classpath::charClass;
-Class* Classpath::intClass;
-Class* Classpath::floatClass;
-Class* Classpath::doubleClass;
-Class* Classpath::longClass;
-
-Class* Classpath::vmStackWalker;
-
-Class* Classpath::InvocationTargetException;
-Class* Classpath::ArrayStoreException;
-Class* Classpath::ClassCastException;
-Class* Classpath::IllegalMonitorStateException;
-Class* Classpath::IllegalArgumentException;
-Class* Classpath::InterruptedException;
-Class* Classpath::IndexOutOfBoundsException;
-Class* Classpath::ArrayIndexOutOfBoundsException;
-Class* Classpath::NegativeArraySizeException;
-Class* Classpath::NullPointerException;
-Class* Classpath::SecurityException;
-Class* Classpath::ClassFormatError;
-Class* Classpath::ClassCircularityError;
-Class* Classpath::NoClassDefFoundError;
-Class* Classpath::UnsupportedClassVersionError;
-Class* Classpath::NoSuchFieldError;
-Class* Classpath::NoSuchMethodError;
-Class* Classpath::InstantiationError;
-Class* Classpath::InstantiationException;
-Class* Classpath::IllegalAccessError;
-Class* Classpath::IllegalAccessException;
-Class* Classpath::VerifyError;
-Class* Classpath::ExceptionInInitializerError;
-Class* Classpath::LinkageError;
-Class* Classpath::AbstractMethodError;
-Class* Classpath::UnsatisfiedLinkError;
-Class* Classpath::InternalError;
-Class* Classpath::OutOfMemoryError;
-Class* Classpath::StackOverflowError;
-Class* Classpath::UnknownError;
-Class* Classpath::ClassNotFoundException;
-Class* Classpath::ArithmeticException;
-
-JavaMethod* Classpath::InitInvocationTargetException;
-JavaMethod* Classpath::InitArrayStoreException;
-JavaMethod* Classpath::InitClassCastException;
-JavaMethod* Classpath::InitIllegalMonitorStateException;
-JavaMethod* Classpath::InitIllegalArgumentException;
-JavaMethod* Classpath::InitInterruptedException;
-JavaMethod* Classpath::InitIndexOutOfBoundsException;
-JavaMethod* Classpath::InitArrayIndexOutOfBoundsException;
-JavaMethod* Classpath::InitNegativeArraySizeException;
-JavaMethod* Classpath::InitNullPointerException;
-JavaMethod* Classpath::InitSecurityException;
-JavaMethod* Classpath::InitClassFormatError;
-JavaMethod* Classpath::InitClassCircularityError;
-JavaMethod* Classpath::InitNoClassDefFoundError;
-JavaMethod* Classpath::InitUnsupportedClassVersionError;
-JavaMethod* Classpath::InitNoSuchFieldError;
-JavaMethod* Classpath::InitNoSuchMethodError;
-JavaMethod* Classpath::InitInstantiationError;
-JavaMethod* Classpath::InitInstantiationException;
-JavaMethod* Classpath::InitIllegalAccessError;
-JavaMethod* Classpath::InitIllegalAccessException;
-JavaMethod* Classpath::InitVerifyError;
-JavaMethod* Classpath::InitExceptionInInitializerError;
-JavaMethod* Classpath::InitLinkageError;
-JavaMethod* Classpath::InitAbstractMethodError;
-JavaMethod* Classpath::InitUnsatisfiedLinkError;
-JavaMethod* Classpath::InitInternalError;
-JavaMethod* Classpath::InitOutOfMemoryError;
-JavaMethod* Classpath::InitStackOverflowError;
-JavaMethod* Classpath::InitUnknownError;
-JavaMethod* Classpath::InitClassNotFoundException;
-JavaMethod* Classpath::InitArithmeticException;
-JavaMethod* Classpath::InitObject;
-JavaMethod* Classpath::FinalizeObject;
-JavaMethod* Classpath::IntToString;
-
-JavaMethod* Classpath::ErrorWithExcpNoClassDefFoundError;
-JavaMethod* Classpath::ErrorWithExcpExceptionInInitializerError;
-JavaMethod* Classpath::ErrorWithExcpInvocationTargetException;
-
-ClassArray* Classpath::ArrayOfByte;
-ClassArray* Classpath::ArrayOfChar;
-ClassArray* Classpath::ArrayOfString;
-ClassArray* Classpath::ArrayOfInt;
-ClassArray* Classpath::ArrayOfShort;
-ClassArray* Classpath::ArrayOfBool;
-ClassArray* Classpath::ArrayOfLong;
-ClassArray* Classpath::ArrayOfFloat;
-ClassArray* Classpath::ArrayOfDouble;
-ClassArray* Classpath::ArrayOfObject;
-
-ClassPrimitive* Classpath::OfByte;
-ClassPrimitive* Classpath::OfChar;
-ClassPrimitive* Classpath::OfInt;
-ClassPrimitive* Classpath::OfShort;
-ClassPrimitive* Classpath::OfBool;
-ClassPrimitive* Classpath::OfLong;
-ClassPrimitive* Classpath::OfFloat;
-ClassPrimitive* Classpath::OfDouble;
-ClassPrimitive* Classpath::OfVoid;
-
-JavaField* Classpath::methodClass;
-JavaField* Classpath::fieldClass;
-JavaField* Classpath::constructorClass;
-
-JavaMethod* Classpath::EnqueueReference;
-Class*      Classpath::newReference;
-
-#endif
-
-void Classpath::CreateJavaThread(Jnjvm* vm, JavaThread* myth,
-                                 const char* thName, JavaObject* Group) {
-
-  JavaObject* th = newThread->doNew(vm);
-  myth->javaThread = th;
-  JavaObject* vmth = newVMThread->doNew(vm);
-  
-  threadName->setObjectField(th, (JavaObject*)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);
-  
-  group->setObjectField(th, Group);
-  groupAddThread->invokeIntSpecial(vm, threadGroup, Group, th);
-  
-  finaliseCreateInitialThread->invokeIntStatic(vm, inheritableThreadLocal, th);
-}
-
-void Classpath::InitializeThreading(Jnjvm* vm) {
-  // Resolve and initialize classes first.
-  newThread->resolveClass();
-  newThread->initialiseClass(vm);
-  
-  newVMThread->resolveClass();
-  newVMThread->initialiseClass(vm);
-  
-  threadGroup->resolveClass();
-  threadGroup->initialiseClass(vm);
-
-  // Create the main thread
-  void* Stat = threadGroup->getStaticInstance();
-  JavaObject* RG = rootGroup->getObjectField(Stat);
-  assert(vm->getMainThread() && "VM did not set its main thread");
-  CreateJavaThread(vm, vm->getMainThread(), "main", RG);
-
-  // Create the "system" group.
-  JavaObject* SystemGroup = threadGroup->doNew(vm);
-  initGroup->invokeIntSpecial(vm, threadGroup, SystemGroup);
-  JavaObject* systemName = (JavaObject*)vm->asciizToStr("system");
-  groupName->setObjectField(SystemGroup, systemName);
-
-  // Create the finalizer thread.
-  assert(vm->getFinalizerThread() && "VM did not set its finalizer thread");
-  CreateJavaThread(vm, vm->getFinalizerThread(), "Finalizer", SystemGroup);
-  
-  // Create the enqueue thread.
-  assert(vm->getEnqueueThread() && "VM did not set its enqueue thread");
-  CreateJavaThread(vm, vm->getEnqueueThread(), "Reference", SystemGroup);
-}
-
-extern "C" void nativeInitWeakReference(JavaObjectReference* reference,
-                                        JavaObject* referent) {
-  reference->init(referent, 0);
-  JavaThread::get()->getJVM()->addWeakReference(reference);
-
-}
-
-extern "C" void nativeInitWeakReferenceQ(JavaObjectReference* reference,
-                                         JavaObject* referent,
-                                         JavaObject* queue) {
-  reference->init(referent, queue);
-  JavaThread::get()->getJVM()->addWeakReference(reference);
-
-}
-
-extern "C" void nativeInitSoftReference(JavaObjectReference* reference,
-                                        JavaObject* referent) {
-  reference->init(referent, 0);
-  JavaThread::get()->getJVM()->addSoftReference(reference);
-
-}
-
-extern "C" void nativeInitSoftReferenceQ(JavaObjectReference* reference,
-                                         JavaObject* referent,
-                                         JavaObject* queue) {
-  reference->init(referent, queue);
-  JavaThread::get()->getJVM()->addSoftReference(reference);
-
-}
-
-extern "C" void nativeInitPhantomReferenceQ(JavaObjectReference* reference,
-                                            JavaObject* referent,
-                                            JavaObject* queue) {
-  reference->init(referent, queue);
-  JavaThread::get()->getJVM()->addPhantomReference(reference);
-
-}
-
-extern "C" JavaString* nativeInternString(JavaString* obj) {
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  const ArrayUInt16* array = obj->strToArray(vm);
-  return vm->constructString(array);
-}
-
-extern "C" uint8 nativeIsArray(JavaObject* klass) {
-  UserCommonClass* cl = ((JavaObjectClass*)klass)->getClass();  
-  return (uint8)cl->isArray();
-}
-
-extern "C" JavaObject* nativeGetCallingClass() {
-  
-  JavaObject* res = 0;
-
-  BEGIN_NATIVE_EXCEPTION(0)
-
-  JavaThread* th = JavaThread::get();
-  UserClass* cl = th->getCallingClass(1);
-  if (cl) res = cl->getClassDelegatee(th->getJVM());
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-extern "C" JavaObject* nativeGetCallingClassLoader() {
-  
-  JavaObject *res = 0;
-  
-  BEGIN_NATIVE_EXCEPTION(0)
-  JavaThread* th = JavaThread::get();
-  UserClass* cl = th->getCallingClass(1);
-  res = cl->classLoader->getJavaClassLoader();  
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-extern "C" JavaObject* nativeFirstNonNullClassLoader() {
-  JavaObject *res = 0;
-  
-  BEGIN_NATIVE_EXCEPTION(0)
-  JavaThread* th = JavaThread::get();
-  res = th->getNonNullClassLoader();
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-extern "C" JavaObject* nativeGetCallerClass(uint32 index) {
-  
-  JavaObject *res = 0;
-  
-  BEGIN_NATIVE_EXCEPTION(0)
-  JavaThread* th = JavaThread::get();
-  Jnjvm* vm = th->getJVM();
-  UserClass* cl = th->getCallingClassLevel(index);
-  if (cl) res = cl->getClassDelegatee(vm);
-  END_NATIVE_EXCEPTION
-
-  return res;
-}
-
-extern "C" JavaObject* nativeGetAnnotation(JavaObject* obj) {
-  return 0;
-}
-
-extern "C" JavaObject* nativeGetDeclaredAnnotations() {
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClassArray* array = vm->upcalls->constructorArrayAnnotation;
-  return array->doNew(0, vm);
-}
-
-extern "C" void nativePropertiesPostInit(JavaObject* prop);
-
-
-extern "C" void nativeJavaObjectClassTracer(JavaObjectClass* obj) {
-  JavaObjectClass::staticTracer(obj);
-}
-
-extern "C" void nativeJavaObjectFieldTracer(JavaObjectField* obj) {
-  JavaObjectField::staticTracer(obj);
-}
-
-extern "C" void nativeJavaObjectMethodTracer(JavaObjectMethod* obj) {
-  JavaObjectMethod::staticTracer(obj);
-}
-
-extern "C" void nativeJavaObjectConstructorTracer(JavaObjectConstructor* obj) {
-  JavaObjectConstructor::staticTracer(obj);
-}
-
-extern "C" void nativeJavaObjectReferenceTracer(JavaObjectReference* obj) {
-  JavaObjectReference::staticTracer(obj);
-}
-
-extern "C" void nativeJavaObjectVMThreadDestructor(JavaObjectVMThread* obj) {
-  JavaObjectVMThread::staticDestructor(obj);
-}
-
-// Defined in Classpath/ClasspathVMClassLoader.cpp
-extern "C" ArrayObject* nativeGetBootPackages();
-
-extern "C" JavaString* nativeGetenv(JavaString* str) {
-  char* buf = str->strToAsciiz();
-  char* res = getenv(buf);
-  delete[] buf;
-  if (res) {
-    Jnjvm* vm = JavaThread::get()->getJVM();
-    return vm->asciizToStr(res);
-  }
-  return 0;
-}
-
-void Classpath::initialiseClasspath(JnjvmClassLoader* loader) {
-
-  newClassLoader = 
-    UPCALL_CLASS(loader, "java/lang/ClassLoader");
-  
-  getSystemClassLoader =
-    UPCALL_METHOD(loader, "java/lang/ClassLoader", "getSystemClassLoader",
-                  "()Ljava/lang/ClassLoader;", ACC_STATIC);
-
-  setContextClassLoader =
-    UPCALL_METHOD(loader, "java/lang/Thread", "setContextClassLoader",
-                  "(Ljava/lang/ClassLoader;)V", ACC_VIRTUAL);
-
-  newString = 
-    UPCALL_CLASS(loader, "java/lang/String");
-  
-  newClass =
-    UPCALL_CLASS(loader, "java/lang/Class");
-  
-  newThrowable =
-    UPCALL_CLASS(loader, "java/lang/Throwable");
-  
-  newException =
-    UPCALL_CLASS(loader, "java/lang/Exception");
-
-  newPointer32 = 
-    UPCALL_CLASS(loader, "gnu/classpath/Pointer32");
-  
-  newPointer64 = 
-    UPCALL_CLASS(loader, "gnu/classpath/Pointer64");
- 
-  newDirectByteBuffer =
-    UPCALL_CLASS(loader, "java/nio/DirectByteBufferImpl$ReadWrite");
-
-  InitDirectByteBuffer =
-    UPCALL_METHOD(loader, "java/nio/DirectByteBufferImpl$ReadWrite", "<init>",
-                  "(Ljava/lang/Object;Lgnu/classpath/Pointer;III)V",
-                  ACC_VIRTUAL);
-
-  initClass =
-    UPCALL_METHOD(loader, "java/lang/Class", "<init>", "(Ljava/lang/Object;)V",
-                  ACC_VIRTUAL);
-
-  initClassWithProtectionDomain =
-    UPCALL_METHOD(loader, "java/lang/Class", "<init>",
-                  "(Ljava/lang/Object;Ljava/security/ProtectionDomain;)V",
-                  ACC_VIRTUAL);
-
-  vmdataClass =
-    UPCALL_FIELD(loader, "java/lang/Class", "vmdata", "Ljava/lang/Object;",
-                 ACC_VIRTUAL);
-  
-  setProperty = 
-    UPCALL_METHOD(loader, "java/util/Properties", "setProperty",
-                  "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;",
-                  ACC_VIRTUAL);
-
-  initString =
-    UPCALL_METHOD(loader, "java/lang/String", "<init>", "([CIIZ)V", ACC_VIRTUAL);
-  
-  initConstructor =
-    UPCALL_METHOD(loader, "java/lang/reflect/Constructor", "<init>",
-                  "(Ljava/lang/Class;I)V", ACC_VIRTUAL);
-
-  newConstructor =
-    UPCALL_CLASS(loader, "java/lang/reflect/Constructor");
-
-  constructorArrayClass =
-    UPCALL_ARRAY_CLASS(loader, "java/lang/reflect/Constructor", 1);
-  
-  constructorArrayAnnotation =
-    UPCALL_ARRAY_CLASS(loader, "java/lang/annotation/Annotation", 1);
-
-  constructorSlot =
-    UPCALL_FIELD(loader, "java/lang/reflect/Constructor", "slot", "I", ACC_VIRTUAL);
-  
-  initMethod =
-    UPCALL_METHOD(loader, "java/lang/reflect/Method", "<init>",
-                  "(Ljava/lang/Class;Ljava/lang/String;I)V", ACC_VIRTUAL);
-
-  newMethod =
-    UPCALL_CLASS(loader, "java/lang/reflect/Method");
-
-  methodArrayClass =
-    UPCALL_ARRAY_CLASS(loader, "java/lang/reflect/Method", 1);
-
-  methodSlot =
-    UPCALL_FIELD(loader, "java/lang/reflect/Method", "slot", "I", ACC_VIRTUAL);
-  
-  initField =
-    UPCALL_METHOD(loader, "java/lang/reflect/Field", "<init>",
-                  "(Ljava/lang/Class;Ljava/lang/String;I)V", ACC_VIRTUAL);
-
-  newField =
-    UPCALL_CLASS(loader, "java/lang/reflect/Field");
-
-  fieldArrayClass =
-    UPCALL_ARRAY_CLASS(loader, "java/lang/reflect/Field", 1);
-  
-  fieldSlot =
-    UPCALL_FIELD(loader, "java/lang/reflect/Field", "slot", "I", ACC_VIRTUAL);
-  
-  
-  classArrayClass =
-    UPCALL_ARRAY_CLASS(loader, "java/lang/Class", 1);
-  
-  newVMThrowable =
-    UPCALL_CLASS(loader, "java/lang/VMThrowable");
-  
-  initVMThrowable =
-    UPCALL_METHOD(loader, "java/lang/VMThrowable", "<init>", "()V", ACC_VIRTUAL);
-
-  vmDataVMThrowable =
-    UPCALL_FIELD(loader, "java/lang/VMThrowable", "vmdata", "Ljava/lang/Object;",
-                 ACC_VIRTUAL);
-
-  bufferAddress =
-    UPCALL_FIELD(loader, "java/nio/Buffer", "address", "Lgnu/classpath/Pointer;",
-                 ACC_VIRTUAL);
-
-  dataPointer32 =
-    UPCALL_FIELD(loader, "gnu/classpath/Pointer32", "data", "I", ACC_VIRTUAL);
-  
-  dataPointer64 =
-    UPCALL_FIELD(loader, "gnu/classpath/Pointer64", "data", "J", ACC_VIRTUAL);
-
-  vmdataClassLoader =
-    UPCALL_FIELD(loader, "java/lang/ClassLoader", "vmdata", "Ljava/lang/Object;",
-                 ACC_VIRTUAL);
-  
-  newStackTraceElement =
-    UPCALL_CLASS(loader, "java/lang/StackTraceElement");
-  
-  stackTraceArray =
-    UPCALL_ARRAY_CLASS(loader, "java/lang/StackTraceElement", 1);
-
-  initStackTraceElement =
-    UPCALL_METHOD(loader,  "java/lang/StackTraceElement", "<init>",
-                  "(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Z)V",
-                  ACC_VIRTUAL);
-
-  boolValue =
-    UPCALL_FIELD(loader, "java/lang/Boolean", "value", "Z", ACC_VIRTUAL);
-  
-  byteValue =
-    UPCALL_FIELD(loader, "java/lang/Byte", "value", "B", ACC_VIRTUAL);
-
-  shortValue =
-    UPCALL_FIELD(loader, "java/lang/Short", "value", "S", ACC_VIRTUAL);
-
-  charValue =
-    UPCALL_FIELD(loader, "java/lang/Character", "value", "C", ACC_VIRTUAL);
-
-  intValue =
-    UPCALL_FIELD(loader, "java/lang/Integer", "value", "I", ACC_VIRTUAL);
-
-  longValue =
-    UPCALL_FIELD(loader, "java/lang/Long", "value", "J", ACC_VIRTUAL);
-
-  floatValue =
-    UPCALL_FIELD(loader, "java/lang/Float", "value", "F", ACC_VIRTUAL);
-
-  doubleValue =
-    UPCALL_FIELD(loader, "java/lang/Double", "value", "D", ACC_VIRTUAL);
-
-  Classpath::voidClass =
-    UPCALL_CLASS(loader, "java/lang/Void");
-  
-  Classpath::boolClass =
-    UPCALL_CLASS(loader, "java/lang/Boolean");
-
-  Classpath::byteClass =
-    UPCALL_CLASS(loader, "java/lang/Byte");
-
-  Classpath::shortClass =
-    UPCALL_CLASS(loader, "java/lang/Short");
-
-  Classpath::charClass =
-    UPCALL_CLASS(loader, "java/lang/Character"); 
-
-  Classpath::intClass =
-    UPCALL_CLASS(loader, "java/lang/Integer");
-
-  Classpath::floatClass =
-    UPCALL_CLASS(loader, "java/lang/Float");
-
-  Classpath::doubleClass =
-    UPCALL_CLASS(loader, "java/lang/Double");
-
-  Classpath::longClass =
-    UPCALL_CLASS(loader, "java/lang/Long");
-
-  vmStackWalker =
-    UPCALL_CLASS(loader, "gnu/classpath/VMStackWalker");
-
-  loadInClassLoader =
-    UPCALL_METHOD(loader, "java/lang/ClassLoader", "loadClass",
-                  "(Ljava/lang/String;Z)Ljava/lang/Class;", ACC_VIRTUAL);
-
-  JavaMethod* internString =
-    UPCALL_METHOD(loader, "java/lang/VMString", "intern",
-                  "(Ljava/lang/String;)Ljava/lang/String;", ACC_STATIC); 
-  internString->setCompiledPtr((void*)(intptr_t)nativeInternString,
-                               "nativeInternString");
-  
-  JavaMethod* isArray =
-    UPCALL_METHOD(loader, "java/lang/Class", "isArray", "()Z", ACC_VIRTUAL);
-  isArray->setCompiledPtr((void*)(intptr_t)nativeIsArray, "nativeIsArray");
-
-
-  UPCALL_REFLECT_CLASS_EXCEPTION(loader, InvocationTargetException);
-  UPCALL_CLASS_EXCEPTION(loader, ArrayStoreException);
-  UPCALL_CLASS_EXCEPTION(loader, ClassCastException);
-  UPCALL_CLASS_EXCEPTION(loader, IllegalMonitorStateException);
-  UPCALL_CLASS_EXCEPTION(loader, IllegalArgumentException);
-  UPCALL_CLASS_EXCEPTION(loader, InterruptedException);
-  UPCALL_CLASS_EXCEPTION(loader, IndexOutOfBoundsException);
-  UPCALL_CLASS_EXCEPTION(loader, ArrayIndexOutOfBoundsException);
-  UPCALL_CLASS_EXCEPTION(loader, NegativeArraySizeException);
-  UPCALL_CLASS_EXCEPTION(loader, NullPointerException);
-  UPCALL_CLASS_EXCEPTION(loader, SecurityException);
-  UPCALL_CLASS_EXCEPTION(loader, ClassFormatError);
-  UPCALL_CLASS_EXCEPTION(loader, ClassCircularityError);
-  UPCALL_CLASS_EXCEPTION(loader, NoClassDefFoundError);
-  UPCALL_CLASS_EXCEPTION(loader, UnsupportedClassVersionError);
-  UPCALL_CLASS_EXCEPTION(loader, NoSuchFieldError);
-  UPCALL_CLASS_EXCEPTION(loader, NoSuchMethodError);
-  UPCALL_CLASS_EXCEPTION(loader, InstantiationError);
-  UPCALL_CLASS_EXCEPTION(loader, InstantiationException);
-  UPCALL_CLASS_EXCEPTION(loader, IllegalAccessError);
-  UPCALL_CLASS_EXCEPTION(loader, IllegalAccessException);
-  UPCALL_CLASS_EXCEPTION(loader, VerifyError);
-  UPCALL_CLASS_EXCEPTION(loader, ExceptionInInitializerError);
-  UPCALL_CLASS_EXCEPTION(loader, LinkageError);
-  UPCALL_CLASS_EXCEPTION(loader, AbstractMethodError);
-  UPCALL_CLASS_EXCEPTION(loader, UnsatisfiedLinkError);
-  UPCALL_CLASS_EXCEPTION(loader, InternalError);
-  UPCALL_CLASS_EXCEPTION(loader, OutOfMemoryError);
-  UPCALL_CLASS_EXCEPTION(loader, StackOverflowError);
-  UPCALL_CLASS_EXCEPTION(loader, UnknownError);
-  UPCALL_CLASS_EXCEPTION(loader, ClassNotFoundException);
-  UPCALL_CLASS_EXCEPTION(loader, ArithmeticException);
-  
-  UPCALL_METHOD_EXCEPTION(loader, InvocationTargetException);
-  UPCALL_METHOD_EXCEPTION(loader, ArrayStoreException);
-  UPCALL_METHOD_EXCEPTION(loader, ClassCastException);
-  UPCALL_METHOD_EXCEPTION(loader, IllegalMonitorStateException);
-  UPCALL_METHOD_EXCEPTION(loader, IllegalArgumentException);
-  UPCALL_METHOD_EXCEPTION(loader, InterruptedException);
-  UPCALL_METHOD_EXCEPTION(loader, IndexOutOfBoundsException);
-  UPCALL_METHOD_EXCEPTION(loader, ArrayIndexOutOfBoundsException);
-  UPCALL_METHOD_EXCEPTION(loader, NegativeArraySizeException);
-  UPCALL_METHOD_EXCEPTION(loader, NullPointerException);
-  UPCALL_METHOD_EXCEPTION(loader, SecurityException);
-  UPCALL_METHOD_EXCEPTION(loader, ClassFormatError);
-  UPCALL_METHOD_EXCEPTION(loader, ClassCircularityError);
-  UPCALL_METHOD_EXCEPTION(loader, NoClassDefFoundError);
-  UPCALL_METHOD_EXCEPTION(loader, UnsupportedClassVersionError);
-  UPCALL_METHOD_EXCEPTION(loader, NoSuchFieldError);
-  UPCALL_METHOD_EXCEPTION(loader, NoSuchMethodError);
-  UPCALL_METHOD_EXCEPTION(loader, InstantiationError);
-  UPCALL_METHOD_EXCEPTION(loader, InstantiationException);
-  UPCALL_METHOD_EXCEPTION(loader, IllegalAccessError);
-  UPCALL_METHOD_EXCEPTION(loader, IllegalAccessException);
-  UPCALL_METHOD_EXCEPTION(loader, VerifyError);
-  UPCALL_METHOD_EXCEPTION(loader, ExceptionInInitializerError);
-  UPCALL_METHOD_EXCEPTION(loader, LinkageError);
-  UPCALL_METHOD_EXCEPTION(loader, AbstractMethodError);
-  UPCALL_METHOD_EXCEPTION(loader, UnsatisfiedLinkError);
-  UPCALL_METHOD_EXCEPTION(loader, InternalError);
-  UPCALL_METHOD_EXCEPTION(loader, OutOfMemoryError);
-  UPCALL_METHOD_EXCEPTION(loader, StackOverflowError);
-  UPCALL_METHOD_EXCEPTION(loader, UnknownError);
-  UPCALL_METHOD_EXCEPTION(loader, ClassNotFoundException);
-  UPCALL_METHOD_EXCEPTION(loader, ArithmeticException);
-  
-  UPCALL_METHOD_WITH_EXCEPTION(loader, NoClassDefFoundError);
-  UPCALL_METHOD_WITH_EXCEPTION(loader, ExceptionInInitializerError);
-  UPCALL_METHOD_WITH_EXCEPTION(loader, InvocationTargetException);
-
-  InitObject = UPCALL_METHOD(loader, "java/lang/Object", "<init>", "()V",
-                             ACC_VIRTUAL);
-  
-  FinalizeObject = UPCALL_METHOD(loader, "java/lang/Object", "finalize", "()V",
-                                 ACC_VIRTUAL);
-  
-  IntToString = UPCALL_METHOD(loader, "java/lang/Integer", "toString",
-                              "(II)Ljava/lang/String;", ACC_STATIC);
-
-  newThread = 
-    UPCALL_CLASS(loader, "java/lang/Thread");
-  
-  newVMThread = 
-    UPCALL_CLASS(loader, "java/lang/VMThread");
-  
-  assocThread = 
-    UPCALL_FIELD(loader, "java/lang/VMThread", "thread", "Ljava/lang/Thread;",
-                 ACC_VIRTUAL);
-  
-  vmdataVMThread = 
-    UPCALL_FIELD(loader, "java/lang/VMThread", "vmdata", "Ljava/lang/Object;",
-                 ACC_VIRTUAL);
-  
-  inheritableThreadLocal = 
-    UPCALL_CLASS(loader, "java/lang/InheritableThreadLocal");
-
-  finaliseCreateInitialThread = 
-    UPCALL_METHOD(loader, "java/lang/InheritableThreadLocal", "newChildThread",
-                  "(Ljava/lang/Thread;)V", ACC_STATIC);
-  
-  initVMThread = 
-    UPCALL_METHOD(loader, "java/lang/VMThread", "<init>",
-                  "(Ljava/lang/Thread;)V", ACC_VIRTUAL);
-  
-  runVMThread = 
-    UPCALL_METHOD(loader, "java/lang/VMThread", "run", "()V", ACC_VIRTUAL);
-
-
-  groupAddThread = 
-    UPCALL_METHOD(loader, "java/lang/ThreadGroup", "addThread",
-                  "(Ljava/lang/Thread;)V", ACC_VIRTUAL);
-  
-  initGroup = 
-    UPCALL_METHOD(loader, "java/lang/ThreadGroup", "<init>",
-                  "()V", ACC_VIRTUAL);
-  
-  groupName = 
-    UPCALL_FIELD(loader, "java/lang/ThreadGroup", "name", "Ljava/lang/String;",
-                 ACC_VIRTUAL);
-  
-  threadName = 
-     UPCALL_FIELD(loader, "java/lang/Thread", "name", "Ljava/lang/String;",
-                  ACC_VIRTUAL);
-   
-
-  priority = 
-    UPCALL_FIELD(loader,  "java/lang/Thread", "priority", "I", ACC_VIRTUAL);
-
-  daemon = 
-    UPCALL_FIELD(loader, "java/lang/Thread", "daemon", "Z", ACC_VIRTUAL);
-
-  group =
-    UPCALL_FIELD(loader, "java/lang/Thread", "group",
-                 "Ljava/lang/ThreadGroup;", ACC_VIRTUAL);
-  
-  running = 
-    UPCALL_FIELD(loader, "java/lang/VMThread", "running", "Z", ACC_VIRTUAL);
-  
-  threadGroup = 
-    UPCALL_CLASS(loader, "java/lang/ThreadGroup");
-  
-  rootGroup =
-    UPCALL_FIELD(loader, "java/lang/ThreadGroup", "root",
-                 "Ljava/lang/ThreadGroup;", ACC_STATIC);
-
-  vmThread = 
-    UPCALL_FIELD(loader, "java/lang/Thread", "vmThread",
-                 "Ljava/lang/VMThread;", ACC_VIRTUAL);
-  
-  uncaughtException = 
-    UPCALL_METHOD(loader, "java/lang/ThreadGroup",  "uncaughtException",
-                  "(Ljava/lang/Thread;Ljava/lang/Throwable;)V", ACC_VIRTUAL);
-
-  
-  methodClass =
-    UPCALL_FIELD(loader, "java/lang/reflect/Method", "declaringClass",
-                 "Ljava/lang/Class;", ACC_VIRTUAL);
-  
-  fieldClass =
-    UPCALL_FIELD(loader, "java/lang/reflect/Field", "declaringClass",
-                 "Ljava/lang/Class;", ACC_VIRTUAL);
-  
-  constructorClass =
-    UPCALL_FIELD(loader, "java/lang/reflect/Constructor", "clazz",
-                 "Ljava/lang/Class;", ACC_VIRTUAL);
-
-  loader->loadName(loader->asciizConstructUTF8("java/lang/String"), 
-                                       true, false);
-
-  loader->loadName(loader->asciizConstructUTF8("java/lang/Object"), 
-                                       true, false);
-  
-  // Don't compile methods here, we still don't know where to allocate Java
-  // strings.
-  
-  JavaMethod* getEnv =
-    UPCALL_METHOD(loader, "java/lang/VMSystem", "getenv",
-                  "(Ljava/lang/String;)Ljava/lang/String;", ACC_STATIC);
-  getEnv->setCompiledPtr((void*)(intptr_t)nativeGetenv, "nativeGetenv");
-
-  JavaMethod* getCallingClass =
-    UPCALL_METHOD(loader, "gnu/classpath/VMStackWalker", "getCallingClass",
-                  "()Ljava/lang/Class;", ACC_STATIC);
-  getCallingClass->setCompiledPtr((void*)(intptr_t)nativeGetCallingClass,
-                                  "nativeGetCallingClass");
-  
-  JavaMethod* getCallingClassLoader =
-    UPCALL_METHOD(loader, "gnu/classpath/VMStackWalker", "getCallingClassLoader",
-                  "()Ljava/lang/ClassLoader;", ACC_STATIC);
-  getCallingClassLoader->setCompiledPtr((void*)(intptr_t)
-                                        nativeGetCallingClassLoader,
-                                        "nativeGetCallingClassLoader");
-  
-  JavaMethod* firstNonNullClassLoader =
-    UPCALL_METHOD(loader, "gnu/classpath/VMStackWalker", "firstNonNullClassLoader",
-                  "()Ljava/lang/ClassLoader;", ACC_STATIC);
-  firstNonNullClassLoader->setCompiledPtr((void*)(intptr_t)
-                                          nativeFirstNonNullClassLoader,
-                                          "nativeFirstNonNullClassLoader");
-  
-  JavaMethod* getCallerClass =
-    UPCALL_METHOD(loader, "sun/reflect/Reflection", "getCallerClass",
-                  "(I)Ljava/lang/Class;", ACC_STATIC);
-  getCallerClass->setCompiledPtr((void*)(intptr_t)nativeGetCallerClass,
-                                 "nativeGetCallerClass");
-  
-  JavaMethod* postProperties =
-    UPCALL_METHOD(loader, "gnu/classpath/VMSystemProperties", "postInit",
-                  "(Ljava/util/Properties;)V", ACC_STATIC);
-  postProperties->setCompiledPtr((void*)(intptr_t)nativePropertiesPostInit,
-                                 "nativePropertiesPostInit");
-
-  // Also implement these twos, implementation in GNU Classpath 0.97.2 is buggy.
-  JavaMethod* getAnnotation =
-    UPCALL_METHOD(loader, "java/lang/reflect/AccessibleObject", "getAnnotation",
-                  "(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;",
-                  ACC_VIRTUAL);
-  getAnnotation->setCompiledPtr((void*)(intptr_t)nativeGetAnnotation,
-                                "nativeGetAnnotation");
-  
-  JavaMethod* getAnnotations =
-    UPCALL_METHOD(loader, "java/lang/reflect/AccessibleObject",
-                  "getDeclaredAnnotations",
-                  "()[Ljava/lang/annotation/Annotation;",
-                  ACC_VIRTUAL);
-  getAnnotations->setCompiledPtr((void*)(intptr_t)nativeGetDeclaredAnnotations,
-                                 "nativeGetDeclaredAnnotations");
-  
-  JavaMethod* getBootPackages =
-    UPCALL_METHOD(loader, "java/lang/VMClassLoader", "getBootPackages",
-                  "()[Ljava/lang/String;", ACC_STATIC);
-  getBootPackages->setCompiledPtr((void*)(intptr_t)nativeGetBootPackages,
-                                  "nativeGetBootPackages");
-  
-  //===----------------------------------------------------------------------===//
-  //
-  // To make classes non GC-allocated, we have to bypass the tracer functions of
-  // java.lang.Class, java.lang.reflect.Field, java.lang.reflect.Method and
-  // java.lang.reflect.constructor. The new tracer functions trace the classloader
-  // instead of the class/field/method.
-  //
-  //===----------------------------------------------------------------------===//
- 
-  newClass->getVirtualVT()->setNativeTracer(
-      (uintptr_t)nativeJavaObjectClassTracer,
-       "nativeJavaObjectClassTracer");
-
-  newConstructor->getVirtualVT()->setNativeTracer(
-      (uintptr_t)nativeJavaObjectConstructorTracer,
-      "nativeJavaObjectConstructorTracer");
-
-   newMethod->getVirtualVT()->setNativeTracer(
-      (uintptr_t)nativeJavaObjectMethodTracer,
-      "nativeJavaObjectMethodTracer");
-
-   newField->getVirtualVT()->setNativeTracer(
-      (uintptr_t)nativeJavaObjectFieldTracer,
-      "nativeJavaObjectFieldTracer"); 
- 
-   newVMThread->getVirtualVT()->setNativeDestructor(
-      (uintptr_t)nativeJavaObjectVMThreadDestructor,
-      "nativeJavaObjectVMThreadDestructor");
-
-   
-  newReference = UPCALL_CLASS(loader, "java/lang/ref/Reference");
-    
-  newReference->getVirtualVT()->setNativeTracer(
-      (uintptr_t)nativeJavaObjectReferenceTracer,
-      "nativeJavaObjectReferenceTracer");
-  
-  EnqueueReference = 
-    UPCALL_METHOD(loader, "java/lang/ref/Reference",  "enqueue", "()Z",
-                  ACC_VIRTUAL);
- 
-  JavaMethod* initWeakReference =
-    UPCALL_METHOD(loader, "java/lang/ref/WeakReference", "<init>",
-                  "(Ljava/lang/Object;)V",
-                  ACC_VIRTUAL);
-  initWeakReference->setCompiledPtr((void*)(intptr_t)nativeInitWeakReference,
-                                    "nativeInitWeakReference");
-  
-  initWeakReference =
-    UPCALL_METHOD(loader, "java/lang/ref/WeakReference", "<init>",
-                  "(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V",
-                  ACC_VIRTUAL);
-  initWeakReference->setCompiledPtr((void*)(intptr_t)nativeInitWeakReferenceQ,
-                                    "nativeInitWeakReferenceQ");
-  
-  JavaMethod* initSoftReference =
-    UPCALL_METHOD(loader, "java/lang/ref/SoftReference", "<init>",
-                  "(Ljava/lang/Object;)V",
-                  ACC_VIRTUAL);
-  initSoftReference->setCompiledPtr((void*)(intptr_t)nativeInitSoftReference,
-                                    "nativeInitSoftReference");
-  
-  initSoftReference =
-    UPCALL_METHOD(loader, "java/lang/ref/WeakReference", "<init>",
-                  "(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V",
-                  ACC_VIRTUAL);
-  initSoftReference->setCompiledPtr((void*)(intptr_t)nativeInitSoftReferenceQ,
-                                    "nativeInitSoftReferenceQ");
-  
-  JavaMethod* initPhantomReference =
-    UPCALL_METHOD(loader, "java/lang/ref/PhantomReference", "<init>",
-                  "(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V",
-                  ACC_VIRTUAL);
-  initPhantomReference->setCompiledPtr(
-      (void*)(intptr_t)nativeInitPhantomReferenceQ,
-      "nativeInitPhantomReferenceQ");
-  
-
-}
-
-gc* Jnjvm::getReferent(gc* _obj) {
-  JavaObjectReference* obj = (JavaObjectReference*)_obj;
-  return obj->getReferent();
- }
- 
-void Jnjvm::clearReferent(gc* _obj) {
-  JavaObjectReference* obj = (JavaObjectReference*)_obj;
-  obj->setReferent(0);
-}

Removed: vmkit/trunk/lib/JnJVM/VMCore/JavaUpcalls.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaUpcalls.h?rev=73762&view=auto

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaUpcalls.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaUpcalls.h (removed)
@@ -1,269 +0,0 @@
-//===---------- JavaUpcalls.h - Upcalls to Java entities ------------------===//
-//
-//                              JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef JNJVM_JAVA_UPCALLS_H
-#define JNJVM_JAVA_UPCALLS_H
-
-#include "mvm/Allocator.h"
-
-#include "JnjvmConfig.h"
-
-#define UPCALL_CLASS(vm, name)                                                 \
-  vm->loadName(vm->asciizConstructUTF8(name), true, false)                        
-
-#define UPCALL_PRIMITIVE_CLASS(loader, name, nb)                               \
-  new(loader->allocator, "Primitive class")                                    \
-          UserClassPrimitive(loader, loader->asciizConstructUTF8(name), nb)    \
-
-#define UPCALL_FIELD(vm, cl, name, type, acc)                                  \
-  UPCALL_CLASS(vm, cl)->lookupFieldDontThrow(vm->asciizConstructUTF8(name),    \
-                                             vm->asciizConstructUTF8(type),    \
-                                             isStatic(acc), false, 0)
-
-#define UPCALL_METHOD(vm, cl, name, type, acc)                                 \
-  UPCALL_CLASS(vm, cl)->lookupMethodDontThrow(vm->asciizConstructUTF8(name),   \
-                                              vm->asciizConstructUTF8(type),   \
-                                              isStatic(acc), false, 0)
-
-#define UPCALL_ARRAY_CLASS(loader, name, depth)                                \
-  loader->constructArray(                                                      \
-    loader->constructArrayName(depth, loader->asciizConstructUTF8(name)))       
-
-#define UPCALL_CLASS_EXCEPTION(loader, name)                                   \
-  name = UPCALL_CLASS(loader, "java/lang/"#name)                           
-
-#define UPCALL_REFLECT_CLASS_EXCEPTION(loader, name)                           \
-  name = UPCALL_CLASS(loader, "java/lang/reflect/"#name)                   
-
-#define UPCALL_METHOD_EXCEPTION(loader, name) \
-  Init##name = name->lookupMethodDontThrow(loader->asciizConstructUTF8("<init>"), \
-                                           loader->asciizConstructUTF8("(Ljava/lang/String;)V"), \
-                                           false, false, 0);
-
-#define UPCALL_METHOD_WITH_EXCEPTION(loader, name) \
-  ErrorWithExcp##name = name->lookupMethodDontThrow(loader->asciizConstructUTF8("<init>"), \
-                                     loader->asciizConstructUTF8("(Ljava/lang/Throwable;)V"), \
-                                     false, false, 0);
-
-namespace jnjvm {
-
-class Jnjvm;
-class JavaField;
-class JavaMethod;
-class Class;
-class ClassArray;
-
-class Classpath : public mvm::PermanentObject {
-public: 
-  ISOLATE_STATIC UserClass*  newClassLoader;
-  ISOLATE_STATIC JavaMethod* getSystemClassLoader;
-  ISOLATE_STATIC JavaMethod* setContextClassLoader;
-  ISOLATE_STATIC UserClass* newString;
-  ISOLATE_STATIC UserClass* newClass;
-  ISOLATE_STATIC UserClass* newThrowable;
-  ISOLATE_STATIC UserClass* newException;
-  ISOLATE_STATIC JavaMethod* initClass;
-  ISOLATE_STATIC JavaMethod* initClassWithProtectionDomain;
-  ISOLATE_STATIC JavaField* vmdataClass;
-  ISOLATE_STATIC JavaMethod* setProperty;
-  ISOLATE_STATIC JavaMethod* initString;
-  ISOLATE_STATIC JavaMethod* getCallingClassLoader;
-  ISOLATE_STATIC JavaMethod* initConstructor;
-  ISOLATE_STATIC UserClassArray* constructorArrayClass;
-  ISOLATE_STATIC UserClassArray* constructorArrayAnnotation;
-  ISOLATE_STATIC UserClass*      newConstructor;
-  ISOLATE_STATIC JavaField*  constructorSlot;
-  ISOLATE_STATIC JavaMethod* initMethod;
-  ISOLATE_STATIC JavaMethod* initField;
-  ISOLATE_STATIC UserClassArray* methodArrayClass;
-  ISOLATE_STATIC UserClassArray* fieldArrayClass;
-  ISOLATE_STATIC UserClass*      newMethod;
-  ISOLATE_STATIC UserClass*      newField;
-  ISOLATE_STATIC JavaField*  methodSlot;
-  ISOLATE_STATIC JavaField*  fieldSlot;
-  ISOLATE_STATIC UserClassArray* classArrayClass;
-  ISOLATE_STATIC JavaMethod* loadInClassLoader;
-  ISOLATE_STATIC JavaMethod* initVMThrowable;
-  ISOLATE_STATIC JavaField*  vmDataVMThrowable;
-  ISOLATE_STATIC UserClass*  newVMThrowable;
-  ISOLATE_STATIC JavaField*  bufferAddress;
-  ISOLATE_STATIC JavaField*  dataPointer32;
-  ISOLATE_STATIC JavaField*  dataPointer64;
-  ISOLATE_STATIC UserClass*  newPointer32;
-  ISOLATE_STATIC UserClass*  newPointer64;
-  ISOLATE_STATIC UserClass*  newDirectByteBuffer;
-  ISOLATE_STATIC JavaMethod* InitDirectByteBuffer;
-  ISOLATE_STATIC JavaField*  vmdataClassLoader;
-
-  ISOLATE_STATIC JavaField* boolValue;
-  ISOLATE_STATIC JavaField* byteValue;
-  ISOLATE_STATIC JavaField* shortValue;
-  ISOLATE_STATIC JavaField* charValue;
-  ISOLATE_STATIC JavaField* intValue;
-  ISOLATE_STATIC JavaField* longValue;
-  ISOLATE_STATIC JavaField* floatValue;
-  ISOLATE_STATIC JavaField* doubleValue;
-
-  ISOLATE_STATIC UserClass* newStackTraceElement;
-  ISOLATE_STATIC UserClassArray* stackTraceArray;
-  ISOLATE_STATIC JavaMethod* initStackTraceElement;
-
-  ISOLATE_STATIC void initialiseClasspath(JnjvmClassLoader* loader);
-  
-  ISOLATE_STATIC UserClass* voidClass;
-  ISOLATE_STATIC UserClass* boolClass;
-  ISOLATE_STATIC UserClass* byteClass;
-  ISOLATE_STATIC UserClass* shortClass;
-  ISOLATE_STATIC UserClass* charClass;
-  ISOLATE_STATIC UserClass* intClass;
-  ISOLATE_STATIC UserClass* floatClass;
-  ISOLATE_STATIC UserClass* doubleClass;
-  ISOLATE_STATIC UserClass* longClass;
-  
-  ISOLATE_STATIC UserClass* vmStackWalker;
-  
-  ISOLATE_STATIC UserClass* newThread;
-  ISOLATE_STATIC UserClass* newVMThread;
-  ISOLATE_STATIC JavaField* assocThread;
-  ISOLATE_STATIC JavaField* vmdataVMThread;
-  ISOLATE_STATIC JavaMethod* finaliseCreateInitialThread;
-  ISOLATE_STATIC JavaMethod* initVMThread;
-  ISOLATE_STATIC JavaMethod* runVMThread;
-  ISOLATE_STATIC JavaMethod* groupAddThread;
-  ISOLATE_STATIC JavaField* threadName;
-  ISOLATE_STATIC JavaField* groupName;
-  ISOLATE_STATIC JavaMethod* initGroup;
-  ISOLATE_STATIC JavaField* priority;
-  ISOLATE_STATIC JavaField* daemon;
-  ISOLATE_STATIC JavaField* group;
-  ISOLATE_STATIC JavaField* running;
-  ISOLATE_STATIC UserClass* threadGroup;
-  ISOLATE_STATIC JavaField* rootGroup;
-  ISOLATE_STATIC JavaField* vmThread;
-  ISOLATE_STATIC JavaMethod* uncaughtException;
-  ISOLATE_STATIC UserClass*  inheritableThreadLocal;
-  
-
-  ISOLATE_STATIC UserClass* InvocationTargetException;
-  ISOLATE_STATIC UserClass* ArrayStoreException;
-  ISOLATE_STATIC UserClass* ClassCastException;
-  ISOLATE_STATIC UserClass* IllegalMonitorStateException;
-  ISOLATE_STATIC UserClass* IllegalArgumentException;
-  ISOLATE_STATIC UserClass* InterruptedException;
-  ISOLATE_STATIC UserClass* IndexOutOfBoundsException;
-  ISOLATE_STATIC UserClass* ArrayIndexOutOfBoundsException;
-  ISOLATE_STATIC UserClass* NegativeArraySizeException;
-  ISOLATE_STATIC UserClass* NullPointerException;
-  ISOLATE_STATIC UserClass* SecurityException;
-  ISOLATE_STATIC UserClass* ClassFormatError;
-  ISOLATE_STATIC UserClass* ClassCircularityError;
-  ISOLATE_STATIC UserClass* NoClassDefFoundError;
-  ISOLATE_STATIC UserClass* UnsupportedClassVersionError;
-  ISOLATE_STATIC UserClass* NoSuchFieldError;
-  ISOLATE_STATIC UserClass* NoSuchMethodError;
-  ISOLATE_STATIC UserClass* InstantiationError;
-  ISOLATE_STATIC UserClass* InstantiationException;
-  ISOLATE_STATIC UserClass* IllegalAccessError;
-  ISOLATE_STATIC UserClass* IllegalAccessException;
-  ISOLATE_STATIC UserClass* VerifyError;
-  ISOLATE_STATIC UserClass* ExceptionInInitializerError;
-  ISOLATE_STATIC UserClass* LinkageError;
-  ISOLATE_STATIC UserClass* AbstractMethodError;
-  ISOLATE_STATIC UserClass* UnsatisfiedLinkError;
-  ISOLATE_STATIC UserClass* InternalError;
-  ISOLATE_STATIC UserClass* OutOfMemoryError;
-  ISOLATE_STATIC UserClass* StackOverflowError;
-  ISOLATE_STATIC UserClass* UnknownError;
-  ISOLATE_STATIC UserClass* ClassNotFoundException;
-  ISOLATE_STATIC UserClass* ArithmeticException;
-
-  ISOLATE_STATIC JavaMethod* InitInvocationTargetException;
-  ISOLATE_STATIC JavaMethod* InitArrayStoreException;
-  ISOLATE_STATIC JavaMethod* InitClassCastException;
-  ISOLATE_STATIC JavaMethod* InitIllegalMonitorStateException;
-  ISOLATE_STATIC JavaMethod* InitIllegalArgumentException;
-  ISOLATE_STATIC JavaMethod* InitInterruptedException;
-  ISOLATE_STATIC JavaMethod* InitIndexOutOfBoundsException;
-  ISOLATE_STATIC JavaMethod* InitArrayIndexOutOfBoundsException;
-  ISOLATE_STATIC JavaMethod* InitNegativeArraySizeException;
-  ISOLATE_STATIC JavaMethod* InitNullPointerException;
-  ISOLATE_STATIC JavaMethod* InitSecurityException;
-  ISOLATE_STATIC JavaMethod* InitClassFormatError;
-  ISOLATE_STATIC JavaMethod* InitClassCircularityError;
-  ISOLATE_STATIC JavaMethod* InitNoClassDefFoundError;
-  ISOLATE_STATIC JavaMethod* InitUnsupportedClassVersionError;
-  ISOLATE_STATIC JavaMethod* InitNoSuchFieldError;
-  ISOLATE_STATIC JavaMethod* InitNoSuchMethodError;
-  ISOLATE_STATIC JavaMethod* InitInstantiationError;
-  ISOLATE_STATIC JavaMethod* InitInstantiationException;
-  ISOLATE_STATIC JavaMethod* InitIllegalAccessError;
-  ISOLATE_STATIC JavaMethod* InitIllegalAccessException;
-  ISOLATE_STATIC JavaMethod* InitVerifyError;
-  ISOLATE_STATIC JavaMethod* InitExceptionInInitializerError;
-  ISOLATE_STATIC JavaMethod* InitLinkageError;
-  ISOLATE_STATIC JavaMethod* InitAbstractMethodError;
-  ISOLATE_STATIC JavaMethod* InitUnsatisfiedLinkError;
-  ISOLATE_STATIC JavaMethod* InitInternalError;
-  ISOLATE_STATIC JavaMethod* InitOutOfMemoryError;
-  ISOLATE_STATIC JavaMethod* InitStackOverflowError;
-  ISOLATE_STATIC JavaMethod* InitUnknownError;
-  ISOLATE_STATIC JavaMethod* InitClassNotFoundException;
-  ISOLATE_STATIC JavaMethod* InitArithmeticException;
-  
-  ISOLATE_STATIC JavaMethod* IntToString;
-
-  ISOLATE_STATIC JavaMethod* InitObject;
-  ISOLATE_STATIC JavaMethod* FinalizeObject;
-
-  ISOLATE_STATIC JavaMethod* ErrorWithExcpNoClassDefFoundError;
-  ISOLATE_STATIC JavaMethod* ErrorWithExcpExceptionInInitializerError;
-  ISOLATE_STATIC JavaMethod* ErrorWithExcpInvocationTargetException;
-  
-  
-
-  ISOLATE_STATIC UserClassArray* ArrayOfByte;
-  ISOLATE_STATIC UserClassArray* ArrayOfChar;
-  ISOLATE_STATIC UserClassArray* ArrayOfInt;
-  ISOLATE_STATIC UserClassArray* ArrayOfShort;
-  ISOLATE_STATIC UserClassArray* ArrayOfBool;
-  ISOLATE_STATIC UserClassArray* ArrayOfLong;
-  ISOLATE_STATIC UserClassArray* ArrayOfFloat;
-  ISOLATE_STATIC UserClassArray* ArrayOfDouble;
-  ISOLATE_STATIC UserClassArray* ArrayOfObject;
-  ISOLATE_STATIC UserClassArray* ArrayOfString;
-  
-  ISOLATE_STATIC UserClassPrimitive* OfByte;
-  ISOLATE_STATIC UserClassPrimitive* OfChar;
-  ISOLATE_STATIC UserClassPrimitive* OfInt;
-  ISOLATE_STATIC UserClassPrimitive* OfShort;
-  ISOLATE_STATIC UserClassPrimitive* OfBool;
-  ISOLATE_STATIC UserClassPrimitive* OfLong;
-  ISOLATE_STATIC UserClassPrimitive* OfFloat;
-  ISOLATE_STATIC UserClassPrimitive* OfDouble;
-  ISOLATE_STATIC UserClassPrimitive* OfVoid;
-  
-  ISOLATE_STATIC JavaField* methodClass;
-  ISOLATE_STATIC JavaField* fieldClass;
-  ISOLATE_STATIC JavaField* constructorClass;
-  
-  ISOLATE_STATIC JavaMethod* EnqueueReference;
-  ISOLATE_STATIC Class*      newReference;
-
-private:
-  ISOLATE_STATIC void CreateJavaThread(Jnjvm* vm, JavaThread* myth,
-                                       const char* name, JavaObject* Group);
-
-public:
-  ISOLATE_STATIC void InitializeThreading(Jnjvm* vm);
-};
-
-
-} // end namespace jnjvm
-
-#endif

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp Fri Jun 19 03:26:36 2009
@@ -31,6 +31,7 @@
 #include "JavaTypes.h"
 #include "JavaUpcalls.h"
 #include "Jnjvm.h"
+#include "LinkJavaRuntime.h"
 #include "LockedMap.h"
 #include "Reader.h"
 #include "Zip.h"

Modified: vmkit/trunk/lib/Mvm/Compiler/JIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/Mvm/Compiler/JIT.cpp?rev=73763&r1=73762&r2=73763&view=diff

==============================================================================
--- vmkit/trunk/lib/Mvm/Compiler/JIT.cpp (original)
+++ vmkit/trunk/lib/Mvm/Compiler/JIT.cpp Fri Jun 19 03:26:36 2009
@@ -24,7 +24,7 @@
 #include <llvm/Target/TargetData.h>
 #include <llvm/Target/TargetMachine.h>
 #include <llvm/Target/TargetOptions.h>
-
+#include <llvm/Target/TargetSelect.h>
 
 #include "mvm/JIT.h"
 #include "mvm/Threads/Locks.h"
@@ -57,6 +57,8 @@
     globalModule = new llvm::Module("bootstrap module");
     globalModuleProvider = new ExistingModuleProvider (globalModule);
 
+    InitializeNativeTarget();
+
     executionEngine = ExecutionEngine::createJIT(globalModuleProvider, 0,
                                                  0, level);
   

Modified: vmkit/trunk/tools/jnjvm/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/jnjvm/Makefile?rev=73763&r1=73762&r2=73763&view=diff

==============================================================================
--- vmkit/trunk/tools/jnjvm/Makefile (original)
+++ vmkit/trunk/tools/jnjvm/Makefile Fri Jun 19 03:26:36 2009
@@ -11,8 +11,8 @@
 include $(LEVEL)/Makefile.config
 
 TOOLNAME = jnjvm
-USEDLIBS = Allocator CommonThread Mvm MvmCompiler JnJVM Classpath JnjvmCompiler \
-	   $(GCLIB)
+USEDLIBS = JnJVM.a Classpath.a JnjvmCompiler.a Allocator.a CommonThread.a \
+	   Mvm.a MvmCompiler.a $(GCLIB).a
 LINK_COMPONENTS = jit nativecodegen scalaropts instrumentation ipa ipo
 
 ifeq ($(ISOLATE_SHARING_BUILD), 1) 

Modified: vmkit/trunk/tools/llcj/libjnjvm/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/llcj/libjnjvm/Makefile?rev=73763&r1=73762&r2=73763&view=diff

==============================================================================
--- vmkit/trunk/tools/llcj/libjnjvm/Makefile (original)
+++ vmkit/trunk/tools/llcj/libjnjvm/Makefile Fri Jun 19 03:26:36 2009
@@ -12,6 +12,6 @@
 
 VMKIT_LIBRARYNAME = jnjvm
 VMKIT_BUILD_ARCHIVE = 1
-USEDLIBS = Allocator CommonThread Mvm JnJVM Classpath $(GCLIB)
+USEDLIBS = JnJVM.a Classpath.a Allocator.a CommonThread.a Mvm.a $(GCLIB).a
 
 include $(LEVEL)/Makefile.common

Modified: vmkit/trunk/tools/llcj/libjnjvmjit/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/llcj/libjnjvmjit/Makefile?rev=73763&r1=73762&r2=73763&view=diff

==============================================================================
--- vmkit/trunk/tools/llcj/libjnjvmjit/Makefile (original)
+++ vmkit/trunk/tools/llcj/libjnjvmjit/Makefile Fri Jun 19 03:26:36 2009
@@ -12,7 +12,7 @@
 
 VMKIT_LIBRARYNAME = jnjvmjit
 VMKIT_BUILD_ARCHIVE = 1
-USEDLIBS = Allocator CommonThread Mvm JnJVM Classpath $(GCLIB) MvmCompiler \
-	   JnjvmCompiler
+USEDLIBS = JnJVM.a Classpath.a JnjvmCompiler.a Allocator.a CommonThread.a \
+	   Mvm.a $(GCLIB).a MvmCompiler.a
 
 include $(LEVEL)/Makefile.common

Modified: vmkit/trunk/tools/n3-mono/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/n3-mono/Makefile?rev=73763&r1=73762&r2=73763&view=diff

==============================================================================
--- vmkit/trunk/tools/n3-mono/Makefile (original)
+++ vmkit/trunk/tools/n3-mono/Makefile Fri Jun 19 03:26:36 2009
@@ -12,7 +12,8 @@
 
 TOOLNAME = n3-mono
 LINK_COMPONENTS = jit nativecodegen scalaropts instrumentation ipa ipo
-USEDLIBS = Allocator CommonThread Mvm MvmCompiler N3 $(GCLIB) Mono
+USEDLIBS = N3.a Mono.a Allocator.a CommonThread.a Mvm.a MvmCompiler.a \
+	   $(GCLIB).a
 
 include $(LEVEL)/Makefile.common
 

Modified: vmkit/trunk/tools/n3-pnetlib/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/n3-pnetlib/Makefile?rev=73763&r1=73762&r2=73763&view=diff

==============================================================================
--- vmkit/trunk/tools/n3-pnetlib/Makefile (original)
+++ vmkit/trunk/tools/n3-pnetlib/Makefile Fri Jun 19 03:26:36 2009
@@ -12,7 +12,8 @@
 
 TOOLNAME = n3-pnetlib
 LINK_COMPONENTS = jit nativecodegen scalaropts instrumentation ipa ipo
-USEDLIBS = Allocator CommonThread Mvm MvmCompiler N3 $(GCLIB) PNetLib
+USEDLIBS = N3.a PNetLib.a Allocator.a CommonThread.a Mvm.a MvmCompiler.a \
+	   $(GCLIB).a
 
 include $(LEVEL)/Makefile.common
 

Modified: vmkit/trunk/tools/vmjc/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/vmjc/Makefile?rev=73763&r1=73762&r2=73763&view=diff

==============================================================================
--- vmkit/trunk/tools/vmjc/Makefile (original)
+++ vmkit/trunk/tools/vmjc/Makefile Fri Jun 19 03:26:36 2009
@@ -13,8 +13,8 @@
 EXTRA_DIST = libvmjc
 
 TOOLNAME = vmjc
-USEDLIBS = Allocator CommonThread Mvm MvmCompiler JnJVM Classpath \
-	   JnjvmCompiler $(GCLIB)
+USEDLIBS = JnJVM.a Classpath.a JnjvmCompiler.a Allocator.a CommonThread.a \
+	   Mvm.a MvmCompiler.a $(GCLIB).a
 LINK_COMPONENTS = jit nativecodegen scalaropts instrumentation ipa ipo bitwriter
 
 include $(LEVEL)/Makefile.common

Modified: vmkit/trunk/tools/vmkit/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/vmkit/Makefile?rev=73763&r1=73762&r2=73763&view=diff

==============================================================================
--- vmkit/trunk/tools/vmkit/Makefile (original)
+++ vmkit/trunk/tools/vmkit/Makefile Fri Jun 19 03:26:36 2009
@@ -11,20 +11,21 @@
 include $(LEVEL)/Makefile.config
 
 TOOLNAME = vmkit
-USEDLIBS = Allocator CommonThread Mvm MvmCompiler $(GCLIB)
 
 ifeq ($(WITH_JNJVM), 1)
-USEDLIBS += JnJVM Classpath JnjvmCompiler
+USEDLIBS += JnJVM.a Classpath.a JnjvmCompiler.a
 endif
 
 ifeq ($(ISOLATE_SHARING_BUILD), 1) 
-    USEDLIBS += Isolate
+    USEDLIBS += Isolate.a
 endif
 
 ifeq ($(WITH_N3_PNETLIB), 1)
-  USEDLIBS += N3 PNetLib
+  USEDLIBS += N3.a PNetLib.a
 endif
 
+USEDLIBS += Allocator.a CommonThread.a Mvm.a MvmCompiler.a $(GCLIB).a
+
 LINK_COMPONENTS = jit nativecodegen scalaropts instrumentation ipa ipo
 
 include $(LEVEL)/Makefile.common





More information about the vmkit-commits mailing list