< prev index next >

src/hotspot/cpu/ppc/compiledIC_ppc.cpp

Print this page




 198 
 199 void CompiledDirectStaticCall::set_stub_to_clean(static_stub_Relocation* static_stub) {
 200   assert (CompiledIC_lock->is_locked() || SafepointSynchronize::is_at_safepoint(), "mt unsafe call");
 201   // Reset stub.
 202   address stub = static_stub->addr();
 203   assert(stub != NULL, "stub not found");
 204   // Creation also verifies the object.
 205   NativeMovConstReg* method_holder = nativeMovConstReg_at(stub + IC_pos_in_java_to_interp_stub);
 206   NativeJump*        jump          = nativeJump_at(method_holder->next_instruction_address());
 207   method_holder->set_data(0);
 208   jump->set_jump_destination((address)-1);
 209 }
 210 
 211 //-----------------------------------------------------------------------------
 212 // Non-product mode code
 213 #ifndef PRODUCT
 214 
 215 void CompiledDirectStaticCall::verify() {
 216   // Verify call.
 217   _call->verify();
 218   if (os::is_MP()) {
 219     _call->verify_alignment();
 220   }
 221 
 222   // Verify stub.
 223   address stub = find_stub(/*is_aot*/ false);
 224   assert(stub != NULL, "no stub found for static call");
 225   // Creation also verifies the object.
 226   NativeMovConstReg* method_holder = nativeMovConstReg_at(stub + IC_pos_in_java_to_interp_stub);
 227   NativeJump*        jump          = nativeJump_at(method_holder->next_instruction_address());
 228 
 229   // Verify state.
 230   assert(is_clean() || is_call_to_compiled() || is_call_to_interpreted(), "sanity check");
 231 }
 232 
 233 #endif // !PRODUCT


 198 
 199 void CompiledDirectStaticCall::set_stub_to_clean(static_stub_Relocation* static_stub) {
 200   assert (CompiledIC_lock->is_locked() || SafepointSynchronize::is_at_safepoint(), "mt unsafe call");
 201   // Reset stub.
 202   address stub = static_stub->addr();
 203   assert(stub != NULL, "stub not found");
 204   // Creation also verifies the object.
 205   NativeMovConstReg* method_holder = nativeMovConstReg_at(stub + IC_pos_in_java_to_interp_stub);
 206   NativeJump*        jump          = nativeJump_at(method_holder->next_instruction_address());
 207   method_holder->set_data(0);
 208   jump->set_jump_destination((address)-1);
 209 }
 210 
 211 //-----------------------------------------------------------------------------
 212 // Non-product mode code
 213 #ifndef PRODUCT
 214 
 215 void CompiledDirectStaticCall::verify() {
 216   // Verify call.
 217   _call->verify();

 218   _call->verify_alignment();

 219 
 220   // Verify stub.
 221   address stub = find_stub(/*is_aot*/ false);
 222   assert(stub != NULL, "no stub found for static call");
 223   // Creation also verifies the object.
 224   NativeMovConstReg* method_holder = nativeMovConstReg_at(stub + IC_pos_in_java_to_interp_stub);
 225   NativeJump*        jump          = nativeJump_at(method_holder->next_instruction_address());
 226 
 227   // Verify state.
 228   assert(is_clean() || is_call_to_compiled() || is_call_to_interpreted(), "sanity check");
 229 }
 230 
 231 #endif // !PRODUCT
< prev index next >