< prev index next >

src/share/vm/aot/aotCodeHeap.cpp

Print this page
rev 13430 : imported patch fix_calls

*** 314,324 **** return; } AOTCompiledMethod *aot = new AOTCompiledMethod(code, mh(), meta, metadata_table, metadata_size, state_adr, this, name, code_id, _aot_id); assert(_code_to_aot[code_id]._aot == NULL, "should be not initialized"); _code_to_aot[code_id]._aot = aot; // Should set this first ! if (Atomic::cmpxchg(in_use, (jint*)&_code_to_aot[code_id]._state, not_set) != not_set) { _code_to_aot[code_id]._aot = NULL; // Clean } else { // success // Publish method #ifdef TIERED mh->set_aot_code(aot); --- 314,324 ---- return; } AOTCompiledMethod *aot = new AOTCompiledMethod(code, mh(), meta, metadata_table, metadata_size, state_adr, this, name, code_id, _aot_id); assert(_code_to_aot[code_id]._aot == NULL, "should be not initialized"); _code_to_aot[code_id]._aot = aot; // Should set this first ! if (Atomic::cmpxchg(in_use, &_code_to_aot[code_id]._state, not_set) != not_set) { _code_to_aot[code_id]._aot = NULL; // Clean } else { // success // Publish method #ifdef TIERED mh->set_aot_code(aot);
*** 376,386 **** full_name[len+4] = 0; guarantee(_code_to_aot[code_id]._state != invalid, "stub %s can't be invalidated", full_name); AOTCompiledMethod* aot = new AOTCompiledMethod(entry, NULL, meta, metadata_table, metadata_size, state_adr, this, full_name, code_id, i); assert(_code_to_aot[code_id]._aot == NULL, "should be not initialized"); _code_to_aot[code_id]._aot = aot; ! if (Atomic::cmpxchg(in_use, (jint*)&_code_to_aot[code_id]._state, not_set) != not_set) { fatal("stab '%s' code state is %d", full_name, _code_to_aot[code_id]._state); } // Adjust code buffer boundaries only for stubs because they are last in the buffer. adjust_boundaries(aot); if (PrintAOT && Verbose) { --- 376,386 ---- full_name[len+4] = 0; guarantee(_code_to_aot[code_id]._state != invalid, "stub %s can't be invalidated", full_name); AOTCompiledMethod* aot = new AOTCompiledMethod(entry, NULL, meta, metadata_table, metadata_size, state_adr, this, full_name, code_id, i); assert(_code_to_aot[code_id]._aot == NULL, "should be not initialized"); _code_to_aot[code_id]._aot = aot; ! if (Atomic::cmpxchg(in_use, &_code_to_aot[code_id]._state, not_set) != not_set) { fatal("stab '%s' code state is %d", full_name, _code_to_aot[code_id]._state); } // Adjust code buffer boundaries only for stubs because they are last in the buffer. adjust_boundaries(aot); if (PrintAOT && Verbose) {
*** 647,657 **** int methods_cnt = *(int*)methods_cnt_adr; int* indexes = (int*)(methods_cnt_adr + 4); for (int i = 0; i < methods_cnt; ++i) { int code_id = indexes[i]; // Invalidate aot code. ! if (Atomic::cmpxchg(invalid, (jint*)&_code_to_aot[code_id]._state, not_set) != not_set) { if (_code_to_aot[code_id]._state == in_use) { AOTCompiledMethod* aot = _code_to_aot[code_id]._aot; assert(aot != NULL, "aot should be set"); if (!aot->is_runtime_stub()) { // Something is wrong - should not invalidate stubs. aot->mark_for_deoptimization(false); --- 647,657 ---- int methods_cnt = *(int*)methods_cnt_adr; int* indexes = (int*)(methods_cnt_adr + 4); for (int i = 0; i < methods_cnt; ++i) { int code_id = indexes[i]; // Invalidate aot code. ! if (Atomic::cmpxchg(invalid, &_code_to_aot[code_id]._state, not_set) != not_set) { if (_code_to_aot[code_id]._state == in_use) { AOTCompiledMethod* aot = _code_to_aot[code_id]._aot; assert(aot != NULL, "aot should be set"); if (!aot->is_runtime_stub()) { // Something is wrong - should not invalidate stubs. aot->mark_for_deoptimization(false);
< prev index next >