When arg2_type is not J_LONG we should cleanup 3 words instead of 4. Signed-off-by: Tomek Grabiec <tgrab...@gmail.com> --- arch/x86/insn-selector.brg | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/arch/x86/insn-selector.brg b/arch/x86/insn-selector.brg index fe9e113..2d7591a 100644 --- a/arch/x86/insn-selector.brg +++ b/arch/x86/insn-selector.brg @@ -2684,7 +2684,11 @@ emulate_op_64(struct _MBState *state, struct basic_block *s, select_insn(s, tree, reg_insn(INSN_PUSH_REG, state->left->reg1)); select_insn(s, tree, rel_insn(INSN_CALL_REL, (unsigned long) func)); - method_args_cleanup(s, tree, 4); + + if (arg2_type == J_LONG) + method_args_cleanup(s, tree, 4); + else + method_args_cleanup(s, tree, 3); select_insn(s, tree, reg_reg_insn(INSN_MOV_REG_REG, eax, state->reg1)); if (edx) -- 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