gem5  v20.1.0.0
Public Member Functions | Private Member Functions | Private Attributes | List of all members
ReturnAddrStack Class Reference

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...
 

Detailed Description

Return address stack class, implements a simple RAS.

Definition at line 39 of file ras.hh.

Constructor & Destructor Documentation

◆ ReturnAddrStack()

ReturnAddrStack::ReturnAddrStack ( )
inline

Creates a return address stack, but init() must be called prior to use.

Definition at line 45 of file ras.hh.

Member Function Documentation

◆ decrTos()

void ReturnAddrStack::decrTos ( )
inlineprivate

Decrements the top of stack index.

Definition at line 84 of file ras.hh.

References numEntries, and tos.

Referenced by pop().

◆ empty()

bool ReturnAddrStack::empty ( )
inline

Definition at line 75 of file ras.hh.

References usedEntries.

◆ full()

bool ReturnAddrStack::full ( )
inline

Definition at line 77 of file ras.hh.

References numEntries, and usedEntries.

◆ incrTos()

void ReturnAddrStack::incrTos ( )
inlineprivate

Increments the top of stack index.

Definition at line 80 of file ras.hh.

References numEntries, and tos.

Referenced by push().

◆ init()

void ReturnAddrStack::init ( unsigned  numEntries)

Initializes RAS with a specified number of entries.

Parameters
numEntriesNumber of entries in the RAS.

Definition at line 32 of file ras.cc.

References addrStack, numEntries, and reset().

◆ pop()

void ReturnAddrStack::pop ( )

Pops the top address from the RAS.

Definition at line 61 of file ras.cc.

References decrTos(), and usedEntries.

◆ push()

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.

◆ reset()

void ReturnAddrStack::reset ( )

Definition at line 40 of file ras.cc.

References addrStack, ArmISA::i, numEntries, tos, and usedEntries.

Referenced by init().

◆ restore()

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.

Parameters
top_entry_idxThe index of the RAS that will now be the top.
restoredThe new target address of the new top of the RAS.

Definition at line 71 of file ras.cc.

References addrStack, numEntries, tos, and usedEntries.

◆ top()

TheISA::PCState ReturnAddrStack::top ( )
inline

Returns the top address on the RAS.

Definition at line 55 of file ras.hh.

References addrStack, and tos.

◆ topIdx()

unsigned ReturnAddrStack::topIdx ( )
inline

Returns the index of the top of the RAS.

Definition at line 59 of file ras.hh.

References tos.

Member Data Documentation

◆ addrStack

std::vector<TheISA::PCState> ReturnAddrStack::addrStack
private

The RAS itself.

Definition at line 88 of file ras.hh.

Referenced by init(), push(), reset(), restore(), and top().

◆ numEntries

unsigned ReturnAddrStack::numEntries
private

The number of entries in the RAS.

Definition at line 91 of file ras.hh.

Referenced by decrTos(), full(), incrTos(), init(), push(), reset(), and restore().

◆ tos

unsigned ReturnAddrStack::tos
private

The top of stack index.

Definition at line 97 of file ras.hh.

Referenced by decrTos(), incrTos(), push(), reset(), restore(), top(), and topIdx().

◆ usedEntries

unsigned ReturnAddrStack::usedEntries
private

The number of used entries in the RAS.

Definition at line 94 of file ras.hh.

Referenced by empty(), full(), pop(), push(), reset(), and restore().


The documentation for this class was generated from the following files:

Generated on Wed Sep 30 2020 14:02:30 for gem5 by doxygen 1.8.17