# HG changeset patch # User Stefan Anzinger # Date 1406734522 25200 # Node ID 6514c67b7efaca06c8f4f0b6841f1a49ee6341e5 # Parent 8aa938ab4ac8e0ff9770358550f3fe1f5c90375a [SPARC] Fixed assertion for stackslot avalibility when deopt is possible diff -r 8aa938ab4ac8 -r 6514c67b7efa graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackend.java --- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackend.java Tue Jul 29 11:51:29 2014 -0700 +++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackend.java Wed Jul 30 08:35:22 2014 -0700 @@ -173,7 +173,7 @@ SPARCHotSpotLIRGenerationResult gen = (SPARCHotSpotLIRGenerationResult) lirGenRes; FrameMap frameMap = gen.getFrameMap(); LIR lir = gen.getLIR(); - assert gen.getDeoptimizationRescueSlot() != null || frameMap.frameNeedsAllocating() : "method that can deoptimize must have a frame"; + assert gen.getDeoptimizationRescueSlot() == null || frameMap.frameNeedsAllocating() : "method that can deoptimize must have a frame"; Stub stub = gen.getStub(); Assembler masm = createAssembler(frameMap); diff -r 8aa938ab4ac8 -r 6514c67b7efa graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCFrameMap.java --- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCFrameMap.java Tue Jul 29 11:51:29 2014 -0700 +++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCFrameMap.java Wed Jul 30 08:35:22 2014 -0700 @@ -35,7 +35,7 @@ * *
  *   Base       Contents
- *
+ * 
  *            :                                :  -----
  *   caller   | incoming overflow argument n   |    ^
  *   frame    :     ...                        :    | positive
@@ -126,4 +126,9 @@
         }
         return offset;
     }
+
+    @Override
+    public boolean frameNeedsAllocating() {
+        return super.frameNeedsAllocating() || spillSize > 0;
+    }
 }