# HG changeset patch # User Doug Simon # Date 1370980969 -7200 # Node ID 3bc930dd931392a2c4d8bcb950008def4a51b95f # Parent 38d7b55f87b06d2535536f18f831071adb3bcc48# Parent e85afceb39e76008a71fcb87a0bce696e0205139 Merge. diff -r 38d7b55f87b0 -r 3bc930dd9313 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 11 22:02:23 2013 +0200 +++ b/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Move.java Tue Jun 11 22:02:49 2013 +0200 @@ -33,6 +33,7 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.asm.*; import com.oracle.graal.asm.amd64.*; +import com.oracle.graal.asm.amd64.AMD64Assembler.ConditionFlag; import com.oracle.graal.graph.*; import com.oracle.graal.lir.*; import com.oracle.graal.lir.StandardOp.MoveOp; @@ -667,6 +668,8 @@ } else { // Otherwise the narrow heap base, which resides always in register 12, is subtracted // followed by right shift. + masm.testq(scratchRegister, scratchRegister); + masm.cmovq(ConditionFlag.Equal, scratchRegister, AMD64.r12); masm.subq(scratchRegister, AMD64.r12); masm.shrq(scratchRegister, logMinObjAlignment); } @@ -681,9 +684,12 @@ masm.shlq(resRegister, logMinObjAlignment); } } else { - // Otherwise the narrow heap base is added to the shifted address. + Label done = new Label(); masm.shlq(resRegister, logMinObjAlignment); + masm.jccb(ConditionFlag.Equal, done); + // Otherwise the narrow heap base is added to the shifted address. masm.addq(resRegister, AMD64.r12); + masm.bind(done); } } diff -r 38d7b55f87b0 -r 3bc930dd9313 src/share/vm/runtime/arguments.cpp --- a/src/share/vm/runtime/arguments.cpp Tue Jun 11 22:02:23 2013 +0200 +++ b/src/share/vm/runtime/arguments.cpp Tue Jun 11 22:02:49 2013 +0200 @@ -2102,9 +2102,8 @@ warning("UseCompressedOops is disabled, because it is not supported by Graal"); FLAG_SET_CMDLINE(bool, UseCompressedOops, false); } else { - jio_fprintf(defaultStream::error_stream(), - "CompressedOops are not supported in Graal at the moment\n"); - status = false; + status = true; + FLAG_SET_CMDLINE(bool, UseCompressedOops, true); } } else { // This prevents the flag being set to true by set_ergonomics_flags()