X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firop.h;h=5cd93e9e3918401a86313a86d037d6b9a9f55706;hb=637542932dc27dcdfc7def09b58d9d5d4c34fb77;hp=406168e5c8b296376baa8c296669224df88da9ac;hpb=8fdd5e2cf889969148fc08ccbc697f71d9b615d6;p=libfirm diff --git a/ir/ir/irop.h b/ir/ir/irop.h index 406168e5c..5cd93e9e3 100644 --- a/ir/ir/irop.h +++ b/ir/ir/irop.h @@ -11,16 +11,16 @@ */ /** -* @file irop.h -* -* Operators of firm nodes. -* -* @author Christian Schaefer -* -* This module specifies the opcodes possible for ir nodes. Their -* definition is close to the operations specified in UKA Tech-Report -* 1999-14 -*/ + * @file irop.h + * + * Operators of firm nodes. + * + * @author Christian Schaefer + * + * This module specifies the opcodes possible for ir nodes. Their + * definition is close to the operations specified in UKA Tech-Report + * 1999-14 + */ # ifndef _IROP_H_ # define _IROP_H_ @@ -40,7 +40,7 @@ typedef enum { iro_Load, iro_Store, iro_Alloc, iro_Free, iro_Sync, iro_Proj, iro_Tuple, iro_Id, iro_Bad, iro_Confirm, iro_Unknown, iro_Filter, iro_Break, iro_CallBegin, iro_EndReg, iro_EndExcept, - iro_FuncCall, + iro_NoMem, iro_Mux, iro_MaxOpcode } opcode; @@ -104,10 +104,11 @@ extern ir_op *op_CallBegin; ir_op *get_op_CallBegin (void); extern ir_op *op_EndReg; ir_op *get_op_EndReg (void); extern ir_op *op_EndExcept; ir_op *get_op_EndExcept (void); -extern ir_op *op_FuncCall; ir_op *get_op_FuncCall (void); +extern ir_op *op_NoMem; ir_op *get_op_NoMem (void); +extern ir_op *op_Mux; ir_op *get_op_Mux (void); /** Returns the ident for the opcode name */ -ident *get_op_ident(ir_op *op); +ident *get_op_ident(const ir_op *op); /** Returns the string for the opcode. */ const char *get_op_name(const ir_op *op); @@ -119,10 +120,14 @@ opcode get_op_code(const ir_op *op); typedef enum { op_pin_state_floats = 0, /**< Nodes of this opcode can be placed in any basic block. */ op_pin_state_pinned, /**< Nodes must remain in this basic block. */ - op_pin_state_exc_pinned /**< Node must be remain in this basic block if it can throw an + op_pin_state_exc_pinned, /**< Node must be remain in this basic block if it can throw an exception, else can float. Used internally. */ + op_pin_state_mem_pinned /**< Node must be remain in this basic block if it can throw an + exception or uses memory, else can float. Used internally. */ } op_pin_state; +const char *get_op_pin_state_name(op_pin_state s); + /** gets pinned state of an opcode */ op_pin_state get_op_pinned(const ir_op *op);