# HG changeset patch # User Stefan Anzinger # Date 1409353486 25200 # Node ID 1013a84447463b9e9c16accb66405bc7bb89098f # Parent e91533b86166c48e516987c98d6efd0f3b1c6fca [SPARC] Assembler fixes diff -r e91533b86166 -r 1013a8444746 graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java --- a/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java Thu Aug 28 19:24:52 2014 -0700 +++ b/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java Fri Aug 29 16:04:46 2014 -0700 @@ -755,10 +755,10 @@ Variable result = newVariable(LIRKind.derive(a, b)); switch (a.getKind().getStackKind()) { case Int: - append(new Op2Stack(IXOR, result, a, loadNonConst(b))); + append(new Op2Stack(IXOR, result, load(a), loadNonConst(b))); break; case Long: - append(new Op2Stack(LXOR, result, a, loadNonConst(b))); + append(new Op2Stack(LXOR, result, load(a), loadNonConst(b))); break; default: throw GraalInternalError.shouldNotReachHere(); diff -r e91533b86166 -r 1013a8444746 graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArithmetic.java --- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArithmetic.java Thu Aug 28 19:24:52 2014 -0700 +++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArithmetic.java Fri Aug 29 16:04:46 2014 -0700 @@ -738,7 +738,7 @@ new Sra(asIntReg(dst), 16, asIntReg(dst)).emit(masm); break; case I2F: - if (src.getPlatformKind() == Kind.Int) { + if (src.getPlatformKind() == Kind.Int || src.getPlatformKind() == Kind.Char || src.getPlatformKind() == Kind.Short || src.getPlatformKind() == Kind.Byte) { new Movwtos(asIntReg(src), asFloatReg(dst)).emit(masm); new Fitos(asFloatReg(dst), asFloatReg(dst)).emit(masm); } else if (src.getPlatformKind() == Kind.Float) {