From 001a58258715951a135008799bd5808ee49ac789 Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Fri, 7 Sep 2007 10:57:25 +0000 Subject: [PATCH] fixed ia32_transform_sub_to_neg_add() for SSE nodes: use the right mode [r15705] --- ir/be/ia32/ia32_finish.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ir/be/ia32/ia32_finish.c b/ir/be/ia32/ia32_finish.c index 3490c56b4..21361c915 100644 --- a/ir/be/ia32/ia32_finish.c +++ b/ir/be/ia32/ia32_finish.c @@ -93,13 +93,14 @@ static void ia32_transform_sub_to_neg_add(ir_node *irn, ia32_code_gen_t *cg) { if(mode_is_float(mode)) { int size; ir_entity *entity; + ir_mode *op_mode = get_ia32_ls_mode(irn); res = new_rd_ia32_xXor(dbg, irg, block, noreg, noreg, in2, noreg_fp, nomem); - size = get_mode_size_bits(mode); + size = get_mode_size_bits(op_mode); entity = ia32_gen_fp_known_const(size == 32 ? ia32_SSIGN : ia32_DSIGN); set_ia32_am_sc(res, entity); set_ia32_op_type(res, ia32_AddrModeS); - set_ia32_ls_mode(res, get_ia32_ls_mode(irn)); + set_ia32_ls_mode(res, op_mode); } else { res = new_rd_ia32_Neg(dbg, irg, block, in2); } -- 2.20.1