# HG changeset patch # User Roland Schatz # Date 1373030317 -7200 # Node ID 1db97e3de11c36c08f346e7601a867ad6c0e45c5 # Parent 5f016460f95b0270f4f3a5cd8c029821ab2a6671 Do not re-compress oops that are already compressed. diff -r 5f016460f95b -r 1db97e3de11c graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java Fri Jul 05 13:28:18 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java Fri Jul 05 15:18:37 2013 +0200 @@ -432,8 +432,12 @@ } Variable input = load(inputVal); if (runtime().config.useCompressedOops && isCompressCandidate(access)) { - Variable scratch = newVariable(Kind.Long); - append(new StoreCompressedPointer(kind, storeAddress, input, scratch, state, runtime().config.narrowOopBase, runtime().config.narrowOopShift, runtime().config.logMinObjAlignment)); + if (input.getKind() == Kind.Object) { + Variable scratch = newVariable(Kind.Long); + append(new StoreCompressedPointer(kind, storeAddress, input, scratch, state, runtime().config.narrowOopBase, runtime().config.narrowOopShift, runtime().config.logMinObjAlignment)); + } else { + append(new StoreOp(input.getKind(), storeAddress, input, state)); + } } else { append(new StoreOp(kind, storeAddress, input, state)); }