gem5
v20.1.0.0
|
Return address stack class, implements a simple RAS. More...
#include <ras.hh>
Public Member Functions | |
ReturnAddrStack () | |
Creates a return address stack, but init() must be called prior to use. More... | |
void | init (unsigned numEntries) |
Initializes RAS with a specified number of entries. More... | |
void | reset () |
TheISA::PCState | top () |
Returns the top address on the RAS. More... | |
unsigned | topIdx () |
Returns the index of the top of the RAS. More... | |
void | push (const TheISA::PCState &return_addr) |
Pushes an address onto the RAS. More... | |
void | pop () |
Pops the top address from the RAS. More... | |
void | restore (unsigned top_entry_idx, const TheISA::PCState &restored) |
Changes index to the top of the RAS, and replaces the top address with a new target. More... | |
bool | empty () |
bool | full () |
Private Member Functions | |
void | incrTos () |
Increments the top of stack index. More... | |
void | decrTos () |
Decrements the top of stack index. More... | |
Private Attributes | |
std::vector< TheISA::PCState > | addrStack |
The RAS itself. More... | |
unsigned | numEntries |
The number of entries in the RAS. More... | |
unsigned | usedEntries |
The number of used entries in the RAS. More... | |
unsigned | tos |
The top of stack index. More... | |
|
inline |
|
inlineprivate |
Decrements the top of stack index.
Definition at line 84 of file ras.hh.
References numEntries, and tos.
Referenced by pop().
|
inline |
Definition at line 75 of file ras.hh.
References usedEntries.
|
inline |
Definition at line 77 of file ras.hh.
References numEntries, and usedEntries.
|
inlineprivate |
Increments the top of stack index.
Definition at line 80 of file ras.hh.
References numEntries, and tos.
Referenced by push().
void ReturnAddrStack::init | ( | unsigned | numEntries | ) |
Initializes RAS with a specified number of entries.
numEntries | Number of entries in the RAS. |
Definition at line 32 of file ras.cc.
References addrStack, numEntries, and reset().
void ReturnAddrStack::pop | ( | ) |
Pops the top address from the RAS.
Definition at line 61 of file ras.cc.
References decrTos(), and usedEntries.
void ReturnAddrStack::push | ( | const TheISA::PCState & | return_addr | ) |
Pushes an address onto the RAS.
Definition at line 49 of file ras.cc.
References addrStack, incrTos(), numEntries, tos, and usedEntries.
void ReturnAddrStack::reset | ( | ) |
Definition at line 40 of file ras.cc.
References addrStack, ArmISA::i, numEntries, tos, and usedEntries.
Referenced by init().
void ReturnAddrStack::restore | ( | unsigned | top_entry_idx, |
const TheISA::PCState & | restored | ||
) |
Changes index to the top of the RAS, and replaces the top address with a new target.
top_entry_idx | The index of the RAS that will now be the top. |
restored | The new target address of the new top of the RAS. |
Definition at line 71 of file ras.cc.
References addrStack, numEntries, tos, and usedEntries.
|
inline |
|
inline |
|
private |
|
private |
|
private |
|
private |