Mercurial > hg > graal-compiler
changeset 9998:e85afceb39e7
Merge
author | Christos Kotselidis <christos.kotselidis@oracle.com> |
---|---|
date | Tue, 11 Jun 2013 18:13:55 +0200 |
parents | 4abd6387a612 (diff) 3754bb5aab2f (current diff) |
children | 3bc930dd9313 ebb32c4589f3 |
files | |
diffstat | 2 files changed, 9 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Move.java Tue Jun 11 13:14:52 2013 +0200 +++ b/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Move.java Tue Jun 11 18:13:55 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); } }
--- a/src/share/vm/runtime/arguments.cpp Tue Jun 11 13:14:52 2013 +0200 +++ b/src/share/vm/runtime/arguments.cpp Tue Jun 11 18:13:55 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()