[vmkit-commits] [vmkit] r101708 - /vmkit/trunk/lib/J3/VMCore/JavaMetaJIT.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Sun Apr 18 01:47:49 PDT 2010
Author: geoffray
Date: Sun Apr 18 03:47:49 2010
New Revision: 101708
URL: http://llvm.org/viewvc/llvm-project?rev=101708&view=rev
Log:
Optimize a bit invoke virtual on JNI calls.
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=101708&r1=101707&r2=101708&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/JavaMetaJIT.cpp (original)
+++ vmkit/trunk/lib/J3/VMCore/JavaMetaJIT.cpp Sun Apr 18 03:47:49 2010
@@ -109,7 +109,7 @@
llvm_gcroot(obj, 0); \
verifyNull(obj); \
UserClass* objCl = obj->getClass()->isArray() ? obj->getClass()->super : obj->getClass()->asClass(); \
- JavaMethod* meth = objCl->lookupMethodDontThrow(name, type, false, true, &cl); \
+ JavaMethod* meth = (objCl == classDef) ? this : objCl->lookupMethodDontThrow(name, type, false, true, &cl); \
assert(meth && "No method found"); \
void* func = meth->compiledPtr(); \
Signdef* sign = getSignature(); \
@@ -167,7 +167,7 @@
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); \
+ JavaMethod* meth = (objCl == classDef) ? this : 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(); \
More information about the vmkit-commits
mailing list