Mercurial > hg > graal-jvmci-8
diff src/cpu/x86/vm/sharedRuntime_x86_64.cpp @ 4661:9ae5048b9153
Call uncommon_trap instead of fetch_unroll_info to correctly revoke biased locks on deopt.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Tue, 21 Feb 2012 19:31:06 +0100 |
parents | 04b9a2566eec |
children | 8021e46f4a99 c2384f5b2e6e |
line wrap: on
line diff
--- a/src/cpu/x86/vm/sharedRuntime_x86_64.cpp Tue Feb 21 19:30:33 2012 +0100 +++ b/src/cpu/x86/vm/sharedRuntime_x86_64.cpp Tue Feb 21 19:31:06 2012 +0100 @@ -2702,12 +2702,18 @@ __ bind(L); } #endif // ASSERT + + __ movl(c_rarg1, (int32_t)(Deoptimization::make_trap_request(Deoptimization::Reason_unreached, Deoptimization::Action_none))); __ mov(c_rarg0, r15_thread); - __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, Deoptimization::fetch_unroll_info))); + __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, Deoptimization::uncommon_trap))); + oop_maps->add_gc_map( __ pc()-start, map->deep_copy()); + + //__ reset_last_Java_frame(false, false); + //__ call(RuntimeAddress(CAST_FROM_FN_PTR(address, Deoptimization::fetch_unroll_info))); // Need to have an oopmap that tells fetch_unroll_info where to // find any register it might need. - oop_maps->add_gc_map(__ pc() - start, map); +// oop_maps->add_gc_map(__ pc() - start, map); __ reset_last_Java_frame(false, false);