< prev index next >

src/hotspot/cpu/arm/sharedRuntime_arm.cpp

Print this page

        

*** 1573,1585 **** // Call unpack_frames with proper arguments __ mov(R0, Rthread); __ mov(R1, Rkind); ! pc_offset = __ set_last_Java_frame(SP, FP, false, Rtemp); assert(((__ pc()) - start) == __ offset(), "warning: start differs from code_begin"); ! __ call(CAST_FROM_FN_PTR(address, Deoptimization::unpack_frames)); if (pc_offset == -1) { pc_offset = __ offset(); } oop_maps->add_gc_map(pc_offset, new OopMap(frame_size_in_words * VMRegImpl::slots_per_word, 0)); __ reset_last_Java_frame(Rtemp); // Rtemp free since scratched by far call --- 1573,1585 ---- // Call unpack_frames with proper arguments __ mov(R0, Rthread); __ mov(R1, Rkind); ! pc_offset = __ set_last_Java_frame(SP, FP, true, Rtemp); assert(((__ pc()) - start) == __ offset(), "warning: start differs from code_begin"); ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, Deoptimization::unpack_frames)); if (pc_offset == -1) { pc_offset = __ offset(); } oop_maps->add_gc_map(pc_offset, new OopMap(frame_size_in_words * VMRegImpl::slots_per_word, 0)); __ reset_last_Java_frame(Rtemp); // Rtemp free since scratched by far call
*** 1740,1751 **** __ mov(FP, SP); // Call unpack_frames with proper arguments __ mov(R0, Rthread); __ mov(R1, Deoptimization::Unpack_uncommon_trap); ! __ set_last_Java_frame(SP, FP, false, Rtemp); ! __ call(CAST_FROM_FN_PTR(address, Deoptimization::unpack_frames)); // oop_maps->add_gc_map(__ pc() - start, new OopMap(frame_size_in_words, 0)); __ reset_last_Java_frame(Rtemp); __ mov(SP, FP); __ pop(RegisterSet(FP) | RegisterSet(PC)); --- 1740,1751 ---- __ mov(FP, SP); // Call unpack_frames with proper arguments __ mov(R0, Rthread); __ mov(R1, Deoptimization::Unpack_uncommon_trap); ! __ set_last_Java_frame(SP, FP, true, Rtemp); ! __ call_VM_leaf(CAST_FROM_FN_PTR(address, Deoptimization::unpack_frames)); // oop_maps->add_gc_map(__ pc() - start, new OopMap(frame_size_in_words, 0)); __ reset_last_Java_frame(Rtemp); __ mov(SP, FP); __ pop(RegisterSet(FP) | RegisterSet(PC));
< prev index next >