Mercurial > hg > truffle
comparison src/cpu/x86/vm/sharedRuntime_x86_64.cpp @ 4673:8021e46f4a99
another fix for resolving the issue with biased monitor and deoptimization
author | Christian Haeubl <christian.haeubl@oracle.com> |
---|---|
date | Wed, 22 Feb 2012 16:53:23 -0800 |
parents | 9ae5048b9153 |
children | 74c0b866fe8d |
comparison
equal
deleted
inserted
replaced
4672:7167f487cc31 | 4673:8021e46f4a99 |
---|---|
2701 __ stop("SharedRuntime::generate_deopt_blob: last_Java_fp not cleared"); | 2701 __ stop("SharedRuntime::generate_deopt_blob: last_Java_fp not cleared"); |
2702 __ bind(L); | 2702 __ bind(L); |
2703 } | 2703 } |
2704 #endif // ASSERT | 2704 #endif // ASSERT |
2705 | 2705 |
2706 __ movl(c_rarg1, (int32_t)(Deoptimization::make_trap_request(Deoptimization::Reason_unreached, Deoptimization::Action_none))); | |
2707 __ mov(c_rarg0, r15_thread); | 2706 __ mov(c_rarg0, r15_thread); |
2708 __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, Deoptimization::uncommon_trap))); | 2707 __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, Deoptimization::fetch_unroll_info))); |
2709 oop_maps->add_gc_map( __ pc()-start, map->deep_copy()); | |
2710 | |
2711 //__ reset_last_Java_frame(false, false); | |
2712 //__ call(RuntimeAddress(CAST_FROM_FN_PTR(address, Deoptimization::fetch_unroll_info))); | |
2713 | 2708 |
2714 // Need to have an oopmap that tells fetch_unroll_info where to | 2709 // Need to have an oopmap that tells fetch_unroll_info where to |
2715 // find any register it might need. | 2710 // find any register it might need. |
2716 // oop_maps->add_gc_map(__ pc() - start, map); | 2711 oop_maps->add_gc_map(__ pc() - start, map); |
2717 | 2712 |
2718 __ reset_last_Java_frame(false, false); | 2713 __ reset_last_Java_frame(false, false); |
2719 | 2714 |
2720 __ bind(after_fetch_unroll_info_call); | 2715 __ bind(after_fetch_unroll_info_call); |
2721 | 2716 |