diff graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java @ 9825:81d5d8089cda

SPARC float arithmetic
author Morris Meyer <morris.meyer@oracle.com>
date Sun, 26 May 2013 13:44:16 -0400
parents 26960d32552c
children 5aedcaed6ccf
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java	Sun May 26 13:15:51 2013 +0200
+++ b/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java	Sun May 26 13:44:16 2013 -0400
@@ -127,7 +127,10 @@
 
     @Override
     public void emitCompareBranch(Value left, Value right, Condition cond, boolean unorderedIsTrue, LabelRef label) {
-        throw new InternalError("NYI");
+        switch (left.getKind().getStackKind()) {
+            default:
+                throw GraalInternalError.shouldNotReachHere("" + left.getKind());
+        }
     }
 
     @Override
@@ -269,7 +272,21 @@
 
     @Override
     public Value emitNegate(Value input) {
-        throw new InternalError("NYI");
+        Variable result = newVariable(input.getKind());
+        switch (input.getKind()) {
+            case Int:
+                append(new Op1Stack(INEG, result, input));
+                break;
+            case Float:
+                append(new Op1Stack(FNEG, result, input));
+                break;
+            case Double:
+                append(new Op1Stack(DNEG, result, input));
+                break;
+            default:
+                throw GraalInternalError.shouldNotReachHere();
+        }
+        return result;
     }
 
     @Override