Gyoji Compiler
Loading...
Searching...
No Matches
Public Member Functions | List of all members
Gyoji::mir::OperationBinary Class Reference

This subclass of Operation represents a binary operation. More...

#include <operations.hpp>

Inheritance diagram for Gyoji::mir::OperationBinary:
Inheritance graph
[legend]
Collaboration diagram for Gyoji::mir::OperationBinary:
Collaboration graph
[legend]

Public Member Functions

 OperationBinary (OperationType _type, const Gyoji::context::SourceReference &_src_ref, size_t _result, size_t _operand_a, size_t _operand_b)
 Construct binary operation with a two operands operand.
 
virtual ~OperationBinary ()
 Move along, nothing to see here.
 
size_t get_a () const
 Access the first operand (a).
 
size_t get_b () const
 Access the second operand (b).
 
- Public Member Functions inherited from Gyoji::mir::Operation
 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) 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.
 
const Gyoji::context::SourceReferenceget_source_ref () const
 Get the reference to the source which originated this operation.
 
virtual std::string get_description () const
 Produce a description of the operation.
 

Additional Inherited Members

- Public Types inherited from Gyoji::mir::Operation
enum  OperationType {
  OP_FUNCTION_CALL , 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_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...
 
- Protected Member Functions inherited from Gyoji::mir::Operation
void add_operand (size_t operand)
 Add an operand.
 

Detailed Description

This subclass of Operation represents a binary operation.

This subclass of Operation is mainly a convenience container for binary operations. It provides convenient methods to access the 'a' and 'b' operands of the operation and is used for most of the ordinary binary operation opcodes such as OP_ADD and OP_MULTIPLY, etc. See those opcodes for details of what types of values are supported and returned.

Constructor & Destructor Documentation

◆ OperationBinary()

OperationBinary::OperationBinary ( OperationType  _type,
const Gyoji::context::SourceReference _src_ref,
size_t  _result,
size_t  _operand_a,
size_t  _operand_b 
)

Construct binary operation with a two operands operand.

This constructor is used for binary operations which take a two operands and produce a single result.

◆ ~OperationBinary()

OperationBinary::~OperationBinary ( )
virtual

Move along, nothing to see here.

Move along, nothing to see here.


The documentation for this class was generated from the following files: