changeset 17216:7d8bb35e67c8

Merge
author Stefan Anzinger <stefan.anzinger@oracle.com>
date Thu, 25 Sep 2014 09:42:28 -0700
parents 7a99826863d9 (diff) 26d07b31c4a8 (current diff)
children 1738211d4cdb
files graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/NodeRefIteratorTest.java graal/com.oracle.graal.graph/src/com/oracle/graal/graph/FirstLevelPositionCollection.java graal/com.oracle.graal.graph/src/com/oracle/graal/graph/FirstLevelPositionIterator.java graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeClassSubstitutions.java
diffstat 2 files changed, 12 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.asm/src/com/oracle/graal/asm/Assembler.java	Thu Sep 25 14:43:52 2014 +0200
+++ b/graal/com.oracle.graal.asm/src/com/oracle/graal/asm/Assembler.java	Thu Sep 25 09:42:28 2014 -0700
@@ -33,7 +33,7 @@
 public abstract class Assembler {
 
     public final TargetDescription target;
-    private Set<LabelHint> jumpDisplacementHints;
+    private List<LabelHint> jumpDisplacementHints;
 
     /**
      * Backing code buffer.
@@ -206,7 +206,7 @@
 
     public LabelHint requestLabelHint(Label label) {
         if (jumpDisplacementHints == null) {
-            jumpDisplacementHints = new HashSet<>();
+            jumpDisplacementHints = new ArrayList<>();
         }
         LabelHint hint = new LabelHint(label, position());
         this.jumpDisplacementHints.add(hint);
@@ -216,8 +216,7 @@
     public static class LabelHint {
         private Label label;
         private int forPosition;
-        private int capturedTarget;
-        private boolean captured = false;
+        private int capturedTarget = -1;
 
         protected LabelHint(Label label, int lastPosition) {
             super();
@@ -227,7 +226,6 @@
 
         protected void capture() {
             this.capturedTarget = label.position();
-            this.captured = true;
         }
 
         public int getTarget() {
@@ -241,7 +239,7 @@
         }
 
         public boolean isValid() {
-            return captured;
+            return capturedTarget >= 0;
         }
     }
 }
--- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArithmetic.java	Thu Sep 25 14:43:52 2014 +0200
+++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArithmetic.java	Thu Sep 25 09:42:28 2014 -0700
@@ -575,24 +575,24 @@
                 new Signx(asLongReg(src), asIntReg(dst)).emit(masm);
                 break;
             case B2L:
-                new Sllx(asIntReg(src), 56, asLongReg(dst)).emit(masm);
+                new Sll(asIntReg(src), 24, asLongReg(dst)).emit(masm);
                 delaySlotLir.emitControlTransfer(crb, masm);
-                new Srax(asLongReg(dst), 56, asLongReg(dst)).emit(masm);
+                new Sra(asLongReg(dst), 24, asLongReg(dst)).emit(masm);
                 break;
             case B2I:
-                new Sllx(asIntReg(src), 56, asIntReg(dst)).emit(masm);
+                new Sll(asIntReg(src), 24, asIntReg(dst)).emit(masm);
                 delaySlotLir.emitControlTransfer(crb, masm);
-                new Srax(asIntReg(dst), 56, asIntReg(dst)).emit(masm);
+                new Sra(asIntReg(dst), 24, asIntReg(dst)).emit(masm);
                 break;
             case S2L:
-                new Sllx(asIntReg(src), 48, asLongReg(dst)).emit(masm);
+                new Sll(asIntReg(src), 16, asLongReg(dst)).emit(masm);
                 delaySlotLir.emitControlTransfer(crb, masm);
-                new Srax(asLongReg(dst), 48, asLongReg(dst)).emit(masm);
+                new Sra(asLongReg(dst), 16, asLongReg(dst)).emit(masm);
                 break;
             case S2I:
-                new Sllx(asIntReg(src), 48, asIntReg(dst)).emit(masm);
+                new Sll(asIntReg(src), 16, asIntReg(dst)).emit(masm);
                 delaySlotLir.emitControlTransfer(crb, masm);
-                new Srax(asIntReg(dst), 48, asIntReg(dst)).emit(masm);
+                new Sra(asIntReg(dst), 16, asIntReg(dst)).emit(masm);
                 break;
             case I2F:
                 delaySlotLir.emitControlTransfer(crb, masm);