From: Christoph Mallon Date: Mon, 16 Jul 2007 10:06:21 +0000 (+0000) Subject: Do not unconditionally set the unsigned pnc flag, but only for floating point compari... X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=09238e3267b92817737eddb215d85787301f12fa;p=libfirm Do not unconditionally set the unsigned pnc flag, but only for floating point comparisons. This fixes r15142. [r15153] --- diff --git a/ir/be/ia32/ia32_emitter.c b/ir/be/ia32/ia32_emitter.c index 715f6a41e..c3dd30128 100644 --- a/ir/be/ia32/ia32_emitter.c +++ b/ir/be/ia32/ia32_emitter.c @@ -813,7 +813,10 @@ void finish_CondJmp(ia32_emit_env_t *env, const ir_node *node, ir_mode *mode, } be_emit_cstring(env, "\tj"); - ia32_emit_cmp_suffix(env, pnc | ia32_pn_Cmp_Unsigned); + // The bits set by floating point compares correspond to unsigned comparisons + if (mode_is_float(mode)) + pnc |= ia32_pn_Cmp_Unsigned; + ia32_emit_cmp_suffix(env, pnc); be_emit_char(env, ' '); ia32_emit_cfop_target(env, proj_true); be_emit_finish_line_gas(env, proj_true);