becopyopt: Inline the thin wrapper nodes_interfere(), so we do not need to fetch...
[libfirm] / include / libfirm / be.h
index b2d1099..75ff7e9 100644 (file)
@@ -1,20 +1,6 @@
 /*
- * Copyright (C) 1995-2008 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.
+ * Copyright (C) 2012 University of Karlsruhe.
  */
 
 /**
@@ -134,8 +120,8 @@ typedef struct backend_params {
        /** Backend settings for if-conversion. */
        arch_allow_ifconv_func allow_ifconv;
 
-       /** size of machine words. This is usually the size of the general purpose
-        * integer registers. */
+       /** size of machine word in bits. This is usually the size of the general
+        * purpose integer/address registers. */
        unsigned machine_size;
 
        /**
@@ -177,6 +163,35 @@ typedef struct backend_params {
  */
 FIRM_API int be_parse_arg(const char *arg);
 
+/**
+ * Returns 1 if the backend uses big-endian byte ordering
+ * and 0 for little-endian.
+ */
+FIRM_API int be_is_big_endian(void);
+
+/**
+ * Returns size of machine words. This is usually the size
+ * of the general purpose integer registers.
+ */
+FIRM_API unsigned be_get_machine_size(void);
+
+/**
+ * Returns supported float arithmetic mode or NULL if mode_D and mode_F
+ * are supported natively.
+ * Some backends like x87 can only do arithmetic in a specific float
+ * mode (load/store are still done in the "normal" float/double modes).
+ */
+FIRM_API ir_mode *be_get_mode_float_arithmetic(void);
+
+/** Returns type used for long long or NULL if none available. */
+FIRM_API ir_type *be_get_type_long_long(void);
+
+/** Returns type used for unsigned long long or NULL if none available. */
+FIRM_API ir_type *be_get_type_unsigned_long_long(void);
+
+/** Returns type used for long double or NULL if none available. */
+FIRM_API ir_type *be_get_type_long_double(void);
+
 /**
  * Returns the backend configuration parameter.
  *