int symconst_sign; /**< The "sign" of the symconst. */
};
+typedef enum ia32_create_am_flags_t {
+ ia32_create_am_force = 1U << 0, /**< Ignore the marking of node as a
+ non-address-mode node */
+ ia32_create_am_double_use = 1U << 1 /**< Fold AM, even if the root of
+ address calculation has two users.
+ This is useful for dest AM */
+} ia32_create_am_flags_t;
+
/**
* Create an address mode for a given node.
*/
-void ia32_create_address_mode(ia32_address_t *addr, ir_node *node, int force);
+void ia32_create_address_mode(ia32_address_t *addr, ir_node *node, ia32_create_am_flags_t);
/**
* Mark those nodes of the given graph that cannot be used inside an
/**
* Tells whether the given node is a non address mode node.
*/
-int ia32_is_non_address_mode_node(ir_node *node);
+int ia32_is_non_address_mode_node(ir_node const *node);
/**
* mark a node so it will not be used as part of address modes