Otawa
0.10
|
#include <otawa/loader/old_gliss/BranchInst.h>
Public Types | |
typedef elm::t::uint32 | kind_t |
Public Member Functions | |
BranchInst (Process &process, kind_t kind, address_t addr) | |
virtual otawa::Inst * | target (void) |
Get the target of the branch. More... | |
Process & | process (void) const |
virtual void | dump (io::Output &out) |
Output a displayable representation of the instruction. More... | |
virtual kind_t | kind (void) |
Get the kind of the current instruction. More... | |
virtual const elm::genstruct::Table < hard::Register * > & | readRegs (void) |
Get the registers read by the instruction. More... | |
virtual const elm::genstruct::Table < hard::Register * > & | writtenRegs (void) |
Get the registers written by the instruction. More... | |
virtual address_t | address (void) const |
Get the address of the item . More... | |
Inst * | nextInst (void) const |
Inst * | prevInst (void) const |
bool | meets (kind_t mask) |
bool | oneOf (kind_t mask) |
bool | noneOf (kind_t mask) |
bool | isIntern (void) |
Test if the instruction neither access memory, nor modify control flow. More... | |
bool | isMem (void) |
Test if the instruction access memory. More... | |
bool | isControl (void) |
Test if the instruction changes the control flow. More... | |
bool | isLoad (void) |
Test if the instruction is a load, that is, it performs only one simple memory read. More... | |
bool | isStore (void) |
Test if the instruction is a store, that is, it performs only one simple memory write. More... | |
bool | isBranch (void) |
Test if the instruction is a branch, that is, it changes the control flow but performs neither a memory access, nor a context storage. More... | |
bool | isCall (void) |
Test if the instruction is a sub-program call, that is, it changes the control flow but stores the current state for allowing performing a return. More... | |
bool | isReturn (void) |
Test if the instruction is a sub-program return, that is, it modifies the control flow retrieving its context from a preceding call instruction. More... | |
bool | isConditional (void) |
Test if this instruction is conditional. More... | |
bool | isMulti (void) |
Test if the instruction is multi-memory accesss load / store. More... | |
bool | isSpecial (void) |
Test if the instruction is a complex special instruction. More... | |
bool | isMul (void) |
Test if the instruction is a multiplication. More... | |
bool | isDiv (void) |
Test if the instruction is a division. More... | |
bool | isIndirect (void) |
bool | isUnknown (void) |
Test if an instruction is unknown. More... | |
bool | isAtomic (void) |
Test if the instruction is an atomic synchronization instruction, that is, performing an atomic read-write memory. More... | |
bool | isBundle (void) |
On VLIW architecture, mark an instruction that is part of a bundle but not last instruction. More... | |
bool | isBundleEnd (void) |
On VLIW architecture, mark an instruction that is the last instruction of a bundle. More... | |
virtual Type * | type (void) |
virtual void | semInsts (sem::Block &block) |
Return a list of semantics pseudo-instruction representing the effect of the instruction. More... | |
virtual int | semInsts (sem::Block &block, int temp) |
Same as Inst::semInsts(sem::Block& block) to transform a machine instruction into machine instructions but temp is used as a base to encode temporaries. More... | |
virtual int | semWriteBack (sem::Block &block, int temp) |
VLIW instructions of a bundle perform read and write-back of registers in parallel. More... | |
virtual delayed_t | delayType (void) |
For a branch instruction, returns the type of management for delay slots. More... | |
virtual int | delaySlots (void) |
For a branch instruction, returns the number of delayed instructions. More... | |
virtual void | readRegSet (RegSet &set) |
Get the list of register read by the instruction. More... | |
virtual void | writeRegSet (RegSet &set) |
Get the list of register written by the instruction. More... | |
virtual Inst * | toInst (void) |
Return the instruction matching the current item. More... | |
virtual int | multiCount (void) |
This function is only defined for ISA supporting the IS_MULTI attribute. More... | |
ProgItem * | next (void) const |
Get the next program item. More... | |
ProgItem * | previous (void) const |
Get the previous program item. More... | |
virtual t::uint32 | size (void) const =0 |
Get the size of the item in bytes. More... | |
address_t | topAddress (void) const |
Compute the address of the item immediately following the current item. More... | |
Property * | getProp (const AbstractIdentifier *id) const |
Find a property by its identifier. More... | |
void | setProp (Property *prop) |
Set the property in the property list removing any double. More... | |
void | setProp (const AbstractIdentifier *id) |
void | removeProp (const AbstractIdentifier *id) |
Remove a property matching the given identifier. More... | |
void | removeProp (const AbstractIdentifier &id) |
Property * | extractProp (const AbstractIdentifier *id) |
Remove a property matching the given identifier and return it. More... | |
Property * | extractProp (const AbstractIdentifier &id) |
Remove a property matching the given identifier and return it. More... | |
void | addProp (Property *prop) |
Add property to the list without checking of duplication. More... | |
void | removeAllProp (const AbstractIdentifier *id) |
Remove all the properties matching the given identifier. More... | |
bool | hasProp (const AbstractIdentifier &id) const |
Test if the property list contains a property matching the given identifier. More... | |
void | clearProps (void) |
Remove all properties from the list. More... | |
void | addProps (const PropList &props) |
Add all properties from the given property list, in a reverse order. More... | |
void | print (elm::io::Output &out) const |
Display the current property list. More... | |
Static Public Attributes | |
static const kind_t | IS_COND = 0x00001 |
Mask of a conditional instruction of an instruction kind. More... | |
static const kind_t | IS_CONTROL = 0x00002 |
Mask of a control instruction. More... | |
static const kind_t | IS_CALL = 0x00004 |
Mask of a call instruction. More... | |
static const kind_t | IS_RETURN = 0x00008 |
Mask of a return instruction. More... | |
static const kind_t | IS_MEM = 0x00010 |
Mask of an instruction accessing the memory. More... | |
static const kind_t | IS_LOAD = 0x00020 |
Mask of an instruction performing a memory load. More... | |
static const kind_t | IS_STORE = 0x00040 |
static const kind_t | IS_INT = 0x00080 |
Mask of an instruction processing integer. More... | |
static const kind_t | IS_FLOAT = 0x00100 |
Mask of an instruction processing floats. More... | |
static const kind_t | IS_ALU = 0x00200 |
Mask of an instruction performing a computation. More... | |
static const kind_t | IS_MUL = 0x00400 |
Mask of a multiplication instruction. More... | |
static const kind_t | IS_DIV = 0x00800 |
Mask of a division instruction. More... | |
static const kind_t | IS_SHIFT = 0x01000 |
Mask of an instruction performing a shift (this includes logicial shifts, arithmetic shifts and rotations). More... | |
static const kind_t | IS_TRAP = 0x02000 |
Mask of a trap instruction. More... | |
static const kind_t | IS_INTERN = 0x04000 |
Mask of an instruction performing setup internal to the processor. More... | |
static const kind_t | IS_MULTI = 0x08000 |
This mask denotes an instructions that perform multi-value store or load. More... | |
static const kind_t | IS_SPECIAL = 0x10000 |
This mask denotes an instruction that is processed in a special way in the pipeline. More... | |
static const kind_t | IS_INDIRECT = 0x10000 |
static const kind_t | IS_UNKNOWN = 0x20000 |
This mask denotes an unknown instruction: its opcode does not match any known instruction in the loader. More... | |
static const kind_t | IS_ATOMIC = 0x40000 |
static const kind_t | IS_BUNDLE = 0x80000 |
Applied on a VLIW architecture, marks instructions part of a bundle but not at end of the bundle. More... | |
static Inst & | null = static_null |
Null instruction with null address and null size (no kind). More... | |
static const PropList | EMPTY |
This is an empty proplist for convenience. More... | |
Protected Member Functions | |
virtual address_t | decodeTargetAddress (void) |
virtual void | decodeRegs (void) |
void | insertPseudo (ProgItem *pos) |
bool | atBegin (void) const |
bool | atEnd (void) const |
void | replace (DLNode *node) |
void | insertAfter (DLNode *node) |
void | insertBefore (DLNode *node) |
void | remove (void) |
void | removeNext (void) |
void | removePrevious (void) |
Protected Attributes | |
kind_t | _kind |
elm::genstruct::AllocatedTable < hard::Register * > | in_regs |
elm::genstruct::AllocatedTable < hard::Register * > | out_regs |
Static Protected Attributes | |
static const unsigned long | REGS_DONE = 0x80000000 |
static const unsigned long | TARGET_DONE = 0x40000000 |
static const unsigned long | MASK = REGS_DONE | TARGET_DONE |
static const elm::genstruct::Table < hard::Register * > | no_regs |
A table containing no sets. More... | |
Private Attributes | |
otawa::Inst * | _target |
|
inherited |
|
inherited |
Add property to the list without checking of duplication.
prop | Property to add. |
References otawa::Property::_next.
Referenced by otawa::Identifier< T >::add(), otawa::ast::ASTInfo::ASTInfo(), otawa::Identifier< otawa::arm::Info * >::copy(), otawa::AbstractIdentifier::initProps(), otawa::ContextualProperty::make(), otawa::script::Script::makeConfig(), otawa::ccg::Builder::processLBlockSet(), otawa::ipet::ILPSystemGetter::processWorkSpace(), otawa::Identifier< T >::ref(), otawa::ContextualProperty::ref(), and otawa::ContextualProperty::refProps().
|
inherited |
Add all properties from the given property list, in a reverse order.
props | Property list to clone. |
References copy(), otawa::PropList::head, and otawa::Property::next().
Referenced by otawa::display::CFGDrawer::CFGDrawer(), otawa::display::GraphVizGraph::GraphVizGraph(), otawa::ParamFeature::instantiate(), otawa::Manager::loadXML(), otawa::display::GraphVizGraph::newEdge(), otawa::display::GraphVizGraph::newNode(), otawa::PropList::operator=(), otawa::Process::Process(), otawa::PropList::PropList(), otawa::display::GraphVizItem::setProps(), otawa::VirtualBasicBlock::VirtualBasicBlock(), and otawa::VirtualCFG::VirtualCFG().
|
virtualinherited |
Get the address of the item .
Implements otawa::ProgItem.
|
inherited |
Remove all properties from the list.
References otawa::Property::next().
Referenced by otawa::PSTBuilder::getVCFG(), otawa::PropList::operator=(), otawa::display::GraphVizItem::setProps(), otawa::PropList::~PropList(), and otawa::WorkSpace::~WorkSpace().
|
protectedvirtualinherited |
|
protectedvirtual |
|
virtualinherited |
For a branch instruction, returns the number of delayed instructions.
As a default, return 0.
|
virtualinherited |
For a branch instruction, returns the type of management for delay slots.
As a default, consider there is no delay slots.
References otawa::DELAYED_None.
|
virtualinherited |
Output a displayable representation of the instruction.
The implementation of this method is not mandatory.
out | Output channel to use. |
Reimplemented from otawa::Inst.
|
inherited |
Remove a property matching the given identifier and return it.
Caller is responsible of the management of the obtained property.
id | Identifier of the property to extract. |
References otawa::Property::_next, and otawa::Property::next().
Referenced by otawa::script::Script::makeConfig().
|
inlineinherited |
Remove a property matching the given identifier and return it.
Caller is responsible of the management of the obtained property.
id | Identifier of the property to extract. |
References otawa::PropList::extractProp().
Referenced by otawa::PropList::extractProp().
|
inherited |
Find a property by its identifier.
id | Identifier of the property to find. |
References otawa::Property::_next, and otawa::Property::next().
Referenced by otawa::Identifier< otawa::arm::Info * >::exists(), otawa::ContextualProperty::exists(), otawa::ContextualProperty::find(), otawa::Identifier< T >::get(), otawa::PropList::hasProp(), otawa::ContextualProperty::make(), otawa::ParamFeature::matches(), otawa::ImmutableRef< T, I >::print(), otawa::ContextualProperty::print(), otawa::Identifier< T >::ref(), otawa::ContextualProperty::ref(), otawa::ContextualProperty::refProps(), otawa::Identifier< T >::set(), otawa::Identifier< T >::use(), and otawa::Identifier< T >::value().
|
inlineinherited |
Test if the property list contains a property matching the given identifier.
id | Property identifier to look for. |
References otawa::PropList::getProp().
Referenced by otawa::ipet::BasicConstraintsBuilder::addEntryConstraint(), otawa::Monitor::configure(), otawa::ImmutableRef< T, I >::exists(), and otawa::Manager::setVerbosity().
|
inlineprotectedinherited |
References elm::inhstruct::DLNode::insertBefore().
|
inlineinherited |
Test if the instruction is an atomic synchronization instruction, that is, performing an atomic read-write memory.
References otawa::Inst::IS_ATOMIC, and otawa::Inst::oneOf().
|
inlineinherited |
Test if the instruction is a branch, that is, it changes the control flow but performs neither a memory access, nor a context storage.
References otawa::Inst::IS_CALL, otawa::Inst::IS_CONTROL, otawa::Inst::IS_RETURN, otawa::Inst::IS_TRAP, otawa::Inst::noneOf(), and otawa::Inst::oneOf().
Referenced by otawa::FlowFactLoader::scanMultiBranch().
|
inlineinherited |
On VLIW architecture, mark an instruction that is part of a bundle but not last instruction.
References otawa::Inst::IS_BUNDLE, and otawa::Inst::oneOf().
|
inlineinherited |
On VLIW architecture, mark an instruction that is the last instruction of a bundle.
References otawa::Inst::IS_BUNDLE, and otawa::Inst::oneOf().
Referenced by otawa::BasicBlock::Bundle::move().
|
inlineinherited |
Test if the instruction is a sub-program call, that is, it changes the control flow but stores the current state for allowing performing a return.
References otawa::Inst::IS_CALL, and otawa::Inst::oneOf().
Referenced by otawa::PFGBuilder::addFunction(), otawa::CFGBuilder::buildCFG(), otawa::ipet::FlowFactLoader::enteringCall(), otawa::Virtualizer::enteringCall(), and otawa::FlowFactLoader::scanMultiCall().
|
inlineinherited |
Test if this instruction is conditional.
References otawa::Inst::IS_COND, and otawa::Inst::oneOf().
Referenced by otawa::PFGBuilder::addFunction(), otawa::CFGBuilder::buildCFG(), otawa::branch::CondNumber::processBB(), otawa::etime::StandardEventBuilder::processBB(), and otawa::branch::ConsBuilder::processBB().
|
inlineinherited |
Test if the instruction changes the control flow.
References otawa::Inst::IS_CONTROL, and otawa::Inst::oneOf().
Referenced by otawa::PFGBuilder::addFunction(), otawa::CFGBuilder::buildCFG(), otawa::FlowFactLoader::scanIgnoreControl(), otawa::FlowFactLoader::scanIgnoreSeq(), otawa::FlowFactLoader::scanNoInline(), and otawa::FlowFactLoader::scanSetInlining().
|
inlineinherited |
Test if the instruction is a division.
References otawa::Inst::IS_DIV, and otawa::Inst::oneOf().
|
inlineinherited |
References otawa::Inst::IS_INDIRECT, and otawa::Inst::oneOf().
Referenced by otawa::branch::CondNumber::processBB(), and otawa::branch::ConsBuilder::processBB().
|
inlineinherited |
Test if the instruction neither access memory, nor modify control flow.
References otawa::Inst::IS_INTERN, and otawa::Inst::oneOf().
|
inlineinherited |
Test if the instruction is a load, that is, it performs only one simple memory read.
References otawa::Inst::IS_LOAD, and otawa::Inst::oneOf().
Referenced by otawa::ParExeGraph::addEdgesForMemoryOrder().
|
inlineinherited |
Test if the instruction access memory.
References otawa::Inst::IS_MEM, and otawa::Inst::oneOf().
|
inlineinherited |
Test if the instruction is a multiplication.
References otawa::Inst::IS_MUL, and otawa::Inst::oneOf().
|
inlineinherited |
Test if the instruction is multi-memory accesss load / store.
References otawa::Inst::IS_MEM, otawa::Inst::IS_MULTI, and otawa::Inst::meets().
|
inlineinherited |
Test if the instruction is a sub-program return, that is, it modifies the control flow retrieving its context from a preceding call instruction.
References otawa::Inst::IS_RETURN, and otawa::Inst::oneOf().
Referenced by otawa::PFGBuilder::addFunction().
|
inlineinherited |
Test if the instruction is a complex special instruction.
References otawa::Inst::IS_SPECIAL, and otawa::Inst::oneOf().
|
inlineinherited |
Test if the instruction is a store, that is, it performs only one simple memory write.
References otawa::Inst::IS_STORE, and otawa::Inst::oneOf().
Referenced by otawa::ParExeGraph::addEdgesForMemoryOrder().
|
inlineinherited |
Test if an instruction is unknown.
References otawa::Inst::IS_UNKNOWN, and otawa::Inst::oneOf().
Referenced by otawa::VarTextDecoder::getInst().
|
virtualinherited |
Get the kind of the current instruction.
In fact, the kind is composed as bit array representing an instruction property.
Implements otawa::Inst.
|
inlineinherited |
References otawa::Inst::kind().
Referenced by otawa::Inst::isMulti().
|
virtualinherited |
This function is only defined for ISA supporting the IS_MULTI attribute.
It returns the number of stored during the multi-memory access (in term of memory accesses).
|
inherited |
Get the next program item.
References elm::inhstruct::DLNode::atEnd().
Referenced by otawa::Segment::findItemAt(), otawa::Segment::insert(), and otawa::Inst::nextInst().
|
inlineinherited |
References otawa::ProgItem::next(), and otawa::ProgItem::toInst().
Referenced by otawa::PFGBuilder::addFunction(), otawa::ast::ASTLoader::makeBlock(), otawa::DelayedBuilder::makeNOp(), otawa::BasicBlock::Bundle::move(), otawa::DelayedBuilder::next(), otawa::BasicBlock::InstIter::next(), otawa::BasicBlock::BundleIter::next(), otawa::CFGBuilder::nextBB(), and otawa::DelayedBuilder::size().
|
inlineinherited |
References otawa::Inst::oneOf().
Referenced by otawa::Inst::isBranch().
|
inlineinherited |
References otawa::Inst::kind().
Referenced by otawa::Inst::isAtomic(), otawa::Inst::isBranch(), otawa::Inst::isBundle(), otawa::Inst::isBundleEnd(), otawa::Inst::isCall(), otawa::Inst::isConditional(), otawa::Inst::isControl(), otawa::Inst::isDiv(), otawa::Inst::isIndirect(), otawa::Inst::isIntern(), otawa::Inst::isLoad(), otawa::Inst::isMem(), otawa::Inst::isMul(), otawa::Inst::isReturn(), otawa::Inst::isSpecial(), otawa::Inst::isStore(), otawa::Inst::isUnknown(), and otawa::Inst::noneOf().
|
inlineinherited |
References otawa::ProgItem::previous(), and otawa::ProgItem::toInst().
Referenced by otawa::WorkSpace::format(), and otawa::ast::ASTLoader::makeBlock().
|
inherited |
Get the previous program item.
References elm::inhstruct::DLNode::atBegin().
Referenced by otawa::Segment::insert(), and otawa::Inst::prevInst().
|
inherited |
Display the current property list.
out | Output to use. |
Referenced by otawa::operator<<(), and otawa::ContextualProperty::print().
|
inlineinherited |
References otawa::loader::old_gliss::Inst::proc.
|
virtualinherited |
Get the registers read by the instruction.
Reimplemented from otawa::Inst.
|
virtualinherited |
Get the list of register read by the instruction.
set | Set filled with platform numbers of read registers. |
References elm::genstruct::Vector< T >::add(), and otawa::Inst::readRegs().
|
inherited |
Remove all the properties matching the given identifier.
id | Identifier of properties to remove. |
References otawa::Property::_next, and otawa::Property::next().
Referenced by otawa::LoopUnroller::unroll().
|
inherited |
Remove a property matching the given identifier.
id | Identifier of the property to remove. |
References otawa::Property::_next, and otawa::Property::next().
Referenced by otawa::PSTBuilder::buildTree(), otawa::BBRemover< T >::clean(), otawa::display::CFGOutput::processCFG(), otawa::SubCFGBuilder::processWorkSpace(), otawa::Ref< T, I >::remove(), and otawa::ContextualPath::Ref< T >::remove().
|
inlineinherited |
References otawa::PropList::removeProp().
Referenced by otawa::PropList::removeProp().
|
virtualinherited |
Return a list of semantics pseudo-instruction representing the effect of the instruction.
block | Block to write semantics instruction to. An empty vector means there is no operation. |
Referenced by otawa::se::FilterBuilder::iterateBranchPaths(), otawa::Inst::semInsts(), and otawa::sem::PathIter::start().
|
virtualinherited |
Same as Inst::semInsts(sem::Block& block) to transform a machine instruction into machine instructions but temp is used as a base to encode temporaries.
This is used for VLIW where instructions are executed in parallel and register write-back only occurs at end of the semantic instructions.
block | Block to translate instruction in. |
temp | Base number for temporaries used for write-back register saving. |
References otawa::Inst::semInsts().
|
virtualinherited |
VLIW instructions of a bundle perform read and write-back of registers in parallel.
This is mimicked in OTAWA by concatenating semantic instructions of each machine instruction and only writing into temporaries. by this method.
block | Block to fill with write-back semantic instructions. |
temp | Base number for temporaries used for write-back register saving. |
|
inherited |
Set the property in the property list removing any double.
prop | Property to set. |
References otawa::Property::_next, otawa::Property::id(), and otawa::Property::next().
|
inlineinherited |
References otawa::PropList::setProp().
Referenced by otawa::PropList::setProp().
|
pure virtualinherited |
Get the size of the item in bytes.
Referenced by otawa::Segment::insert(), otawa::DelayedBuilder::makeNOp(), otawa::DelayedBuilder::size(), and otawa::ProgItem::topAddress().
|
virtual |
|
virtualinherited |
Return the instruction matching the current item.
Reimplemented from otawa::ProgItem.
|
inlineinherited |
Compute the address of the item immediately following the current item.
References otawa::ProgItem::address(), and otawa::ProgItem::size().
Referenced by otawa::ParExeGraph::addEdgesForFetch(), otawa::VarTextDecoder::getInst(), otawa::Segment::insert(), otawa::BasicBlock::Bundle::insts(), otawa::BasicBlock::Bundle::move(), otawa::DelayedBuilder::next(), otawa::BasicBlock::InstIter::next(), otawa::BasicBlock::BundleIter::next(), otawa::FlowFactLoader::scanIgnoreControl(), otawa::FlowFactLoader::scanIgnoreSeq(), otawa::FlowFactLoader::scanMultiBranch(), otawa::FlowFactLoader::scanMultiCall(), otawa::FlowFactLoader::scanNoInline(), otawa::FlowFactLoader::scanSetInlining(), otawa::DelayedBuilder::size(), and otawa::BasicBlock::Bundle::topAddress().
|
virtualinherited |
|
virtualinherited |
Get the list of register written by the instruction.
set | Set filled with platform numbers of written registers. |
References elm::genstruct::Vector< T >::add(), and otawa::Inst::writtenRegs().
|
virtualinherited |
Get the registers written by the instruction.
Reimplemented from otawa::Inst.
|
protectedinherited |
|
private |
|
staticinherited |
This is an empty proplist for convenience.
|
protectedinherited |
|
staticinherited |
Mask of an instruction performing a computation.
|
staticinherited |
Referenced by otawa::Inst::isAtomic().
|
staticinherited |
Applied on a VLIW architecture, marks instructions part of a bundle but not at end of the bundle.
Referenced by otawa::Inst::isBundle(), and otawa::Inst::isBundleEnd().
|
staticinherited |
Mask of a call instruction.
Referenced by otawa::Inst::isBranch(), and otawa::Inst::isCall().
|
staticinherited |
Mask of a conditional instruction of an instruction kind.
Note that conditional property is not bound to branch but may also be found in guarded instructions.
Referenced by otawa::Inst::isConditional().
|
staticinherited |
Mask of a control instruction.
Referenced by otawa::Inst::isBranch(), and otawa::Inst::isControl().
|
staticinherited |
Mask of a division instruction.
Referenced by otawa::Inst::isDiv().
|
staticinherited |
Mask of an instruction processing floats.
|
staticinherited |
Referenced by otawa::Inst::isIndirect().
|
staticinherited |
Mask of an instruction processing integer.
|
staticinherited |
Mask of an instruction performing setup internal to the processor.
Referenced by otawa::Inst::isIntern().
|
staticinherited |
Mask of an instruction performing a memory load.
Referenced by otawa::Inst::isLoad().
|
staticinherited |
Mask of an instruction accessing the memory.
Referenced by otawa::Inst::isMem(), and otawa::Inst::isMulti().
|
staticinherited |
Mask of a multiplication instruction.
Referenced by otawa::Inst::isMul().
|
staticinherited |
This mask denotes an instructions that perform multi-value store or load.
For example, the "ldmfd" or "stmfd" in the ARM ISA.
Referenced by otawa::Inst::isMulti().
|
staticinherited |
Mask of a return instruction.
Referenced by otawa::Inst::isBranch(), and otawa::Inst::isReturn().
|
staticinherited |
Mask of an instruction performing a shift (this includes logicial shifts, arithmetic shifts and rotations).
|
staticinherited |
This mask denotes an instruction that is processed in a special way in the pipeline.
This concerns very complex instruction usually found in old CISC processors.
Referenced by otawa::Inst::isSpecial().
|
staticinherited |
Referenced by otawa::Inst::isStore().
|
staticinherited |
Mask of a trap instruction.
It may be a programmed interruption, a system call, a debugging break or any control instruction whose control target is computed by the system.
Referenced by otawa::Inst::isBranch().
|
staticinherited |
This mask denotes an unknown instruction: its opcode does not match any known instruction in the loader.
This may denotes either a limitation of the loader, or an execution path error in the program decoding.
Referenced by otawa::Inst::isUnknown().
|
staticprotectedinherited |
|
staticprotectedinherited |
A table containing no sets.
|
staticinherited |
Null instruction with null address and null size (no kind).
|
protectedinherited |
|
staticprotectedinherited |
|
staticprotectedinherited |