Mercurial > hg > graal-jvmci-8
changeset 2544:84a2012f8cd1
Fixes to barriers.
author | Thomas Wuerthinger <thomas@wuerthinger.net> |
---|---|
date | Wed, 27 Apr 2011 21:29:17 +0200 |
parents | c58a301eb2d7 |
children | bb050fe2901d |
files | graal/GraalRuntime/src/com/oracle/graal/runtime/HotSpotXirGenerator.java |
diffstat | 1 files changed, 3 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/GraalRuntime/src/com/oracle/graal/runtime/HotSpotXirGenerator.java Wed Apr 27 21:22:10 2011 +0200 +++ b/graal/GraalRuntime/src/com/oracle/graal/runtime/HotSpotXirGenerator.java Wed Apr 27 21:29:17 2011 +0200 @@ -427,7 +427,7 @@ asm.mark(MARK_IMPLICIT_NULL); } asm.pstore(kind, object, fieldOffset, value, is(NULL_CHECK, flags)); - if (is(WRITE_BARRIER, flags)) { + if (is(WRITE_BARRIER, flags) && kind == CiKind.Object) { XirOperand temp = asm.createTemp("temp", CiKind.Word); asm.mov(temp, object); writeBarrier(asm, temp); @@ -876,7 +876,7 @@ XirLabel store = null; XirLabel slowStoreCheck = null; - if (is(STORE_CHECK, flags)) { + if (is(STORE_CHECK, flags) && kind == CiKind.Object) { valueHub = asm.createRegisterTemp("valueHub", CiKind.Word, AMD64.rdi); compHub = asm.createRegisterTemp("compHub", CiKind.Word, AMD64.rsi); temp = asm.createRegisterTemp("temp", CiKind.Word, AMD64.r10); @@ -1078,7 +1078,7 @@ if (kind == CiKind.Object) { verifyPointer(asm, value); } - if (is(WRITE_BARRIER, flags)) { + if (is(WRITE_BARRIER, flags) && kind == CiKind.Object) { asm.lea(temp, array, index, disp, scale); asm.pstore(kind, temp, value, implicitNullException); writeBarrier(asm, temp);