comparison src/cpu/x86/vm/sharedRuntime_x86_64.cpp @ 8363:25691fcb505a

Transmit deoptimization reason in thread local instead of scratch register.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Tue, 19 Mar 2013 14:13:51 +0100
parents 37977d1dcedc
children b9a918201d47
comparison
equal deleted inserted replaced
8362:5981ea5996e8 8363:25691fcb505a
3417 RegisterSaver::save_live_registers(masm, 0, &frame_size_in_words); 3417 RegisterSaver::save_live_registers(masm, 0, &frame_size_in_words);
3418 // fetch_unroll_info needs to call last_java_frame() 3418 // fetch_unroll_info needs to call last_java_frame()
3419 __ set_last_Java_frame(noreg, noreg, NULL); 3419 __ set_last_Java_frame(noreg, noreg, NULL);
3420 3420
3421 __ movl(c_rarg1, Address(r15_thread, in_bytes(ThreadShadow::pending_deoptimization_offset()))); 3421 __ movl(c_rarg1, Address(r15_thread, in_bytes(ThreadShadow::pending_deoptimization_offset())));
3422 __ movl(Address(r15_thread, in_bytes(ThreadShadow::pending_deoptimization_offset())), 0); 3422 __ movl(Address(r15_thread, in_bytes(ThreadShadow::pending_deoptimization_offset())), -1);
3423 3423
3424 __ movl(r14, (int32_t)Deoptimization::Unpack_reexecute); 3424 __ movl(r14, (int32_t)Deoptimization::Unpack_reexecute);
3425 __ mov(c_rarg0, r15_thread); 3425 __ mov(c_rarg0, r15_thread);
3426 __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, Deoptimization::uncommon_trap))); 3426 __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, Deoptimization::uncommon_trap)));
3427 oop_maps->add_gc_map( __ pc()-start, map->deep_copy()); 3427 oop_maps->add_gc_map( __ pc()-start, map->deep_copy());