Otawa  0.10
otawa::sem Namespace Reference

Classes

class  Block
 A block represents a sequence of semantic instructions inst. More...
 
class  inst
 This structure class represents an instruction in the semantics representation of machine instruction. More...
 
class  PathIter
 This iterator allows easily to traverse all execution paths of a block of semantic instructions. More...
 
class  Printer
 Printer class for semantic instructions (resolve the generic register value to the their real platform name). More...
 

Typedefs

typedef enum otawa::sem::opcode opcode
 
typedef enum otawa::sem::cond_t cond_t
 
typedef enum otawa::sem::type_t type_t
 
typedef struct otawa::sem::inst inst
 

Enumerations

enum  opcode {
  NOP = 0, BRANCH, TRAP, CONT,
  IF, LOAD, STORE, SCRATCH,
  SET, SETI, SETP, CMP,
  CMPU, ADD, SUB, SHL,
  SHR, ASR, NEG, NOT,
  AND, OR, XOR, MUL,
  MULU, DIV, DIVU, MOD,
  MODU, SPEC, MULH
}
 
enum  cond_t {
  NO_COND = 0, EQ, LT, LE,
  GE, GT, ANY_COND = 8, NE,
  ULT, ULE, UGE, UGT,
  MAX_COND
}
 
enum  type_t {
  NO_TYPE = 0, INT8 = 1, INT16 = 2, INT32 = 3,
  INT64 = 4, UINT8 = 5, UINT16 = 6, UINT32 = 7,
  UINT64 = 8, FLOAT32 = 9, FLOAT64 = 10, MAX_TYPE = 11
}
 

Functions

elm::io::Outputoperator<< (elm::io::Output &out, inst i)
 
inst nop (void)
 
inst branch (int to)
 
inst trap (void)
 
inst cont (void)
 
inst _if (int cond, int sr, int jump)
 
inst load (int d, int a, int t)
 
inst load (int d, int a, type_t t)
 
inst store (int d, int a, int t)
 
inst store (int d, int a, type_t t)
 
inst scratch (int d)
 
inst set (int d, int a)
 
inst seti (int d, unsigned long cst)
 
inst setp (int d, unsigned long cst)
 
inst cmp (int d, int a, int b)
 
inst cmpu (int d, int a, int b)
 
inst add (int d, int a, int b)
 
inst sub (int d, int a, int b)
 
inst shl (int d, int a, int b)
 
inst shr (int d, int a, int b)
 
inst asr (int d, int a, int b)
 
inst neg (int d, int a)
 
inst _not (int d, int a)
 
inst _and (int d, int a, int b)
 
inst _or (int d, int a, int b)
 
inst mul (int d, int a, int b)
 
inst mulu (int d, int a, int b)
 
inst div (int d, int a, int b)
 
inst divu (int d, int a, int b)
 
inst mod (int d, int a, int b)
 
inst modu (int d, int a, int b)
 
inst _xor (int d, int a, int b)
 
inst spec (int d, unsigned long cst)
 
inst mulh (int d, int a, int b)
 
elm::io::Outputoperator<< (elm::io::Output &out, const Block &b)
 
cond_t invert (cond_t cond)
 Invert the given condition. More...
 
int size (type_t type)
 Get the size of the given type. More...
 
io::Outputoperator<< (io::Output &out, type_t type)
 
io::Outputoperator<< (io::Output &out, cond_t cond)
 

Typedef Documentation

Enumeration Type Documentation

Enumerator
NO_COND 
EQ 
LT 
LE 
GE 
GT 
ANY_COND 
NE 
ULT 
ULE 
UGE 
UGT 
MAX_COND 
Enumerator
NOP 
BRANCH 
TRAP 
CONT 
IF 
LOAD 
STORE 
SCRATCH 
SET 
SETI 
SETP 
CMP 
CMPU 
ADD 
SUB 
SHL 
SHR 
ASR 
NEG 
NOT 
AND 
OR 
XOR 
MUL 
MULU 
DIV 
DIVU 
MOD 
MODU 
SPEC 
MULH 
Enumerator
NO_TYPE 
INT8 
INT16 
INT32 
INT64 
UINT8 
UINT16 
UINT32 
UINT64 
FLOAT32 
FLOAT64 
MAX_TYPE 

