# HG changeset patch # User Roland Schatz # Date 1416488451 -3600 # Node ID 7b5106be0f187b791a4d5ef2f255fea629635ca0 # Parent 2e21480130100ac5c9672e7f43f2daa1f54f3bc9 Use correct LIRKind in HSAIL metaspace pointer compression/uncompression op. diff -r 2e2148013010 -r 7b5106be0f18 graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotLIRGenerator.java --- 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; }