< prev index next > src/hotspot/cpu/ppc/templateInterpreterGenerator_ppc.cpp
Print this page
return entry;
}
// Generic interpreted method entry to (asm) interpreter.
//
! address TemplateInterpreterGenerator::generate_normal_entry(bool synchronized) {
bool inc_counter = UseCompiler || CountCompiledCalls;
address entry = __ pc();
// Generate the code to allocate the interpreter stack frame.
Register Rsize_of_parameters = R4_ARG2, // Written by generate_fixed_frame.
Rsize_of_locals = R5_ARG3; // Written by generate_fixed_frame.
return entry;
}
// Generic interpreted method entry to (asm) interpreter.
//
! address TemplateInterpreterGenerator::generate_normal_entry(bool synchronized, bool object_init) {
bool inc_counter = UseCompiler || CountCompiledCalls;
address entry = __ pc();
// Generate the code to allocate the interpreter stack frame.
Register Rsize_of_parameters = R4_ARG2, // Written by generate_fixed_frame.
Rsize_of_locals = R5_ARG3; // Written by generate_fixed_frame.
// --------------------------------------------------------------------------
// JVMTI support
__ notify_method_entry();
+ // --------------------------------------------------------------------------
+ // Issue a StoreStore barrier on entry to Object_init if the
+ // class has strict field fields. Be lazy, always do it.
+ if (object_init) {
+ __ membar(Assembler::StoreStore);
+ }
+
// --------------------------------------------------------------------------
// Start executing instructions.
__ dispatch_next(vtos);
// --------------------------------------------------------------------------
< prev index next >