|
| enum | OperationType {
OP_FUNCTION_CALL
, OP_DESTRUCTOR
, OP_SYMBOL
, OP_WIDEN_SIGNED
,
OP_WIDEN_UNSIGNED
, OP_WIDEN_FLOAT
, OP_ARRAY_INDEX
, OP_DOT
,
OP_LOCAL_DECLARE
, OP_LOCAL_UNDECLARE
, OP_LOCAL_VARIABLE
, OP_LITERAL_CHAR
,
OP_LITERAL_STRING
, OP_LITERAL_INT
, OP_LITERAL_FLOAT
, OP_LITERAL_BOOL
,
OP_LITERAL_NULL
, OP_ANONYMOUS_STRUCTURE
, OP_ADDRESSOF
, OP_DEREFERENCE
,
OP_NEGATE
, OP_BITWISE_NOT
, OP_LOGICAL_NOT
, OP_SIZEOF_TYPE
,
OP_ADD
, OP_SUBTRACT
, OP_MULTIPLY
, OP_DIVIDE
,
OP_MODULO
, OP_LOGICAL_AND
, OP_LOGICAL_OR
, OP_BITWISE_AND
,
OP_BITWISE_OR
, OP_BITWISE_XOR
, OP_SHIFT_LEFT
, OP_SHIFT_RIGHT
,
OP_COMPARE_LESS
, OP_COMPARE_GREATER
, OP_COMPARE_LESS_EQUAL
, OP_COMPARE_GREATER_EQUAL
,
OP_COMPARE_NOT_EQUAL
, OP_COMPARE_EQUAL
, OP_ASSIGN
, OP_JUMP_CONDITIONAL
,
OP_JUMP
, OP_RETURN
, OP_RETURN_VOID
} |
| | Operations of the MIR virtual-machine. More...
|
| |
| | Operation (OperationType _type, const Gyoji::context::SourceReference &_src_ref, size_t _result) |
| |
| | Operation (OperationType _type, const Gyoji::context::SourceReference &_src_ref, size_t _result, size_t _operand) |
| |
| | Operation (OperationType _type, const Gyoji::context::SourceReference &_src_ref, size_t _result, size_t _operand_a, size_t _operand_b) |
| |
| | Operation (OperationType _type, const Gyoji::context::SourceReference &_src_ref, size_t _result, size_t _operand_a, size_t _operand_b, size_t _operand_c) |
| |
| virtual | ~Operation () |
| | Move along, nothing to see here.
|
| |
| void | dump (FILE *out, size_t operation_index) const |
| |
| OperationType | get_type () const |
| | Opcode of this operation.
|
| |
| const std::vector< size_t > & | get_operands () const |
| | Get the operands.
|
| |
| size_t | get_result () const |
| | Get the result of this operation.
|
| |
| bool | is_terminating () const |
| | Returns true if this is a terminating operation for a block.
|
| |
| std::vector< size_t > | get_connections () const |
| | Returns the list of basic blocks we might connect to.
|
| |
| const Gyoji::context::SourceReference & | get_source_ref () const |
| | Get the reference to the source which originated this operation.
|
| |
This class represents an anonymous structure.
An anonymous structure is a collection of field names along with corresponding temporary variables that can be used to initialize a class. This is provided in order to allow assignment of composite data-types in order to initialize them. Each field is a "name" along with its corresponding tmpvar value. This anonymous structure can be used in an OP_ASSIGNMENT as an lvalue when assigning a class structure instead of assigning from another class of the same type. This is mainly intended to be used during the declaration/assignment of a class.
| std::string OperationAnonymousStructure::get_description |
( |
| ) |
const |
|
protectedvirtual |
Produce a description of the operation.
This method returns a full description of the operation including the return-value, operands, and any other ancilary information about the operation. This is a string that is constructed dynamically when needed and is used almost exclusively by the "dump" method to provide debuginng information.
Reimplemented from Gyoji::mir::Operation.