< prev index next >
src/share/vm/ci/ciValueKlass.cpp
Print this page
rev 10513 : fix incremental inlining with value types
*** 131,150 ****
valueKlassHandle vklass_h(ValueKlass::cast(get_Klass()));
return vklass_h()->first_field_offset();
)
}
! // When passing field's fields as arguments, count the number of extra
! // argument slots that are needed
! int ciValueKlass::extra_value_args() {
! // -1 because we count the number of extra args
! int vt_extra = nof_nonstatic_fields() - 1;
for (int j = 0; j < nof_nonstatic_fields(); j++) {
ciField* f = nonstatic_field_at(j);
BasicType bt = f->type()->basic_type();
assert(bt != T_VALUETYPE, "embedded");
if (bt == T_LONG || bt == T_DOUBLE) {
! vt_extra++;
}
}
! return vt_extra;
}
--- 131,149 ----
valueKlassHandle vklass_h(ValueKlass::cast(get_Klass()));
return vklass_h()->first_field_offset();
)
}
! // When passing a value type's fields as arguments, count the number
! // of argument slots that are needed
! int ciValueKlass::value_arg_slots() {
! int slots = nof_nonstatic_fields();
for (int j = 0; j < nof_nonstatic_fields(); j++) {
ciField* f = nonstatic_field_at(j);
BasicType bt = f->type()->basic_type();
assert(bt != T_VALUETYPE, "embedded");
if (bt == T_LONG || bt == T_DOUBLE) {
! slots++;
}
}
! return slots;
}
< prev index next >