Mercurial > hg > graal-compiler
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(®_map); | 1271 frame fr = stub_frame.sender(®_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()); |