changeset 6375:1d7c73b5d787

terminology change to match C++ code and biased locking paper: "initial mark word" -> "prototype mark word"
author Doug Simon <doug.simon@oracle.com>
date Thu, 13 Sep 2012 09:04:06 +0200
parents 9fc86a7159d7
children e957c9ff0bda
files graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/CompilerToVM.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/CompilerToVMImpl.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaType.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/HotSpotSnippetUtils.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/NewObjectSnippets.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/target/amd64/HotSpotXirGenerator.java
diffstat 7 files changed, 25 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java	Thu Sep 13 08:25:28 2012 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java	Thu Sep 13 09:04:06 2012 +0200
@@ -62,7 +62,7 @@
     /**
      * The offset of the _prototype_header field in a Klass.
      */
-    public int initialMarkWordOffset;
+    public int prototypeMarkWordOffset;
 
     /**
      * The offset of an the array length in an array's header.
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/CompilerToVM.java	Thu Sep 13 08:25:28 2012 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/CompilerToVM.java	Thu Sep 13 09:04:06 2012 +0200
@@ -117,7 +117,7 @@
 
     String decodePC(long pc);
 
-    long JavaType_initialMarkWord(HotSpotResolvedJavaType hotSpotResolvedJavaType);
+    long JavaType_prototypeMarkWord(HotSpotResolvedJavaType hotSpotResolvedJavaType);
 
     // Checkstyle: resume
 }
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/CompilerToVMImpl.java	Thu Sep 13 08:25:28 2012 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/CompilerToVMImpl.java	Thu Sep 13 09:04:06 2012 +0200
@@ -168,7 +168,7 @@
     public native String decodePC(long pc);
 
     @Override
-    public native long JavaType_initialMarkWord(HotSpotResolvedJavaType type);
+    public native long JavaType_prototypeMarkWord(HotSpotResolvedJavaType type);
 
     // Checkstyle: resume
 }
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaType.java	Thu Sep 13 08:25:28 2012 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaType.java	Thu Sep 13 09:04:06 2012 +0200
@@ -288,7 +288,7 @@
         return superCheckOffset;
     }
 
-    public long initialMarkWord() {
-        return HotSpotGraalRuntime.getInstance().getCompilerToVM().JavaType_initialMarkWord(this);
+    public long prototypeMarkWord() {
+        return HotSpotGraalRuntime.getInstance().getCompilerToVM().JavaType_prototypeMarkWord(this);
     }
 }
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/HotSpotSnippetUtils.java	Thu Sep 13 08:25:28 2012 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/HotSpotSnippetUtils.java	Thu Sep 13 09:04:06 2012 +0200
@@ -82,8 +82,8 @@
     }
 
     @Fold
-    static int initialMarkWordOffset() {
-        return HotSpotGraalRuntime.getInstance().getConfig().initialMarkWordOffset;
+    static int prototypeMarkWordOffset() {
+        return HotSpotGraalRuntime.getInstance().getConfig().prototypeMarkWordOffset;
     }
 
     @Fold
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/NewObjectSnippets.java	Thu Sep 13 08:25:28 2012 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/NewObjectSnippets.java	Thu Sep 13 09:04:06 2012 +0200
@@ -69,7 +69,7 @@
     public static Object initializeObject(
                     @Parameter("memory") Word memory,
                     @Parameter("hub") Object hub,
-                    @Parameter("initialMarkWord") Word initialMarkWord,
+                    @Parameter("prototypeMarkWord") Word prototypeMarkWord,
                     @ConstantParameter("size") int size,
                     @ConstantParameter("fillContents") boolean fillContents) {
 
@@ -77,7 +77,7 @@
             new_stub.inc();
             return NewInstanceStubCall.call(hub);
         }
-        formatObject(hub, size, memory, initialMarkWord, fillContents);
+        formatObject(hub, size, memory, prototypeMarkWord, fillContents);
         Object instance = memory.toObject();
         return castFromHub(verifyOop(instance), hub);
     }
@@ -88,10 +88,10 @@
                     @Parameter("hub") Object hub,
                     @Parameter("length") int length,
                     @Parameter("size") int size,
-                    @Parameter("initialMarkWord") Word initialMarkWord,
+                    @Parameter("prototypeMarkWord") Word prototypeMarkWord,
                     @ConstantParameter("headerSize") int headerSize,
                     @ConstantParameter("fillContents") boolean fillContents) {
-        return initializeArray(memory, hub, length, size, initialMarkWord, headerSize, true, fillContents);
+        return initializeArray(memory, hub, length, size, prototypeMarkWord, headerSize, true, fillContents);
     }
 
     @Snippet
@@ -100,13 +100,13 @@
                     @Parameter("hub") Object hub,
                     @Parameter("length") int length,
                     @Parameter("size") int size,
-                    @Parameter("initialMarkWord") Word initialMarkWord,
+                    @Parameter("prototypeMarkWord") Word prototypeMarkWord,
                     @ConstantParameter("headerSize") int headerSize,
                     @ConstantParameter("fillContents") boolean fillContents) {
-        return initializeArray(memory, hub, length, size, initialMarkWord, headerSize, false, fillContents);
+        return initializeArray(memory, hub, length, size, prototypeMarkWord, headerSize, false, fillContents);
     }
 
-    private static Object initializeArray(Word memory, Object hub, int length, int size, Word initialMarkWord, int headerSize, boolean isObjectArray, boolean fillContents) {
+    private static Object initializeArray(Word memory, Object hub, int length, int size, Word prototypeMarkWord, int headerSize, boolean isObjectArray, boolean fillContents) {
         if (memory == Word.zero()) {
             if (isObjectArray) {
                 anewarray_stub.inc();
@@ -120,7 +120,7 @@
         } else {
             newarray_loopInit.inc();
         }
-        formatArray(hub, size, length, headerSize, memory, initialMarkWord, fillContents);
+        formatArray(hub, size, length, headerSize, memory, prototypeMarkWord, fillContents);
         Object instance = memory.toObject();
         return castFromHub(verifyOop(instance), hub);
     }
@@ -163,14 +163,14 @@
     /**
      * Setting this to false causes (as yet inexplicable) crashes on lusearch.
      */
