Otawa  0.10
otawa::AccessedAddress Class Reference

Parent class of classes representing accesses to memory. More...

#include <otawa/stack/AccessedAddress.h>

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

Public Types

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

Public Member Functions

 AccessedAddress (Inst *instruction, bool is_store, kind_t kind=ANY)
 
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

Instinst
 
unsigned char store
 
unsigned char knd
 

Detailed Description

Parent class of classes representing accesses to memory.

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::AccessedAddress::AccessedAddress ( Inst instruction,
bool  is_store,
kind_t  kind = ANY 
)
inline

Member Function Documentation

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

Get the instruction where this memory access applies.

Returns
Instruction accessing the memory.

References inst.

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

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

Test if a store is performed on the accessed address.

Returns
True if it is a store.

References store.

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

Test if a store is performed on the accessed address.

Returns
True if it is a store.

References store.

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

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

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

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

void otawa::AccessedAddress::print ( io::Output out) const

Print the given address.

Parameters
outOutput stream.

References elm::abs(), ABS, otawa::ProgItem::address(), otawa::ot::address(), ANY, hex(), inst, knd, otawa::SPAddress::offset(), otawa::sign(), SP, and store.

Referenced by otawa::operator<<().

Member Data Documentation

Inst* otawa::AccessedAddress::inst
private

Referenced by instruction(), and print().

unsigned char otawa::AccessedAddress::knd
private

Referenced by kind(), and print().

unsigned char otawa::AccessedAddress::store
private

Referenced by isLoad(), isStore(), and print().


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