These are used by certain instruction semantics policies and satisfiability modulo theory (SMT) solvers. These expressions are tailored to bit-vector and integer difference logics, whereas the expression nodes in other parts of ROSE have different goals.
Classes | |
| class | Visitor |
| class | TreeNode |
| Any node of an expression tree for instruction semantics, from which the InternalNode and LeafNode classes are derived. More... | |
| class | InternalNode |
| Internal node of an expression tree for instruction semantics. More... | |
| class | LeafNode |
| Leaf node of an expression tree for instruction semantics. More... | |
Typedefs | |
| typedef std::map< uint64_t, uint64_t > | RenameMap |
| typedef boost::shared_ptr< const TreeNode > | TreeNodePtr |
| typedef boost::shared_ptr< const InternalNode > | InternalNodePtr |
| typedef boost::shared_ptr< const LeafNode > | LeafNodePtr |
Enumerations | |
| enum | Operator { OP_ADD, OP_AND, OP_ASR, OP_BV_AND, OP_BV_OR, OP_BV_XOR, OP_CONCAT, OP_EQ, OP_EXTRACT, OP_INVERT, OP_ITE, OP_LSSB, OP_MSSB, OP_NE, OP_NEGATE, OP_NOOP, OP_OR, OP_ROL, OP_ROR, OP_SDIV, OP_SEXTEND, OP_SGE, OP_SGT, OP_SHL0, OP_SHL1, OP_SHR0, OP_SHR1, OP_SLE, OP_SLT, OP_SMOD, OP_SMUL, OP_UDIV, OP_UEXTEND, OP_UGE, OP_UGT, OP_ULE, OP_ULT, OP_UMOD, OP_UMUL, OP_ZEROP } |
| Operators for internal nodes of the expression tree. More... | |
Functions | |
| const char * | to_str (Operator o) |
| typedef std::map<uint64_t, uint64_t> InsnSemanticsExpr::RenameMap |
Definition at line 63 of file InsnSemanticsExpr.h.
| typedef boost::shared_ptr<const TreeNode> InsnSemanticsExpr::TreeNodePtr |
Definition at line 67 of file InsnSemanticsExpr.h.
| typedef boost::shared_ptr<const InternalNode> InsnSemanticsExpr::InternalNodePtr |
Definition at line 70 of file InsnSemanticsExpr.h.
| typedef boost::shared_ptr<const LeafNode> InsnSemanticsExpr::LeafNodePtr |
Definition at line 71 of file InsnSemanticsExpr.h.
Operators for internal nodes of the expression tree.
Commutative operators generally take one or more operands. Operators such as shifting, extending, and truncating have the size operand appearing before the bit vector on which to operate (this makes the output more human-readable since the size operand is often a constant).
Definition at line 17 of file InsnSemanticsExpr.h.
| const char* InsnSemanticsExpr::to_str | ( | Operator | o | ) |
1.4.7