changeset 16521:d1b16fe368a0

[SPARC] Fixing dcmp instructions (cmove jump offset)
author Stefan Anzinger <stefan.anzinger@gmail.com>
date Mon, 14 Jul 2014 04:42:08 -0700
parents 9a07bf8467a6
children 8bba3477c88c
files graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCControlFlow.java
diffstat 2 files changed, 9 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java	Sun Jul 13 17:46:57 2014 -0700
+++ b/graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java	Mon Jul 14 04:42:08 2014 -0700
@@ -254,7 +254,8 @@
 
         @Override
         protected int getInstructionBits() {
-            return super.getInstructionBits() | a << A_SHIFT | cond << COND_SHIFT | (disp22 & DISP22_MASK) << DISP22_SHIFT;
+            int inst = super.getInstructionBits() | a << A_SHIFT | cond << COND_SHIFT | (disp22 & DISP22_MASK) << DISP22_SHIFT;
+            return inst;
         }
 
         protected static Fmt00b read(SPARCAssembler masm, Op2s op2, int pos) {
--- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCControlFlow.java	Sun Jul 13 17:46:57 2014 -0700
+++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCControlFlow.java	Mon Jul 14 04:42:08 2014 -0700
@@ -367,25 +367,25 @@
             case Double:
                 switch (cond) {
                     case Equal:
-                        new Fbne(true, 2).emit(masm);
+                        new Fbne(true, 2 * 4).emit(masm);
                         break;
                     case Greater:
-                        new Fble(true, 2).emit(masm);
+                        new Fble(true, 2 * 4).emit(masm);
                         break;
                     case GreaterEqual:
-                        new Fbl(true, 2).emit(masm);
+                        new Fbl(true, 2 * 4).emit(masm);
                         break;
                     case Less:
-                        new Fbge(true, 2).emit(masm);
+                        new Fbge(true, 2 * 4).emit(masm);
                         break;
                     case LessEqual:
-                        new Fbg(true, 2).emit(masm);
+                        new Fbg(true, 2 * 4).emit(masm);
                         break;
                     case F_Ordered:
-                        new Fbo(true, 2).emit(masm);
+                        new Fbo(true, 2 * 4).emit(masm);
                         break;
                     case F_Unordered:
-                        new Fbu(true, 2).emit(masm);
+                        new Fbu(true, 2 * 4).emit(masm);
                         break;
                     default:
                         GraalInternalError.shouldNotReachHere("Unknown condition code " + cond);