GPUOcelot
Public Types | Public Member Functions | Public Attributes

ir::ILInstruction Class Reference

A class used to represent any IL Instruction. More...

#include <ILInstruction.h>

Inheritance diagram for ir::ILInstruction:
Inheritance graph
[legend]
Collaboration diagram for ir::ILInstruction:
Collaboration graph
[legend]

List of all members.

Public Types

enum  Opcode {
  Abs, Add, And, Break,
  Cmov_Logical, Cos_Vec, Div, Else,
  End, EndIf, EndLoop, Eq,
  Exp_Vec, Ffb_Hi, Fence, Fma,
  FtoI, FtoU, Ge, Iadd,
  Iand, Ieq, IfLogicalNZ, IfLogicalZ,
  Ige, Ilt, Imax, Imin,
  Imul, Ine, Inegate, Inot,
  Ior, Ishl, Ishr, ItoF,
  Ixor, Lds_And_Resource, Lds_Load_Id, Lds_Or_Resource,
  Lds_Read_Add_Resource, Lds_Store_Id, Log_Vec, Lt,
  Mad, Mov, Mul, Ne,
  Rcp, Round_Nearest, Round_Neginf, Rsq_Vec,
  Sin_Vec, Sub, Sqrt_Vec, Uav_Arena_Load_Id,
  Uav_Arena_Store_Id, Uav_Raw_Load_Id, Uav_Raw_Store_Id, Uav_Read_Add_Id,
  Uav_Read_Max_Id, Uav_Read_Min_Id, Uav_Read_Xchg_Id, Udiv,
  Umul, Umul24, Ushr, UtoF,
  WhileLoop, InvalidOpcode
}
 

The opcode of the instruction.

More...
enum  DataType { Byte, Short, Dword }
enum  ClampOperation { Clamp, NoClamp }
enum  ShiftScale {
  Shift_D2, Shift_D4, Shift_D8, Shift_None,
  Shift_X2, Shift_X4, Shift_X8
}

Public Member Functions

 ILInstruction (Opcode op=InvalidOpcode)
 Default constructor.
virtual Instructionclone (bool copy=true) const =0
 Return a pointer to a new Instruction.
virtual std::string valid () const
 Determines if the instruction is valid.

Public Attributes

const Opcode opcode
 Opcode of the instruction.
ClampOperation clamp
 Clamp modifiers.
ShiftScale shift_scale
 Shift scale modifiers.

Parsable IL strings

virtual std::string toString () const
 Returns a string representation of the instruction.
static std::string toString (Opcode o)
static std::string toString (DataType d)
static std::string toString (const ClampOperation &c)
static std::string toString (const ShiftScale &s)

Detailed Description

A class used to represent any IL Instruction.


Member Enumeration Documentation

Enumerator:
Clamp 
NoClamp 
Enumerator:
Byte 
Short 
Dword 

The opcode of the instruction.

Enumerator:
Abs 
Add 
And 
Break 
Cmov_Logical 
Cos_Vec 
Div 
Else 
End 
EndIf 
EndLoop 
Eq 
Exp_Vec 
Ffb_Hi 
Fence 
Fma 
FtoI 
FtoU 
Ge 
Iadd 
Iand 
Ieq 
IfLogicalNZ 
IfLogicalZ 
Ige 
Ilt 
Imax 
Imin 
Imul 
Ine 
Inegate 
Inot 
Ior 
Ishl 
Ishr 
ItoF 
Ixor 
Lds_And_Resource 
Lds_Load_Id 
Lds_Or_Resource 
Lds_Read_Add_Resource 
Lds_Store_Id 
Log_Vec 
Lt 
Mad 
Mov 
Mul 
Ne 
Rcp 
Round_Nearest 
Round_Neginf 
Rsq_Vec 
Sin_Vec 
Sub 
Sqrt_Vec 
Uav_Arena_Load_Id 
Uav_Arena_Store_Id 
Uav_Raw_Load_Id 
Uav_Raw_Store_Id 
Uav_Read_Add_Id 
Uav_Read_Max_Id 
Uav_Read_Min_Id 
Uav_Read_Xchg_Id 
Udiv 
Umul 
Umul24 
Ushr 
UtoF 
WhileLoop 
InvalidOpcode 
Enumerator:
Shift_D2 
Shift_D4 
Shift_D8 
Shift_None 
Shift_X2 
Shift_X4 
Shift_X8 

Constructor & Destructor Documentation

ir::ILInstruction::ILInstruction ( Opcode  op = InvalidOpcode)

Default constructor.


Member Function Documentation

virtual Instruction* ir::ILInstruction::clone ( bool  copy = true) const [pure virtual]
std::string ir::ILInstruction::toString ( DataType  d) [static]
std::string ir::ILInstruction::toString ( const ClampOperation c) [static]
std::string ir::ILInstruction::toString ( ) const [virtual]
std::string ir::ILInstruction::toString ( const ShiftScale s) [static]
std::string ir::ILInstruction::toString ( Opcode  o) [static]
std::string ir::ILInstruction::valid ( ) const [virtual]

Determines if the instruction is valid.

Implements ir::Instruction.


Member Data Documentation

Clamp modifiers.

Opcode of the instruction.

Shift scale modifiers.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines