Otawa  0.10
otawa::SPAddress Class Reference

Subclass of AccessedAddress, this class represents address with a constant offset relative to the stack pointer. More...

#include <otawa/stack/AccessedAddress.h>

Inheritance diagram for otawa::SPAddress:
otawa::AccessedAddress

Public Types

enum  kind_t { ANY, SP, ABS }
 Describe the different implementation of an accessed address. More...
 

Public Member Functions

 SPAddress (Inst *instruction, bool is_store, t::int32 offset)
 
t::int32 offset (void) const
 
kind_t kind (void) const
 Get the kind of the address. More...
 
bool isStore (void) const
 Test if a store is performed on the accessed address. More...
 
bool isLoad (void) const
 Test if a store is performed on the accessed address. More...
 
Instinstruction (void) const
 Get the instruction where this memory access applies. More...
 
void print (io::Output &out) const
 Print the given address. More...
 

Private Attributes

t::int32 off
 

Detailed Description

Subclass of AccessedAddress, this class represents address with a constant offset relative to the stack pointer.

Any accessed address of kind AccessedAddress::SP can be cast in this class.

Member Enumeration Documentation

Describe the different implementation of an accessed address.

Enumerator
ANY 

Represents the most imprecise memory access: it may potentially concern the full memory address space.

SP 

Represents an stack pointer relative address with a constant offset.

Instances of this kind can be casted into SPAddress.

ABS 

Represents an address defined by its absolute and constant value.

Instances of this kind can be casted into AbsAddress.

Constructor & Destructor Documentation

otawa::SPAddress::SPAddress ( Inst instruction,
bool  is_store,
t::int32  offset 
)
inline

Member Function Documentation

Inst * otawa::AccessedAddress::instruction ( void  ) const
inlineinherited

Get the instruction where this memory access applies.

Returns
Instruction accessing the memory.

References otawa::AccessedAddress::inst.

Referenced by otawa::dcache::BlockBuilder::processBB().

bool otawa::AccessedAddress::isLoad ( void  ) const
inlineinherited

Test if a store is performed on the accessed address.

Returns
True if it is a store.

References otawa::AccessedAddress::store.

bool otawa::AccessedAddress::isStore ( void  ) const
inlineinherited

Test if a store is performed on the accessed address.

Returns
True if it is a store.

References otawa::AccessedAddress::store.

Referenced by otawa::dcache::BlockBuilder::processBB().

AccessedAddress::kind_t otawa::AccessedAddress::kind ( void  ) const
inlineinherited

Get the kind of the address.

According to this kind, this instance may be cast in the corresponding subclass of AccessedAddress.

Returns
Kind of address.

References otawa::AccessedAddress::knd.

Referenced by otawa::dcache::BlockBuilder::processBB().

t::int32 otawa::SPAddress::offset ( void  ) const
inline

References off.

Referenced by otawa::AccessedAddress::print().

Member Data Documentation

t::int32 otawa::SPAddress::off
private

Referenced by offset().


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