# HG changeset patch # User Stefan Anzinger # Date 1405338128 25200 # Node ID d1b16fe368a0e8244d1d7c5460a9525c221fe087 # Parent 9a07bf8467a6e17581bac757c38c8644904b57ed [SPARC] Fixing dcmp instructions (cmove jump offset) diff -r 9a07bf8467a6 -r d1b16fe368a0 graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java --- a/graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java Sun Jul 13 17:46:57 2014 -0700 +++ b/graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java Mon Jul 14 04:42:08 2014 -0700 @@ -254,7 +254,8 @@ @Override protected int getInstructionBits() { - return super.getInstructionBits() | a << A_SHIFT | cond << COND_SHIFT | (disp22 & DISP22_MASK) << DISP22_SHIFT; + int inst = super.getInstructionBits() | a << A_SHIFT | cond << COND_SHIFT | (disp22 & DISP22_MASK) << DISP22_SHIFT; + return inst; } protected static Fmt00b read(SPARCAssembler masm, Op2s op2, int pos) { diff -r 9a07bf8467a6 -r d1b16fe368a0 graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCControlFlow.java --- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCControlFlow.java Sun Jul 13 17:46:57 2014 -0700 +++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCControlFlow.java Mon Jul 14 04:42:08 2014 -0700 @@ -367,25 +367,25 @@ case Double: switch (cond) { case Equal: - new Fbne(true, 2).emit(masm); + new Fbne(true, 2 * 4).emit(masm); break; case Greater: - new Fble(true, 2).emit(masm); + new Fble(true, 2 * 4).emit(masm); break; case GreaterEqual: - new Fbl(true, 2).emit(masm); + new Fbl(true, 2 * 4).emit(masm); break; case Less: - new Fbge(true, 2).emit(masm); + new Fbge(true, 2 * 4).emit(masm); break; case LessEqual: - new Fbg(true, 2).emit(masm); + new Fbg(true, 2 * 4).emit(masm); break; case F_Ordered: - new Fbo(true, 2).emit(masm); + new Fbo(true, 2 * 4).emit(masm); break; case F_Unordered: - new Fbu(true, 2).emit(masm); + new Fbu(true, 2 * 4).emit(masm); break; default: GraalInternalError.shouldNotReachHere("Unknown condition code " + cond);