[vmkit-commits] [vmkit] r59367 - in /vmkit/trunk/lib/JnJVM/VMCore: JavaArray.h JavaClass.cpp JavaJITOpcodes.cpp JnjvmModule.cpp JnjvmModule.h
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Sat Nov 15 08:42:32 PST 2008
Author: geoffray
Date: Sat Nov 15 10:42:30 2008
New Revision: 59367
URL: http://llvm.org/viewvc/llvm-project?rev=59367&view=rev
Log:
Change allocation of an array to consider the new ssize_t type
of the size field.
Modified:
vmkit/trunk/lib/JnJVM/VMCore/JavaArray.h
vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
vmkit/trunk/lib/JnJVM/VMCore/JavaJITOpcodes.cpp
vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp
vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaArray.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaArray.h?rev=59367&r1=59366&r2=59367&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaArray.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaArray.h Sat Nov 15 10:42:30 2008
@@ -119,7 +119,8 @@
/// its objects in permanent memory, not with the garbage collector.
void* operator new(size_t sz, mvm::BumpPtrAllocator& allocator,
sint32 size) {
- return allocator.Allocate(sz + size * sizeof(uint16));
+ return allocator.Allocate(sizeof(JavaObject) + sizeof(ssize_t) +
+ size * sizeof(uint16));
}
/// acons - Allocates an UTF8 in permanent memory. The class argument must be
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp?rev=59367&r1=59366&r2=59367&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp Sat Nov 15 10:42:30 2008
@@ -360,7 +360,7 @@
assert(cl && virtualVT && "array class not resolved");
uint32 primSize = cl->isPrimitive() ? cl->virtualSize : sizeof(JavaObject*);
- uint32 size = sizeof(JavaObject) + sizeof(sint32) + n * primSize;
+ uint32 size = sizeof(JavaObject) + sizeof(ssize_t) + n * primSize;
JavaArray* res = (JavaArray*)allocator.allocateManagedObject(size,
virtualVT);
res->initialise(this);
@@ -373,7 +373,7 @@
assert(cl && virtualVT && "array class not resolved");
uint32 primSize = cl->isPrimitive() ? cl->virtualSize : sizeof(JavaObject*);
- uint32 size = sizeof(JavaObject) + sizeof(sint32) + n * primSize;
+ uint32 size = sizeof(JavaObject) + sizeof(ssize_t) + n * primSize;
JavaArray* res = (JavaArray*)allocator.Allocate(size);
((void**)res)[0] = virtualVT;
res->initialise(this);
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaJITOpcodes.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaJITOpcodes.cpp?rev=59367&r1=59366&r2=59367&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaJITOpcodes.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaJITOpcodes.cpp Sat Nov 15 10:42:30 2008
@@ -1927,7 +1927,7 @@
Value* mult = BinaryOperator::CreateMul(arg1, sizeElement, "",
currentBlock);
Value* size =
- BinaryOperator::CreateAdd(module->JavaObjectSizeConstant, mult,
+ BinaryOperator::CreateAdd(module->JavaArraySizeConstant, mult,
"", currentBlock);
assert(TheVT && "Not VT");
std::vector<Value*> args;
Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp?rev=59367&r1=59366&r2=59367&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp Sat Nov 15 10:42:30 2008
@@ -51,6 +51,7 @@
llvm::Constant* JnjvmModule::JavaClassNullConstant;
llvm::Constant* JnjvmModule::MaxArraySizeConstant;
llvm::Constant* JnjvmModule::JavaObjectSizeConstant;
+llvm::Constant* JnjvmModule::JavaArraySizeConstant;
llvm::ConstantInt* JnjvmModule::OffsetObjectSizeInClassConstant;
llvm::ConstantInt* JnjvmModule::OffsetVTInClassConstant;
llvm::ConstantInt* JnjvmModule::OffsetDepthInClassConstant;
@@ -977,6 +978,8 @@
MaxArraySizeConstant = ConstantInt::get(Type::Int32Ty,
JavaArray::MaxArraySize);
JavaObjectSizeConstant = ConstantInt::get(Type::Int32Ty, sizeof(JavaObject));
+ JavaArraySizeConstant =
+ ConstantInt::get(Type::Int32Ty, sizeof(JavaObject) + sizeof(ssize_t));
JavaArrayElementsOffsetConstant = mvm::MvmModule::constantTwo;
Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h?rev=59367&r1=59366&r2=59367&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h Sat Nov 15 10:42:30 2008
@@ -330,6 +330,7 @@
static llvm::Constant* UTF8NullConstant;
static llvm::Constant* MaxArraySizeConstant;
static llvm::Constant* JavaObjectSizeConstant;
+ static llvm::Constant* JavaArraySizeConstant;
llvm::Function* GetExceptionFunction;
llvm::Function* GetJavaExceptionFunction;
More information about the vmkit-commits
mailing list