Mercurial > hg > graal-jvmci-8
changeset 18477:7b5106be0f18
Use correct LIRKind in HSAIL metaspace pointer compression/uncompression op.
author | Roland Schatz <roland.schatz@oracle.com> |
---|---|
date | Thu, 20 Nov 2014 14:00:51 +0100 |
parents | 2e2148013010 |
children | 12dbd9a40718 |
files | graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotLIRGenerator.java |
diffstat | 1 files changed, 7 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotLIRGenerator.java Wed Nov 19 16:52:54 2014 +0100 +++ b/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotLIRGenerator.java Thu Nov 20 14:00:51 2014 +0100 @@ -265,14 +265,19 @@ @Override public Value emitCompress(Value pointer, CompressEncoding encoding, boolean nonNull) { - Variable result = newVariable(LIRKind.reference(Kind.Int)); + Variable result = newVariable(pointer.getLIRKind().changeType(Kind.Int)); append(new HSAILMove.CompressPointer(result, newVariable(pointer.getLIRKind()), asAllocatable(pointer), encoding.base, encoding.shift, encoding.alignment, nonNull)); return result; } @Override public Value emitUncompress(Value pointer, CompressEncoding encoding, boolean nonNull) { - Variable result = newVariable(LIRKind.reference(Kind.Object)); + Variable result; + if (pointer.getLIRKind().isReference(0)) { + result = newVariable(LIRKind.reference(Kind.Object)); + } else { + result = newVariable(LIRKind.value(Kind.Long)); + } append(new HSAILMove.UncompressPointer(result, asAllocatable(pointer), encoding.base, encoding.shift, encoding.alignment, nonNull)); return result; }