Mercurial > hg > graal-compiler
changeset 22691:54d85a1b4188
[SPARC] Remove SPARCCompare.ACMP
author | Stefan Anzinger <stefan.anzinger@oracle.com> |
---|---|
date | Fri, 18 Sep 2015 12:18:41 +0200 |
parents | fd2a8e6da876 |
children | f87ae6a74d88 |
files | graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCCompare.java graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCControlFlow.java |
diffstat | 3 files changed, 4 insertions(+), 37 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java Tue Aug 25 17:42:38 2015 +0200 +++ b/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java Fri Sep 18 12:18:41 2015 +0200 @@ -93,7 +93,6 @@ import static com.oracle.graal.lir.sparc.SPARCBitManipulationOp.IntrinsicOpcode.IPOPCNT; import static com.oracle.graal.lir.sparc.SPARCBitManipulationOp.IntrinsicOpcode.LBSR; import static com.oracle.graal.lir.sparc.SPARCBitManipulationOp.IntrinsicOpcode.LPOPCNT; -import static com.oracle.graal.lir.sparc.SPARCCompare.ACMP; import static com.oracle.graal.lir.sparc.SPARCCompare.DCMP; import static com.oracle.graal.lir.sparc.SPARCCompare.FCMP; import static com.oracle.graal.lir.sparc.SPARCCompare.ICMP; @@ -343,9 +342,6 @@ actualCmpKind = JavaKind.Int; opcode = ICMP; break; - case Object: - opcode = ACMP; - break; case Long: opcode = LCMP; break; @@ -468,9 +464,6 @@ case Long: append(new CompareOp(LCMP, left, right)); break; - case Object: - append(new CompareOp(ACMP, left, right)); - break; case Float: append(new CompareOp(FCMP, left, right)); break;
--- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCCompare.java Tue Aug 25 17:42:38 2015 +0200 +++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCCompare.java Fri Sep 18 12:18:41 2015 +0200 @@ -46,7 +46,6 @@ public enum SPARCCompare { ICMP, LCMP, - ACMP, FCMP, DCMP; @@ -96,9 +95,6 @@ case LCMP: masm.cmp(asRegister(x, JavaKind.Long), asRegister(y, JavaKind.Long)); break; - case ACMP: - masm.cmp(asRegister(x), asRegister(y)); - break; case FCMP: masm.fcmp(Fcc0, Fcmps, asRegister(x, JavaKind.Float), asRegister(y, JavaKind.Float)); break; @@ -124,13 +120,9 @@ masm.cmp(asRegister(x, JavaKind.Long), imm); break; case ICMP: - assert isSimm13(crb.asIntConst(y)); + assert isSimm13(imm); masm.cmp(asRegister(x, JavaKind.Int), imm); break; - case ACMP: - assert imm == 0 : "Only null object constants are allowed in comparisons"; - masm.cmp(asRegister(x), 0); - break; default: throw JVMCIError.shouldNotReachHere(); }
--- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCControlFlow.java Tue Aug 25 17:42:38 2015 +0200 +++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCControlFlow.java Fri Sep 18 12:18:41 2015 +0200 @@ -92,6 +92,7 @@ import com.oracle.graal.asm.sparc.SPARCMacroAssembler.ScratchRegister; import com.oracle.graal.asm.sparc.SPARCMacroAssembler.Setx; import com.oracle.graal.compiler.common.calc.Condition; +import com.oracle.graal.lir.ConstantValue; import com.oracle.graal.lir.LIRInstructionClass; import com.oracle.graal.lir.LabelRef; import com.oracle.graal.lir.Opcode; @@ -239,9 +240,6 @@ * @return true if the branch could be emitted */ private boolean emitShortCompareBranch(CompilationResultBuilder crb, SPARCMacroAssembler masm) { - Value tmpValue; - Value actualX = x; - Value actualY = y; ConditionFlag actualConditionFlag = conditionFlag; Label actualTrueTarget = trueDestination.label(); Label actualFalseTarget = falseDestination.label(); @@ -266,14 +264,7 @@ actualFalseTarget = tmpTarget; } } - // Keep the constant on the right - if (isJavaConstant(actualX)) { - tmpValue = actualX; - actualX = actualY; - actualY = tmpValue; - actualConditionFlag = actualConditionFlag.mirror(); - } - emitCBCond(masm, actualX, actualY, actualTrueTarget, actualConditionFlag); + emitCBCond(masm, x, y, actualTrueTarget, actualConditionFlag); if (needJump) { masm.jmp(actualFalseTarget); masm.nop(); @@ -295,22 +286,13 @@ case Long: if (isJavaConstant(actualY)) { JavaConstant c = asJavaConstant(actualY); - assert NumUtil.is32bit(c.asLong()); + assert c.isNull() || NumUtil.is32bit(c.asLong()); int constantY = c.isNull() ? 0 : (int) c.asLong(); CBCOND.emit(masm, conditionFlag, true, asRegister(actualX, JavaKind.Long), constantY, actualTrueTarget); } else { CBCOND.emit(masm, conditionFlag, true, asRegister(actualX, JavaKind.Long), asRegister(actualY, JavaKind.Long), actualTrueTarget); } break; - case Object: - if (isJavaConstant(actualY)) { - // Object constant valid can only be null - assert asJavaConstant(actualY).isNull(); - CBCOND.emit(masm, conditionFlag, true, asRegister(actualX), 0, actualTrueTarget); - } else { // this is already loaded - CBCOND.emit(masm, conditionFlag, true, asRegister(actualX), asRegister(actualY), actualTrueTarget); - } - break; default: JVMCIError.shouldNotReachHere(); }