From: Matthias Braun Date: Fri, 15 May 2009 11:20:44 +0000 (+0000) Subject: fix mode querying for mode_T div nodes X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=51b54811fb5235c0b5981b5fd4fccc38e5d2e349;p=libfirm fix mode querying for mode_T div nodes [r25967] --- diff --git a/ir/be/ia32/ia32_transform.c b/ir/be/ia32/ia32_transform.c index 217458aa8..32e961b93 100644 --- a/ir/be/ia32/ia32_transform.c +++ b/ir/be/ia32/ia32_transform.c @@ -1001,7 +1001,7 @@ static ir_node *get_fpcw(void) static ir_node *gen_binop_x87_float(ir_node *node, ir_node *op1, ir_node *op2, construct_binop_float_func *func) { - ir_mode *mode = get_irn_mode(node); + ir_mode *mode = get_irn_mode(node); dbg_info *dbgi; ir_node *block, *new_block, *new_node; ia32_address_mode_t am; @@ -1011,6 +1011,10 @@ static ir_node *gen_binop_x87_float(ir_node *node, ir_node *op1, ir_node *op2, * variants */ match_flags_t flags = match_commutative; + /* happens for div nodes... */ + if (mode == mode_T) + mode = get_divop_resmod(node); + /* cannot use address mode with long double on x87 */ if (get_mode_size_bits(mode) <= 64) flags |= match_am;