[vmkit-commits] [vmkit] r196327 - invokeInternal with a va_list uses now the invokeInternal with a J3Value*
Gael Thomas
gael.thomas at lip6.fr
Tue Dec 3 15:06:34 PST 2013
Author: gthomas
Date: Tue Dec 3 17:06:34 2013
New Revision: 196327
URL: http://llvm.org/viewvc/llvm-project?rev=196327&view=rev
Log:
invokeInternal with a va_list uses now the invokeInternal with a J3Value*
Modified:
vmkit/branches/mcjit/lib/j3/vm/j3method.cc
Modified: vmkit/branches/mcjit/lib/j3/vm/j3method.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3method.cc?rev=196327&r1=196326&r2=196327&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3method.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3method.cc Tue Dec 3 17:06:34 2013
@@ -180,38 +180,38 @@ J3Value J3Method::internalInvoke(bool st
}
J3Value J3Method::internalInvoke(bool statically, J3ObjectHandle* handle, va_list va) {
- std::vector<llvm::GenericValue> args(methodType()->nbIns());
+ J3Value* args = (J3Value*)alloca(sizeof(J3Value)*methodType()->nbIns());
J3* vm = cl()->loader()->vm();
J3Type* cur;
uint32_t i = 0;
if(handle)
- args[i++].PointerVal = handle->obj();
+ args[i++].valObject = handle;
for(; i<methodType()->nbIns(); i++) { /* have to avoid collection at this point */
cur = methodType()->ins(i);
if(cur == vm->typeBoolean)
- args[i].IntVal = va_arg(va, bool);
+ args[i].valBoolean = va_arg(va, bool);
else if(cur == vm->typeByte)
- args[i].IntVal = va_arg(va, int8_t);
+ args[i].valByte = va_arg(va, int8_t);
else if(cur == vm->typeShort)
- args[i].IntVal = va_arg(va, int16_t);
+ args[i].valShort = va_arg(va, int16_t);
else if(cur == vm->typeChar)
- args[i].IntVal = va_arg(va, uint16_t);
+ args[i].valChar = va_arg(va, uint16_t);
else if(cur == vm->typeInteger)
- args[i].IntVal = va_arg(va, int32_t);
+ args[i].valInteger = va_arg(va, int32_t);
else if(cur == vm->typeLong)
- args[i].IntVal = va_arg(va, int64_t);
+ args[i].valLong = va_arg(va, int64_t);
else if(cur == vm->typeFloat)
- args[i].FloatVal = va_arg(va, float);
+ args[i].valFloat = va_arg(va, float);
else if(cur == vm->typeDouble)
- args[i].FloatVal = va_arg(va, double);
+ args[i].valDouble = va_arg(va, double);
else
- args[i].PointerVal = va_arg(va, J3ObjectHandle*)->obj();
+ args[i].valObject = va_arg(va, J3ObjectHandle*);
}
- return internalInvoke(statically, &args);
+ return internalInvoke(statically, 0, args);
}
J3Value J3Method::internalInvoke(bool statically, J3ObjectHandle* handle, J3Value* inArgs) {
More information about the vmkit-commits
mailing list