some workaround to avoid condeval creating Phibs which not all backends like
[libfirm] / ir / be / TEMPLATE / TEMPLATE_emitter.h
1 #ifndef _TEMPLATE_EMITTER_H_
2 #define _TEMPLATE_EMITTER_H_
3
4 #include "irargs_t.h"  // this also inlucdes <libcore/lc_print.h>
5 #include "irnode.h"
6 #include "debug.h"
7
8 #include "../bearch.h"
9 #include "../beemitter.h"
10
11 #include "bearch_TEMPLATE_t.h"
12
13 typedef struct _TEMPLATE_emit_env_t {
14         be_emit_env_t             *emit;
15         const arch_env_t          *arch_env;
16         const TEMPLATE_code_gen_t *cg;
17         TEMPLATE_isa_t            *isa;
18         DEBUG_ONLY(firm_dbg_module_t *mod;)
19 } TEMPLATE_emit_env_t;
20
21 void TEMPLATE_emit_source_register(TEMPLATE_emit_env_t *env, const ir_node *node, int pos);
22 void TEMPLATE_emit_dest_register(TEMPLATE_emit_env_t *env, const ir_node *node, int pos);
23 void TEMPLATE_emit_immediate(TEMPLATE_emit_env_t *env, const ir_node *node);
24
25 int get_TEMPLATE_reg_nr(ir_node *irn, int posi, int in_out);
26 const char *get_TEMPLATE_in_reg_name(ir_node *irn, int pos);
27
28 void TEMPLATE_gen_routine(const TEMPLATE_code_gen_t *cg, ir_graph *irg);
29
30 #endif /* _TEMPLATE_EMITTER_H_ */