# HG changeset patch # User Christos Kotselidis # Date 1371576622 -7200 # Node ID 72eafe3a1c34b2f0fa8a5dcf4f0fd153c544c6e1 # Parent 665e95c28965b7b8b987cafef83f5d0f328db411 Add comments in Compressed Oops diff -r 665e95c28965 -r 72eafe3a1c34 graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Move.java --- a/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Move.java Tue Jun 18 16:39:17 2013 +0200 +++ b/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Move.java Tue Jun 18 19:30:22 2013 +0200 @@ -669,6 +669,8 @@ // Otherwise the narrow heap base, which resides always in register 12, is subtracted // followed by right shift. masm.testq(scratchRegister, scratchRegister); + // If the stored reference is null, move the heap to scratch + // register and then calculate the compressed oop value. masm.cmovq(ConditionFlag.Equal, scratchRegister, AMD64.r12); masm.subq(scratchRegister, AMD64.r12); masm.shrq(scratchRegister, logMinObjAlignment);