LIR position passed to radix_tree_lookup() should be always even.

Signed-off-by: Tomek Grabiec <tgrab...@gmail.com>
---
 jit/spill-reload.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/jit/spill-reload.c b/jit/spill-reload.c
index 3dfb0b3..eaa2790 100644
--- a/jit/spill-reload.c
+++ b/jit/spill-reload.c
@@ -53,8 +53,6 @@ get_reload_before_insn(struct compilation_unit *cu, struct 
live_interval *interv
 
        unsigned long start = interval_start(interval);
 
-       ret = radix_tree_lookup(cu->lir_insn_map, start);
-
        if (start & 1) {
                /*
                 * If interval starts at odd position and has a use
@@ -67,7 +65,10 @@ get_reload_before_insn(struct compilation_unit *cu, struct 
live_interval *interv
                if (first_use_pos(interval) == interval_start(interval))
                        error("interval begins with a def-use and is marked for 
reload");
 
+               ret = radix_tree_lookup(cu->lir_insn_map, start - 1);
                ret = next_insn(ret);
+       } else {
+               ret = radix_tree_lookup(cu->lir_insn_map, start);
        }
 
        assert(ret != NULL);
-- 
1.6.0.4


------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Jatovm-devel mailing list
Jatovm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jatovm-devel

Reply via email to