From 11a2eb0c1ea4073251827dc7e2b34c5e1e04a4bc Mon Sep 17 00:00:00 2001 From: Matthias Braun Date: Mon, 1 Feb 2010 18:13:25 +0000 Subject: [PATCH] fix fehler175.c [r27021] --- ir/be/ia32/ia32_spec.pl | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ir/be/ia32/ia32_spec.pl b/ir/be/ia32/ia32_spec.pl index 2f5de9821..2e1811bd9 100644 --- a/ir/be/ia32/ia32_spec.pl +++ b/ir/be/ia32/ia32_spec.pl @@ -1098,7 +1098,13 @@ Setcc => { outs => [ "res" ], attr_type => "ia32_condcode_attr_t", attr => "pn_Cmp pnc", - init_attr => "set_ia32_ls_mode(res, mode_Bu);\n", + # The way we handle Setcc with float nodes (potentially) destroys the flags + # (when we emit the setX; setp; orb and the setX;setnp;andb sequences) + init_attr => "set_ia32_ls_mode(res, mode_Bu);\n" + . "\tif ((pnc & ia32_pn_Cmp_float) && ((pnc & 0xf) != pn_Cmp_Uo) && ((pnc & 0xf) != pn_Cmp_Leg)) {\n" + . "\t\tarch_irn_add_flags(res, arch_irn_flags_modify_flags);\n" + . "\t\t/* attr->latency = 3; */\n" + . "\t}\n", latency => 1, units => [ "GP" ], mode => $mode_gp, -- 2.20.1