Function Documentation

inst otawa::sem::_and ( int  d,
int  a,
int  b 
)
inline

References AND.

inst otawa::sem::_if ( int  cond,
int  sr,
int  jump 
)
inline

References IF, and MAX_COND.

inst otawa::sem::_not ( int  d,
int  a 
)
inline

References NOT.

inst otawa::sem::_or ( int  d,
int  a,
int  b 
)
inline

References OR.

inst otawa::sem::_xor ( int  d,
int  a,
int  b 
)
inline

References XOR.

inst otawa::sem::asr ( int  d,
int  a,
int  b 
)
inline

References ASR.

inst otawa::sem::branch ( int  to)
inline
inst otawa::sem::cmp ( int  d,
int  a,
int  b 
)
inline

References CMP.

Referenced by otawa::se::FilterBuilder::makeFilters().

inst otawa::sem::cmpu ( int  d,
int  a,
int  b 
)
inline

References CMPU.

inst otawa::sem::div ( int  d,
int  a,
int  b 
)
inline

References otawa::DIV.

inst otawa::sem::divu ( int  d,
int  a,
int  b 
)
inline

References DIVU.

inst otawa::sem::load ( int  d,
int  a,
int  t 
)
inline

References LOAD.

inst otawa::sem::load ( int  d,
int  a,
type_t  t 
)
inline

References LOAD.

inst otawa::sem::mod ( int  d,
int  a,
int  b 
)
inline

References MOD.

inst otawa::sem::modu ( int  d,
int  a,
int  b 
)
inline

References MODU.

inst otawa::sem::mul ( int  d,
int  a,
int  b 
)
inline

References otawa::MUL.

inst otawa::sem::mulh ( int  d,
int  a,
int  b 
)
inline

References MULH.

inst otawa::sem::mulu ( int  d,
int  a,
int  b 
)
inline

References MULU.

inst otawa::sem::nop ( void  )
inline
elm::io::Output& otawa::sem::operator<< ( elm::io::Output out,
inst  i 
)
inline

References out, and otawa::sem::inst::print().

elm::io::Output& otawa::sem::operator<< ( elm::io::Output out,
const Block &  b 
)
inline

References out, and otawa::sem::Block::print().

io::Output & otawa::sem::operator<< ( io::Output out,
type_t  type 
)

References MAX_TYPE, out, and otawa::type().

io::Output & otawa::sem::operator<< ( io::Output out,
cond_t  cond 
)

References MAX_COND, and out.

inst otawa::sem::scratch ( int  d)
inline

References SCRATCH.

inst otawa::sem::set ( int  d,
int  a 
)
inline

References SET.

inst otawa::sem::seti ( int  d,
unsigned long  cst 
)
inline
inst otawa::sem::setp ( int  d,
unsigned long  cst 
)
inline
inst otawa::sem::shl ( int  d,
int  a,
int  b 
)
inline

References SHL.

inst otawa::sem::shr ( int  d,
int  a,
int  b 
)
inline

References SHR.

inst otawa::sem::spec ( int  d,
unsigned long  cst 
)
inline
inst otawa::sem::store ( int  d,
int  a,
int  t 
)
inline
inst otawa::sem::store ( int  d,
int  a,
type_t  t 
)
inline

References STORE.

inst otawa::sem::sub ( int  d,
int  a,
int  b 
)
inline

References SUB.

Referenced by otawa::se::FilterBuilder::makeFilters().

inst otawa::sem::trap ( void  )
inline

References TRAP.