< prev index next >

src/hotspot/cpu/x86/compiledIC_x86.cpp

Print this page




 181   // Reset stub.
 182   address stub = static_stub->addr();
 183   assert(stub != NULL, "stub not found");
 184   // Creation also verifies the object.
 185   NativeMovConstReg* method_holder = nativeMovConstReg_at(stub);
 186   method_holder->set_data(0);
 187   if (!static_stub->is_aot()) {
 188     NativeJump* jump = nativeJump_at(method_holder->next_instruction_address());
 189     jump->set_jump_destination((address)-1);
 190   }
 191 }
 192 
 193 
 194 //-----------------------------------------------------------------------------
 195 // Non-product mode code
 196 #ifndef PRODUCT
 197 
 198 void CompiledDirectStaticCall::verify() {
 199   // Verify call.
 200   _call->verify();
 201   if (os::is_MP()) {
 202     _call->verify_alignment();
 203   }
 204 
 205 #ifdef ASSERT
 206   CodeBlob *cb = CodeCache::find_blob_unsafe((address) _call);
 207   assert(cb && !cb->is_aot(), "CompiledDirectStaticCall cannot be used on AOTCompiledMethod");
 208 #endif
 209 
 210   // Verify stub.
 211   address stub = find_stub(false /* is_aot */);
 212   assert(stub != NULL, "no stub found for static call");
 213   // Creation also verifies the object.
 214   NativeMovConstReg* method_holder = nativeMovConstReg_at(stub);
 215   NativeJump*        jump          = nativeJump_at(method_holder->next_instruction_address());
 216 
 217   // Verify state.
 218   assert(is_clean() || is_call_to_compiled() || is_call_to_interpreted(), "sanity check");
 219 }
 220 #endif // !PRODUCT


 181   // Reset stub.
 182   address stub = static_stub->addr();
 183   assert(stub != NULL, "stub not found");
 184   // Creation also verifies the object.
 185   NativeMovConstReg* method_holder = nativeMovConstReg_at(stub);
 186   method_holder->set_data(0);
 187   if (!static_stub->is_aot()) {
 188     NativeJump* jump = nativeJump_at(method_holder->next_instruction_address());
 189     jump->set_jump_destination((address)-1);
 190   }
 191 }
 192 
 193 
 194 //-----------------------------------------------------------------------------
 195 // Non-product mode code
 196 #ifndef PRODUCT
 197 
 198 void CompiledDirectStaticCall::verify() {
 199   // Verify call.
 200   _call->verify();

 201   _call->verify_alignment();

 202 
 203 #ifdef ASSERT
 204   CodeBlob *cb = CodeCache::find_blob_unsafe((address) _call);
 205   assert(cb && !cb->is_aot(), "CompiledDirectStaticCall cannot be used on AOTCompiledMethod");
 206 #endif
 207 
 208   // Verify stub.
 209   address stub = find_stub(false /* is_aot */);
 210   assert(stub != NULL, "no stub found for static call");
 211   // Creation also verifies the object.
 212   NativeMovConstReg* method_holder = nativeMovConstReg_at(stub);
 213   NativeJump*        jump          = nativeJump_at(method_holder->next_instruction_address());
 214 
 215   // Verify state.
 216   assert(is_clean() || is_call_to_compiled() || is_call_to_interpreted(), "sanity check");
 217 }
 218 #endif // !PRODUCT
< prev index next >