< prev index next > src/hotspot/share/oops/cpCache.cpp
Print this page
Klass* field_holder,
int field_index,
int field_offset,
TosState field_type,
bool is_final,
! bool is_volatile) {
set_f1(field_holder);
set_f2(field_offset);
assert((field_index & field_index_mask) == field_index,
"field index does not fit in low flag bits");
set_field_flags(field_type,
((is_volatile ? 1 : 0) << is_volatile_shift) |
! ((is_final ? 1 : 0) << is_final_shift),
field_index);
set_bytecode_1(get_code);
set_bytecode_2(put_code);
NOT_PRODUCT(verify(tty));
}
Klass* field_holder,
int field_index,
int field_offset,
TosState field_type,
bool is_final,
! bool is_volatile,
+ bool is_inlined,
+ bool is_null_free_inline_type) {
set_f1(field_holder);
set_f2(field_offset);
assert((field_index & field_index_mask) == field_index,
"field index does not fit in low flag bits");
+ assert(!is_inlined || is_null_free_inline_type, "Sanity check");
set_field_flags(field_type,
((is_volatile ? 1 : 0) << is_volatile_shift) |
! ((is_final ? 1 : 0) << is_final_shift) |
+ ((is_inlined ? 1 : 0) << is_inlined_shift) |
+ ((is_null_free_inline_type ? 1 : 0) << is_null_free_inline_type_shift),
field_index);
set_bytecode_1(get_code);
set_bytecode_2(put_code);
NOT_PRODUCT(verify(tty));
}
// case, the method gets reresolved with caller for each interface call
// because the actual selected method may not be public.
//
// We set bytecode_2() to _invokevirtual.
// See also interpreterRuntime.cpp. (8/25/2000)
+ invoke_code = Bytecodes::_invokevirtual;
} else {
assert(invoke_code == Bytecodes::_invokevirtual ||
(invoke_code == Bytecodes::_invokeinterface &&
((method->is_private() ||
(method->is_final() && method->method_holder() == vmClasses::Object_klass())))),
// We set bytecode_2() to _invokevirtual.
set_bytecode_1(invoke_code);
}
}
// set up for invokevirtual, even if linking for invokeinterface also:
! set_bytecode_2(Bytecodes::_invokevirtual);
} else {
ShouldNotReachHere();
}
NOT_PRODUCT(verify(tty));
}
// We set bytecode_2() to _invokevirtual.
set_bytecode_1(invoke_code);
}
}
// set up for invokevirtual, even if linking for invokeinterface also:
! set_bytecode_2(invoke_code);
} else {
ShouldNotReachHere();
}
NOT_PRODUCT(verify(tty));
}
< prev index next >