|
Binary operation such as add, sub, etc. The second argument is a result
type after applying BinOp.
-
Item1
:
BinOpType
-
Item2
:
RegType
-
Item3
:
Expr
-
Item4
:
Expr
|
|
Type casting expression. The first argument is a casting type, and the
second argument is a result type.
-
Item1
:
CastKind
-
Item2
:
RegType
-
Item3
:
Expr
|
|
Extraction expression. The first argument is target expression, and the
second argument is the number of bits for extraction, and the third is
the start position.
-
Item1
:
Expr
-
Item2
:
RegType
-
Item3
:
StartPos
|
|
Name of uninterpreted function.
-
Item
:
string
|
|
If-then-else expression. The first expression is a condition, second
argument is a result type, and the third and the fourth are true and
false expression respectively.
-
Item1
:
Expr
-
Item2
:
RegType
-
Item3
:
Expr
-
Item4
:
Expr
|
|
Memory lookup such as [T_1]:I32
-
Item1
:
Variable
-
Item2
:
RegType
-
Item3
:
Expr
|
|
Nil value for cons cells.
|
|
A number. For example, (0x42:I32) is a 32-bit number 0x42
-
Item
:
BitVector
|
|
Relative operation such as eq, lt, etc. The second argument is a result
type.
-
Item1
:
RelOpType
-
Item2
:
RegType
-
Item3
:
Expr
-
Item4
:
Expr
|
|
Value returned from a function located at the address (fnAddr). The second
argument indicates the return address (the fall-through address of the
call instruction), and the third argument indicates the live definition of
previously defined variable. A fake bbl will contain this expression.
-
fnAddr
:
Addr
-
retAddr
:
Addr
-
Item3
:
Variable
|
|
Memory update such as [T_1] <- T_2. The second argument is a type of
stored value.
-
Item1
:
Variable
-
Item2
:
RegType
-
Item3
:
Expr
-
Item4
:
Expr
|
|
Unary operation such as negation. The second argument is a result type.
-
Item1
:
UnOpType
-
Item2
:
RegType
-
Item3
:
Expr
|
|
Undefined expression. It is a fatal error when we encounter this
expression while evaluating a program. This expression is useful when we
encode a label that should not really jump to (e.g., divide-by-zero
case).
-
Item1
:
RegType
-
Item2
:
string
|
|
A variable.
-
Item
:
Variable
|