-    private static final boolean USE_STATIC_INITIAL_MARK_WORD = true;
+    private static final boolean USE_COMPILE_TIME_PROTOTYPE_MARK_WORD = true;
 
     /**
      * Formats some allocated memory with an object header zeroes out the rest.
      */
-    private static void formatObject(Object hub, int size, Word memory, Word staticInitialMarkWord, boolean fillContents) {
-        Word initialMarkWord = USE_STATIC_INITIAL_MARK_WORD ? staticInitialMarkWord : loadWord(asWord(hub), initialMarkWordOffset());
-        storeObject(memory, 0, markOffset(), initialMarkWord);
+    private static void formatObject(Object hub, int size, Word memory, Word compileTimePrototypeMarkWord, boolean fillContents) {
+        Word prototypeMarkWord = USE_COMPILE_TIME_PROTOTYPE_MARK_WORD ? compileTimePrototypeMarkWord : loadWord(asWord(hub), prototypeMarkWordOffset());
+        storeObject(memory, 0, markOffset(), prototypeMarkWord);
         storeObject(memory, 0, hubOffset(), hub);
         if (fillContents) {
             if (size <= MAX_UNROLLED_OBJECT_ZEROING_SIZE) {
@@ -191,8 +191,8 @@
     /**
      * Formats some allocated memory with an object header zeroes out the rest.
      */
-    private static void formatArray(Object hub, int size, int length, int headerSize, Word memory, Word initialMarkWord, boolean fillContents) {
-        storeObject(memory, 0, markOffset(), initialMarkWord);
+    private static void formatArray(Object hub, int size, int length, int headerSize, Word memory, Word prototypeMarkWord, boolean fillContents) {
+        storeObject(memory, 0, markOffset(), prototypeMarkWord);
         storeObject(memory, 0, hubOffset(), hub);
         storeInt(memory, 0, arrayLengthOffset(), length);
         if (fillContents) {
@@ -314,7 +314,7 @@
             assert size >= 0;
             Key key = new Key(initializeObject).add("size", size).add("fillContents", initializeNode.fillContents());
             ValueNode memory = initializeNode.memory();
-            Arguments arguments = arguments("memory", memory).add("hub", hub).add("initialMarkWord", type.initialMarkWord());
+            Arguments arguments = arguments("memory", memory).add("hub", hub).add("prototypeMarkWord", type.prototypeMarkWord());
             SnippetTemplate template = cache.get(key);
             Debug.log("Lowering initializeObject in %s: node=%s, template=%s, arguments=%s", graph, initializeNode, template, arguments);
             template.instantiate(runtime, initializeNode, arguments);
@@ -331,7 +331,7 @@
             final int headerSize = elementKind.getArrayBaseOffset();
             Key key = new Key(elementKind.isObject() ? initializeObjectArray : initializePrimitiveArray).add("headerSize", headerSize).add("fillContents", initializeNode.fillContents());
             ValueNode memory = initializeNode.memory();
-            Arguments arguments = arguments("memory", memory).add("hub", hub).add("initialMarkWord", type.initialMarkWord()).add("size", initializeNode.size()).add("length", initializeNode.length());
+            Arguments arguments = arguments("memory", memory).add("hub", hub).add("prototypeMarkWord", type.prototypeMarkWord()).add("size", initializeNode.size()).add("length", initializeNode.length());
             SnippetTemplate template = cache.get(key);
             Debug.log("Lowering initializeObjectArray in %s: node=%s, template=%s, arguments=%s", graph, initializeNode, template, arguments);
             template.instantiate(runtime, initializeNode, arguments);
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/target/amd64/HotSpotXirGenerator.java	Thu Sep 13 08:25:28 2012 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/target/amd64/HotSpotXirGenerator.java	Thu Sep 13 09:04:06 2012 +0200
@@ -294,7 +294,7 @@
 
             asm.bindInline(resume);
 
-            asm.pload(target.wordKind, temp1, hub, asm.i(config.initialMarkWordOffset), false);
+            asm.pload(target.wordKind, temp1, hub, asm.i(config.prototypeMarkWordOffset), false);
             asm.pstore(target.wordKind, result, asm.i(config.markOffset), temp1, false);
             asm.mov(temp1o, hub); // need a temporary register since Intel cannot store 64-bit constants to memory
             asm.pstore(Kind.Object, result, asm.i(config.hubOffset), temp1o, false);
@@ -380,7 +380,7 @@
             asm.pstore(target.wordKind, thread, asm.i(config.threadTlabTopOffset), temp1, false);
 
             // Now the new object is in result, store mark word and klass
-            asm.pload(target.wordKind, temp1, hub, asm.i(config.initialMarkWordOffset), false);
+            asm.pload(target.wordKind, temp1, hub, asm.i(config.prototypeMarkWordOffset), false);
             asm.pstore(target.wordKind, result, asm.i(config.markOffset), temp1, false);
             asm.mov(temp1o, hub); // need a temporary register since Intel cannot store 64-bit constants to memory
             asm.pstore(Kind.Object, result, asm.i(config.hubOffset), temp1o, false);