Signed-off-by: Arthur HUILLET <[email protected]>
---
 arch/x86/insn-selector_32.brg |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/arch/x86/insn-selector_32.brg b/arch/x86/insn-selector_32.brg
index 556dc24..c723526 100644
--- a/arch/x86/insn-selector_32.brg
+++ b/arch/x86/insn-selector_32.brg
@@ -626,22 +626,24 @@ reg:      EXPR_CLASS_FIELD 1
 
 reg:   EXPR_INSTANCE_FIELD(reg) 1
 {
-       struct var_info *base, *index, *result;
+       struct var_info *base, *index;
        struct expression *expr;
 
        expr = to_expr(tree);
 
        base = state->left->reg1;
        index = get_var(s->b_parent);
-       result = get_var(s->b_parent);
-       state->reg1 = result;
+       state->reg1 = get_var(s->b_parent);
 
        bb_add_insn(s, imm_reg_insn(INSN_ADD_IMM_REG, sizeof(struct object), 
base));
        bb_add_insn(s, imm_reg_insn(INSN_MOV_IMM_REG, 
expr->instance_field->offset, index));
-       bb_add_insn(s, memindex_reg_insn(INSN_MOV_MEMINDEX_REG, base, index, 2, 
result));
+       bb_add_insn(s, memindex_reg_insn(INSN_MOV_MEMINDEX_REG, base, index, 2, 
state->reg1));
 
        if (expr->vm_type == J_LONG) {
-               assert(!"not supported");
+               state->reg2 = get_var(s->b_parent);
+
+               bb_add_insn(s, imm_reg_insn(INSN_ADD_IMM_REG, 1, index));
+               bb_add_insn(s, memindex_reg_insn(INSN_MOV_MEMINDEX_REG, base, 
index, 2, state->reg2));
        }
 }
 
-- 
1.6.2.2


------------------------------------------------------------------------------
Crystal Reports &#45; New Free Runtime and 30 Day Trial
Check out the new simplified licensign option that enables unlimited
royalty&#45;free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Jatovm-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jatovm-devel

Reply via email to