X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fsparc%2Fsparc_transform.c;h=b5599ad5b2c79afd7087e0ef18d3fc494f695a62;hb=63539488745022b673df05c7dfbe585317db61bd;hp=5ae86ab68f929a2d73210acd8f43083927b247e1;hpb=1b63e1946e0e454a59ddc6eb7df8fe3bc372a10e;p=libfirm diff --git a/ir/be/sparc/sparc_transform.c b/ir/be/sparc/sparc_transform.c index 5ae86ab68..b5599ad5b 100644 --- a/ir/be/sparc/sparc_transform.c +++ b/ir/be/sparc/sparc_transform.c @@ -413,7 +413,7 @@ static ir_node *gen_Add(ir_node *node) ir_node *left = get_Add_left(node); /* is this simple address arithmetic? then we can let the linker do * the calculation. */ - if (is_SymConst(left)) { + if (is_SymConst(left) && get_irn_n_edges(left) == 1) { dbg_info *dbgi = get_irn_dbg_info(node); ir_node *block = be_transform_node(get_nodes_block(node)); address_t address; @@ -676,6 +676,7 @@ static ir_node *gen_Quot(ir_node *node) new_bd_sparc_fdiv_d, new_bd_sparc_fdiv_q); } +#if 0 static ir_node *gen_Abs(ir_node *node) { ir_mode *const mode = get_irn_mode(node); @@ -694,6 +695,7 @@ static ir_node *gen_Abs(ir_node *node) return sub; } } +#endif /** * Transforms a Not node. @@ -724,7 +726,7 @@ static ir_node *gen_helper_bitop(ir_node *node, ir_node *op1 = get_binop_left(node); ir_node *op2 = get_binop_right(node); if (is_Not(op1)) { - return gen_helper_binop_args(node, get_Not_op(op1), op2, + return gen_helper_binop_args(node, op2, get_Not_op(op1), MATCH_MODE_NEUTRAL, new_not_reg, new_not_imm); } @@ -2018,7 +2020,6 @@ void sparc_register_transformers(void) { be_start_transform_setup(); - be_set_transform_function(op_Abs, gen_Abs); be_set_transform_function(op_Add, gen_Add); be_set_transform_function(op_And, gen_And); be_set_transform_function(op_Call, gen_Call);