changeset 22627:971804fb95ec

[SPARC] Fix problems introduced on refactoring Kind.Object and Value.getKind()
author Stefan Anzinger <stefan.anzinger@oracle.com>
date Mon, 14 Sep 2015 18:13:50 +0200
parents 8b198b0e6ef9
children 5a410e01cd5f
files graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64AddressNode.java graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64LIRGenerator.java graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLIRGenerator.java graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArithmetic.java graal/com.oracle.graal.lir/src/com/oracle/graal/lir/gen/LIRGenerator.java
diffstat 5 files changed, 17 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64AddressNode.java	Mon Sep 14 18:13:28 2015 +0200
+++ b/graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64AddressNode.java	Mon Sep 14 18:13:50 2015 +0200
@@ -28,6 +28,7 @@
 import com.oracle.graal.asm.amd64.AMD64Address.Scale;
 import com.oracle.graal.graph.*;
 import com.oracle.graal.lir.amd64.*;
+import com.oracle.graal.lir.gen.LIRGeneratorTool;
 import com.oracle.graal.nodeinfo.*;
 import com.oracle.graal.nodes.*;
 import com.oracle.graal.nodes.memory.address.*;
@@ -61,7 +62,7 @@
     }
 
     public void generate(NodeLIRBuilderTool gen) {
-        AMD64LIRGenerator tool = (AMD64LIRGenerator) gen.getLIRGeneratorTool();
+        LIRGeneratorTool tool = gen.getLIRGeneratorTool();
 
         AllocatableValue baseValue = base == null ? Value.ILLEGAL : tool.asAllocatable(gen.operand(base));
         AllocatableValue indexValue = index == null ? Value.ILLEGAL : tool.asAllocatable(gen.operand(index));
--- a/graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64LIRGenerator.java	Mon Sep 14 18:13:28 2015 +0200
+++ b/graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64LIRGenerator.java	Mon Sep 14 18:13:50 2015 +0200
@@ -264,15 +264,6 @@
         return result;
     }
 
-    private static LIRKind toStackKind(LIRKind kind) {
-        if (kind.getPlatformKind() instanceof JavaKind) {
-            JavaKind stackKind = ((JavaKind) kind.getPlatformKind()).getStackKind();
-            return kind.changeType(stackKind);
-        } else {
-            return kind;
-        }
-    }
-
     @Override
     public Variable emitLoad(LIRKind kind, Value address, LIRFrameState state) {
         AMD64AddressValue loadAddress = asAddressValue(address);
--- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLIRGenerator.java	Mon Sep 14 18:13:28 2015 +0200
+++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLIRGenerator.java	Mon Sep 14 18:13:50 2015 +0200
@@ -208,7 +208,7 @@
     @Override
     public Variable emitLoad(LIRKind kind, Value address, LIRFrameState state) {
         SPARCAddressValue loadAddress = asAddressValue(address);
-        Variable result = newVariable(kind);
+        Variable result = newVariable(toStackKind(kind));
         append(new LoadOp(kind.getPlatformKind(), result, loadAddress, state));
         return result;
     }
@@ -331,7 +331,7 @@
         assert inputKind.getPlatformKind() == JavaKind.Int;
         if (inputKind.isReference(0)) {
             // oop
-            Variable result = newVariable(LIRKind.reference(JavaKind.Object));
+            Variable result = newVariable(LIRKind.reference(JavaKind.Long));
             append(new SPARCHotSpotMove.UncompressPointer(result, asAllocatable(pointer), getProviders().getRegisters().getHeapBaseRegister().asValue(), encoding, nonNull));
             return result;
         } else {
--- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArithmetic.java	Mon Sep 14 18:13:28 2015 +0200
+++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArithmetic.java	Mon Sep 14 18:13:50 2015 +0200
@@ -721,22 +721,22 @@
                 masm.signx(asRegister(src, JavaKind.Long), asRegister(dst, JavaKind.Int));
                 break;
             case B2L:
-                masm.sll(asRegister(src, JavaKind.Int), 24, asRegister(dst, JavaKind.Long));
+                masm.sll(asRegister(src), 24, asRegister(dst, JavaKind.Long));
                 delaySlotLir.emitControlTransfer(crb, masm);
                 masm.sra(asRegister(dst, JavaKind.Long), 24, asRegister(dst, JavaKind.Long));
                 break;
             case B2I:
-                masm.sll(asRegister(src, JavaKind.Int), 24, asRegister(dst, JavaKind.Int));
+                masm.sll(asRegister(src), 24, asRegister(dst, JavaKind.Int));
                 delaySlotLir.emitControlTransfer(crb, masm);
                 masm.sra(asRegister(dst, JavaKind.Int), 24, asRegister(dst, JavaKind.Int));
                 break;
             case S2L:
-                masm.sll(asRegister(src, JavaKind.Int), 16, asRegister(dst, JavaKind.Long));
+                masm.sll(asRegister(src), 16, asRegister(dst, JavaKind.Long));
                 delaySlotLir.emitControlTransfer(crb, masm);
                 masm.sra(asRegister(dst, JavaKind.Long), 16, asRegister(dst, JavaKind.Long));
                 break;
             case S2I:
-                masm.sll(asRegister(src, JavaKind.Int), 16, asRegister(dst, JavaKind.Int));
+                masm.sll(asRegister(src), 16, asRegister(dst, JavaKind.Int));
                 delaySlotLir.emitControlTransfer(crb, masm);
                 masm.sra(asRegister(dst, JavaKind.Int), 16, asRegister(dst, JavaKind.Int));
                 break;
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/gen/LIRGenerator.java	Mon Sep 14 18:13:28 2015 +0200
+++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/gen/LIRGenerator.java	Mon Sep 14 18:13:50 2015 +0200
@@ -56,6 +56,15 @@
         // @formatter:on
     }
 
+    protected static LIRKind toStackKind(LIRKind kind) {
+        if (kind.getPlatformKind() instanceof JavaKind) {
+            JavaKind stackKind = ((JavaKind) kind.getPlatformKind()).getStackKind();
+            return kind.changeType(stackKind);
+        } else {
+            return kind;
+        }
+    }
+
     private final LIRKindTool lirKindTool;
 
     private final CodeGenProviders providers;