22 #ifndef OTAWA_HARD_REGISTER_H
23 #define OTAWA_HARD_REGISTER_H
25 #include <elm/assert.h>
26 #include <elm/string.h>
27 #include <elm/genstruct/Table.h>
30 namespace otawa {
namespace hard {
115 #endif // OTAWA_HARD_REGISTER_H
Register::kind_t kind(void) const
Get the kind of registers in the bank.
Definition: Register.h:72
This class represents a bank of registers.
Definition: Register.h:68
MeltedBank(elm::CString name,...)
Build a melted bank with the registers passed in the variable list arguments (ended by null)...
Definition: hard_Register.cpp:291
A register specialized for containing float value.
Definition: Register.h:44
int _size
Definition: Register.h:81
A register specialized for containing an address.
Definition: Register.h:42
RegBank * bank(void) const
Get the owner bank of the register.
Definition: Register.h:50
const elm::genstruct::Table< Register * > & registers() const
Definition: Register.h:77
int count(void) const
Get the count of register in the bank.
Definition: Register.h:74
elm::String _name
Definition: Register.h:62
A melted bank may contains registers with different sizes and kinds.
Definition: Register.h:101
RegBank * _bank
Definition: Register.h:63
int _size
Definition: Register.h:61
int number(void) const
Get the register number.
Definition: Register.h:49
int _number
Definition: Register.h:59
~PlainBank(void)
Definition: hard_Register.cpp:271
io::Output & operator<<(io::Output &out, const Platform::Identification &id)
Definition: Platform.h:140
kind_t _kind
Definition: Register.h:60
RegBank(elm::CString name, Register::kind_t kind, int size)
Buil a new register bank.
Definition: hard_Register.cpp:183
elm::CString _name
Definition: Register.h:79
int size(void) const
Get the size, in bits, of the registers in the bank.
Definition: Register.h:73
kind_t
This enumeration represents the differents kind of value found in hardware registers.
Definition: Register.h:40
void set(int index, Register *reg)
Definition: Register.h:86
A register specialized for containing an integer value.
Definition: Register.h:43
int pfnum
Definition: Register.h:64
sys::SystemOutStream & out
PlainBank(elm::CString name, Register::kind_t kind, int size, elm::CString pattern, int count)
Buila new plain bank.
Definition: hard_Register.cpp:260
~MeltedBank(void)
Definition: hard_Register.cpp:308
This kind defines registers not specialized in other kinds.
Definition: Register.h:45
int size(void) const
Definition: Register.h:53
int platformNumber(void) const
Gives a number which is unique for this platform.
Definition: Register.h:54
Usually only used as null value for register kinds.
Definition: Register.h:41
elm::genstruct::AllocatedTable< Register * > _regs
Definition: Register.h:82
~RegBank(void)
Definition: Register.h:85
const elm::String & name(void) const
Get the name of the register.
Definition: Register.h:51
Register * operator[](int index) const
Short to RegBank::get().
Definition: Register.h:76
Register(const elm::String &name, kind_t kind, int size)
Build a new register.
Definition: hard_Register.cpp:129
Objects of this class are simple machine register, more accurately unbreakable atomic registers...
Definition: Register.h:38
kind_t kind(void) const
Get the kind of a register.
Definition: Register.h:52
Register::kind_t _kind
Definition: Register.h:80
elm::CString name(void) const
Get the name of the bank.
Definition: Register.h:71
A plain bank is a register bank whose registers have the same size and the same type.
Definition: Register.h:92