From 5a6ef592953c894c7c802504b3d0d8b702bbd021 Mon Sep 17 00:00:00 2001 From: Adam Szalkowski Date: Mon, 17 Jul 2006 08:43:24 +0000 Subject: [PATCH] wrong params for inverse minus and eor --- ir/be/ia32/bearch_ia32.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/ir/be/ia32/bearch_ia32.c b/ir/be/ia32/bearch_ia32.c index b463da42d..2367605a4 100644 --- a/ir/be/ia32/bearch_ia32.c +++ b/ir/be/ia32/bearch_ia32.c @@ -634,13 +634,20 @@ static arch_inverse_t *ia32_get_inverse(const void *self, const ir_node *irn, in inverse->costs += 1; } break; - case iro_ia32_Not: - inverse->nodes[0] = new_rd_ia32_Not(NULL, irg, block, noreg, noreg, get_irn_n(irn, i), nomem); + case iro_ia32_Not: { + ir_node *proj = get_irn_out_edge_first(irn)->src; + assert(proj && is_Proj(proj)); + + inverse->nodes[0] = new_rd_ia32_Not(NULL, irg, block, noreg, noreg, proj, nomem); pnc = pn_ia32_Not_res; inverse->costs += 1; break; + } case iro_ia32_Minus: - inverse->nodes[0] = new_rd_ia32_Minus(NULL, irg, block, noreg, noreg, get_irn_n(irn, i), nomem); + ir_node *proj = get_irn_out_edge_first(irn)->src; + assert(proj && is_Proj(proj)); + + inverse->nodes[0] = new_rd_ia32_Minus(NULL, irg, block, noreg, noreg, proj, nomem); pnc = pn_ia32_Minus_res; inverse->costs += 1; break; -- 2.20.1