reorder opcode registration to match iro_* order
[libfirm] / ir / ir / irop.h
index 9604dbd..e096c54 100644 (file)
@@ -1,28 +1,36 @@
 /*
- * Project:     libFIRM
- * File name:   ir/ir/irop.h
- * Purpose:     Representation of opcode of intermediate operation.
- * Author:      Christian Schaefer
- * Modified by: Goetz Lindenmaier
- * Created:
- * CVS-ID:      $Id$
- * Copyright:   (c) 1998-2003 Universität Karlsruhe
- * Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
+ * Copyright (C) 1995-2007 University of Karlsruhe.  All right reserved.
+ *
+ * This file is part of libFirm.
+ *
+ * This file may be distributed and/or modified under the terms of the
+ * GNU General Public License version 2 as published by the Free Software
+ * Foundation and appearing in the file LICENSE.GPL included in the
+ * packaging of this file.
+ *
+ * Licensees holding valid libFirm Professional Edition licenses may use
+ * this file in accordance with the libFirm Commercial License.
+ * Agreement provided with the Software.
+ *
+ * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+ * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE.
  */
 
 /**
- * @file irop.h
- *
- * Operators of firm nodes.
- *
- * @author Christian Schaefer
+ * @file
+ * @brief   Representation of opcode of intermediate operation.
+ * @author  Christian Schaefer, Goetz Lindenmaier, Michael Beck
+ * @version $Id$
+ * @summary
+ *  Operators of firm nodes.
  *
  *  This module specifies the opcodes possible for ir nodes.  Their
  *  definition is close to the operations specified in UKA Tech-Report
  *  1999-14
  */
-#ifndef _FIRM_IR_IROP_H_
-#define _FIRM_IR_IROP_H_
+#ifndef FIRM_IR_IROP_H
+#define FIRM_IR_IROP_H
 
 #include "firm_types.h"
 
@@ -84,8 +92,9 @@ typedef enum {
   iro_NoMem, iro_Mux, iro_Psi, iro_CopyB,
   iro_InstOf, iro_Raise, iro_Bound,
   iro_Pin,
+  iro_ASM,
   iro_MaxOpcode
-} opcode;
+} ir_opcode;
 
 #ifndef _IR_OP_TYPEDEF_
 #define _IR_OP_TYPEDEF_
@@ -162,6 +171,8 @@ extern ir_op *op_Bound;           ir_op *get_op_Bound     (void);
 
 extern ir_op *op_Pin;             ir_op *get_op_Pin       (void);
 
+extern ir_op *op_ASM;             ir_op *get_op_ASM       (void);
+
 /** Returns the ident for the opcode name */
 ident *get_op_ident(const ir_op *op);
 
@@ -169,7 +180,7 @@ ident *get_op_ident(const ir_op *op);
 const char *get_op_name(const ir_op *op);
 
 /** Returns the enum for the opcode */
-opcode get_op_code(const ir_op *op);
+ir_opcode get_op_code(const ir_op *op);
 
 /** op_pin_state_pinned states */
 typedef enum {
@@ -305,10 +316,10 @@ typedef int (*verify_proj_node_func)(ir_node *self, ir_node *proj);
  * Reasons to call the dump_node operation:
  */
 typedef enum {
-  dump_node_opcode_txt,   /**< dump the opcode */
-  dump_node_mode_txt,     /**< dump the mode */
-  dump_node_nodeattr_txt, /**< dump node attributes to be shown in the label */
-  dump_node_info_txt      /**< dump node attributes into info1 */
+       dump_node_opcode_txt,   /**< dump the opcode */
+       dump_node_mode_txt,     /**< dump the mode */
+       dump_node_nodeattr_txt, /**< dump node attributes to be shown in the label */
+       dump_node_info_txt      /**< dump node attributes into info1 */
 } dump_reason_t;
 
 /**
@@ -322,19 +333,19 @@ typedef int (*dump_node_func)(ir_node *self, FILE *F, dump_reason_t reason);
  * io_op Operations.
  */
 typedef struct {
-  computed_value_func   computed_value;   /**< evaluates a node into a tarval if possible. */
-  equivalent_node_func  equivalent_node;  /**< optimizes the node by returning an equivalent one. */
-  transform_node_func   transform_node;   /**< optimizes the node by transforming it. */
-  node_cmp_attr_func    node_cmp_attr;    /**< compares two node attributes. */
-  reassociate_func      reassociate;      /**< reassociate a tree */
-  copy_attr_func        copy_attr;        /**< copy node attributes */
-  get_type_func         get_type;         /**< return the type of a node */
-  get_type_attr_func    get_type_attr;    /**< return the type attribute of a node */
-  get_entity_attr_func  get_entity_attr;  /**< return the entity attribute of a node */
-  verify_node_func      verify_node;      /**< verify the node */
-  verify_proj_node_func verify_proj_node; /**< verify the Proj node */
-  dump_node_func        dump_node;        /**< dump a node */
-  op_func               generic;          /**< a generic function */
+       computed_value_func   computed_value;   /**< evaluates a node into a tarval if possible. */
+       equivalent_node_func  equivalent_node;  /**< optimizes the node by returning an equivalent one. */
+       transform_node_func   transform_node;   /**< optimizes the node by transforming it. */
+       node_cmp_attr_func    node_cmp_attr;    /**< compares two node attributes. */
+       reassociate_func      reassociate;      /**< reassociate a tree */
+       copy_attr_func        copy_attr;        /**< copy node attributes */
+       get_type_func         get_type;         /**< return the type of a node */
+       get_type_attr_func    get_type_attr;    /**< return the type attribute of a node */
+       get_entity_attr_func  get_entity_attr;  /**< return the entity attribute of a node */
+       verify_node_func      verify_node;      /**< verify the node */
+       verify_proj_node_func verify_proj_node; /**< verify the Proj node */
+       dump_node_func        dump_node;        /**< dump a node */
+       op_func               generic;          /**< a generic function */
 } ir_op_ops;
 
 /**
@@ -355,11 +366,11 @@ typedef struct {
  * This function can create all standard Firm opcode as well as new ones.
  * The behavior of new opcode depends on the operations \c ops and the \c flags.
  */
-ir_op * new_ir_op(opcode code, const char *name, op_pin_state p,
-                  unsigned flags, op_arity opar, int op_index, size_t attr_size,
+ir_op *new_ir_op(ir_opcode code, const char *name, op_pin_state p,
+       unsigned flags, op_arity opar, int op_index, size_t attr_size,
        const ir_op_ops *ops);
 
 /** Returns the ir_op_ops of an ir_op. */
 const ir_op_ops *get_op_ops(const ir_op *op);
 
-#endif /* _FIRM_IR_IROP_H_ */
+#endif