Mercurial > hg > truffle
comparison graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java @ 17018:e91533b86166
[SPARC] Fix dacapo sunflow test (Unordered branching is now implemented right)
author | Stefan Anzinger <stefan.anzinger@oracle.com> |
---|---|
date | Thu, 28 Aug 2014 19:24:52 -0700 |
parents | 4feac7e51f42 |
children | 1013a8444746 |
comparison
equal
deleted
inserted
replaced
16998:e4cfc9ea2bd3 | 17018:e91533b86166 |
---|---|
222 @Override | 222 @Override |
223 public void emitCompareBranch(PlatformKind cmpKind, Value left, Value right, Condition cond, boolean unorderedIsTrue, LabelRef trueDestination, LabelRef falseDestination, | 223 public void emitCompareBranch(PlatformKind cmpKind, Value left, Value right, Condition cond, boolean unorderedIsTrue, LabelRef trueDestination, LabelRef falseDestination, |
224 double trueDestinationProbability) { | 224 double trueDestinationProbability) { |
225 boolean mirrored = emitCompare(cmpKind, left, right); | 225 boolean mirrored = emitCompare(cmpKind, left, right); |
226 Condition finalCondition = mirrored ? cond.mirror() : cond; | 226 Condition finalCondition = mirrored ? cond.mirror() : cond; |
227 boolean finalUnorderedIsTrue = mirrored ? !unorderedIsTrue : unorderedIsTrue; | |
228 | 227 |
229 Kind kind = left.getKind().getStackKind(); | 228 Kind kind = left.getKind().getStackKind(); |
230 switch (kind) { | 229 switch (kind) { |
231 case Int: | 230 case Int: |
232 case Long: | 231 case Long: |
233 case Object: | 232 case Object: |
234 append(new BranchOp(finalCondition, trueDestination, falseDestination, kind)); | 233 append(new BranchOp(finalCondition, trueDestination, falseDestination, kind)); |
235 break; | 234 break; |
236 case Float: | 235 case Float: |
237 case Double: | 236 case Double: |
238 append(new BranchOp(finalCondition, trueDestination, falseDestination, kind, finalUnorderedIsTrue)); | 237 append(new BranchOp(finalCondition, trueDestination, falseDestination, kind, unorderedIsTrue)); |
239 break; | 238 break; |
240 default: | 239 default: |
241 throw GraalInternalError.shouldNotReachHere("" + left.getKind()); | 240 throw GraalInternalError.shouldNotReachHere("" + left.getKind()); |
242 } | 241 } |
243 } | 242 } |