changeset 18139:9147ad23314b

Remove FrameMap.stackSlotSize(). It gives the false impression that all slots are of the same size.
author Josef Eisl <josef.eisl@jku.at>
date Tue, 21 Oct 2014 12:10:39 +0200
parents 4c49f062d136
children 185bd9096c88
files graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotEnterUnpackFramesStackFrameOp.java graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLeaveCurrentStackFrameOp.java graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLeaveUnpackFramesStackFrameOp.java graal/com.oracle.graal.lir/src/com/oracle/graal/lir/FrameMap.java
diffstat 4 files changed, 8 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotEnterUnpackFramesStackFrameOp.java	Tue Oct 21 11:23:37 2014 +0200
+++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotEnterUnpackFramesStackFrameOp.java	Tue Oct 21 12:10:39 2014 +0200
@@ -86,7 +86,7 @@
         masm.decrementq(stackPointerRegister, totalFrameSize - 2 * crb.target.wordSize);
 
         // Save return registers after moving the frame.
-        final int stackSlotSize = frameMap.stackSlotSize();
+        final int stackSlotSize = frameMap.getTarget().wordSize;
         Register integerResultRegister = registerConfig.getReturnRegister(Kind.Long);
         masm.movptr(new AMD64Address(stackPointerRegister, registerSaveLayout.registerToSlot(integerResultRegister) * stackSlotSize), integerResultRegister);
 
--- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLeaveCurrentStackFrameOp.java	Tue Oct 21 11:23:37 2014 +0200
+++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLeaveCurrentStackFrameOp.java	Tue Oct 21 12:10:39 2014 +0200
@@ -52,7 +52,7 @@
         Register stackPointer = registerConfig.getFrameRegister();
 
         // Restore integer result register.
-        final int stackSlotSize = frameMap.stackSlotSize();
+        final int stackSlotSize = frameMap.getTarget().wordSize;
         Register integerResultRegister = registerConfig.getReturnRegister(Kind.Long);
         masm.movptr(integerResultRegister, new AMD64Address(stackPointer, registerSaveLayout.registerToSlot(integerResultRegister) * stackSlotSize));
         masm.movptr(rdx, new AMD64Address(stackPointer, registerSaveLayout.registerToSlot(rdx) * stackSlotSize));
--- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLeaveUnpackFramesStackFrameOp.java	Tue Oct 21 11:23:37 2014 +0200
+++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLeaveUnpackFramesStackFrameOp.java	Tue Oct 21 12:10:39 2014 +0200
@@ -69,7 +69,7 @@
         masm.movslq(new AMD64Address(threadRegister, threadLastJavaFpOffset), 0);
 
         // Restore return values.
-        final int stackSlotSize = frameMap.stackSlotSize();
+        final int stackSlotSize = frameMap.getTarget().wordSize;
         Register integerResultRegister = registerConfig.getReturnRegister(Kind.Long);
         masm.movptr(integerResultRegister, new AMD64Address(stackPointerRegister, registerSaveLayout.registerToSlot(integerResultRegister) * stackSlotSize));
 
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/FrameMap.java	Tue Oct 21 11:23:37 2014 +0200
+++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/FrameMap.java	Tue Oct 21 12:10:39 2014 +0200
@@ -121,15 +121,6 @@
     }
 
     /**
-     * Gets the size of a stack slot.
-     *
-     * @return stack slot size
-     */
-    public int stackSlotSize() {
-        return getTarget().wordSize;
-    }
-
-    /**
      * Gets the frame size of the compiled frame, not including the size of the
      * {@link Architecture#getReturnAddressSize() return address slot}.
      *
@@ -229,8 +220,8 @@
      * @return the index of the stack slot
      */
     public int indexForStackSlot(StackSlot slot) {
-        assert offsetForStackSlot(slot) % stackSlotSize() == 0;
-        return offsetForStackSlot(slot) / stackSlotSize();
+        assert offsetForStackSlot(slot) % getTarget().wordSize == 0;
+        return offsetForStackSlot(slot) / getTarget().wordSize;
     }
 
     /**
@@ -342,7 +333,7 @@
         if (slots == 0) {
             return null;
         }
-        spillSize += (slots * stackSlotSize());
+        spillSize += (slots * getTarget().wordSize);
 
         if (!objects.isEmpty()) {
             assert objects.length() <= slots;
@@ -350,7 +341,7 @@
             for (int slotIndex = 0; slotIndex < slots; slotIndex++) {
                 StackSlot objectSlot = null;
                 if (objects.get(slotIndex)) {
-                    objectSlot = allocateNewSpillSlot(LIRKind.reference(Kind.Object), slotIndex * stackSlotSize());
+                    objectSlot = allocateNewSpillSlot(LIRKind.reference(Kind.Object), slotIndex * getTarget().wordSize);
                     objectStackSlots.add(objectSlot);
                     if (outObjectStackSlots != null) {
                         outObjectStackSlots.add(objectSlot);
@@ -373,7 +364,7 @@
     }
 
     public ReferenceMap initReferenceMap(boolean hasRegisters) {
-        ReferenceMap refMap = getTarget().createReferenceMap(hasRegisters, frameSize() / stackSlotSize());
+        ReferenceMap refMap = getTarget().createReferenceMap(hasRegisters, frameSize() / getTarget().wordSize);
         for (StackSlot slot : objectStackSlots) {
             setReference(slot, refMap);
         }