< prev index next >
src/hotspot/share/oops/methodData.cpp
Print this page
*** 214,224 ****
int args_cell = 0;
if (MethodData::profile_arguments_for_invoke(m, bci)) {
args_cell = TypeStackSlotEntries::compute_cell_count(inv.signature(), false, TypeProfileArgsLimit);
}
int ret_cell = 0;
! if (MethodData::profile_return_for_invoke(m, bci) && (inv.result_type() == T_OBJECT || inv.result_type() == T_ARRAY)) {
ret_cell = ReturnTypeEntry::static_cell_count();
}
int header_cell = 0;
if (args_cell + ret_cell > 0) {
header_cell = header_cell_count();
--- 214,224 ----
int args_cell = 0;
if (MethodData::profile_arguments_for_invoke(m, bci)) {
args_cell = TypeStackSlotEntries::compute_cell_count(inv.signature(), false, TypeProfileArgsLimit);
}
int ret_cell = 0;
! if (MethodData::profile_return_for_invoke(m, bci) && is_reference_type(inv.result_type())) {
ret_cell = ReturnTypeEntry::static_cell_count();
}
int header_cell = 0;
if (args_cell + ret_cell > 0) {
header_cell = header_cell_count();
*** 287,297 ****
#endif
_args.post_initialize(inv.signature(), inv.has_receiver(), false);
}
if (has_return()) {
! assert(inv.result_type() == T_OBJECT || inv.result_type() == T_ARRAY, "room for a ret type but doesn't return obj?");
_ret.post_initialize();
}
}
void VirtualCallTypeData::post_initialize(BytecodeStream* stream, MethodData* mdo) {
--- 287,297 ----
#endif
_args.post_initialize(inv.signature(), inv.has_receiver(), false);
}
if (has_return()) {
! assert(is_reference_type(inv.result_type()), "room for a ret type but doesn't return obj?");
_ret.post_initialize();
}
}
void VirtualCallTypeData::post_initialize(BytecodeStream* stream, MethodData* mdo) {
*** 308,318 ****
#endif
_args.post_initialize(inv.signature(), inv.has_receiver(), false);
}
if (has_return()) {
! assert(inv.result_type() == T_OBJECT || inv.result_type() == T_ARRAY, "room for a ret type but doesn't return obj?");
_ret.post_initialize();
}
}
void TypeStackSlotEntries::clean_weak_klass_links(bool always_clean) {
--- 308,318 ----
#endif
_args.post_initialize(inv.signature(), inv.has_receiver(), false);
}
if (has_return()) {
! assert(is_reference_type(inv.result_type()), "room for a ret type but doesn't return obj?");
_ret.post_initialize();
}
}
void TypeStackSlotEntries::clean_weak_klass_links(bool always_clean) {
< prev index next >