added new dump wrapper
[libfirm] / ir / be / ia32 / ia32_map_regs.h
1 #ifndef _IA32_MAP_REGS_H_
2 #define _IA32_MAP_REGS_H_
3
4 #include "irnode.h"
5 #include "set.h"
6
7 #include "../bearch.h"
8 #include "ia32_nodes_attr.h"
9
10 /**
11  * Convenience macro to check if register <code>out<\code>
12  * and register <code>in<\code> are equal.
13  */
14 #define REGS_ARE_EQUAL(out, in) \
15         ((arch_register_get_class(out) == arch_register_get_class(in)) && \
16         (arch_register_get_index(out) == arch_register_get_index(in)))
17
18
19 int  ia32_cmp_irn_reg_assoc(const void *a, const void *b, size_t len);
20 void ia32_set_firm_reg(ir_node *irn, const arch_register_t *reg, set *reg_set);
21 const arch_register_t *ia32_get_firm_reg(const ir_node *irn, set *reg_set);
22
23 int ia32_get_n_regparam_class(int n, ir_mode **modes, int *n_int, int *n_float);
24
25 const arch_register_t *ia32_get_RegParam_reg(int n, ir_mode **modes, long nr, unsigned cc);
26
27 long ia32_translate_proj_pos(const ir_node *proj);
28
29 #endif /* _IA32_MAP_REGS_H_ */