[vmkit-commits] [vmkit] r198230 - Use logSize to sort the fields

Gael Thomas gael.thomas at lip6.fr
Mon Dec 30 09:59:01 PST 2013


Author: gthomas
Date: Mon Dec 30 11:59:01 2013
New Revision: 198230

URL: http://llvm.org/viewvc/llvm-project?rev=198230&view=rev
Log:
Use logSize to sort the fields

Modified:
    vmkit/branches/mcjit/lib/j3/vm/j3class.cc

Modified: vmkit/branches/mcjit/lib/j3/vm/j3class.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3class.cc?rev=198230&r1=198229&r2=198230&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3class.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3class.cc Mon Dec 30 11:59:01 2013
@@ -544,8 +544,7 @@ void J3Class::readClassBytes(std::vector
 	J3Field* pFields0[n]; size_t i0 = 0; /* sort fields by reverse size */
 	J3Field* pFields1[n]; size_t i1 = 0;
 	J3Field* pFields2[n]; size_t i2 = 0;
-	J3Field* pFields4[n]; size_t i4 = 0;
-	J3Field* pFields8[n]; size_t i8 = 0;
+	J3Field* pFields3[n]; size_t i3 = 0;
 
 	memset(fields, 0, sizeof(J3Field)*n);
 	
@@ -572,12 +571,11 @@ void J3Class::readClassBytes(std::vector
 			nbVirtualFields++;
 		}
 
-		switch(loader()->vm()->dataLayout()->getTypeSizeInBits(f->_type->llvmType())) {
-			case 1:  pFields0[i0++] = f; break;
-			case 8:  pFields1[i1++] = f; break;
-			case 16: pFields2[i2++] = f; break;
-			case 32: pFields4[i4++] = f; break;
-			case 64: pFields8[i8++] = f; break;
+		switch(f->_type->logSize()) {
+			case 0:  pFields0[i0++] = f; break;
+			case 1:  pFields1[i1++] = f; break;
+			case 2:  pFields2[i2++] = f; break;
+			case 3:  pFields3[i3++] = f; break;
 			default: J3::internalError(L"should not happen");
 		}
 	}
@@ -590,8 +588,7 @@ void J3Class::readClassBytes(std::vector
 	staticBody.push_back(loader()->vm()->typeJ3Object);
 	virtualBody->push_back(0);
 
-	fillFields(&staticBody, virtualBody, pFields8, i8);
-	fillFields(&staticBody, virtualBody, pFields4, i4);
+	fillFields(&staticBody, virtualBody, pFields3, i3);
 	fillFields(&staticBody, virtualBody, pFields2, i2);
 	fillFields(&staticBody, virtualBody, pFields1, i1);
 	fillFields(&staticBody, virtualBody, pFields0, i0);





More information about the vmkit-commits mailing list