[vmkit-commits] [vmkit] r145900 - in /vmkit/trunk: lib/j3/Compiler/JavaAOTCompiler.cpp mmtk/mmtk-j3/MMTkObject.h

Will Dietz wdietz2 at illinois.edu
Mon Dec 5 18:24:22 PST 2011


Author: wdietz2
Date: Mon Dec  5 20:24:21 2011
New Revision: 145900

URL: http://llvm.org/viewvc/llvm-project?rev=145900&view=rev
Log:
Fix String field layout for OpenJDK in AOT and MMTK.

Modified:
    vmkit/trunk/lib/j3/Compiler/JavaAOTCompiler.cpp
    vmkit/trunk/mmtk/mmtk-j3/MMTkObject.h

Modified: vmkit/trunk/lib/j3/Compiler/JavaAOTCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/Compiler/JavaAOTCompiler.cpp?rev=145900&r1=145899&r2=145900&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/Compiler/JavaAOTCompiler.cpp (original)
+++ vmkit/trunk/lib/j3/Compiler/JavaAOTCompiler.cpp Mon Dec  5 20:24:21 2011
@@ -787,12 +787,23 @@
 	Array = ConstantExpr::getBitCast(varGV, JavaIntrinsics.JavaObjectType);
 
   Elmts.push_back(Array);
+#ifndef USE_OPENJDK
+  // Classpath fields
   Elmts.push_back(ConstantInt::get(Type::getInt32Ty(getLLVMContext()),
                                    str->count));
   Elmts.push_back(ConstantInt::get(Type::getInt32Ty(getLLVMContext()),
                                    str->cachedHashCode));
   Elmts.push_back(ConstantInt::get(Type::getInt32Ty(getLLVMContext()),
                                    str->offset));
+#else
+  // OpenJDK fields
+  Elmts.push_back(ConstantInt::get(Type::getInt32Ty(getLLVMContext()),
+                                   str->offset));
+  Elmts.push_back(ConstantInt::get(Type::getInt32Ty(getLLVMContext()),
+                                   str->count));
+  Elmts.push_back(ConstantInt::get(Type::getInt32Ty(getLLVMContext()),
+                                   str->cachedHashCode));
+#endif
  
   return ConstantStruct::get(STy, Elmts);
 }

Modified: vmkit/trunk/mmtk/mmtk-j3/MMTkObject.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/MMTkObject.h?rev=145900&r1=145899&r2=145900&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/MMTkObject.h (original)
+++ vmkit/trunk/mmtk/mmtk-j3/MMTkObject.h Mon Dec  5 20:24:21 2011
@@ -43,9 +43,17 @@
 
 struct MMTkString : public MMTkObject {
   MMTkArray* value;
+#ifndef USE_OPENJDK
+  // Classpath fields
   int32_t count;
   int32_t cachedHashCode;
   int32_t offset;
+#else
+  // OpenJDK fields
+  int32_t offset;
+  int32_t count;
+  int32_t cachedHashCode;
+#endif
 };
 
 struct MMTkLock : public MMTkObject {





More information about the vmkit-commits mailing list