Otawa
0.10
|
This structure class represents an instruction in the semantics representation of machine instruction. More...
#include <otawa/sem/inst.h>
Public Member Functions | |
inst (void) | |
inst (opcode _op) | |
inst (opcode _op, int d) | |
inst (opcode _op, int d, int a) | |
inst (opcode _op, int d, int a, int b) | |
t::int16 | d (void) const |
t::int16 | a (void) const |
t::int16 | b (void) const |
t::uint32 | cst (void) const |
t::int16 | reg (void) const |
t::int16 | addr (void) const |
type_t | type (void) const |
cond_t | cond (void) const |
t::int16 | sr (void) const |
t::uint16 | jump (void) const |
void | print (elm::io::Output &out) const |
Output the current instruction to the given output. More... | |
Public Attributes | |
t::uint16 | op |
t::int16 | _d |
union { | |
t::uint32 cst | |
struct { | |
t::int16 a | |
t::int16 b | |
} regs | |
} | args |
This structure class represents an instruction in the semantics representation of machine instruction.
It contains an opcode, giving the performed operation, and arguments depending on this opcode.
The variable is ever used to store the result of an instruction. A variable may match a register (index is positive and matches the register unique number in otawa::hard::Platform description) or a temporary (index is strictly negative).
LOAD, STORE access memory data and uses variable a to get the address and b is an immediate value given the size of the accessed data item.
SCRATCH means that the register is replaced with meaningless value.
SET and SETI assigns to d the variable in b or the immediate value in cst.
CMP, ADD, SUB, SHL, SHR and ASR uses both variable a and b to perform, respectively, comparison, addition, subtraction, logical shift left, logical shift right, arithmetics shift right.
|
inline |
Referenced by otawa::ParamExeGraph::analyzeContentions(), otawa::GraphBBTime< G >::analyzePathContext(), otawa::ExeGraph< N >::build(), otawa::LiExeGraphBBTime::buildEpilogueList(), otawa::GraphBBTime< G >::buildFMTimingContextListForICache(), otawa::GraphBBTime< G >::buildNCTimingContextListForICache(), otawa::ParamExeGraphBBTime::buildPrologueList(), otawa::LiExeGraphBBTime::buildPrologueList(), otawa::GraphBBTime< G >::computeDefaultTimingContextForICache(), otawa::ParExeGraph::createSequenceResources(), otawa::ParamExeGraph::dump(), otawa::ParExeGraph::dump(), otawa::ParamExeGraph::dumpSimple(), otawa::LiExeGraph::nodeEarliestTimes(), otawa::LiExeGraph::nodeLatestTimes(), otawa::ParamExeGraph::ParamExeGraph(), and otawa::ParamExeGraphBBTime::processBB().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Referenced by otawa::sem::PathIter::addr(), and otawa::dcache::CLPBlockBuilder::processBB().
|
inline |
|
inline |
Referenced by otawa::se::FilterBuilder::makeFilters(), and otawa::sem::Printer::print().
|
inline |
|
inline |
|
inline |
Referenced by otawa::sem::Printer::print().
void otawa::sem::inst::print | ( | elm::io::Output & | out | ) | const |
Output the current instruction to the given output.
out | Output to print to. |
References otawa::sem::Printer::print().
Referenced by otawa::sem::operator<<().
|
inline |
Referenced by otawa::sem::PathIter::reg().
|
inline |
Referenced by otawa::sem::Printer::print().
|
inline |
Referenced by otawa::sem::Printer::print().
t::int16 otawa::sem::inst::_d |
t::int16 otawa::sem::inst::a |
Referenced by otawa::sem::PathIter::a(), otawa::se::FilterBuilder::makeFilters(), and otawa::sem::Printer::print().
union { ... } otawa::sem::inst::args |
Referenced by otawa::sem::seti(), otawa::sem::setp(), and otawa::sem::spec().
t::int16 otawa::sem::inst::b |
Referenced by otawa::sem::PathIter::b(), otawa::se::FilterBuilder::makeFilters(), and otawa::sem::Printer::print().
t::uint32 otawa::sem::inst::cst |
t::uint16 otawa::sem::inst::op |
struct { ... } otawa::sem::inst::regs |