Otawa  0.10
inst.h File Reference
#include <elm/io.h>
#include <elm/genstruct/Vector.h>

Go to the source code of this file.

Classes

class  otawa::sem::inst
 This structure class represents an instruction in the semantics representation of machine instruction. More...
 
class  otawa::sem::Block
 A block represents a sequence of semantic instructions inst. More...
 
class  otawa::sem::Block::InstIter
 
class  otawa::sem::Printer
 Printer class for semantic instructions (resolve the generic register value to the their real platform name). More...
 

Namespaces

 otawa
 $Id$ Copyright (c) 2007, IRIT - UPS casse.nosp@m.@iri.nosp@m.t.fr
 
 otawa::hard
 
 otawa::sem
 

Typedefs

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

Enumerations

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

Functions

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