More missing config.h
[libfirm] / ir / be / ia32 / bearch_ia32_t.h
index 82e0aa3..a0d2cc8 100644 (file)
@@ -8,7 +8,9 @@
 #include "bearch_ia32.h"
 #include "ia32_nodes_attr.h"
 #include "set.h"
+
 #include "../be.h"
+#include "../bemachine.h"
 
 #ifdef NDEBUG
 #define SET_IA32_ORIG_NODE(n, o)
@@ -28,6 +30,7 @@ typedef enum _ia32_optimize_t {
        IA32_OPT_PLACECNST = 8,   /**< place constants in the blocks where they are used */
        IA32_OPT_IMMOPS    = 16,  /**< create operations with immediate operands */
        IA32_OPT_EXTBB     = 32,  /**< do extended basic block scheduling */
+       IA32_OPT_PUSHARGS  = 64,  /**< create pushs for function argument passing */
 } ia32_optimize_t;
 
 /**
@@ -123,9 +126,9 @@ struct _ia32_isa_t {
        int                   fp_kind;        /**< floating point kind */
        ia32_code_gen_t       *cg;            /**< the current code generator */
        FILE                  *out;           /**< output file */
+       const be_machine_t    *cpu;           /**< the abstract machine */
 #ifndef NDEBUG
        struct obstack        *name_obst;     /**< holds the original node names (for debugging) */
-       unsigned long         name_obst_size;
 #endif /* NDEBUG */
 };
 
@@ -147,10 +150,11 @@ typedef struct _ia32_transform_env_t {
 } ia32_transform_env_t;
 
 typedef struct _ia32_intrinsic_env_t {
-       entity *ll_div_op1;    /**< entity for first div operand (move into FPU) */
-       entity *ll_div_op2;    /**< entity for second div operand (move into FPU) */
-       entity *ll_d_conv;     /**< entity for converts ll -> d */
-       entity *d_ll_conv;     /**< entity for converts d -> ll */
+       ir_graph *irg;           /**< the irg, these entities belong to */
+       entity   *ll_div_op1;    /**< entity for first div operand (move into FPU) */
+       entity   *ll_div_op2;    /**< entity for second div operand (move into FPU) */
+       entity   *ll_d_conv;     /**< entity for converts ll -> d */
+       entity   *d_ll_conv;     /**< entity for converts d -> ll */
 } ia32_intrinsic_env_t;
 
 /**