bug in MacroAssembler::check_method_handle_type for x86
Christian Thalinger
christian.thalinger at oracle.com
Wed Mar 21 08:17:18 PDT 2012
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
More information about the mlvm-dev
mailing list