*** empty log message ***
[libfirm] / ir / be / beabi.h
1
2 /**
3  * Backend ABI implementation.
4  */
5
6 #ifndef _BEABI_H
7 #define _BEABI_H
8
9 #include "be.h"
10 #include "bearch.h"
11 #include "beabi_t.h"
12
13 typedef enum {
14         BE_ABI_NONE = 0,
15         BE_ABI_LEFT_TO_RIGHT = 1,
16         BE_ABI_USE_PUSH = 2
17 } be_abi_call_flags_t;
18
19 void be_abi_call_set_flags(be_abi_call_t *call, be_abi_call_flags_t flags);
20 void be_abi_call_param_stack(be_abi_call_t *call, int pos);
21 void be_abi_call_param_reg(be_abi_call_t *call, int pos, const arch_register_t *reg);
22 void be_abi_call_res_reg(be_abi_call_t *call, int pos, const arch_register_t *reg);
23
24 be_abi_irg_t *be_abi_introduce(be_irg_t *bi);
25 void be_abi_fix_stack(be_abi_irg_t *abi);
26 void be_abi_free(be_abi_irg_t *abi);
27
28 #endif