The big committ:
[libfirm] / ir / be / TEMPLATE / TEMPLATE_new_nodes.h
1 #ifndef _TEMPLATE_NEW_NODES_H_
2 #define _TEMPLATE_NEW_NODES_H_
3
4 /**
5  * Function prototypes for the assembler ir node constructors.
6  * $Id$
7  */
8
9 #include "TEMPLATE_nodes_attr.h"
10
11 /***************************************************************************************************
12  *        _   _                   _       __        _                    _   _               _
13  *       | | | |                 | |     / /       | |                  | | | |             | |
14  *   __ _| |_| |_ _ __   ___  ___| |_   / /_ _  ___| |_   _ __ ___   ___| |_| |__   ___   __| |___
15  *  / _` | __| __| '__| / __|/ _ \ __| / / _` |/ _ \ __| | '_ ` _ \ / _ \ __| '_ \ / _ \ / _` / __|
16  * | (_| | |_| |_| |    \__ \  __/ |_ / / (_| |  __/ |_  | | | | | |  __/ |_| | | | (_) | (_| \__ \
17  *  \__,_|\__|\__|_|    |___/\___|\__/_/ \__, |\___|\__| |_| |_| |_|\___|\__|_| |_|\___/ \__,_|___/
18  *                                        __/ |
19  *                                       |___/
20  ***************************************************************************************************/
21
22 /**
23  * Returns the attributes of an TEMPLATE node.
24  */
25 TEMPLATE_attr_t *get_TEMPLATE_attr(const ir_node *node);
26
27 /**
28  * Returns the argument register requirements of an TEMPLATE node.
29  */
30 const arch_register_req_t **get_TEMPLATE_in_req_all(const ir_node *node);
31
32 /**
33  * Returns the result register requirements of an TEMPLATE node.
34  */
35 const arch_register_req_t **get_TEMPLATE_out_req_all(const ir_node *node);
36
37 /**
38  * Returns the argument register requirements of an TEMPLATE node.
39  */
40 const arch_register_req_t *get_TEMPLATE_in_req(const ir_node *node, int pos);
41
42 /**
43  * Returns the result register requirements of an TEMPLATE node.
44  */
45 const arch_register_req_t *get_TEMPLATE_out_req(const ir_node *node, int pos);
46
47 /**
48  * Sets the OUT register requirements at position pos.
49  */
50 void set_TEMPLATE_req_out(ir_node *node, const arch_register_req_t *req, int pos);
51
52 /**
53  * Sets the IN register requirements at position pos.
54  */
55 void set_TEMPLATE_req_in(ir_node *node, const arch_register_req_t *req, int pos);
56
57 /**
58  * Returns the register flag of an TEMPLATE node.
59  */
60 arch_irn_flags_t get_TEMPLATE_flags(const ir_node *node);
61
62 /**
63  * Sets the register flag of an TEMPLATE node.
64  */
65 void set_TEMPLATE_flags(const ir_node *node, arch_irn_flags_t flags);
66
67 /**
68  * Returns the result register slots of an TEMPLATE node.
69  */
70 const arch_register_t **get_TEMPLATE_slots(const ir_node *node);
71
72 /**
73  * Returns the name of the OUT register at position pos.
74  */
75 const char *get_TEMPLATE_out_reg_name(const ir_node *node, int pos);
76
77 /**
78  * Returns the index of the OUT register at position pos within its register class.
79  */
80 int get_TEMPLATE_out_regnr(const ir_node *node, int pos);
81
82 /**
83  * Returns the OUT register at position pos.
84  */
85 const arch_register_t *get_TEMPLATE_out_reg(const ir_node *node, int pos);
86
87 /**
88  * Sets the number of results.
89  */
90 void set_TEMPLATE_n_res(ir_node *node, int n_res);
91
92 /**
93  * Returns the number of results.
94  */
95 int get_TEMPLATE_n_res(const ir_node *node);
96
97
98 /* Include the generated headers */
99 #include "gen_TEMPLATE_new_nodes.h"
100
101 #endif /* _TEMPLATE_NEW_NODES_H_ */