comparison src/share/vm/runtime/deoptimization.cpp @ 6428:6278ac5829ce

fix for deopt issue with -XX:-UseBiasedLocking (plus a cosmetic fix in graalCodeInstaller.cpp)
author Lukas Stadler <lukas.stadler@jku.at>
date Mon, 24 Sep 2012 18:51:23 +0200
parents 957c266d8bc5
children e522a00b91aa
comparison
equal deleted inserted replaced
6427:7d6f44854ee3 6428:6278ac5829ce
1259 // that can confuse an asynchronous stack walker. This counter is 1259 // that can confuse an asynchronous stack walker. This counter is
1260 // decremented at the end of unpack_frames(). 1260 // decremented at the end of unpack_frames().
1261 thread->inc_in_deopt_handler(); 1261 thread->inc_in_deopt_handler();
1262 1262
1263 // We need to update the map if we have biased locking. 1263 // We need to update the map if we have biased locking.
1264 #ifdef GRAAL
1265 // (lstadler) Graal might need to get an exception from the stack, which in turn requires the register map to be valid
1266 RegisterMap reg_map(thread, true);
1267 #else
1264 RegisterMap reg_map(thread, UseBiasedLocking); 1268 RegisterMap reg_map(thread, UseBiasedLocking);
1269 #endif
1265 frame stub_frame = thread->last_frame(); 1270 frame stub_frame = thread->last_frame();
1266 frame fr = stub_frame.sender(&reg_map); 1271 frame fr = stub_frame.sender(&reg_map);
1267 // Make sure the calling nmethod is not getting deoptimized and removed 1272 // Make sure the calling nmethod is not getting deoptimized and removed
1268 // before we are done with it. 1273 // before we are done with it.
1269 nmethodLocker nl(fr.pc()); 1274 nmethodLocker nl(fr.pc());