John, I think there is a bug in MacroAssembler::check_method_handle_type for 
x86 (with meth-lazy):

    Address basic_type_addr(temp_reg, 
delayed_value(java_lang_invoke_MethodTypeForm::basicType_offset_in_bytes, 
temp2_reg));
    cmp_heap_oop(mtype_reg, basic_type_addr);
    if (did_push)  pop(temp2_reg);
    bind(success);
  } else {
    jcc(Assembler::notEqual, wrong_method_type);
  }

There seems to be a missing jcc:

    Address basic_type_addr(temp_reg, 
delayed_value(java_lang_invoke_MethodTypeForm::basicType_offset_in_bytes, 
temp2_reg));
    cmp_heap_oop(mtype_reg, basic_type_addr);
    if (did_push)  pop(temp2_reg);
+   jcc(Assembler::notEqual, wrong_method_type);
    bind(success);
  } else {
    jcc(Assembler::notEqual, wrong_method_type);
  }

-- Chris
_______________________________________________
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Reply via email to