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 |