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 - New Free Runtime and 30 Day Trial
Check out the new simplified licensign option that enables unlimited
royalty-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