From 37b8104e0c0222a5e402f8f604927f4437e2e77e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Christian=20W=C3=BCrdig?= Date: Thu, 9 Mar 2006 16:39:46 +0000 Subject: [PATCH] copy register on benode lowering to Load --- ir/be/ia32/bearch_ia32.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ir/be/ia32/bearch_ia32.c b/ir/be/ia32/bearch_ia32.c index 00d109817..82d9ca842 100644 --- a/ir/be/ia32/bearch_ia32.c +++ b/ir/be/ia32/bearch_ia32.c @@ -344,6 +344,7 @@ static void transform_to_Load(ia32_transform_env_t *env) { ir_node *nomem = new_rd_NoMem(env->irg); ir_node *new_op, *proj; ir_node *sched_point = NULL; + const arch_register_t *reg; if (sched_is_scheduled(irn)) { sched_point = sched_prev(irn); @@ -372,6 +373,10 @@ static void transform_to_Load(ia32_transform_env_t *env) { sched_remove(irn); } + /* copy the register from the old node to the new Load */ + reg = arch_get_irn_register(env->cg->arch_env, irn); + arch_set_irn_register(env->cg->arch_env, irn, reg); + exchange(irn, proj); } -- 2.20.1