From: Matthias Braun Date: Mon, 28 Feb 2011 12:26:10 +0000 (+0100) Subject: fix mux_allowed expecting Proj(Cmp) instead of Cmp X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=ac14907ec6e63295b6718a74e16eb556b07edebd;p=libfirm fix mux_allowed expecting Proj(Cmp) instead of Cmp --- diff --git a/ir/be/ia32/bearch_ia32.c b/ir/be/ia32/bearch_ia32.c index 577ad894d..4d9a65f33 100644 --- a/ir/be/ia32/bearch_ia32.c +++ b/ir/be/ia32/bearch_ia32.c @@ -1986,19 +1986,16 @@ static int ia32_is_mux_allowed(ir_node *sel, ir_node *mux_false, return true; /* Check Cmp before the node */ - if (is_Proj(sel)) { - ir_node *cmp = get_Proj_pred(sel); - if (is_Cmp(cmp)) { - ir_mode *cmp_mode = get_irn_mode(get_Cmp_left(cmp)); - - /* we can't handle 64bit compares */ - if (get_mode_size_bits(cmp_mode) > 32) - return false; - - /* we can't handle float compares */ - if (mode_is_float(cmp_mode)) - return false; - } + if (is_Cmp(sel)) { + ir_mode *cmp_mode = get_irn_mode(get_Cmp_left(sel)); + + /* we can't handle 64bit compares */ + if (get_mode_size_bits(cmp_mode) > 32) + return false; + + /* we can't handle float compares */ + if (mode_is_float(cmp_mode)) + return false; } /* did we disable cmov generation? */