maat::ir::CPUContext class

The CPU context in Maat's IR. It is basically a mapping between abstract expressions and CPU registers

❱   Base classes

class maat::serial::Serializable
Virtual interface that serializable classes must implement.

❱   Public functions

void set(ir::reg_t reg, const Value& value)
Assign abstract or concrete expression to register reg

void set(ir::reg_t reg, Expr value)
Assign abstract expression to register reg

void set(ir::reg_t reg, cst_t value)
Assign concrete value to register reg

void set(ir::reg_t reg, Number&& value)
Assign concrete value to register reg

void set(ir::reg_t reg, const Number& value)
Assign concrete value to register reg

auto get(ir::reg_t reg) const -> const Value&
Get current value of register reg as an abstract expression.

void print(std::ostream& os, const Arch& arch)
Print the CPU context to a stream with proper register names.

auto class_uid() const -> serial::uid_t virtual
Return the class uid (see ClassId enum)

void dump(serial::Serializer&) const virtual
Dump the object contents in a serializer stream.

void load(serial::Deserializer&) virtual
Restore an object from a deserializer stream.

❱   Friends

auto operator<<(std::ostream& os, const CPUContext& ctx) -> std::ostream&
Print the CPU context to a stream.