* @author Christian Wuerdig
* @version $Id$
*
- * This file implements the creation of the achitecture specific firm opcodes
+ * This file implements the creation of the architecture specific firm opcodes
* and the corresponding node constructors for the ia32 assembler irg.
*/
#include "config.h"
return attr->data.am_sc_sign;
}
+void set_ia32_am_tls_segment(ir_node *node, bool value)
+{
+ ia32_attr_t *attr = get_ia32_attr(node);
+ attr->data.am_tls_segment = value;
+}
+
+bool get_ia32_am_tls_segment(const ir_node *node)
+{
+ const ia32_attr_t *attr = get_ia32_attr_const(node);
+ return attr->data.am_tls_segment;
+}
+
/**
* Gets the addr mode const.
*/
/**
* Initializes the nodes attributes.
*/
-void init_ia32_attributes(ir_node *node, arch_irn_flags_t flags,
- const arch_register_req_t **in_reqs,
- const be_execution_unit_t ***execution_units,
- int n_res)
+static void init_ia32_attributes(ir_node *node, arch_irn_flags_t flags,
+ const arch_register_req_t **in_reqs,
+ const be_execution_unit_t ***execution_units,
+ int n_res)
{
ir_graph *irg = get_irn_irg(node);
struct obstack *obst = get_irg_obstack(irg);
memset(info->out_infos, 0, n_res * sizeof(info->out_infos[0]));
}
-void init_ia32_x87_attributes(ir_node *res)
+static void init_ia32_x87_attributes(ir_node *res)
{
ir_graph *irg = get_irn_irg(res);
ia32_irg_data_t *irg_data = ia32_get_irg_data(irg);
irg_data->do_x87_sim = 1;
}
-void init_ia32_asm_attributes(ir_node *res)
+static void init_ia32_asm_attributes(ir_node *res)
{
#ifndef NDEBUG
ia32_attr_t *attr = get_ia32_attr(res);
#endif
}
-void init_ia32_immediate_attributes(ir_node *res, ir_entity *symconst,
- int symconst_sign, int no_pic_adjust,
- long offset)
+static void init_ia32_immediate_attributes(ir_node *res, ir_entity *symconst,
+ int symconst_sign, int no_pic_adjust,
+ long offset)
{
ia32_immediate_attr_t *attr = (ia32_immediate_attr_t*)get_irn_generic_attr(res);
attr->offset = offset;
}
-void init_ia32_call_attributes(ir_node* res, unsigned pop, ir_type* call_tp)
+static void init_ia32_call_attributes(ir_node* res, unsigned pop,
+ ir_type* call_tp)
{
ia32_call_attr_t *attr = (ia32_call_attr_t*)get_irn_generic_attr(res);
attr->call_tp = call_tp;
}
-void init_ia32_copyb_attributes(ir_node *res, unsigned size)
+static void init_ia32_copyb_attributes(ir_node *res, unsigned size)
{
ia32_copyb_attr_t *attr = (ia32_copyb_attr_t*)get_irn_generic_attr(res);
attr->size = size;
}
-void init_ia32_condcode_attributes(ir_node *res, ia32_condition_code_t cc)
+static void init_ia32_condcode_attributes(ir_node *res,
+ ia32_condition_code_t cc)
{
ia32_condcode_attr_t *attr = (ia32_condcode_attr_t*)get_irn_generic_attr(res);
attr->condition_code = cc;
}
-void init_ia32_climbframe_attributes(ir_node *res, unsigned count)
+static void init_ia32_climbframe_attributes(ir_node *res, unsigned count)
{
ia32_climbframe_attr_t *attr = (ia32_climbframe_attr_t*)get_irn_generic_attr(res);
attr->count = count;
}
-void init_ia32_switch_attributes(ir_node *res, long default_pn)
+static void init_ia32_switch_attributes(ir_node *res, long default_pn)
{
ia32_switch_attr_t *attr = (ia32_switch_attr_t*) get_irn_generic_attr(res);
#ifndef NDEBUG
new_info->out_infos =
DUP_ARR_D(reg_out_info_t, obst, old_info->out_infos);
new_info->in_reqs = old_info->in_reqs;
+ new_info->flags = old_info->flags;
}
/* Include the generated constructor functions */