diff graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java @ 18434:06624c98ed8b

Handel RBP and deoptimization rescue slot in AMD64FrameMapBuilder.
author Josef Eisl <josef.eisl@jku.at>
date Mon, 10 Nov 2014 19:43:16 +0100
parents b2b37b36a254
children f91e40c4bb47
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java	Mon Nov 10 18:40:52 2014 +0100
+++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java	Mon Nov 10 19:43:16 2014 +0100
@@ -88,7 +88,7 @@
         /**
          * The slot reserved for saving RBP.
          */
-        final VirtualStackSlot reservedSlot;
+        final StackSlot reservedSlot;
 
         public SaveRbp(NoOp placeholder) {
             this.placeholder = placeholder;
@@ -106,7 +106,7 @@
             if (useStack) {
                 dst = reservedSlot;
             } else {
-                getResult().getFrameMapBuilder().freeSpillSlot(reservedSlot);
+                ((AMD64FrameMapBuilder) getResult().getFrameMapBuilder()).freeRBPSpillSlot();
                 dst = newVariable(LIRKind.value(Kind.Long));
             }
 
@@ -417,7 +417,7 @@
         boolean hasDebugInfo = getResult().getLIR().hasDebugInfo();
         AllocatableValue savedRbp = saveRbp.finalize(hasDebugInfo);
         if (hasDebugInfo) {
-            ((AMD64HotSpotLIRGenerationResult) getResult()).setDeoptimizationRescueSlot(getResult().getFrameMapBuilder().allocateSpillSlot(LIRKind.value(Kind.Long)));
+            ((AMD64HotSpotLIRGenerationResult) getResult()).setDeoptimizationRescueSlot(((AMD64FrameMapBuilder) getResult().getFrameMapBuilder()).allocateDeoptimizationRescueSlot());
         }
 
         for (AMD64HotSpotEpilogueOp op : epilogueOps) {