+
+ | COPY |
+ = |
+ Copy one varnode into another. |
+
+
+ | LOAD |
+ * or -> |
+ Dereference a pointer, or load a value from memory. |
+
+
+ | STORE |
+ * or -> |
+ Store a value to memory, through a pointer. |
+
+
+ | BRANCH |
+ goto |
+ Branch execution to a specific address. |
+
+
+ | CBRANCH |
+ if (...) goto |
+ Branch execution to an address if the condition is true. |
+
+
+ | BRANCHIND |
+ switch(...) |
+ Branch execution to a computed address. |
+
+
+ | CALL |
+ funcname(...) |
+ Branch to a subfunction. |
+
+
+ | CALLIND |
+ (*funcptr)(...) |
+ Branch through a pointer to a subfunction. |
+
+
+ | RETURN |
+ return |
+ Return execution to the calling function. |
+
+
+ | PIECE |
+ CONCAT |
+ Concatenate two varnodes. |
+
+
+ | SUBPIECE |
+ SUB |
+ Extract a subset of bytes. |
+
+
+ | POPCOUNT |
+ POPCOUNT |
+ Count the 1 bits. |
+
+
+ | INT_EQUAL |
+ == |
+ True if input varnodes are equal. |
+
+
+ | INT_NOTEQUAL |
+ != |
+ True if input varnodes are not equal. |
+
+
+ | INT_LESS |
+ < or > |
+ True if one varnode is less than the other as unsigned integers. |
+
+
+ | INT_SLESS |
+ < or > |
+ True if one varnode is less than the other as signed integers. |
+
+
+ | INT_LESSEQUAL |
+ <= or >= |
+ True if one varnode is less than or equal to the other as unsigned integers. |
+
+
+ | INT_SLESSEQUAL |
+ <= or >= |
+ True if one varnode is less than or equal to the other as signed integers. |
+
+
+ | INT_ZEXT |
+ ZEXT |
+ Zero extension. |
+
+
+ | INT_SEXT |
+ SEXT |
+ Signed extension. |
+
+
+ | INT_ADD |
+ + |
+ Add as integers. |
+
+
+ | INT_SUB |
+ - |
+ Subtract as integers. |
+
+
+ | INT_CARRY |
+ CARRY |
+ True if adding produces an unsigned carry. |
+
+
+ | INT_SCARRY |
+ SCARRY |
+ True if adding produces a signed carry. |
+
+
+ | INT_SBORROW |
+ SBORROW |
+ True if subtracting produces a signed borrow. |
+
+
+ | INT_2COMP |
+ - |
+ Twos complement. |
+
+
+ | INT_NEGATE |
+ ~ |
+ Bitwise negation. |
+
+
+ | INT_XOR |
+ ^ |
+ Bitwise exclusive-or. |
+
+
+ | INT_AND |
+ & |
+ Bitwise logical-and. |
+
+
+ | INT_OR |
+ | |
+ Bitwise logical-or. |
+
+
+ | INT_LEFT |
+ << |
+ Left shift. |
+
+
+ | INT_RIGHT |
+ >> |
+ Unsigned (logical) right shift. |
+
+
+ | INT_SRIGHT |
+ >> |
+ Signed (arithmetic) right shift. |
+
+
+ | INT_MULT |
+ * |
+ Integer multiplication. |
+
+
+ | INT_DIV |
+ / |
+ Unsigned integer division. |
+
+
+ | INT_REM |
+ % |
+ Unsigned remainder. |
+
+
+ | INT_SDIV |
+ / |
+ Signed division. |
+
+
+ | INT_SREM |
+ % |
+ Signed remainder. |
+
+
+ | BOOL_NEGATE |
+ ! |
+ Boolean negation. |
+
+
+ | BOOL_XOR |
+ ^^ |
+ Boolean exclusive-or. |
+
+
+ | BOOL_AND |
+ && |
+ Boolean logical-and. |
+
+
+ | BOOL_OR |
+ || |
+ Boolean logical-or. |
+
+
+ | FLOAT_EQUAL |
+ == |
+ True if inputs are equal as floating-point numbers. |
+
+
+ | FLOAT_NOTEQUAL |
+ != |
+ True if inputs are not equal as floating-point numbers. |
+
+
+ | FLOAT_LESS |
+ < or > |
+ True if one input is less than the other as floating-point numbers. |
+
+
+ | FLOAT_LESSEQUAL |
+ <= or >= |
+ True if one input is less than or equal to the other as floating-point numbers. |
+
+
+ | FLOAT_ADD |
+ + |
+ Add as floating-point numbers. |
+
+
+ | FLOAT_SUB |
+ - |
+ Subtract as floating-point numbers. |
+
+
+ | FLOAT_MULT |
+ * |
+ Multiply as floating-point numbers. |
+
+
+ | FLOAT_DIV |
+ / |
+ Divide as floating-point numbers. |
+
+
+ | FLOAT_NEG |
+ - |
+ Negate a floating-point number. |
+
+
+ | FLOAT_ABS |
+ ABS |
+ Absolute value of a floating-point number. |
+
+
+ | FLOAT_SQRT |
+ SQRT |
+ Square root of a floating-point number. |
+
+
+ | FLOAT_CEIL |
+ CEIL |
+ Ceiling function. |
+
+
+ | FLOAT_FLOOR |
+ FLOOR |
+ Floor function. |
+
+
+ | FLOAT_ROUND |
+ ROUND |
+ Nearest integral value. |
+
+
+ | FLOAT_NAN |
+ NAN |
+ True if input is not a valid floating-point number (NaN). |
+
+
+ | INT2FLOAT |
+ <na> |
+ Convert integer to floating-point. |
+
+
+ | FLOAT2FLOAT |
+ <na> |
+ Convert between different floating-point precisions. |
+
+
+ | TRUNC |
+ <na> |
+ Convert floating-point to integer. |
+
+
+ | CPOOLREF |
+ <na> |
+ Obtain constant pool value. |
+
+
+ | NEW |
+ new |
+ Allocate an object or an array of objects. |
+
+
+ | MULTIEQUAL |
+ <na> |
+ Compiler phi-node: merge values from multiple control-flow paths. |
+
+
+ | INDIRECT |
+ <na> |
+ Indirect effect on a varnode. |
+
+
+ | CAST |
+ <na> |
+ Copy a value, changing its data-type. |
+
+
+ | PTRADD |
+ + |
+ Add an offset to a pointer. |
+
+
+ | PTRSUB |
+ . or -> |
+ Dereference a subfield from a pointer. |
+
+
+ | INSERT |
+ <na> |
+ Insert a bit-range. |
+
+
+ | EXTRACT |
+ <na> |
+ Extract a bit-range. |
+
+
+