It's already used in two places and will be used in few more.

Signed-off-by: Tomek Grabiec <tgrab...@gmail.com>
---
 arch/x86/emit-code.c |   23 +++++++++++------------
 1 files changed, 11 insertions(+), 12 deletions(-)

diff --git a/arch/x86/emit-code.c b/arch/x86/emit-code.c
index 8e857ab..c4887a5 100644
--- a/arch/x86/emit-code.c
+++ b/arch/x86/emit-code.c
@@ -1877,6 +1877,15 @@ void emit_trampoline(struct compilation_unit *cu,
        jit_text_unlock();
 }
 
+static void fixup_branch_target(uint8_t *target_p, void *target)
+{
+       long cur = (long) (target - (void *) target_p) - 4;
+       target_p[3] = cur >> 24;
+       target_p[2] = cur >> 16;
+       target_p[1] = cur >> 8;
+       target_p[0] = cur;
+}
+
 /* Note: a < b, always */
 static void emit_itable_bsearch(struct buffer *buf,
        struct itable_entry **table, unsigned int a, unsigned int b)
@@ -1918,23 +1927,13 @@ static void emit_itable_bsearch(struct buffer *buf,
 
        /* This emits the code for checking the interval [a, m> */
        if (jb_addr) {
-               long cur = (long) (buffer_current(buf) - (void *) jb_addr) - 4;
-               jb_addr[3] = cur >> 24;
-               jb_addr[2] = cur >> 16;
-               jb_addr[1] = cur >> 8;
-               jb_addr[0] = cur;
-
+               fixup_branch_target(jb_addr, buffer_current(buf));
                emit_itable_bsearch(buf, table, a, m - 1);
        }
 
        /* This emits the code for checking the interval <m, b] */
        if (ja_addr) {
-               long cur = (long) (buffer_current(buf) - (void *) ja_addr) - 4;
-               ja_addr[3] = cur >> 24;
-               ja_addr[2] = cur >> 16;
-               ja_addr[1] = cur >> 8;
-               ja_addr[0] = cur;
-
+               fixup_branch_target(ja_addr, buffer_current(buf));
                emit_itable_bsearch(buf, table, m + 1, b);
        }
 }
-- 
1.6.0.6


------------------------------------------------------------------------------
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

Reply via email to