[vmkit-commits] [vmkit] r198217 - cast the llvmDescriptor into a J3LayoutPtr before calling size()

Gael Thomas gael.thomas at lip6.fr
Mon Dec 30 08:47:22 PST 2013


Author: gthomas
Date: Mon Dec 30 10:47:22 2013
New Revision: 198217

URL: http://llvm.org/viewvc/llvm-project?rev=198217&view=rev
Log:
cast the llvmDescriptor into a J3LayoutPtr before calling size()

Modified:
    vmkit/branches/mcjit/include/j3/j3.h
    vmkit/branches/mcjit/lib/j3/vm/j3.cc
    vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc

Modified: vmkit/branches/mcjit/include/j3/j3.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3.h?rev=198217&r1=198216&r2=198217&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3.h (original)
+++ vmkit/branches/mcjit/include/j3/j3.h Mon Dec 30 10:47:22 2013
@@ -82,6 +82,7 @@ namespace j3 {
 		llvm::Type* typeJ3VirtualTablePtr;
 		llvm::Type* typeJ3Type;
 		llvm::Type* typeJ3TypePtr;
+		llvm::Type* typeJ3LayoutPtr;
 		llvm::Type* typeJ3Thread;
 		llvm::Type* typeJ3ObjectTypePtr;
 		llvm::Type* typeJ3Class;

Modified: vmkit/branches/mcjit/lib/j3/vm/j3.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3.cc?rev=198217&r1=198216&r2=198217&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3.cc Mon Dec 30 10:47:22 2013
@@ -46,6 +46,7 @@ void J3::introspect() {
 	typeJ3VirtualTablePtr   = llvm::PointerType::getUnqual(introspectType("class.j3::J3VirtualTable"));
 	typeJ3Type              = introspectType("class.j3::J3Type");
 	typeJ3TypePtr           = llvm::PointerType::getUnqual(typeJ3Type);
+	typeJ3LayoutPtr         = llvm::PointerType::getUnqual(introspectType("class.j3::J3Layout"));
 	typeJ3ObjectTypePtr     = llvm::PointerType::getUnqual(introspectType("class.j3::J3ObjectType"));
 	typeJ3Thread            = llvm::PointerType::getUnqual(introspectType("class.j3::J3Thread"));
 	typeJ3Class             = introspectType("class.j3::J3Class");

Modified: vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc?rev=198217&r1=198216&r2=198217&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc Mon Dec 30 10:47:22 2013
@@ -513,7 +513,7 @@ void J3CodeGen::newObject(J3Class* cl) {
 	llvm::Value* size;
 
 	if(!cl->isResolved()) {
-		size = builder->CreateCall(funcJ3LayoutSize, cl->llvmDescriptor(module()));
+		size = builder->CreateCall(funcJ3LayoutSize, builder->CreateBitCast(cl->llvmDescriptor(module()), vm->typeJ3LayoutPtr));
 	} else {
 		size = builder->getInt64(cl->size());
 	}





More information about the vmkit-commits mailing list