Mercurial > hg > graal-compiler
changeset 10717:0517026315a0
Adjust header size to compressed klass pointers
author | Christos Kotselidis <christos.kotselidis@oracle.com> |
---|---|
date | Fri, 12 Jul 2013 12:46:06 +0200 |
parents | b975cad32411 |
children | 0d3d300064a8 |
files | graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotReplacementsUtil.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/NewObjectSnippets.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ObjectCloneSnippets.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/NewInstanceStub.java |
diffstat | 4 files changed, 9 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotReplacementsUtil.java Fri Jul 12 12:42:44 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotReplacementsUtil.java Fri Jul 12 12:46:06 2013 +0200 @@ -351,6 +351,11 @@ } @Fold + public static int headerSize() { + return config().useCompressedKlassPointers ? (2 * wordSize()) - 4 : 2 * wordSize(); + } + + @Fold public static int cardTableShift() { return config().cardtableShift; }
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/NewObjectSnippets.java Fri Jul 12 12:42:44 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/NewObjectSnippets.java Fri Jul 12 12:46:06 2013 +0200 @@ -203,12 +203,12 @@ if (size <= MAX_UNROLLED_OBJECT_ZEROING_SIZE) { new_seqInit.inc(); explodeLoop(); - for (int offset = 2 * wordSize(); offset < size; offset += wordSize()) { + for (int offset = headerSize(); offset < size; offset += wordSize()) { memory.writeWord(offset, Word.zero(), ANY_LOCATION); } } else { new_loopInit.inc(); - for (int offset = 2 * wordSize(); offset < size; offset += wordSize()) { + for (int offset = headerSize(); offset < size; offset += wordSize()) { memory.writeWord(offset, Word.zero(), ANY_LOCATION); } }
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ObjectCloneSnippets.java Fri Jul 12 12:42:44 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ObjectCloneSnippets.java Fri Jul 12 12:46:06 2013 +0200 @@ -57,7 +57,7 @@ Object result = NewObjectSnippets.allocateInstance(instanceSize, hub, prototypeMarkWord, useG1GC()); Pointer memory = Word.fromObject(result); - for (int offset = 2 * wordSize(); offset < instanceSize; offset += wordSize()) { + for (int offset = headerSize(); offset < instanceSize; offset += wordSize()) { memory.writeWord(offset, Word.fromObject(src).readWord(offset, ANY_LOCATION), ANY_LOCATION); }
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/NewInstanceStub.java Fri Jul 12 12:42:44 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/NewInstanceStub.java Fri Jul 12 12:46:06 2013 +0200 @@ -94,7 +94,7 @@ if (memory.notEqual(0)) { Word prototypeMarkWord = hub.readWord(prototypeMarkWordOffset(), PROTOTYPE_MARK_WORD_LOCATION); initializeObjectHeader(memory, prototypeMarkWord, hub); - for (int offset = 2 * wordSize(); offset < sizeInBytes; offset += wordSize()) { + for (int offset = headerSize(); offset < sizeInBytes; offset += wordSize()) { memory.writeWord(offset, Word.zero(), ANY_LOCATION); } return verifyObject(memory.toObject());