This is a bug fix. The bug caused that floating point variables were spilled as if they were a general purpose registers which led to corruption of general purpose registers.
Signed-off-by: Tomek Grabiec <tgrab...@gmail.com> --- jit/compilation-unit.c | 4 ++-- jit/interval.c | 1 + jit/spill-reload.c | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/jit/compilation-unit.c b/jit/compilation-unit.c index 44b5c46..0dd4415 100644 --- a/jit/compilation-unit.c +++ b/jit/compilation-unit.c @@ -55,10 +55,10 @@ do_get_var(struct compilation_unit *cu, enum vm_type vm_type) ret->vreg = cu->nr_vregs++; ret->next = cu->var_infos; - ret->interval = alloc_interval(ret); - ret->vm_type = vm_type; + ret->interval = alloc_interval(ret); + cu->var_infos = ret; out: return ret; diff --git a/jit/interval.c b/jit/interval.c index 23703a1..8eb7d32 100644 --- a/jit/interval.c +++ b/jit/interval.c @@ -102,6 +102,7 @@ struct live_interval *alloc_interval(struct var_info *var) interval->reg = MACH_REG_UNASSIGNED; interval->fixed_reg = false; interval->spill_reload_reg.interval = interval; + interval->spill_reload_reg.vm_type = var->vm_type; INIT_LIST_HEAD(&interval->interval_node); INIT_LIST_HEAD(&interval->use_positions); INIT_LIST_HEAD(&interval->range_list); diff --git a/jit/spill-reload.c b/jit/spill-reload.c index 622966b..70a5aa9 100644 --- a/jit/spill-reload.c +++ b/jit/spill-reload.c @@ -141,6 +141,7 @@ spill_interval(struct live_interval *interval, if (!slot) return NULL; + assert(interval->spill_reload_reg.vm_type == interval->var_info->vm_type); spill = spill_insn(&interval->spill_reload_reg, slot); if (!spill) return NULL; -- 1.6.3.3 ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel