[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