From fdf59d1b27c7eac4bf6d4a05d5eb8e561ba978cf Mon Sep 17 00:00:00 2001 From: Matthias Braun Date: Tue, 19 Jun 2007 08:59:48 +0000 Subject: [PATCH] removed old code [r14641] --- ir/be/ia32/ia32_transform.c | 127 ------------------------------------ 1 file changed, 127 deletions(-) diff --git a/ir/be/ia32/ia32_transform.c b/ir/be/ia32/ia32_transform.c index 75d7af4a7..843094724 100644 --- a/ir/be/ia32/ia32_transform.c +++ b/ir/be/ia32/ia32_transform.c @@ -2087,133 +2087,6 @@ static ir_node *gen_Psi(ir_node *node) { } SET_IA32_ORIG_NODE(new_op, ia32_get_old_node_name(cg, node)); return new_op; - -#if 0 - if (mode_is_float(mode)) { - if(mode_is_float(cmp_mode)) { - pnc |= ia32_pn_Cmp_Unsigned; - } - - /* floating point psi */ - FP_USED(cg); - - /* 1st case: compare operands are float too */ - if (USE_SSE2(cg)) { - /* psi(cmp(a, b), t, f) can be done as: */ - /* tmp = cmp a, b */ - /* tmp2 = t and tmp */ - /* tmp3 = f and not tmp */ - /* res = tmp2 or tmp3 */ - - /* in case the compare operands are int, we move them into xmm register */ - if (! mode_is_float(get_irn_mode(cmp_a))) { - new_cmp_a = gen_sse_conv_int2float(cg, dbgi, irg, block, new_cmp_a, node, mode_xmm); - new_cmp_b = gen_sse_conv_int2float(cg, dbgi, irg, block, new_cmp_b, node, mode_xmm); - - pnc |= 8; /* transform integer compare to fp compare */ - } - - new_op = new_rd_ia32_xCmp(dbgi, irg, block, noreg, noreg, new_cmp_a, new_cmp_b, nomem); - set_ia32_pncode(new_op, pnc); - set_ia32_am_support(new_op, ia32_am_Source); - SET_IA32_ORIG_NODE(new_op, ia32_get_old_node_name(cg, node)); - - and1 = new_rd_ia32_xAnd(dbgi, irg, block, noreg, noreg, new_psi_true, new_op, nomem); - set_ia32_am_support(and1, ia32_am_None); - set_ia32_commutative(and1); - SET_IA32_ORIG_NODE(and1, ia32_get_old_node_name(cg, node)); - - and2 = new_rd_ia32_xAndNot(dbgi, irg, block, noreg, noreg, new_op, new_psi_default, nomem); - set_ia32_am_support(and2, ia32_am_None); - set_ia32_commutative(and2); - SET_IA32_ORIG_NODE(and2, ia32_get_old_node_name(cg, node)); - - new_op = new_rd_ia32_xOr(dbgi, irg, block, noreg, noreg, and1, and2, nomem); - set_ia32_am_support(new_op, ia32_am_None); - set_ia32_commutative(new_op); - SET_IA32_ORIG_NODE(new_op, ia32_get_old_node_name(cg, node)); - } - else { - /* x87 FPU */ - new_op = new_rd_ia32_vfCMov(dbgi, irg, block, new_cmp_a, new_cmp_b, new_psi_true, new_psi_default); - set_ia32_pncode(new_op, pnc); - SET_IA32_ORIG_NODE(new_op, ia32_get_old_node_name(env_cg, node)); - } - } - else { - /* integer psi */ - construct_binop_func *set_func = NULL; - cmov_func_t *cmov_func = NULL; - - if (mode_is_float(get_irn_mode(cmp_a))) { - /* 1st case: compare operands are floats */ - FP_USED(cg); - - if (USE_SSE2(cg)) { - /* SSE FPU */ - set_func = new_rd_ia32_xCmpSet; - cmov_func = new_rd_ia32_xCmpCMov; - } - else { - /* x87 FPU */ - set_func = new_rd_ia32_vfCmpSet; - cmov_func = new_rd_ia32_vfCmpCMov; - } - - pnc &= ~0x8; /* fp compare -> int compare */ - } - else { - /* 2nd case: compare operand are integer too */ - set_func = new_rd_ia32_CmpSet; - cmov_func = new_rd_ia32_CmpCMov; - } - - /* check for special case first: And/Or -- Cmp with 0 -- Psi */ - if (is_ia32_Const_0(new_cmp_b) && is_Proj(new_cmp_a) && (is_ia32_And(get_Proj_pred(new_cmp_a)) || is_ia32_Or(get_Proj_pred(new_cmp_a)))) { - if (is_ia32_Const_1(psi_true) && is_ia32_Const_0(psi_default)) { - /* first case for SETcc: default is 0, set to 1 iff condition is true */ - new_op = new_rd_ia32_PsiCondSet(dbgi, irg, block, new_cmp_a); - set_ia32_pncode(new_op, pnc); - } - else if (is_ia32_Const_0(psi_true) && is_ia32_Const_1(psi_default)) { - /* second case for SETcc: default is 1, set to 0 iff condition is true: */ - /* we invert condition and set default to 0 */ - new_op = new_rd_ia32_PsiCondSet(dbgi, irg, block, new_cmp_a); - set_ia32_pncode(new_op, get_inversed_pnc(pnc)); - } - else { - /* otherwise: use CMOVcc */ - new_op = new_rd_ia32_PsiCondCMov(dbgi, irg, block, new_cmp_a, new_psi_true, new_psi_default); - set_ia32_pncode(new_op, pnc); - } - - SET_IA32_ORIG_NODE(new_op, ia32_get_old_node_name(cg, node)); - } - else { - if (is_ia32_Const_1(psi_true) && is_ia32_Const_0(psi_default)) { - /* first case for SETcc: default is 0, set to 1 iff condition is true */ - new_op = gen_binop(node, cmp_a, cmp_b, set_func, 0); - set_ia32_pncode(new_op, pnc); - set_ia32_am_support(new_op, ia32_am_Source); - } - else if (is_ia32_Const_0(psi_true) && is_ia32_Const_1(psi_default)) { - /* second case for SETcc: default is 1, set to 0 iff condition is true: */ - /* we invert condition and set default to 0 */ - new_op = gen_binop(node, cmp_a, cmp_b, set_func, 0); - set_ia32_pncode(new_op, get_inversed_pnc(pnc)); - set_ia32_am_support(new_op, ia32_am_Source); - } - else { - /* otherwise: use CMOVcc */ - new_op = cmov_func(dbgi, irg, block, new_cmp_a, new_cmp_b, new_psi_true, new_psi_default); - set_ia32_pncode(new_op, pnc); - SET_IA32_ORIG_NODE(new_op, ia32_get_old_node_name(cg, node)); - } - } - } -#endif - - return new_op; } -- 2.20.1