|
gem5
v21.0.1.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 |