|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.jikesrvm.mm.mminterface.GCMapIterator
public abstract class GCMapIterator
Base class for iterators that identify object references and JSR return addresses held in stackframes produced by each of our compilers (baseline, opt, etc.). All compiler specific GCMapIterators extend this abstract class.
GCMapIteratorGroup
Field Summary | |
---|---|
Address |
framePtr
address of stackframe currently being scanned |
WordArray |
registerLocations
address where each gpr register was saved by previously scanned stackframe(s) |
RVMThread |
thread
thread whose stack is currently being scanned |
Constructor Summary | |
---|---|
GCMapIterator()
|
Method Summary | |
---|---|
abstract void |
cleanupPointers()
Iteration is complete, release any internal data structures including locks acquired during setupIterator for jsr maps. |
abstract Address |
getNextReferenceAddress()
Get address of next object reference held by current stackframe. |
abstract Address |
getNextReturnAddressAddress()
Get address of next JSR return address held by current stackframe. |
abstract int |
getType()
Get the type of this iterator (BASELINE, OPT, etc.). |
void |
newStackWalk(RVMThread thread)
Prepare to scan a thread's stack and saved registers for object references. |
abstract void |
reset()
Prepare to re-iterate on same stackframe, and to switch between "reference" iteration and "JSR return address" iteration. |
abstract void |
setupIterator(CompiledMethod compiledMethod,
Offset instructionOffset,
Address framePtr)
Prepare to iterate over object references and JSR return addresses held by a stackframe. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public RVMThread thread
public Address framePtr
public WordArray registerLocations
Constructor Detail |
---|
public GCMapIterator()
Method Detail |
---|
public void newStackWalk(RVMThread thread)
thread
- Thread whose stack is being scannedpublic abstract void setupIterator(CompiledMethod compiledMethod, Offset instructionOffset, Address framePtr)
compiledMethod
- method running in the stackframeinstructionOffset
- offset of current instruction within that method's codeframePtr
- address of stackframe to be visitedpublic abstract Address getNextReferenceAddress()
Side effect: registerLocations[] updated at end of iteration. TODO: registerLocations[] update should be done via separately called method instead of as side effect.
public abstract Address getNextReturnAddressAddress()
public abstract void reset()
public abstract void cleanupPointers()
public abstract int getType()
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |