add is_Mul
[libfirm] / ir / ir / irmode.h
index cbf2573..d33c0f7 100644 (file)
@@ -1,33 +1,39 @@
 /*
- * Project:     libFIRM
- * File name:   ir/ir/irmode.h
- * Purpose:     Data modes of operations.
- * Author:      Martin Trapp, Christian Schaefer
- * Modified by: Goetz Lindenmaier, Mathias Heil, Michael Beck
- * Created:
- * CVS-ID:      $Id$
- * Copyright:   (c) 1998-2007 Universität Karlsruhe
- * Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
- */
-
-/**
- * @file irmode.h
- *    irmode -- Modes for ir operators
+ * Copyright (C) 1995-2007 University of Karlsruhe.  All right reserved.
  *
- * @author Christian Schaefer, Matthias Heil
+ * This file is part of libFirm.
  *
- * This module specifies the modes that type the firm nodes.  It defines
- * a datasturcture that describes a mode and implements constructors and
- * access routines to this datastructure. Further it defines a set of
- * predefined modes.
+ * 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.
  *
- * SEE ALSO:
- *    UKA tech report 1999-44 for more information about modes.
+ * 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.
  */
 
-#ifndef _FIRM_IR_IRMODE_H_
-#define _FIRM_IR_IRMODE_H_
+/**
+ * @file
+ * @brief   Data modes of operations.
+ * @author  Martin Trapp, Christian Schaefer, Goetz Lindenmaier, Mathias Heil,
+ *          Michael Beck
+ * @version $Id$
+ * @summary
+ *  This module specifies the modes that type the firm nodes.  It defines
+ *  a datasturcture that describes a mode and implements constructors and
+ *  access routines to this datastructure. Further it defines a set of
+ *  predefined modes.
+ *
+ *  SEE ALSO:
+ *    UKA tech report 1999-44 for more information about modes.
+ */
+#ifndef FIRM_IR_IRMODE_H
+#define FIRM_IR_IRMODE_H
 
 #include "firm_types.h"
 #include "ident.h"
@@ -77,6 +83,8 @@ typedef enum { /* irm is short for `ir mode' */
        irm_Iu,                       /**< unsigned int(32) */
        irm_Ls,                       /**< signed long(64) */
        irm_Lu,                       /**< unsigned long(64) */
+       irm_LLs,                      /**< signed long long(128) */
+       irm_LLu,                      /**< unsigned long long(128) */
        irm_C,                        /**< character */
        irm_P,                        /**< pointer */
        irm_b,                        /**< internal boolean */
@@ -303,22 +311,24 @@ tarval *get_mode_NAN(ir_mode *mode);
 extern ir_mode *mode_M;         /**< memory */
 
 /* -- A set of predefined, numerical modes according to Techreport 1999-44 -- */
-extern ir_mode *mode_F;         /**< signed float(32) */
-extern ir_mode *mode_D;  /**< signed double(64) */
-extern ir_mode *mode_E;  /**< signed extended(80) */
-extern ir_mode *mode_Bs; /**< signed byte (former char) */
-extern ir_mode *mode_Bu; /**< unsigned byte (former char) */
-extern ir_mode *mode_Hs; /**< signed short integer */
-extern ir_mode *mode_Hu; /**< unsigned short integer */
-extern ir_mode *mode_Is; /**< signed integer */
-extern ir_mode *mode_Iu; /**< unsigned integer */
-extern ir_mode *mode_Ls; /**< signed long integer */
-extern ir_mode *mode_Lu; /**< unsigned long integer */
-
-extern ir_mode *mode_C;  /**< 8 bit char */
-extern ir_mode *mode_U;  /**< 16 bit unicode char */
-
-extern ir_mode *mode_P;  /**< pointer */
+extern ir_mode *mode_F;          /**< signed float(32) */
+extern ir_mode *mode_D;   /**< signed double(64) */
+extern ir_mode *mode_E;   /**< signed extended(80) */
+extern ir_mode *mode_Bs;  /**< signed byte (former char) */
+extern ir_mode *mode_Bu;  /**< unsigned byte (former char) */
+extern ir_mode *mode_Hs;  /**< signed short integer */
+extern ir_mode *mode_Hu;  /**< unsigned short integer */
+extern ir_mode *mode_Is;  /**< signed integer */
+extern ir_mode *mode_Iu;  /**< unsigned integer */
+extern ir_mode *mode_Ls;  /**< signed long integer */
+extern ir_mode *mode_Lu;  /**< unsigned long integer */
+extern ir_mode *mode_LLs; /**< signed long long integer */
+extern ir_mode *mode_LLu; /**< unsigned long long integer */
+
+extern ir_mode *mode_C;   /**< 8 bit char */
+extern ir_mode *mode_U;   /**< 16 bit unicode char */
+
+extern ir_mode *mode_P;   /**< pointer */
 extern ir_mode *mode_P_code; /**< A pointer mode that is set by the client of libfirm.  This mode
                                   represents the pointer size of the target machine code addresses. Is initialized
                                   to mode_P. */
@@ -349,6 +359,8 @@ ir_mode *get_modeIs(void);
 ir_mode *get_modeIu(void);
 ir_mode *get_modeLs(void);
 ir_mode *get_modeLu(void);
+ir_mode *get_modeLLs(void);
+ir_mode *get_modeLLu(void);
 ir_mode *get_modeC(void);
 ir_mode *get_modeU(void);
 ir_mode *get_modeP(void);
@@ -490,4 +502,4 @@ ir_mode *get_reference_mode_unsigned_eq(ir_mode *mode);
  */
 void set_reference_mode_unsigned_eq(ir_mode *ref_mode, ir_mode *int_mode);
 
-#endif /* _FIRM_IR_IRMODE_H_ */
+#endif