#include "firm_types.h"
#include "be_types.h"
+#include "bearch.h"
typedef struct beabi_helper_env_t beabi_helper_env_t;
+/**
+ * Creates a helper object for the ABI constraint handling.
+ */
beabi_helper_env_t *be_abihelper_prepare(ir_graph *irg);
+/**
+ * Terminates a helper object for the ABI constraint handling.
+ */
void be_abihelper_finish(beabi_helper_env_t *env);
/**
* - Callee-Save registers (we need to restore that value at the end)
* - Parameters passed in registers
* - stack pointer, base pointer, ...
- * It is possible to specify additional irn flags (usefull to mark a value
+ * It is possible to specify additional irn flags (useful to mark a value
* as ignore or produces_sp).
*/
void be_prolog_add_reg(beabi_helper_env_t *env, const arch_register_t *reg,
- arch_irn_flags_t flags);
+ arch_register_req_type_t flags);
/**
* Creates a start node.
ir_node *be_prolog_create_start(beabi_helper_env_t *env, dbg_info *dbgi,
ir_node *block);
-/**
- * Creates a barrier node which lets all registers specified by prolog_add_reg
- * pass through
- */
-ir_node *be_prolog_create_barrier(beabi_helper_env_t *env, ir_node *block);
-
/**
* Get "value" of a register.
- * This usually creates a Proj node for the start-node or barrier-node.
+ * This usually creates a Proj node for the start-node.
* Or returns the value set by a abi_helper_set_reg_value call
*/
ir_node *be_prolog_get_reg_value(beabi_helper_env_t *env,
* - stack pointer, base pointer
*/
void be_epilog_add_reg(beabi_helper_env_t *env, const arch_register_t *reg,
- arch_irn_flags_t flags, ir_node *value);
+ arch_register_req_type_t flags, ir_node *value);
void be_epilog_set_reg_value(beabi_helper_env_t *env,
const arch_register_t *reg, ir_node *value);
void be_epilog_begin(beabi_helper_env_t *env);
-ir_node *be_epilog_create_barrier(beabi_helper_env_t *env, ir_node *block);
-
/**
* Create return node and finishes epilog handling
*/