This implements EXPR_ANEWARRAY handling on x86-64. Signed-off-by: Eduard - Gabriel Munteanu <eduard.munte...@linux360.ro> --- arch/x86/insn-selector.brg | 28 +++++++++++++++++++++++++++- 1 files changed, 27 insertions(+), 1 deletions(-)
diff --git a/arch/x86/insn-selector.brg b/arch/x86/insn-selector.brg index 8a5a652..d8d679d 100644 --- a/arch/x86/insn-selector.brg +++ b/arch/x86/insn-selector.brg @@ -1349,6 +1349,7 @@ reg: EXPR_MULTIANEWARRAY(arg) select_exception_test(s, tree); } +%ifdef CONFIG_X86_32 reg: EXPR_ANEWARRAY(reg) { struct var_info *var, *size; @@ -1356,7 +1357,7 @@ reg: EXPR_ANEWARRAY(reg) expr = to_expr(tree); - var = get_fixed_var(s->b_parent, MACH_REG_xAX); + var = get_fixed_var(s->b_parent, MACH_REG_EAX); state->reg1 = var; size = state->left->reg1; @@ -1370,6 +1371,31 @@ reg: EXPR_ANEWARRAY(reg) method_args_cleanup(s, tree, 3); select_exception_test(s, tree); } +%else +reg: EXPR_ANEWARRAY(reg) +{ + struct var_info *var, *size, *rdi, *rsi; + struct expression *expr; + + expr = to_expr(tree); + + var = get_fixed_var(s->b_parent, MACH_REG_RAX); + state->reg1 = var; + + size = state->left->reg1; + + rdi = get_fixed_var(s->b_parent, MACH_REG_RDI); + rsi = get_fixed_var(s->b_parent, MACH_REG_RSI); + + select_insn(s, tree, imm_reg_insn(INSN_MOV_IMM_REG, + (unsigned long) expr->anewarray_ref_type, rdi)); + select_insn(s, tree, reg_reg_insn(INSN_MOV_REG_REG, size, rsi)); + select_insn(s, tree, rel_insn(INSN_CALL_REL, + (unsigned long) vm_object_alloc_array)); + + select_exception_test(s, tree); +} +%endif reg: EXPR_ARRAYLENGTH(reg) { -- 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