[vmkit-commits] [vmkit] r93132 - /vmkit/trunk/lib/J3/VMCore/JavaMetaJIT.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Sun Jan 10 13:26:21 PST 2010
Author: geoffray
Date: Sun Jan 10 15:26:20 2010
New Revision: 93132
URL: http://llvm.org/viewvc/llvm-project?rev=93132&view=rev
Log:
Code cleanup.
Modified:
vmkit/trunk/lib/J3/VMCore/JavaMetaJIT.cpp
Modified: vmkit/trunk/lib/J3/VMCore/JavaMetaJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/JavaMetaJIT.cpp?rev=93132&r1=93131&r2=93132&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/JavaMetaJIT.cpp (original)
+++ vmkit/trunk/lib/J3/VMCore/JavaMetaJIT.cpp Sun Jan 10 15:26:20 2010
@@ -75,7 +75,7 @@
//===----------------------------------------------------------------------===//
#if 1 // VA_ARGS do not work on all platforms for LLVM.
-#define INVOKE(TYPE, TYPE_NAME, FUNC_TYPE_VIRTUAL_AP, FUNC_TYPE_STATIC_AP, FUNC_TYPE_VIRTUAL_BUF, FUNC_TYPE_STATIC_BUF) \
+#define INVOKE_AP(TYPE, TYPE_NAME, FUNC_TYPE_VIRTUAL_AP, FUNC_TYPE_STATIC_AP, FUNC_TYPE_VIRTUAL_BUF, FUNC_TYPE_STATIC_BUF) \
\
TYPE JavaMethod::invoke##TYPE_NAME##VirtualAP(Jnjvm* vm, UserClass* cl, JavaObject* obj, va_list ap) { \
llvm_gcroot(obj, 0); \
@@ -100,91 +100,11 @@
jvalue* buf = (jvalue*)alloca(sign->nbArguments * sizeof(jvalue)); \
readArgs(buf, sign, ap, jni); \
return invoke##TYPE_NAME##StaticBuf(vm, cl, buf); \
-}\
-\
-TYPE JavaMethod::invoke##TYPE_NAME##VirtualBuf(Jnjvm* vm, UserClass* cl, JavaObject* obj, void* buf) {\
- llvm_gcroot(obj, 0); \
- verifyNull(obj);\
- Signdef* sign = getSignature(); \
- UserClass* objCl = obj->getClass()->isArray() ? obj->getClass()->super : obj->getClass()->asClass(); \
- JavaMethod* meth = objCl->lookupMethodDontThrow(name, type, false, true, &cl); \
- assert(meth && "No method found"); \
- void* func = meth->compiledPtr(); \
- FUNC_TYPE_VIRTUAL_BUF call = (FUNC_TYPE_VIRTUAL_BUF)sign->getVirtualCallBuf(); \
- JavaThread* th = JavaThread::get(); \
- th->startJava(); \
- TYPE res = 0; \
- DO_TRY \
- res = call(cl->getConstantPool(), func, obj, buf);\
- DO_CATCH \
- th->endJava(); \
- return res; \
-}\
-\
-TYPE JavaMethod::invoke##TYPE_NAME##SpecialBuf(Jnjvm* vm, UserClass* cl, JavaObject* obj, void* buf) {\
- llvm_gcroot(obj, 0); \
- verifyNull(obj);\
- void* func = this->compiledPtr();\
- Signdef* sign = getSignature(); \
- FUNC_TYPE_VIRTUAL_BUF call = (FUNC_TYPE_VIRTUAL_BUF)sign->getVirtualCallBuf(); \
- JavaThread* th = JavaThread::get(); \
- th->startJava(); \
- TYPE res = 0; \
- DO_TRY \
- res = call(cl->getConstantPool(), func, obj, buf);\
- DO_CATCH \
- th->endJava(); \
- return res; \
-}\
-\
-TYPE JavaMethod::invoke##TYPE_NAME##StaticBuf(Jnjvm* vm, UserClass* cl, void* buf) {\
- if (!cl->isReady()) { \
- cl->resolveClass(); \
- cl->initialiseClass(vm); \
- } \
- \
- void* func = this->compiledPtr();\
- Signdef* sign = getSignature(); \
- FUNC_TYPE_STATIC_BUF call = (FUNC_TYPE_STATIC_BUF)sign->getStaticCallBuf(); \
- JavaThread* th = JavaThread::get(); \
- th->startJava(); \
- TYPE res = 0; \
- DO_TRY \
- res = call(cl->getConstantPool(), func, buf);\
- DO_CATCH \
- th->endJava(); \
- return res; \
-}\
-\
-TYPE JavaMethod::invoke##TYPE_NAME##Virtual(Jnjvm* vm, UserClass* cl, JavaObject* obj, ...) { \
- va_list ap;\
- va_start(ap, obj);\
- llvm_gcroot(obj, 0); \
- TYPE res = invoke##TYPE_NAME##VirtualAP(vm, cl, obj, ap);\
- va_end(ap); \
- return res; \
-}\
-\
-TYPE JavaMethod::invoke##TYPE_NAME##Special(Jnjvm* vm, UserClass* cl, JavaObject* obj, ...) {\
- va_list ap;\
- va_start(ap, obj);\
- TYPE res = invoke##TYPE_NAME##SpecialAP(vm, cl, obj, ap);\
- va_end(ap); \
- return res; \
-}\
-\
-TYPE JavaMethod::invoke##TYPE_NAME##Static(Jnjvm* vm, UserClass* cl, ...) {\
- va_list ap;\
- va_start(ap, cl);\
- TYPE res = invoke##TYPE_NAME##StaticAP(vm, cl, ap);\
- va_end(ap); \
- return res; \
-}\
+}
#else
-#define INVOKE(TYPE, TYPE_NAME, FUNC_TYPE_VIRTUAL_AP, FUNC_TYPE_STATIC_AP, FUNC_TYPE_VIRTUAL_BUF, FUNC_TYPE_STATIC_BUF) \
-\
+#define INVOKE_AP(TYPE, TYPE_NAME, FUNC_TYPE_VIRTUAL_AP, FUNC_TYPE_STATIC_AP, FUNC_TYPE_VIRTUAL_BUF, FUNC_TYPE_STATIC_BUF) \
TYPE JavaMethod::invoke##TYPE_NAME##VirtualAP(Jnjvm* vm, UserClass* cl, JavaObject* obj, va_list ap) { \
llvm_gcroot(obj, 0); \
verifyNull(obj); \
@@ -237,16 +157,19 @@
DO_CATCH \
th->endJava(); \
return res; \
-}\
-\
+}
+
+#endif
+
+#define INVOKE_BUF(TYPE, TYPE_NAME, FUNC_TYPE_VIRTUAL_AP, FUNC_TYPE_STATIC_AP, FUNC_TYPE_VIRTUAL_BUF, FUNC_TYPE_STATIC_BUF) \
TYPE JavaMethod::invoke##TYPE_NAME##VirtualBuf(Jnjvm* vm, UserClass* cl, JavaObject* obj, void* buf) {\
llvm_gcroot(obj, 0); \
verifyNull(obj);\
+ Signdef* sign = getSignature(); \
UserClass* objCl = obj->getClass()->isArray() ? obj->getClass()->super : obj->getClass()->asClass(); \
JavaMethod* meth = objCl->lookupMethodDontThrow(name, type, false, true, &cl); \
assert(meth && "No method found"); \
void* func = meth->compiledPtr(); \
- Signdef* sign = getSignature(); \
FUNC_TYPE_VIRTUAL_BUF call = (FUNC_TYPE_VIRTUAL_BUF)sign->getVirtualCallBuf(); \
JavaThread* th = JavaThread::get(); \
th->startJava(); \
@@ -257,7 +180,6 @@
th->endJava(); \
return res; \
}\
-\
TYPE JavaMethod::invoke##TYPE_NAME##SpecialBuf(Jnjvm* vm, UserClass* cl, JavaObject* obj, void* buf) {\
llvm_gcroot(obj, 0); \
verifyNull(obj);\
@@ -292,7 +214,8 @@
th->endJava(); \
return res; \
}\
-\
+
+#define INVOKE_VA(TYPE, TYPE_NAME, FUNC_TYPE_VIRTUAL_AP, FUNC_TYPE_STATIC_AP, FUNC_TYPE_VIRTUAL_BUF, FUNC_TYPE_STATIC_BUF) \
TYPE JavaMethod::invoke##TYPE_NAME##Virtual(Jnjvm* vm, UserClass* cl, JavaObject* obj, ...) { \
va_list ap;\
va_start(ap, obj);\
@@ -305,7 +228,6 @@
TYPE JavaMethod::invoke##TYPE_NAME##Special(Jnjvm* vm, UserClass* cl, JavaObject* obj, ...) {\
va_list ap;\
va_start(ap, obj);\
- llvm_gcroot(obj, 0); \
TYPE res = invoke##TYPE_NAME##SpecialAP(vm, cl, obj, ap);\
va_end(ap); \
return res; \
@@ -319,7 +241,10 @@
return res; \
}\
-#endif
+#define INVOKE(TYPE, TYPE_NAME, FUNC_TYPE_VIRTUAL_AP, FUNC_TYPE_STATIC_AP, FUNC_TYPE_VIRTUAL_BUF, FUNC_TYPE_STATIC_BUF) \
+ INVOKE_AP(TYPE, TYPE_NAME, FUNC_TYPE_VIRTUAL_AP, FUNC_TYPE_STATIC_AP, FUNC_TYPE_VIRTUAL_BUF, FUNC_TYPE_STATIC_BUF) \
+ INVOKE_BUF(TYPE, TYPE_NAME, FUNC_TYPE_VIRTUAL_AP, FUNC_TYPE_STATIC_AP, FUNC_TYPE_VIRTUAL_BUF, FUNC_TYPE_STATIC_BUF) \
+ INVOKE_VA(TYPE, TYPE_NAME, FUNC_TYPE_VIRTUAL_AP, FUNC_TYPE_STATIC_AP, FUNC_TYPE_VIRTUAL_BUF, FUNC_TYPE_STATIC_BUF)
typedef uint32 (*uint32_virtual_ap)(UserConstantPool*, void*, JavaObject*, va_list);
typedef sint64 (*sint64_virtual_ap)(UserConstantPool*, void*, JavaObject*, va_list);
@@ -351,8 +276,6 @@
INVOKE(double, Double, double_virtual_ap, double_static_ap, double_virtual_buf, double_static_buf)
INVOKE(JavaObject*, JavaObject, object_virtual_ap, object_static_ap, object_virtual_buf, object_static_buf)
-#undef INVOKE
-
void Jnjvm::invokeFinalizer(gc* _obj) {
JavaObject* obj = (JavaObject*)_obj;
llvm_gcroot(obj, 0);
More information about the vmkit-commits
mailing list