org.jikesrvm.compilers.baseline
Class PendingRETInfo

java.lang.Object
  extended by org.jikesrvm.compilers.baseline.PendingRETInfo

final class PendingRETInfo
extends Object

This class is used during the processing of reference maps for a method.

When a JSR has been processed the processing of a RET is pending. Need to track which JSR was processed, and where the "return address" value is being held (i.e. is it on the operand stack, or in a local variable). The value starts on the top of the stack, but is usually quickly moved to a local variable.


Field Summary
 int JSRBBNum
           
 short JSRNextBBNum
          Block number of block after JSR
 int JSRSubStartByteIndex
           
 int returnAddressLocation
          index into map - represents either a local variable or a stack position
private  boolean updatedOnce
          Sanity check the return address location is only updated once
 
Constructor Summary
PendingRETInfo(int JSRSubStartByteIndex, int JSRBBNum, int returnAddressLocation, short JSRNextBBNum)
           
PendingRETInfo(PendingRETInfo copyfrom)
           
 
Method Summary
 void updateReturnAddressLocation(int newLocation)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

JSRSubStartByteIndex

public final int JSRSubStartByteIndex

JSRBBNum

public final int JSRBBNum

returnAddressLocation

public int returnAddressLocation
index into map - represents either a local variable or a stack position


updatedOnce

private boolean updatedOnce
Sanity check the return address location is only updated once


JSRNextBBNum

public final short JSRNextBBNum
Block number of block after JSR

Constructor Detail

PendingRETInfo

public PendingRETInfo(int JSRSubStartByteIndex,
                      int JSRBBNum,
                      int returnAddressLocation,
                      short JSRNextBBNum)

PendingRETInfo

public PendingRETInfo(PendingRETInfo copyfrom)
Method Detail

updateReturnAddressLocation

public void updateReturnAddressLocation(int newLocation)