From: Matthias Braun Date: Thu, 19 Aug 2010 15:56:34 +0000 (+0000) Subject: sparc: remove entity_sign, gas/elf doesn't support it anyway X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=1a7fa9fb54c38f4c8fae42acbfc6c5104d4f1967;p=libfirm sparc: remove entity_sign, gas/elf doesn't support it anyway [r27950] --- diff --git a/ir/be/sparc/bearch_sparc.c b/ir/be/sparc/bearch_sparc.c index 17acb8428..87983c1ee 100644 --- a/ir/be/sparc/bearch_sparc.c +++ b/ir/be/sparc/bearch_sparc.c @@ -186,7 +186,7 @@ static void transform_Reload(ir_node *node) ir_node *sched_point = sched_prev(node); - load = new_bd_sparc_Ld(dbgi, block, ptr, mem, mode, entity, false, 0, true); + load = new_bd_sparc_Ld(dbgi, block, ptr, mem, mode, entity, 0, true); sched_add_after(sched_point, load); sched_remove(node); @@ -214,7 +214,7 @@ static void transform_Spill(ir_node *node) ir_node *store; sched_point = sched_prev(node); - store = new_bd_sparc_St(dbgi, block, ptr, val, mem, mode, entity, false, 0, true); + store = new_bd_sparc_St(dbgi, block, ptr, val, mem, mode, entity, 0, true); sched_remove(node); sched_add_after(sched_point, store); diff --git a/ir/be/sparc/sparc_new_nodes.c b/ir/be/sparc/sparc_new_nodes.c index af2c957a3..0b451c63a 100644 --- a/ir/be/sparc/sparc_new_nodes.c +++ b/ir/be/sparc/sparc_new_nodes.c @@ -113,8 +113,7 @@ static void sparc_dump_node(FILE *F, ir_node *n, dump_reason_t reason) if (sparc_has_load_store_attr(n)) { const sparc_load_store_attr_t *attr = get_sparc_load_store_attr_const(n); ir_fprintf(F, "load store mode: %+F\n", attr->load_store_mode); - ir_fprintf(F, "entity: (sign %d) %+F\n", attr->entity_sign, - attr->entity); + ir_fprintf(F, "entity: %+F\n", attr->entity); fprintf(F, "offset: %ld\n", attr->offset); fprintf(F, "is frame entity: %s\n", attr->is_frame_entity ? "true" : "false"); @@ -339,13 +338,11 @@ static void init_sparc_attributes(ir_node *node, arch_irn_flags_t flags, static void init_sparc_load_store_attributes(ir_node *res, ir_mode *ls_mode, ir_entity *entity, - int entity_sign, long offset, - bool is_frame_entity) + long offset, bool is_frame_entity) { sparc_load_store_attr_t *attr = get_sparc_load_store_attr(res); attr->load_store_mode = ls_mode; attr->entity = entity; - attr->entity_sign = entity_sign; attr->is_frame_entity = is_frame_entity; attr->offset = offset; } @@ -417,7 +414,6 @@ static int cmp_attr_sparc_load_store(ir_node *a, ir_node *b) return 1; return attr_a->entity != attr_b->entity - || attr_a->entity_sign != attr_b->entity_sign || attr_a->is_frame_entity != attr_b->is_frame_entity || attr_a->load_store_mode != attr_b->load_store_mode || attr_a->offset != attr_b->offset; diff --git a/ir/be/sparc/sparc_nodes_attr.h b/ir/be/sparc/sparc_nodes_attr.h index 3cf564cfa..23e522a81 100644 --- a/ir/be/sparc/sparc_nodes_attr.h +++ b/ir/be/sparc/sparc_nodes_attr.h @@ -80,7 +80,6 @@ struct sparc_load_store_attr_t { sparc_attr_t base; /**< generic attribute */ ir_mode *load_store_mode; ir_entity *entity; - int entity_sign; long offset; bool is_frame_entity; }; diff --git a/ir/be/sparc/sparc_spec.pl b/ir/be/sparc/sparc_spec.pl index 1a13450f1..dcedd1d9c 100644 --- a/ir/be/sparc/sparc_spec.pl +++ b/ir/be/sparc/sparc_spec.pl @@ -147,7 +147,7 @@ $default_copy_attr = "sparc_copy_attr"; %init_attr = ( sparc_attr_t => "\tinit_sparc_attributes(res, flags, in_reqs, exec_units, n_res);", sparc_load_store_attr_t => "\tinit_sparc_attributes(res, flags, in_reqs, exec_units, n_res);\n". - "\tinit_sparc_load_store_attributes(res, ls_mode, entity, entity_sign, offset, is_frame_entity);", + "\tinit_sparc_load_store_attributes(res, ls_mode, entity, offset, is_frame_entity);", sparc_symconst_attr_t => "\tinit_sparc_attributes(res, flags, in_reqs, exec_units, n_res);\n". "\tinit_sparc_symconst_attributes(res, entity);", sparc_jmp_cond_attr_t => "\tinit_sparc_attributes(res, flags, in_reqs, exec_units, n_res);", @@ -283,7 +283,7 @@ Ld => { outs => [ "res", "M" ], ins => [ "ptr", "mem" ], attr_type => "sparc_load_store_attr_t", - attr => "ir_mode *ls_mode, ir_entity *entity, int entity_sign, long offset, bool is_frame_entity", + attr => "ir_mode *ls_mode, ir_entity *entity, long offset, bool is_frame_entity", emit => '. ld%LM [%S1%O], %D1' }, @@ -312,7 +312,7 @@ St => { ins => [ "ptr", "val", "mem" ], outs => [ "M" ], attr_type => "sparc_load_store_attr_t", - attr => "ir_mode *ls_mode, ir_entity *entity, int entity_sign, long offset, bool is_frame_entity", + attr => "ir_mode *ls_mode, ir_entity *entity, long offset, bool is_frame_entity", emit => '. st%SM %S2, [%S1%O]' }, @@ -697,7 +697,7 @@ Ldf => { ins => [ "ptr", "mem" ], outs => [ "res", "M" ], attr_type => "sparc_load_store_attr_t", - attr => "ir_mode *ls_mode, ir_entity *entity, int entity_sign, long offset, bool is_frame_entity", + attr => "ir_mode *ls_mode, ir_entity *entity, long offset, bool is_frame_entity", emit => '. ld%FLSM [%S1%O], %D1' }, @@ -718,7 +718,7 @@ Stf => { ins => [ "ptr", "val", "mem" ], outs => [ "M" ], attr_type => "sparc_load_store_attr_t", - attr => "ir_mode *ls_mode, ir_entity *entity, int entity_sign, long offset, bool is_frame_entity", + attr => "ir_mode *ls_mode, ir_entity *entity, long offset, bool is_frame_entity", emit => '. st%FLSM %S2, [%S1%O]', mode => 'mode_M', }, diff --git a/ir/be/sparc/sparc_transform.c b/ir/be/sparc/sparc_transform.c index 159724513..dc3139297 100644 --- a/ir/be/sparc/sparc_transform.c +++ b/ir/be/sparc/sparc_transform.c @@ -321,40 +321,40 @@ static ir_node *gen_Sub(ir_node *node) static ir_node *create_ldf(dbg_info *dbgi, ir_node *block, ir_node *ptr, ir_node *mem, ir_mode *mode, ir_entity *entity, - int entity_sign, long offset, bool is_frame_entity) + long offset, bool is_frame_entity) { unsigned bits = get_mode_size_bits(mode); assert(mode_is_float(mode)); if (bits == 32) { return new_bd_sparc_Ldf_s(dbgi, block, ptr, mem, mode, entity, - entity_sign, offset, is_frame_entity); + offset, is_frame_entity); } else if (bits == 64) { return new_bd_sparc_Ldf_d(dbgi, block, ptr, mem, mode, entity, - entity_sign, offset, is_frame_entity); + offset, is_frame_entity); } else { assert(bits == 128); return new_bd_sparc_Ldf_q(dbgi, block, ptr, mem, mode, entity, - entity_sign, offset, is_frame_entity); + offset, is_frame_entity); } } static ir_node *create_stf(dbg_info *dbgi, ir_node *block, ir_node *ptr, ir_node *value, ir_node *mem, ir_mode *mode, - ir_entity *entity, int entity_sign, long offset, + ir_entity *entity, long offset, bool is_frame_entity) { unsigned bits = get_mode_size_bits(mode); assert(mode_is_float(mode)); if (bits == 32) { return new_bd_sparc_Stf_s(dbgi, block, ptr, value, mem, mode, entity, - entity_sign, offset, is_frame_entity); + offset, is_frame_entity); } else if (bits == 64) { return new_bd_sparc_Stf_d(dbgi, block, ptr, value, mem, mode, entity, - entity_sign, offset, is_frame_entity); + offset, is_frame_entity); } else { assert(bits == 128); return new_bd_sparc_Stf_q(dbgi, block, ptr, value, mem, mode, entity, - entity_sign, offset, is_frame_entity); + offset, is_frame_entity); } } @@ -376,9 +376,9 @@ static ir_node *gen_Load(ir_node *node) ir_node *new_load = NULL; if (mode_is_float(mode)) { - new_load = create_ldf(dbgi, block, new_ptr, new_mem, mode, NULL, 0, 0, false); + new_load = create_ldf(dbgi, block, new_ptr, new_mem, mode, NULL, 0, false); } else { - new_load = new_bd_sparc_Ld(dbgi, block, new_ptr, new_mem, mode, NULL, 0, 0, false); + new_load = new_bd_sparc_Ld(dbgi, block, new_ptr, new_mem, mode, NULL, 0, false); } set_irn_pinned(new_load, get_irn_pinned(node)); @@ -405,9 +405,9 @@ static ir_node *gen_Store(ir_node *node) ir_node *new_store = NULL; if (mode_is_float(mode)) { - new_store = create_stf(dbgi, block, new_ptr, new_val, new_mem, mode, NULL, 0, 0, false); + new_store = create_stf(dbgi, block, new_ptr, new_val, new_mem, mode, NULL, 0, false); } else { - new_store = new_bd_sparc_St(dbgi, block, new_ptr, new_val, new_mem, mode, NULL, 0, 0, false); + new_store = new_bd_sparc_St(dbgi, block, new_ptr, new_val, new_mem, mode, NULL, 0, false); } set_irn_pinned(new_store, get_irn_pinned(node)); @@ -685,7 +685,7 @@ static ir_node *gen_Const(ir_node *node) ir_node *addr = make_addr(dbgi, entity); ir_node *mem = new_NoMem(); ir_node *new_op - = create_ldf(dbgi, block, addr, mem, mode, NULL, 0, 0, false); + = create_ldf(dbgi, block, addr, mem, mode, NULL, 0, false); ir_node *proj = new_Proj(new_op, mode, pn_sparc_Ldf_res); set_irn_pinned(new_op, op_pin_state_floats); @@ -1139,7 +1139,7 @@ static ir_node *bitcast_int_to_float(dbg_info *dbgi, ir_node *block, ir_node *sp = get_irg_frame(irg); ir_node *nomem = new_NoMem(); ir_node *st = new_bd_sparc_St(dbgi, block, sp, value0, nomem, mode_gp, - NULL, 0, 0, true); + NULL, 0, true); ir_mode *mode; ir_node *ldf; ir_node *mem; @@ -1147,7 +1147,7 @@ static ir_node *bitcast_int_to_float(dbg_info *dbgi, ir_node *block, if (value1 != NULL) { ir_node *st1 = new_bd_sparc_St(dbgi, block, sp, value1, nomem, mode_gp, - NULL, 0, 4, true); + NULL, 4, true); ir_node *in[2] = { st, st1 }; ir_node *sync = new_r_Sync(block, 2, in); set_irn_pinned(st1, op_pin_state_floats); @@ -1158,7 +1158,7 @@ static ir_node *bitcast_int_to_float(dbg_info *dbgi, ir_node *block, mode = mode_fp; } - ldf = create_ldf(dbgi, block, sp, mem, mode, NULL, 0, 0, true); + ldf = create_ldf(dbgi, block, sp, mem, mode, NULL, 0, true); set_irn_pinned(ldf, op_pin_state_floats); return new_Proj(ldf, mode, pn_sparc_Ldf_res); @@ -1172,18 +1172,18 @@ static void bitcast_float_to_int(dbg_info *dbgi, ir_node *block, ir_node *stack = get_irg_frame(irg); ir_node *nomem = new_NoMem(); ir_node *stf = create_stf(dbgi, block, stack, node, nomem, float_mode, - NULL, 0, 0, true); + NULL, 0, true); int bits = get_mode_size_bits(float_mode); ir_node *ld; set_irn_pinned(stf, op_pin_state_floats); - ld = new_bd_sparc_Ld(dbgi, block, stack, stf, mode_gp, NULL, 0, 0, true); + ld = new_bd_sparc_Ld(dbgi, block, stack, stf, mode_gp, NULL, 0, true); set_irn_pinned(ld, op_pin_state_floats); result[0] = new_Proj(ld, mode_gp, pn_sparc_Ld_res); if (bits == 64) { ir_node *ld2 = new_bd_sparc_Ld(dbgi, block, stack, stf, mode_gp, - NULL, 0, 4, true); + NULL, 4, true); set_irn_pinned(ld, op_pin_state_floats); result[1] = new_Proj(ld2, mode_gp, pn_sparc_Ld_res); @@ -1292,10 +1292,10 @@ static ir_node *gen_Call(ir_node *node) /* create a parameter frame if necessary */ if (mode_is_float(mode)) { str = create_stf(dbgi, new_block, incsp, new_value, new_mem, - mode, NULL, 0, param->offset, true); + mode, NULL, param->offset, true); } else { str = new_bd_sparc_St(dbgi, new_block, incsp, new_value, new_mem, - mode, NULL, 0, param->offset, true); + mode, NULL, param->offset, true); } set_irn_pinned(str, op_pin_state_floats); sync_ins[sync_arity++] = str; @@ -1619,7 +1619,7 @@ static ir_node *gen_Proj_Proj_Start(ir_node *node) ir_node *mem = be_prolog_get_memory(abihelper); ir_node *ld = new_bd_sparc_Ld(NULL, new_block, fp, mem, mode_gp, param->entity, - 0, 0, true); + 0, true); value1 = new_Proj(ld, mode_gp, pn_sparc_Ld_res); } @@ -1637,11 +1637,11 @@ static ir_node *gen_Proj_Proj_Start(ir_node *node) if (mode_is_float(mode)) { load = create_ldf(NULL, new_block, fp, mem, mode, - param->entity, 0, 0, true); + param->entity, 0, true); value = new_r_Proj(load, mode_fp, pn_sparc_Ldf_res); } else { load = new_bd_sparc_Ld(NULL, new_block, fp, mem, mode, - param->entity, 0, 0, true); + param->entity, 0, true); value = new_r_Proj(load, mode_gp, pn_sparc_Ld_res); } set_irn_pinned(load, op_pin_state_floats);