Mercurial > hg > graal-compiler
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);