# HG changeset patch # User Josef Eisl # Date 1416248852 -3600 # Node ID 8538ef2ce729dca1db0c3c5cc5bbdf189fbb94d4 # Parent 626c267521fe81ae266e56369597dd5ec54017b7 FrameMappingToolImpl: type switch for call to transform(). diff -r 626c267521fe -r 8538ef2ce729 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/framemap/FrameMappingToolImpl.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/framemap/FrameMappingToolImpl.java Mon Nov 17 19:22:06 2014 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/framemap/FrameMappingToolImpl.java Mon Nov 17 19:27:32 2014 +0100 @@ -25,7 +25,10 @@ import java.util.*; import com.oracle.graal.api.code.*; +import com.oracle.graal.compiler.common.*; +import com.oracle.graal.lir.framemap.DelayedFrameMapBuilder.SimpleVirtualStackSlot; import com.oracle.graal.lir.framemap.DelayedFrameMapBuilder.TrackedVirtualStackSlot; +import com.oracle.graal.lir.framemap.DelayedFrameMapBuilder.VirtualStackSlotRange; public class FrameMappingToolImpl implements FrameMappingTool { @@ -43,8 +46,23 @@ public void mapStackSlots() { for (TrackedVirtualStackSlot virtualSlot : builder.getStackSlots()) { - StackSlot slot = virtualSlot.transform(); + final StackSlot slot; + if (virtualSlot instanceof SimpleVirtualStackSlot) { + slot = mapSimpleVirtualStackSlot((SimpleVirtualStackSlot) virtualSlot); + } else if (virtualSlot instanceof VirtualStackSlotRange) { + slot = mapVirtualStackSlotRange((VirtualStackSlotRange) virtualSlot); + } else { + throw GraalInternalError.shouldNotReachHere("Unknown VirtualStackSlot: " + virtualSlot); + } mapping.put(virtualSlot, slot); } } + + protected StackSlot mapSimpleVirtualStackSlot(SimpleVirtualStackSlot virtualStackSlot) { + return virtualStackSlot.transform(); + } + + protected StackSlot mapVirtualStackSlotRange(VirtualStackSlotRange virtualStackSlot) { + return virtualStackSlot.transform(); + } }