comparison src/share/vm/code/nmethod.cpp @ 10475:3489047ffea2

Restructure the handling of HotSpotInstalledCode and their link to nmethods.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Fri, 21 Jun 2013 18:26:52 +0200
parents 836a62f43af9
children 0b1b5356b566
comparison
equal deleted inserted replaced
10474:55827d611da7 10475:3489047ffea2
1395 // The caller can be calling the method statically or through an inline 1395 // The caller can be calling the method statically or through an inline
1396 // cache call. 1396 // cache call.
1397 if (!is_osr_method() && !is_not_entrant()) { 1397 if (!is_osr_method() && !is_not_entrant()) {
1398 address stub = SharedRuntime::get_handle_wrong_method_stub(); 1398 address stub = SharedRuntime::get_handle_wrong_method_stub();
1399 #ifdef GRAAL 1399 #ifdef GRAAL
1400 if (_graal_installed_code != NULL && !HotSpotNmethod::isDefault(_graal_installed_code)) { 1400 if (_graal_installed_code != NULL) {
1401 // This was manually installed machine code. Patch entry with stub that throws an exception. 1401 // Break the link between nmethod and HotSpotInstalledCode such that the nmethod can subsequently be flushed safely.
1402 stub = SharedRuntime::get_deoptimized_installed_code_stub(); 1402 HotSpotInstalledCode::set_codeBlob(_graal_installed_code, 0);
1403 _graal_installed_code = NULL;
1403 } 1404 }
1404 #endif 1405 #endif
1405 NativeJump::patch_verified_entry(entry_point(), verified_entry_point(), stub); 1406 NativeJump::patch_verified_entry(entry_point(), verified_entry_point(), stub);
1406 } 1407 }
1407 1408