|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectorg.jikesrvm.mm.mminterface.GCMapIterator
org.jikesrvm.compilers.baseline.ia32.BaselineGCMapIterator
public abstract class BaselineGCMapIterator
Iterator for stack frame built by the Baseline compiler An Instance of this class will iterate through a particular reference map of a method returning the offsets of any refereces that are part of the input parameters, local variables, and java stack for the stack frame.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from interface org.jikesrvm.ia32.RegisterConstants |
|---|
RegisterConstants.FloatingPointMachineRegister, RegisterConstants.FPR, RegisterConstants.GPR, RegisterConstants.MachineRegister, RegisterConstants.MM, RegisterConstants.XMM |
| Field Summary | |
|---|---|
private int |
bridgeParameterIndex
current parameter being mapped (-1 == "this") |
private int |
bridgeParameterInitialIndex
first parameter to be mapped (-1 == "this") |
private boolean |
bridgeParameterMappingRequired
have all bridge parameters been mapped yet? |
private TypeReference[] |
bridgeParameterTypes
parameter types passed by that method |
private int |
bridgeRegisterIndex
gpr register it lives in |
private Address |
bridgeRegisterLocation
memory address at which that register was saved |
private boolean |
bridgeRegistersLocationUpdated
have the register location been updated |
private boolean |
bridgeSpilledParameterMappingRequired
do we need to map spilled params (baseline compiler = no, opt = yes) |
private int |
bridgeSpilledParamInitialOffset
starting offset to stack location for param0 |
private Address |
bridgeSpilledParamLocation
current spilled param location |
private MethodReference |
bridgeTarget
method to be invoked via dynamic bridge (null: current frame is not a dynamic bridge) |
private boolean |
counterArrayBase
have we reported the base ptr of the edge counter array? |
private BaselineCompiledMethod |
currentCompiledMethod
Compiled method for the frame |
private NormalMethod |
currentMethod
Compiled method for the frame |
private int |
currentNumLocals
|
private DynamicLink |
dynamicLink
place to keep info returned by CompiledMethod.getDynamicLink |
private boolean |
finishedWithRegularMap
have we processed all the values in the regular map yet? |
private int |
mapId
id of current map out of all maps |
private int |
mapIndex
Current index in current map |
private ReferenceMaps |
maps
set of maps for this method |
private static boolean |
TRACE_ALL
|
private static boolean |
TRACE_DL
|
| Fields inherited from class org.jikesrvm.mm.mminterface.GCMapIterator |
|---|
framePtr, registerLocations, thread |
| Fields inherited from interface org.jikesrvm.ia32.BaselineConstants |
|---|
BRIDGE_FRAME_EXTRA_SIZE, EBP_SAVE_OFFSET, EBX_SAVE_OFFSET, EDI_SAVE_OFFSET, FPU_SAVE_OFFSET, LG_WORDSIZE, S0, S1, SAVED_GPRS, SAVED_GPRS_FOR_SAVE_LS_REGISTERS, SP, STACKFRAME_FIRST_PARAMETER_OFFSET, STACKFRAME_REG_SAVE_OFFSET, T0, T0_SAVE_OFFSET, T1, T1_SAVE_OFFSET, TR, WORDSIZE, XMM_SAVE_OFFSET |
| Fields inherited from interface org.jikesrvm.Constants |
|---|
NOT_REACHED, REFLECTION_FPRS_BITS, REFLECTION_FPRS_MASK, REFLECTION_GPRS_BITS, REFLECTION_GPRS_MASK |
| Fields inherited from interface org.jikesrvm.objectmodel.ThinLockConstants |
|---|
TL_DEDICATED_U16_OFFSET, TL_DEDICATED_U16_SHIFT, TL_LOCK_COUNT_MASK, TL_LOCK_COUNT_SHIFT, TL_LOCK_COUNT_UNIT, TL_LOCK_ID_MASK, TL_LOCK_ID_SHIFT, TL_NUM_BITS_RC, TL_NUM_BITS_STAT, TL_NUM_BITS_TID, TL_STAT_BIASABLE, TL_STAT_FAT, TL_STAT_MASK, TL_STAT_SHIFT, TL_STAT_THIN, TL_THREAD_ID_MASK, TL_THREAD_ID_SHIFT, TL_UNLOCK_MASK |
| Fields inherited from interface org.jikesrvm.objectmodel.TIBLayoutConstants |
|---|
IMT_METHOD_SLOTS, NEEDS_DYNAMIC_LINK, TIB_ARRAY_ELEMENT_TIB_INDEX, TIB_DOES_IMPLEMENT_INDEX, TIB_FIRST_SPECIALIZED_METHOD_INDEX, TIB_FIRST_VIRTUAL_METHOD_INDEX, TIB_INTERFACE_DISPATCH_TABLE_INDEX, TIB_SUPERCLASS_IDS_INDEX, TIB_TYPE_INDEX |
| Fields inherited from interface org.jikesrvm.HeapLayoutConstants |
|---|
BAD_MAP_COMPRESSION, BOOT_IMAGE_CODE_END, BOOT_IMAGE_CODE_SIZE, BOOT_IMAGE_CODE_START, BOOT_IMAGE_DATA_END, BOOT_IMAGE_DATA_SIZE, BOOT_IMAGE_DATA_START, BOOT_IMAGE_END, BOOT_IMAGE_RMAP_END, BOOT_IMAGE_RMAP_START, MAX_BOOT_IMAGE_RMAP_SIZE, MAXIMUM_MAPPABLE |
| Fields inherited from interface org.jikesrvm.ia32.ArchConstants |
|---|
SSE2_BASE, SSE2_FULL |
| Fields inherited from interface org.jikesrvm.ia32.RegisterConstants |
|---|
ALL_FPRS, ALL_GPRS, EAX, EBP, EBX, ECX, EDI, EDX, ESI, ESP, FP0, FP1, FP2, FP3, FP4, FP5, FP6, FP7, INSTRUCTION_WIDTH, LG_INSTRUCTION_WIDTH, MM0, MM1, MM10, MM11, MM12, MM13, MM14, MM15, MM2, MM3, MM4, MM5, MM6, MM7, MM8, MM9, NATIVE_NONVOLATILE_FPRS, NATIVE_NONVOLATILE_GPRS, NATIVE_PARAMETER_FPRS, NATIVE_PARAMETER_GPRS, NATIVE_VOLATILE_FPRS, NATIVE_VOLATILE_GPRS, NONVOLATILE_FPRS, NONVOLATILE_GPRS, NUM_FPRS, NUM_GPRS, NUM_NONVOLATILE_FPRS, NUM_NONVOLATILE_GPRS, NUM_PARAMETER_FPRS, NUM_PARAMETER_GPRS, NUM_RETURN_FPRS, NUM_RETURN_GPRS, NUM_VOLATILE_FPRS, NUM_VOLATILE_GPRS, PARAMETER_FPRS, PARAMETER_GPRS, R0, R1, R10, R11, R12, R13, R14, R15, R2, R3, R4, R5, R6, R7, R8, R9, RETURN_FPRS, RETURN_GPRS, STACK_POINTER, THREAD_REGISTER, VOLATILE_FPRS, VOLATILE_GPRS, XMM0, XMM1, XMM10, XMM11, XMM12, XMM13, XMM14, XMM15, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7, XMM8, XMM9 |
| Fields inherited from interface org.jikesrvm.ia32.TrapConstants |
|---|
RVM_TRAP_BASE |
| Constructor Summary | |
|---|---|
BaselineGCMapIterator(WordArray registerLocations)
Constructor. |
|
| Method Summary | |
|---|---|
void |
cleanupPointers()
Cleanup pointers - used with method maps to release data structures early ... they may be in temporary storage ie storage only used during garbage collection |
short |
convertIndexToLocation(int index)
given a index in the local area (biased : local0 has index 1) this routine determines the correspondig offset in the stack |
private int |
convertIndexToOffset(int index)
|
Address |
getNextReferenceAddress()
Get location of next reference. |
Address |
getNextReturnAddressAddress()
Gets the location of the next return address after the current position. |
int |
getStackDepth()
For debugging (used with checkRefMap) |
int |
getType()
Get the type of this iterator (BASELINE, OPT, etc.). |
void |
reset()
Reset iteration to initial state. |
void |
setupIterator(CompiledMethod compiledMethod,
Offset instructionOffset,
Address fp)
Set the iterator to scan the map at the machine instruction offset provided. |
| Methods inherited from class org.jikesrvm.mm.mminterface.GCMapIterator |
|---|
newStackWalk |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private static final boolean TRACE_ALL
private static final boolean TRACE_DL
private NormalMethod currentMethod
private BaselineCompiledMethod currentCompiledMethod
private int currentNumLocals
private int mapIndex
private int mapId
private ReferenceMaps maps
private boolean counterArrayBase
private final DynamicLink dynamicLink
private MethodReference bridgeTarget
private TypeReference[] bridgeParameterTypes
private boolean bridgeParameterMappingRequired
private boolean bridgeSpilledParameterMappingRequired
private boolean bridgeRegistersLocationUpdated
private boolean finishedWithRegularMap
private int bridgeParameterInitialIndex
private int bridgeParameterIndex
private int bridgeRegisterIndex
private Address bridgeRegisterLocation
private Address bridgeSpilledParamLocation
private int bridgeSpilledParamInitialOffset
| Constructor Detail |
|---|
public BaselineGCMapIterator(WordArray registerLocations)
| Method Detail |
|---|
public void setupIterator(CompiledMethod compiledMethod,
Offset instructionOffset,
Address fp)
setupIterator in class GCMapIteratorcompiledMethod - identifies the method and classinstructionOffset - identifies the map to be scanned.fp - identifies a specific occurrance of this method and allows for
processing instance specific information i.e JSR return address
valuespublic void reset()
reset in class GCMapIteratorpublic short convertIndexToLocation(int index)
private int convertIndexToOffset(int index)
public Address getNextReferenceAddress()
getNextReferenceAddress in class GCMapIteratorpublic Address getNextReturnAddressAddress()
getNextReturnAddressAddress in class GCMapIteratorpublic void cleanupPointers()
cleanupPointers in class GCMapIteratorpublic int getType()
GCMapIterator
getType in class GCMapIteratorpublic int getStackDepth()
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||