2 ** Copyright (C) 1998 - 2000 by Universitaet Karlsruhe
3 ** All rights reserved.
5 ** Authors: Christian Schaefer
7 ** irop.h operators of firm nodes
9 ** This module specifies the opcodes possible for ir nodes. Their
10 ** definition is close to the operations specified in UKA Tech-Report
23 iro_Start, iro_End, iro_Jmp, iro_Cond, iro_Return, iro_Raise,
24 iro_Const, iro_SymConst,
26 iro_Call, iro_Add, iro_Sub, iro_Minus, iro_Mul, iro_Quot, iro_DivMod,
27 iro_Div, iro_Mod, iro_Abs, iro_And, iro_Or, iro_Eor, iro_Not,
28 iro_Cmp, iro_Shl, iro_Shr, iro_Shrs, iro_Rot, iro_Conv,
30 iro_Load, iro_Store, iro_Alloc, iro_Free, iro_Sync,
31 iro_Proj, iro_Tuple, iro_Id, iro_Bad
34 typedef struct ir_op ir_op;
36 extern ir_op *op_Block;
38 extern ir_op *op_Start;
41 extern ir_op *op_Cond;
42 extern ir_op *op_Return;
43 extern ir_op *op_Raise;
46 extern ir_op *op_Const;
47 extern ir_op *op_SymConst;
49 extern ir_op *op_Call;
52 extern ir_op *op_Minus;
54 extern ir_op *op_Quot;
55 extern ir_op *op_DivMod;
66 extern ir_op *op_Shrs;
68 extern ir_op *op_Conv;
72 extern ir_op *op_Load;
73 extern ir_op *op_Store;
74 extern ir_op *op_Alloc;
75 extern ir_op *op_Free;
77 extern ir_op *op_Sync;
79 extern ir_op *op_Tuple;
80 extern ir_op *op_Proj;
85 /* Returns the string for the opcode. */
86 const char *get_op_name (ir_op *op);
88 /* Returns the enum for the opcode */
89 opcode get_op_code (ir_op *op);
91 /* Returns the ident for the opcode name */
92 ident *get_op_ident (ir_op *op);
94 /* Returns the attribute size of the opcode.
95 Use not encouraged, internal feature. */
96 int get_op_attr_size (ir_op *op);
98 # endif /* _IROP_H_ */