[vmkit-commits] [vmkit] r54735 - in /vmkit/trunk/lib/JnJVM/VMCore: JavaRuntime.h JavaRuntimeJIT.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Wed Aug 13 07:34:47 PDT 2008
Author: geoffray
Date: Wed Aug 13 09:34:45 2008
New Revision: 54735
URL: http://llvm.org/viewvc/llvm-project?rev=54735&view=rev
Log:
Delete unused files.
Removed:
vmkit/trunk/lib/JnJVM/VMCore/JavaRuntime.h
vmkit/trunk/lib/JnJVM/VMCore/JavaRuntimeJIT.cpp
Removed: vmkit/trunk/lib/JnJVM/VMCore/JavaRuntime.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaRuntime.h?rev=54734&view=auto
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaRuntime.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaRuntime.h (removed)
@@ -1,397 +0,0 @@
-//===------- JavaRuntime.h - Definition of the Java runtime ---------------===//
-//
-// JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the Java runtime LLVM requires to execute Java programs.
-// The LLVM IR will perform JVM calls or access global variables that will
-// be defined at runtime.
-//
-// A clean implementation will create global variables and functions for each
-// module. Currently we don't do this, and the verifier pass in LLVM does not
-// like it.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef JNJVM_JAVA_RUNTIME_H
-#define JNJVM_JAVA_RUNTIME_H
-
-#include <map>
-
-#include "llvm/Constant.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Function.h"
-#include "llvm/GlobalVariable.h"
-#include "llvm/Module.h"
-#include "llvm/Type.h"
-#include "llvm/Value.h"
-
-#include "mvm/JIT.h"
-
-#include "JavaClass.h"
-#include "JavaTypes.h"
-
-namespace jnjvm {
-
-class CommonClass;
-class Class;
-class JavaField;
-class JavaMethod;
-class JavaObject;
-class JavaJIT;
-class JavaRuntime;
-class Signdef;
-
-class LLVMAssessorInfo {
-public:
- const llvm::Type* llvmType;
- const llvm::Type* llvmTypePtr;
- llvm::Constant* llvmNullConstant;
- llvm::ConstantInt* sizeInBytesConstant;
-
- static void initialise();
- static LLVMAssessorInfo AssessorInfo[];
-
-};
-
-
-class LLVMCommonClassInfo : public mvm::JITInfo {
-
- friend class JavaRuntime;
-
-protected:
- CommonClass* classDef;
-
-private:
- /// varGV - The LLVM global variable representing this class.
- ///
- llvm::GlobalVariable* varGV;
-
-#ifndef MULTIPLE_VM
- /// delegateeGV - The LLVM global variable representing the
- /// java/lang/Class instance of this class.
- llvm::GlobalVariable* delegateeGV;
-#endif
-
-
-public:
- llvm::Value* getVar(JavaJIT* jit);
- llvm::Value* getDelegatee(JavaJIT* jit);
-
- LLVMCommonClassInfo(CommonClass* cl) :
- classDef(cl),
- varGV(0)
-#ifndef MULTIPLE_VM
- ,delegateeGV(0)
-#endif
- {}
-};
-
-class LLVMClassInfo : public LLVMCommonClassInfo {
- friend class JavaRuntime;
-private:
- /// virtualSizeLLVM - The LLVM constant size of instances of this class.
- ///
- llvm::ConstantInt* virtualSizeConstant;
-
-#ifndef MULTIPLE_VM
- llvm::GlobalVariable* staticVarGV;
-#endif
-
- llvm::GlobalVariable* virtualTableGV;
- llvm::Function* virtualTracerFunction;
- llvm::Function* staticTracerFunction;
- /// virtualType - The LLVM type of instance of this class.
- ///
- const llvm::Type * virtualType;
-
- /// staticType - The LLVM type of the static instance of this class.
- ///
- const llvm::Type * staticType;
-public:
-
- llvm::Value* getStaticVar(JavaJIT* jit);
- llvm::Value* getVirtualTable(JavaJIT* jit);
- llvm::Value* getVirtualSize(JavaJIT* jit);
- llvm::Function* getStaticTracer();
- llvm::Function* getVirtualTracer();
- const llvm::Type* getVirtualType();
- const llvm::Type* getStaticType();
-
- LLVMClassInfo(CommonClass* cl) :
- LLVMCommonClassInfo(cl),
- virtualSizeConstant(0),
-#ifndef MULITPLE_VM
- staticVarGV(0),
-#endif
- virtualTableGV(0),
- virtualTracerFunction(0),
- staticTracerFunction(0),
- virtualType(0),
- staticType(0) {}
-};
-
-class LLVMMethodInfo : public mvm::JITInfo {
-private:
- JavaMethod* methodDef;
-
- llvm::Function* methodFunction;
- llvm::ConstantInt* offsetConstant;
- const llvm::FunctionType* functionType;
-
-public:
- llvm::Function* getMethod();
- llvm::ConstantInt* getOffset();
- const llvm::FunctionType* getFunctionType();
-
- LLVMMethodInfo(JavaMethod* M) :
- methodDef(M),
- methodFunction(0),
- offsetConstant(0),
- functionType(0) {}
-};
-
-class LLVMFieldInfo : public mvm::JITInfo {
-private:
- JavaField* fieldDef;
-
- llvm::ConstantInt* offsetConstant;
-
-public:
- llvm::ConstantInt* getOffset();
-
- LLVMFieldInfo(JavaField* F) :
- fieldDef(F),
- offsetConstant(0) {}
-};
-
-class LLVMSignatureInfo : public mvm::JITInfo {
-private:
- const llvm::FunctionType* staticType;
- const llvm::FunctionType* virtualType;
- const llvm::FunctionType* nativeType;
-
- const llvm::FunctionType* virtualBufType;
- const llvm::FunctionType* staticBufType;
-
- const llvm::PointerType* staticPtrType;
- const llvm::PointerType* virtualPtrType;
- const llvm::PointerType* nativePtrType;
-
- llvm::Function* virtualBufFunction;
- llvm::Function* virtualAPFunction;
- llvm::Function* staticBufFunction;
- llvm::Function* staticAPFunction;
-
- Signdef* signature;
-
- llvm::Function* createFunctionCallBuf(bool virt);
- llvm::Function* createFunctionCallAP(bool virt);
-
-
-
-public:
- const llvm::FunctionType* getVirtualType();
- const llvm::FunctionType* getStaticType();
- const llvm::FunctionType* getNativeType();
-
- const llvm::FunctionType* getVirtualBufType();
- const llvm::FunctionType* getStaticBufType();
-
- const llvm::PointerType* getStaticPtrType();
- const llvm::PointerType* getNativePtrType();
- const llvm::PointerType* getVirtualPtrType();
-
- llvm::Function* getVirtualBuf();
- llvm::Function* getVirtualAP();
- llvm::Function* getStaticBuf();
- llvm::Function* getStaticAP();
-
- LLVMSignatureInfo(Signdef* sign) :
- staticType(0),
- virtualType(0),
- nativeType(0),
- virtualBufType(0),
- staticBufType(0),
- staticPtrType(0),
- virtualPtrType(0),
- nativePtrType(0),
- virtualBufFunction(0),
- virtualAPFunction(0),
- staticBufFunction(0),
- staticAPFunction(0),
- signature(sign) {}
-
-};
-
-#ifdef SERVICE_VM
-class LLVMServiceInfo : public mvm::JITInfo {
-private:
- ServiceDomain* vm;
- llvm::GlobalVariable* delegateeGV;
-
-public:
- llvm::Value* getDelegatee(JavaJIT* jit);
-};
-#endif
-
-class JavaRuntime {
- friend class LLVMClassInfo;
-private:
-
- static VirtualTable* makeVT(Class* cl, bool stat);
- static VirtualTable* allocateVT(Class* cl, CommonClass::method_iterator meths);
-
-
-public:
-
- static llvm::ConstantInt* JavaArraySizeOffsetConstant;
- static llvm::ConstantInt* JavaArrayElementsOffsetConstant;
- static llvm::ConstantInt* JavaObjectLockOffsetConstant;
- static llvm::ConstantInt* JavaObjectClassOffsetConstant;
-
- static const llvm::Type* JavaArrayUInt8Type;
- static const llvm::Type* JavaArraySInt8Type;
- static const llvm::Type* JavaArrayUInt16Type;
- static const llvm::Type* JavaArraySInt16Type;
- static const llvm::Type* JavaArrayUInt32Type;
- static const llvm::Type* JavaArraySInt32Type;
- static const llvm::Type* JavaArrayLongType;
- static const llvm::Type* JavaArrayFloatType;
- static const llvm::Type* JavaArrayDoubleType;
- static const llvm::Type* JavaArrayObjectType;
-
- static const llvm::Type* VTType;
- static const llvm::Type* JavaObjectType;
- static const llvm::Type* JavaArrayType;
- static const llvm::Type* JavaClassType;
- static const llvm::Type* JavaCacheType;
- static const llvm::Type* EnveloppeType;
- static const llvm::Type* CacheNodeType;
-
-#ifdef WITH_TRACER
- static llvm::Function* MarkAndTraceFunction;
- static const llvm::FunctionType* MarkAndTraceType;
- static llvm::Function* JavaObjectTracerFunction;
-#endif
-
- static llvm::Function* GetSJLJBufferFunction;
- static llvm::Function* InterfaceLookupFunction;
- static llvm::Function* FieldLookupFunction;
- static llvm::Function* PrintExecutionFunction;
- static llvm::Function* PrintMethodStartFunction;
- static llvm::Function* PrintMethodEndFunction;
- static llvm::Function* JniProceedPendingExceptionFunction;
- static llvm::Function* InitialisationCheckFunction;
- static llvm::Function* ForceInitialisationCheckFunction;
- static llvm::Function* ClassLookupFunction;
-#ifndef WITHOUT_VTABLE
- static llvm::Function* VirtualLookupFunction;
-#endif
- static llvm::Function* InstanceOfFunction;
- static llvm::Function* IsAssignableFromFunction;
- static llvm::Function* ImplementsFunction;
- static llvm::Function* InstantiationOfArrayFunction;
- static llvm::Function* GetDepthFunction;
- static llvm::Function* GetClassInDisplayFunction;
- static llvm::Function* GetDisplayFunction;
- static llvm::Function* AquireObjectFunction;
- static llvm::Function* ReleaseObjectFunction;
-#ifdef SERVICE_VM
- static llvm::Function* AquireObjectInSharedDomainFunction;
- static llvm::Function* ReleaseObjectInSharedDomainFunction;
- static llvm::Function* ServiceCallStartFunction;
- static llvm::Function* ServiceCallStopFunction;
-#endif
- static llvm::Function* MultiCallNewFunction;
- static llvm::Function* RuntimeUTF8ToStrFunction;
- static llvm::Function* GetStaticInstanceFunction;
- static llvm::Function* GetClassDelegateeFunction;
- static llvm::Function* ArrayLengthFunction;
- static llvm::Function* GetVTFunction;
- static llvm::Function* GetClassFunction;
- static llvm::Function* JavaObjectAllocateFunction;
-#ifdef MULTIPLE_GC
- static llvm::Function* GetCollectorFunction;
-#endif
- static llvm::Function* GetVTFromClassFunction;
- static llvm::Function* GetObjectSizeFromClassFunction;
-
- static llvm::Function* GetLockFunction;
- static llvm::Function* GetThreadIDFunction;
- static llvm::Function* OverflowThinLockFunction;
-
- static llvm::ConstantInt* OffsetObjectSizeInClassConstant;
- static llvm::ConstantInt* OffsetVTInClassConstant;
- static llvm::ConstantInt* OffsetDepthInClassConstant;
- static llvm::ConstantInt* OffsetDisplayInClassConstant;
-
- static llvm::Constant* JavaClassNullConstant;
-
- static llvm::Constant* JavaObjectNullConstant;
- static llvm::Constant* UTF8NullConstant;
- static llvm::Constant* MaxArraySizeConstant;
- static llvm::Constant* JavaObjectSizeConstant;
-
- static llvm::GlobalVariable* ArrayObjectVirtualTableGV;
- static llvm::GlobalVariable* JavaObjectVirtualTableGV;
-
- static llvm::Function* GetExceptionFunction;
- static llvm::Function* GetJavaExceptionFunction;
- static llvm::Function* ThrowExceptionFunction;
- static llvm::Function* ClearExceptionFunction;
- static llvm::Function* CompareExceptionFunction;
- static llvm::Function* NullPointerExceptionFunction;
- static llvm::Function* IndexOutOfBoundsExceptionFunction;
- static llvm::Function* ClassCastExceptionFunction;
- static llvm::Function* OutOfMemoryErrorFunction;
- static llvm::Function* NegativeArraySizeExceptionFunction;
-
- static void InitField(JavaField* field);
- static void InitField(JavaField* field, JavaObject* obj, uint64 val = 0);
- static void InitField(JavaField* field, JavaObject* obj, JavaObject* val);
- static void InitField(JavaField* field, JavaObject* obj, double val);
- static void InitField(JavaField* field, JavaObject* obj, float val);
-
-
- static void resolveVirtualClass(Class* cl);
- static void resolveStaticClass(Class* cl);
- static void setMethod(JavaMethod* meth, const char* name);
- static void* getMethod(JavaMethod* meth);
-
- static LLVMSignatureInfo* getSignatureInfo(Signdef* sign) {
- return sign->getInfo<LLVMSignatureInfo>();
- }
-
- static LLVMCommonClassInfo* getClassInfo(CommonClass* cl) {
- if (cl->isArray || cl->isPrimitive) {
- return cl->getInfo<LLVMCommonClassInfo>();
- } else {
- return cl->getInfo<LLVMClassInfo>();
- }
- }
-
- static LLVMFieldInfo* getFieldInfo(JavaField* field) {
- return field->getInfo<LLVMFieldInfo>();
- }
-
- static LLVMMethodInfo* getMethodInfo(JavaMethod* method) {
- return method->getInfo<LLVMMethodInfo>();
- }
-
-#ifdef SERVICE_VM
- static LLVMServiceInfo* getServiceInfo(ServiceDomain* service) {
- return service->getInfo<LLVMServiceInfo>();
- }
-#endif
-
- static void initialise(llvm::Module* mod);
-};
-
-}
-
-#endif
Removed: vmkit/trunk/lib/JnJVM/VMCore/JavaRuntimeJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaRuntimeJIT.cpp?rev=54734&view=auto
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaRuntimeJIT.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaRuntimeJIT.cpp (removed)
@@ -1,358 +0,0 @@
-//===-------------------- JavaRuntimeJIT.cpp ------------------------------===//
-//=== ---- Runtime functions called by code compiled by the JIT -----------===//
-//
-// JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include <stdarg.h>
-
-#include "mvm/JIT.h"
-#include "mvm/Threads/Thread.h"
-
-#include "JavaArray.h"
-#include "JavaCache.h"
-#include "JavaClass.h"
-#include "JavaConstantPool.h"
-#include "JavaJIT.h"
-#include "JavaString.h"
-#include "JavaThread.h"
-#include "JavaTypes.h"
-#include "Jnjvm.h"
-#include "JnjvmModule.h"
-#include "LockedMap.h"
-
-#ifdef SERVICE_VM
-#include "ServiceDomain.h"
-#endif
-
-using namespace jnjvm;
-
-extern "C" JavaString* runtimeUTF8ToStr(const UTF8* val) {
- Jnjvm* vm = JavaThread::get()->isolate;
- return vm->UTF8ToStr(val);
-}
-
-extern "C" void* jnjvmVirtualLookup(CacheNode* cache, JavaObject *obj) {
- Enveloppe* enveloppe = cache->enveloppe;
- JavaCtpInfo* ctpInfo = enveloppe->ctpInfo;
- CommonClass* ocl = obj->classOf;
- CommonClass* cl = 0;
- const UTF8* utf8 = 0;
- Signdef* sign = 0;
- uint32 index = enveloppe->index;
-
- ctpInfo->resolveInterfaceOrMethod(index, cl, utf8, sign);
-
- enveloppe->cacheLock->lock();
- CacheNode* rcache = 0;
- CacheNode* tmp = enveloppe->firstCache;
- CacheNode* last = tmp;
-
- while (tmp) {
- if (ocl == tmp->lastCible) {
- rcache = tmp;
- break;
- } else {
- last = tmp;
- tmp = tmp->next;
- }
- }
-
- if (!rcache) {
- JavaMethod* dmeth = ocl->lookupMethod(utf8, sign->keyName, false, true);
- if (cache->methPtr) {
- rcache = new CacheNode(enveloppe);
- } else {
- rcache = cache;
- }
-
- rcache->methPtr = dmeth->compiledPtr();
- rcache->lastCible = (Class*)ocl;
-
- }
-
- if (enveloppe->firstCache != rcache) {
- CacheNode *f = enveloppe->firstCache;
- enveloppe->firstCache = rcache;
- last->next = rcache->next;
- rcache->next = f;
- }
-
- enveloppe->cacheLock->unlock();
-
- return rcache->methPtr;
-}
-
-extern "C" void* fieldLookup(JavaObject* obj, Class* caller, uint32 index,
- uint32 stat, void** ifStatic, uint32* offset) {
- JavaCtpInfo* ctpInfo = caller->ctpInfo;
- if (ctpInfo->ctpRes[index]) {
- JavaField* field = (JavaField*)(ctpInfo->ctpRes[index]);
- field->classDef->initialiseClass();
- if (stat) obj = field->classDef->staticInstance();
- void* ptr = (void*)(field->ptrOffset + (uint64)obj);
-#ifndef MULTIPLE_VM
- if (stat) *ifStatic = ptr;
- *offset = (uint32)field->ptrOffset;
-#endif
- return ptr;
- }
-
- CommonClass* cl = 0;
- const UTF8* utf8 = 0;
- Typedef* sign = 0;
-
- ctpInfo->resolveField(index, cl, utf8, sign);
-
- JavaField* field = cl->lookupField(utf8, sign->keyName, stat, true);
- field->classDef->initialiseClass();
-
- if (stat) obj = ((Class*)cl)->staticInstance();
- void* ptr = (void*)((uint64)obj + field->ptrOffset);
-
- ctpInfo->ctpRes[index] = field;
-#ifndef MULTIPLE_VM
- if (stat) *ifStatic = ptr;
- *offset = (uint32)field->ptrOffset;
-#endif
-
- return ptr;
-}
-
-extern "C" void printMethodStart(JavaMethod* meth) {
- printf("[%d] executing %s\n", mvm::Thread::self(), meth->printString());
- fflush(stdout);
-}
-
-extern "C" void printMethodEnd(JavaMethod* meth) {
- printf("[%d] return from %s\n", mvm::Thread::self(), meth->printString());
- fflush(stdout);
-}
-
-extern "C" void printExecution(char* opcode, uint32 index, JavaMethod* meth) {
- printf("[%d] executing %s %s at %d\n", mvm::Thread::self(), meth->printString(),
- opcode, index);
- fflush(stdout);
-}
-
-extern "C" void jniProceedPendingException() {
- JavaThread* th = JavaThread::get();
- jmp_buf* buf = th->sjlj_buffers.back();
- th->sjlj_buffers.pop_back();
- free(buf);
- if (JavaThread::get()->pendingException) {
- th->throwPendingException();
- }
-}
-
-extern "C" void* getSJLJBuffer() {
- JavaThread* th = JavaThread::get();
- void** buf = (void**)malloc(sizeof(jmp_buf));
- th->sjlj_buffers.push_back((jmp_buf*)buf);
- return (void*)buf;
-}
-
-extern "C" void jnjvmNullPointerException() {
- JavaThread::get()->isolate->nullPointerException("null");
-}
-
-extern "C" void negativeArraySizeException(sint32 val) {
- JavaThread::get()->isolate->negativeArraySizeException(val);
-}
-
-extern "C" void outOfMemoryError(sint32 val) {
- JavaThread::get()->isolate->outOfMemoryError(val);
-}
-
-extern "C" void jnjvmClassCastException(JavaObject* obj, CommonClass* cl) {
- JavaThread::get()->isolate->classCastException("");
-}
-
-extern "C" void indexOutOfBoundsException(JavaObject* obj, sint32 index) {
- JavaThread::get()->isolate->indexOutOfBounds(obj, index);
-}
-
-#ifdef MULTIPLE_VM
-extern "C" JavaObject* getStaticInstance(Class* cl, Jnjvm* vm) {
- std::pair<JavaState, JavaObject*>* val = vm->statics->lookup(cl);
- if (!val || !(val->second)) {
- cl->initialiseClass();
- val = vm->statics->lookup(cl);
- }
- return val->second;
-}
-#endif
-
-extern "C" CommonClass* initialisationCheck(CommonClass* cl) {
- cl->isolate->initialiseClass(cl);
- return cl;
-}
-
-extern "C" JavaObject* getClassDelegatee(CommonClass* cl) {
-#ifdef MULTIPLE_VM
- Jnjvm* vm = JavaThread::get()->isolate;
-#else
- Jnjvm* vm = cl->isolate;
-#endif
- return vm->getClassDelegatee(cl);
-}
-
-extern "C" Class* newLookup(Class* caller, uint32 index, Class** toAlloc,
- uint32 clinit) {
- JavaCtpInfo* ctpInfo = caller->ctpInfo;
- Class* cl = (Class*)ctpInfo->loadClass(index);
- cl->resolveClass(clinit);
-
- *toAlloc = cl;
- return cl;
-}
-
-#ifndef WITHOUT_VTABLE
-extern "C" uint32 vtableLookup(JavaObject* obj, Class* caller, uint32 index,
- uint32* offset) {
- CommonClass* cl = 0;
- const UTF8* utf8 = 0;
- Signdef* sign = 0;
-
- caller->ctpInfo->resolveInterfaceOrMethod(index, cl, utf8, sign);
- JavaMethod* dmeth = cl->lookupMethodDontThrow(utf8, sign->keyName, false,
- true);
- if (!dmeth) {
- // Arg, it should have been an invoke interface.... Perform the lookup
- // on the object class and do not update offset.
- dmeth = obj->classOf->lookupMethod(utf8, sign->keyName, false, true);
- return dmeth->offset;
- }
- *offset = dmeth->offset;
- return *offset;
-}
-#endif
-
-
-static JavaArray* multiCallNewIntern(arrayCtor_t ctor, ClassArray* cl,
- uint32 len,
- sint32* dims,
- Jnjvm* vm) {
- if (len <= 0) JavaThread::get()->isolate->unknownError("Can not happen");
- JavaArray* _res = ctor(dims[0], cl, vm);
- if (len > 1) {
- ArrayObject* res = (ArrayObject*)_res;
- CommonClass* _base = cl->baseClass();
- if (_base->isArray) {
- ClassArray* base = (ClassArray*)_base;
- AssessorDesc* func = base->funcs();
- arrayCtor_t newCtor = func->arrayCtor;
- if (dims[0] > 0) {
- for (sint32 i = 0; i < dims[0]; ++i) {
- res->elements[i] = multiCallNewIntern(newCtor, base, (len - 1),
- &dims[1], vm);
- }
- } else {
- for (uint32 i = 1; i < len; ++i) {
- sint32 p = dims[i];
- if (p < 0) JavaThread::get()->isolate->negativeArraySizeException(p);
- }
- }
- } else {
- JavaThread::get()->isolate->unknownError("Can not happen");
- }
- }
- return _res;
-}
-
-extern "C" JavaArray* multiCallNew(ClassArray* cl, uint32 len, ...) {
- va_list ap;
- va_start(ap, len);
- sint32* dims = (sint32*)alloca(sizeof(sint32) * len);
- for (uint32 i = 0; i < len; ++i){
- dims[i] = va_arg(ap, int);
- }
-#ifdef MULTIPLE_VM
- Jnjvm* vm = va_arg(ap, Jnjvm*);
-#else
- Jnjvm* vm = 0;
-#endif
- return multiCallNewIntern((arrayCtor_t)ArrayObject::acons, cl, len, dims, vm);
-}
-
-extern "C" void JavaObjectAquire(JavaObject* obj) {
-#ifdef SERVICE_VM
- ServiceDomain* vm = (ServiceDomain*)JavaThread::get()->isolate;
- if (!(vm->GC->isMyObject(obj))) {
- vm->serviceError(vm, "I'm locking an object I don't own");
- }
-#endif
- obj->acquire();
-}
-
-
-extern "C" void JavaObjectRelease(JavaObject* obj) {
- verifyNull(obj);
-#ifdef SERVICE_VM
- ServiceDomain* vm = (ServiceDomain*)JavaThread::get()->isolate;
- if (!(vm->GC->isMyObject(obj))) {
- vm->serviceError(vm, "I'm unlocking an object I don't own");
- }
-#endif
- obj->release();
-}
-
-#ifdef SERVICE_VM
-extern "C" void JavaObjectAquireInSharedDomain(JavaObject* obj) {
- verifyNull(obj);
- obj->acquire();
-}
-
-extern "C" void JavaObjectReleaseInSharedDomain(JavaObject* obj) {
- verifyNull(obj);
- obj->release();
-}
-#endif
-
-extern "C" bool instanceOf(JavaObject* obj, CommonClass* cl) {
- return obj->instanceOf(cl);
-}
-
-extern "C" bool instantiationOfArray(CommonClass* cl1, ClassArray* cl2) {
- return cl1->instantiationOfArray(cl2);
-}
-
-extern "C" bool implements(CommonClass* cl1, CommonClass* cl2) {
- return cl1->implements(cl2);
-}
-
-extern "C" bool isAssignableFrom(CommonClass* cl1, CommonClass* cl2) {
- return cl1->isAssignableFrom(cl2);
-}
-
-extern "C" void* JavaThreadGetException() {
- return JavaThread::getException();
-}
-
-extern "C" void JavaThreadThrowException(JavaObject* obj) {
- return JavaThread::throwException(obj);
-}
-
-extern "C" JavaObject* JavaThreadGetJavaException() {
- return JavaThread::getJavaException();
-}
-
-extern "C" bool JavaThreadCompareException(Class* cl) {
- return JavaThread::compareException(cl);
-}
-
-extern "C" void JavaThreadClearException() {
- return JavaThread::clearException();
-}
-
-extern "C" uint32 getThreadID() {
- return JavaThread::get()->threadID;
-}
-
-extern "C" void overflowThinLock(JavaObject* obj) {
- obj->overflowThinlock();
-}
More information about the vmkit-commits
mailing list