From bc48dbf6be901095cb8a50cb724fca4b841d0200 Mon Sep 17 00:00:00 2001 From: Matthias Braun Date: Fri, 9 Feb 2007 14:37:21 +0000 Subject: [PATCH] set ESP register for AddSP and SubSP --- ir/be/ia32/ia32_transform.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ir/be/ia32/ia32_transform.c b/ir/be/ia32/ia32_transform.c index 003c1aa89..cae563175 100644 --- a/ir/be/ia32/ia32_transform.c +++ b/ir/be/ia32/ia32_transform.c @@ -3466,7 +3466,9 @@ static ir_node *gen_Proj_be_AddSP(ia32_transform_env_t *env, ir_node *node) { int proj = get_Proj_proj(node); if(proj == pn_be_AddSP_res) { - return new_rd_Proj(dbg, irg, block, new_pred, mode_Iu, pn_ia32_AddSP_stack); + ir_node *res = new_rd_Proj(dbg, irg, block, new_pred, mode_Iu, pn_ia32_AddSP_stack); + arch_set_irn_register(env->cg->arch_env, res, &ia32_gp_regs[REG_ESP]); + return res; } else if(proj == pn_be_AddSP_M) { return new_rd_Proj(dbg, irg, block, new_pred, mode_M, pn_ia32_AddSP_M); } @@ -3484,7 +3486,9 @@ static ir_node *gen_Proj_be_SubSP(ia32_transform_env_t *env, ir_node *node) { int proj = get_Proj_proj(node); if(proj == pn_be_SubSP_res) { - return new_rd_Proj(dbg, irg, block, new_pred, mode_Iu, pn_ia32_SubSP_stack); + ir_node *res = new_rd_Proj(dbg, irg, block, new_pred, mode_Iu, pn_ia32_AddSP_stack); + arch_set_irn_register(env->cg->arch_env, res, &ia32_gp_regs[REG_ESP]); + return res; } else if(proj == pn_be_SubSP_M) { return new_rd_Proj(dbg, irg, block, new_pred, mode_M, pn_ia32_SubSP_M); } -- 2.20.1