Otawa
0.10
|
Values in the StackAnalysis. More...
#include <otawa/stack/features.h>
Public Types | |
typedef t::uint32 | int_t |
typedef t::int32 | signed_t |
typedef t::uint64 | upper_t |
Public Member Functions | |
Value (void) | |
Value (kind_t k, int_t v=0) | |
Construct for a value. More... | |
Value & | operator= (const Value &val) |
bool | isTop (void) const |
bool | isBot (void) const |
bool | isReg (void) const |
bool | isSP (void) const |
bool | isConst (void) const |
bool | operator== (const Value &val) const |
bool | operator!= (const Value &val) const |
bool | operator< (const Value &val) const |
kind_t | kind (void) const |
Get the kind of the value. More... | |
int_t | value (void) const |
void | add (const Value &val) |
Perform addition of values. More... | |
void | sub (const Value &val) |
Perform subtraction of values. More... | |
void | shl (const Value &val) |
Left-shit on a value. More... | |
void | shr (const Value &val) |
Right-shift on a value. More... | |
void | asr (const Value &val) |
Arithmetic right-shift on a value. More... | |
void | neg (void) |
Invert sign of value. More... | |
void | _not (void) |
Invert bits of the value. More... | |
void | _or (const Value &val) |
Perform OR operator on values (modifying current one). More... | |
void | _and (const Value &val) |
Perform AND operator on values (modifying current one). More... | |
void | _xor (const Value &val) |
Perform XOR operator on values (modifying current one). More... | |
void | mul (const Value &val) |
Perform MUL operator on values (modifying current one). More... | |
void | div (const Value &val) |
Perform division on values (modifying current one). More... | |
void | divu (const Value &val) |
Perform division on values (modifying current one). More... | |
void | mod (const Value &val) |
Perform modulo on values (modifying current one). More... | |
void | modu (const Value &val) |
Perform modulo on values (modifying current one). More... | |
void | mulh (const Value &val) |
Compute upper-word multiplication on values (modifying current one). More... | |
void | join (const Value &val) |
Join of values. More... | |
void | print (io::Output &out) const |
Print the value. More... | |
Static Public Member Functions | |
static Value | reg (int n) |
static Value | addr (Address a) |
static Value | cst (int_t k) |
static Value | sp (int_t off) |
Static Public Attributes | |
static Value | bot |
Bottom value (uninitialized value). More... | |
static Value | top |
Top value (any value). More... | |
static const Value & | none = bot |
static const Value | all = top |
undefined value More... | |
Private Types | |
typedef t::int32 | page_t |
Private Member Functions | |
Value (page_t page, int_t val=0) | |
void | set (page_t kind, int_t value) |
Private Attributes | |
page_t | _page |
int_t | _val |
Static Private Attributes | |
static const int_t | bot_id = -1 |
static const int_t | top_id = -2 |
static const page_t | spec_page = Address::null_page - 2 |
static const page_t | sp_page = Address::null_page - 1 |
Values in the StackAnalysis.
A value may be:
typedef t::uint32 otawa::stack::Value::int_t |
|
private |
Construct for a value.
References otawa::clp::ALL, otawa::stack::CST, otawa::clp::NONE, otawa::clp::REG, and otawa::stack::SP.
void otawa::stack::Value::_and | ( | const Value & | val | ) |
void otawa::stack::Value::_not | ( | void | ) |
Invert bits of the value.
void otawa::stack::Value::_or | ( | const Value & | val | ) |
void otawa::stack::Value::_xor | ( | const Value & | val | ) |
void otawa::stack::Value::add | ( | const Value & | val | ) |
void otawa::stack::Value::asr | ( | const Value & | val | ) |
void otawa::stack::Value::div | ( | const Value & | val | ) |
void otawa::stack::Value::divu | ( | const Value & | val | ) |
|
inline |
|
inline |
|
inline |
|
inline |
kind_t otawa::stack::Value::kind | ( | void | ) | const |
Get the kind of the value.
References otawa::clp::ALL, otawa::stack::CST, otawa::clp::NONE, otawa::clp::REG, and otawa::stack::SP.
Referenced by set().
void otawa::stack::Value::mod | ( | const Value & | val | ) |
void otawa::stack::Value::modu | ( | const Value & | val | ) |
void otawa::stack::Value::mul | ( | const Value & | val | ) |
void otawa::stack::Value::mulh | ( | const Value & | val | ) |
void otawa::stack::Value::neg | ( | void | ) |
Invert sign of value.
|
inline |
References operator==().
|
inline |
Referenced by operator!=().
void otawa::stack::Value::print | ( | io::Output & | out | ) | const |
void otawa::stack::Value::shl | ( | const Value & | val | ) |
void otawa::stack::Value::shr | ( | const Value & | val | ) |
void otawa::stack::Value::sub | ( | const Value & | val | ) |
|
private |
Referenced by isBot(), isConst(), isReg(), isSP(), isTop(), operator<(), operator=(), operator==(), and set().
|
private |
|
static |
Bottom value (uninitialized value).
|
staticprivate |
|
staticprivate |
|
static |
Top value (any value).