2717 |
2717 |
2718 __ ld(pc_reg, 0, pcs_reg); |
2718 __ ld(pc_reg, 0, pcs_reg); |
2719 __ ld(frame_size_reg, 0, frame_sizes_reg); |
2719 __ ld(frame_size_reg, 0, frame_sizes_reg); |
2720 __ std(pc_reg, _abi(lr), R1_SP); |
2720 __ std(pc_reg, _abi(lr), R1_SP); |
2721 __ push_frame(frame_size_reg, R0/*tmp*/); |
2721 __ push_frame(frame_size_reg, R0/*tmp*/); |
2722 #ifdef ASSERT |
|
2723 __ load_const_optimized(pc_reg, 0x5afe); |
|
2724 __ std(pc_reg, _ijava_state_neg(ijava_reserved), R1_SP); |
|
2725 #endif |
|
2726 __ std(R1_SP, _ijava_state_neg(sender_sp), R1_SP); |
2722 __ std(R1_SP, _ijava_state_neg(sender_sp), R1_SP); |
2727 __ addi(number_of_frames_reg, number_of_frames_reg, -1); |
2723 __ addi(number_of_frames_reg, number_of_frames_reg, -1); |
2728 __ addi(frame_sizes_reg, frame_sizes_reg, wordSize); |
2724 __ addi(frame_sizes_reg, frame_sizes_reg, wordSize); |
2729 __ addi(pcs_reg, pcs_reg, wordSize); |
2725 __ addi(pcs_reg, pcs_reg, wordSize); |
2730 } |
2726 } |
2793 // In the case where we have resized a c2i frame above, the optional |
2789 // In the case where we have resized a c2i frame above, the optional |
2794 // alignment below the locals has size 32 (why?). |
2790 // alignment below the locals has size 32 (why?). |
2795 __ std(R12_scratch2, _abi(lr), R1_SP); |
2791 __ std(R12_scratch2, _abi(lr), R1_SP); |
2796 |
2792 |
2797 // Initialize initial_caller_sp. |
2793 // Initialize initial_caller_sp. |
2798 #ifdef ASSERT |
|
2799 __ load_const_optimized(pc_reg, 0x5afe); |
|
2800 __ std(pc_reg, _ijava_state_neg(ijava_reserved), R1_SP); |
|
2801 #endif |
|
2802 __ std(frame_size_reg, _ijava_state_neg(sender_sp), R1_SP); |
2794 __ std(frame_size_reg, _ijava_state_neg(sender_sp), R1_SP); |
2803 |
2795 |
2804 #ifdef ASSERT |
2796 #ifdef ASSERT |
2805 // Make sure that there is at least one entry in the array. |
2797 // Make sure that there is at least one entry in the array. |
2806 __ cmpdi(CCR0, number_of_frames_reg, 0); |
2798 __ cmpdi(CCR0, number_of_frames_reg, 0); |