From 749a914fd4fd69a3e9f745fb3b4e037b34b73b5b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Christian=20W=C3=BCrdig?= Date: Wed, 25 Jan 2006 16:44:32 +0000 Subject: [PATCH] call belower (call lowering) fixed call requirements --- ir/be/ia32/bearch_ia32.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/ir/be/ia32/bearch_ia32.c b/ir/be/ia32/bearch_ia32.c index 9ece91f81..704e6d0b5 100644 --- a/ir/be/ia32/bearch_ia32.c +++ b/ir/be/ia32/bearch_ia32.c @@ -14,6 +14,7 @@ #include "../bearch.h" /* the general register allocator interface */ #include "../benode_t.h" +#include "../belower.h" #include "bearch_ia32_t.h" #include "ia32_new_nodes.h" /* ia32 nodes interface */ @@ -109,8 +110,14 @@ static const arch_register_req_t *ia32_get_irn_reg_req(const void *self, arch_re if (is_Call_Proj(irn) && is_used_by_Keep(irn)) { - irn_req = ia32_projnum_reg_req_map[get_Proj_proj(irn)]; - memcpy(req, &(irn_req->req), sizeof(*req)); + if (pos >= 0) { + req = NULL; + } + else { + irn_req = ia32_projnum_reg_req_map[get_Proj_proj(irn)]; + memcpy(req, &(irn_req->req), sizeof(*req)); + } + return req; } else if (is_Start_Proj(irn)) { @@ -351,6 +358,9 @@ static void ia32_set_P_frame_base_Proj_reg(ir_node *irn, void *env) { * Dummy functions for hooks we don't need but which must be filled. */ static void ia32_before_sched(void *self) { + ia32_code_gen_t *cg = self; + + lower_nodes_before_sched(cg->irg, cg->arch_env); } static void ia32_before_ra(void *self) { -- 2.20.1