From d5c8fe4b90c54cbd03924d3eaf04d83dcf2f3cb8 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Tue, 23 Feb 2010 17:22:12 +0100 Subject: [PATCH] Mark renamed registers as modified. --- src/lj_asm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lj_asm.c b/src/lj_asm.c index 3813a5d7..6c5e4659 100644 --- a/src/lj_asm.c +++ b/src/lj_asm.c @@ -817,7 +817,8 @@ static void ra_rename(ASMState *as, Reg down, Reg up) as->cost[down] = 0; lua_assert((down < RID_MAX_GPR) == (up < RID_MAX_GPR)); lua_assert(!rset_test(as->freeset, down) && rset_test(as->freeset, up)); - rset_set(as->freeset, down); /* 'down' is free ... */ + ra_free(as, down); /* 'down' is free ... */ + ra_modified(as, down); rset_clear(as->freeset, up); /* ... and 'up' is now allocated. */ ra_noweak(as, up); RA_DBGX((as, "rename $f $r $r", regcost_ref(as->cost[up]), down, up));