Mercurial > hg > graal-compiler
changeset 20991:1b6783efebc8
[SPARC] Fix unstable d2i of NaNs
author | Stefan Anzinger <stefan.anzinger@oracle.com> |
---|---|
date | Thu, 16 Apr 2015 16:21:09 +0200 |
parents | d3b276db28b8 |
children | 0a4bbeae6e31 |
files | graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArithmetic.java |
diffstat | 1 files changed, 3 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArithmetic.java Wed Apr 15 18:41:53 2015 +0200 +++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArithmetic.java Thu Apr 16 16:21:09 2015 +0200 @@ -39,6 +39,7 @@ import com.oracle.graal.asm.sparc.*; import com.oracle.graal.asm.sparc.SPARCMacroAssembler.*; import com.oracle.graal.compiler.common.*; +import com.oracle.graal.debug.internal.*; import com.oracle.graal.lir.*; import com.oracle.graal.lir.asm.*; import com.oracle.graal.lir.gen.*; @@ -724,6 +725,7 @@ masm.fcmp(Fcc0, Fcmps, asFloatReg(src), asFloatReg(src)); masm.fbpcc(F_Ordered, ANNUL, notOrdered, Fcc0, PREDICT_TAKEN); masm.fstox(asFloatReg(src), asDoubleReg(dst)); + masm.fxtod(asRegister(dst), asRegister(dst)); masm.fsubd(asDoubleReg(dst), asDoubleReg(dst), asDoubleReg(dst)); masm.bind(notOrdered); break; @@ -747,8 +749,8 @@ masm.fcmp(Fcc0, Fcmpd, asDoubleReg(src), asDoubleReg(src)); masm.fbpcc(F_Ordered, ANNUL, notOrdered, Fcc0, PREDICT_TAKEN); masm.fdtoi(asDoubleReg(src), asFloatReg(dst)); + masm.fitos(asFloatReg(dst), asFloatReg(dst)); masm.fsubs(asFloatReg(dst), asFloatReg(dst), asFloatReg(dst)); - masm.fstoi(asFloatReg(dst), asFloatReg(dst)); masm.bind(notOrdered); break; case FNEG: