From 7e49ebd64684dd4360b6b5ecc9f6d8b7397d6ded Mon Sep 17 00:00:00 2001 From: Klaus Treichel Date: Sun, 24 Oct 2010 11:00:21 +0200 Subject: [PATCH] Set in_global_register on global register assignment so that the value is expected to be in the global register in blocks before any assignment to the value occurred to handle back branches correctly. --- ChangeLog | 5 +++++ jit/jit-reg-alloc.c | 1 + 2 files changed, 6 insertions(+) diff --git a/ChangeLog b/ChangeLog index 9614015..fbd4148 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2010-10-24 Klaus Treichel + + * jit/jit-reg-alloc.c (_jit_regs_alloc_global): Set in_global_register + on global register assignment. + 2010-10-04 Klaus Treichel * jit/jit-internal.h: Add missing typedef in the declaration of the diff --git a/jit/jit-reg-alloc.c b/jit/jit-reg-alloc.c index 21798c6..b7eeafe 100644 --- a/jit/jit-reg-alloc.c +++ b/jit/jit-reg-alloc.c @@ -2746,6 +2746,7 @@ void _jit_regs_alloc_global(jit_gencode_t gen, jit_function_t func) --reg; } candidates[index]->has_global_register = 1; + candidates[index]->in_global_register = 1; candidates[index]->global_reg = (short)reg; jit_reg_set_used(gen->touched, reg); jit_reg_set_used(gen->permanent, reg); -- 2.47.3