Mercurial > hg > graal-compiler
changeset 22648:63643c4ef733
[SPARC] Remove special null handling in SPARCLIRGenerator.emitConstant
author | Stefan Anzinger <stefan.anzinger@oracle.com> |
---|---|
date | Thu, 17 Sep 2015 14:10:51 +0200 |
parents | 350e41999d30 |
children | 467f38f99aea |
files | graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java |
diffstat | 1 files changed, 10 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java Wed Sep 16 21:56:12 2015 +0200 +++ b/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java Thu Sep 17 14:10:51 2015 +0200 @@ -276,15 +276,6 @@ append(new LoadDataAddressOp(dst, data)); } - @Override - public Value emitConstant(LIRKind kind, Constant constant) { - if (JavaConstant.isNull(constant)) { - return new ConstantValue(kind, kind.getPlatformKind().getDefaultValue()); - } else { - return super.emitConstant(kind, constant); - } - } - protected SPARCAddressValue asAddressValue(Value address) { if (address instanceof SPARCAddressValue) { return (SPARCAddressValue) address; @@ -370,9 +361,18 @@ default: throw JVMCIError.shouldNotReachHere(actualCmpKind.toString()); } + right = toDefaultConstantOfKind(cmpKind, right); append(new SPARCControlFlow.CompareBranchOp(opcode, left, right, actualCondition, trueDestination, falseDestination, actualCmpKind, unorderedIsTrue, trueDestinationProbability)); } + private static Value toDefaultConstantOfKind(PlatformKind forKind, Value value) { + if (isJavaConstant(value) && asJavaConstant(value).isDefaultForKind()) { + return new ConstantValue(LIRKind.value(forKind), forKind.getDefaultValue()); + } else { + return value; + } + } + @Override public void emitOverflowCheckBranch(LabelRef overflow, LabelRef noOverflow, LIRKind cmpLIRKind, double overflowProbability) { JavaKind cmpKind = (JavaKind) cmpLIRKind.getPlatformKind(); @@ -463,6 +463,7 @@ right = loadNonConst(b); mirrored = false; } + right = toDefaultConstantOfKind(cmpKind, right); switch ((JavaKind) cmpKind) { case Short: case Char: