changeset 18463:eeed42f7e38c

Assert assumptions about the deoptimization rescue slot.
author Josef Eisl <josef.eisl@jku.at>
date Wed, 19 Nov 2014 16:04:01 +0100
parents 3d0161947d57
children e6b6463c9c06
files graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64FrameMap.java
diffstat 1 files changed, 3 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64FrameMap.java	Tue Nov 18 11:21:07 2014 +0100
+++ b/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64FrameMap.java	Wed Nov 19 16:04:01 2014 +0100
@@ -36,7 +36,7 @@
  *
  * <pre>
  *   Base       Contents
- *
+ * 
  *            :                                :  -----
  *   caller   | incoming overflow argument n   |    ^
  *   frame    :     ...                        :    | positive
@@ -111,7 +111,7 @@
      * runtime for walking/inspecting frames of such methods.
      */
     StackSlot allocateRBPSpillSlot() {
-        assert spillSize == initialSpillSize : "RBP spill slot can only be allocated before getting other stack slots";
+        assert spillSize == initialSpillSize : "RBP spill slot must be the first allocated stack slots";
         rbpSpillSlot = allocateSpillSlot(LIRKind.value(Kind.Long));
         assert asStackSlot(rbpSpillSlot).getRawOffset() == -16 : asStackSlot(rbpSpillSlot).getRawOffset();
         return rbpSpillSlot;
@@ -124,6 +124,7 @@
     }
 
     public StackSlot allocateDeoptimizationRescueSlot() {
+        assert spillSize == initialSpillSize || spillSize == initialSpillSize + spillSlotSize(LIRKind.value(Kind.Long)) : "Deoptimization rescue slot must be the first or second (if there is an RBP spill slot) stack slot";
         return allocateSpillSlot(LIRKind.value(Kind.Long));
     }
 }