Thanks a LOT to Arhur Huillet for adding these dummy rules. This prevents jato from crashing when we try to jit-compile floating-point bytecodes.
PS: You might want to put these rules in different locations. I don't know the proper monoburg style. Signed-off-by: Vegard Nossum <vegard.nos...@gmail.com> --- arch/x86/insn-selector_32.brg | 18 ++++++++++++++++++ 1 files changed, 18 insertions(+), 0 deletions(-) diff --git a/arch/x86/insn-selector_32.brg b/arch/x86/insn-selector_32.brg index ffcd954..94d7783 100644 --- a/arch/x86/insn-selector_32.brg +++ b/arch/x86/insn-selector_32.brg @@ -128,6 +128,12 @@ static enum insn_type br_binop_to_insn_type(enum binary_operator binop) %start stmt +reg: EXPR_FVALUE 0 +{ + NOT_IMPLEMENTED; + state->reg1 = get_var(s->b_parent); +} + reg: EXPR_VALUE 0 { struct expression *expr; @@ -655,6 +661,12 @@ reg: EXPR_INVOKEVIRTUAL(arg) 1 select_insn(s, tree, reg_reg_insn(INSN_MOV_REG_REG, edx, state->reg2)); } +reg: OP_CMPL(reg, reg) 1 +{ + NOT_IMPLEMENTED; + state->reg1 = state->left->reg1; +} + reg: OP_CMP(reg, reg) 1 { emulate_op_64(state, s, tree, emulate_lcmp, J_INT); @@ -1021,6 +1033,12 @@ reg: EXPR_CONVERSION(reg) state->reg1 = get_var(s->b_parent); select_insn(s, tree, reg_reg_insn(INSN_MOVSX_REG_REG, state->left->reg1, state->reg1)); + } else if (src->vm_type == J_INT && expr->vm_type == J_FLOAT) { + NOT_IMPLEMENTED; + state->reg1 = get_var(s->b_parent); + } else if (src->vm_type == J_FLOAT && expr->vm_type == J_INT) { + NOT_IMPLEMENTED; + state->reg1 = get_var(s->b_parent); } else { printf("%d to %d\n", src->vm_type, expr->vm_type); assert(!"conversion not implemented"); -- 1.6.0.4 ------------------------------------------------------------------------------ _______________________________________________ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel