From 24397decea55a0011498f126f6c506777f86c926 Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Wed, 24 Oct 2007 15:16:29 +0000 Subject: [PATCH] long double x87 modes don't support AM [r16331] --- ir/be/ia32/ia32_transform.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ir/be/ia32/ia32_transform.c b/ir/be/ia32/ia32_transform.c index 425aefee4..3f8cc3617 100644 --- a/ir/be/ia32/ia32_transform.c +++ b/ir/be/ia32/ia32_transform.c @@ -915,10 +915,14 @@ static ir_node *gen_binop_x87_float(ir_node *node, ir_node *op1, ir_node *op2, dbg_info *dbgi = get_irn_dbg_info(node); ir_node *block = get_nodes_block(node); ir_node *new_block = be_transform_node(block); + ir_mode *mode = get_irn_mode(node); ir_node *new_node; ia32_address_mode_t am; ia32_address_t *addr = &am.addr; + /* cannot use addresmode with long double on x87 */ + if (get_mode_size_bits(mode) > 64) flags &= ~match_am; + match_arguments(&am, block, op1, op2, flags); new_node = func(dbgi, irg, new_block, addr->base, addr->index, addr->mem, -- 2.20.1