src/cpu/ppc/vm/interpreter_ppc.cpp

changeset 6511
31e80afe3fed
parent 6495
67fa91961822
child 6512
fd1b9f02cc91
equal deleted inserted replaced
6510:7c462558a08a 6511:31e80afe3fed
126 const Register argcnt = R26_tmp6; 126 const Register argcnt = R26_tmp6;
127 const Register intSlot = R27_tmp7; 127 const Register intSlot = R27_tmp7;
128 const Register target_sp = R28_tmp8; 128 const Register target_sp = R28_tmp8;
129 const FloatRegister floatSlot = F0; 129 const FloatRegister floatSlot = F0;
130 130
131 address entry = __ emit_fd(); 131 address entry = __ function_entry();
132 132
133 __ save_LR_CR(R0); 133 __ save_LR_CR(R0);
134 __ save_nonvolatile_gprs(R1_SP, _spill_nonvolatiles_neg(r14)); 134 __ save_nonvolatile_gprs(R1_SP, _spill_nonvolatiles_neg(r14));
135 // We use target_sp for storing arguments in the C frame. 135 // We use target_sp for storing arguments in the C frame.
136 __ mr(target_sp, R1_SP); 136 __ mr(target_sp, R1_SP);
137 __ push_frame_abi112_nonvolatiles(0, R11_scratch1); 137 __ push_frame_reg_args_nonvolatiles(0, R11_scratch1);
138 138
139 __ mr(arg_java, R3_ARG1); 139 __ mr(arg_java, R3_ARG1);
140 140
141 __ call_VM_leaf(CAST_FROM_FN_PTR(address, InterpreterRuntime::get_signature), R16_thread, R19_method); 141 __ call_VM_leaf(CAST_FROM_FN_PTR(address, InterpreterRuntime::get_signature), R16_thread, R19_method);
142 142
472 // our caller set up the JavaFrameAnchor. 472 // our caller set up the JavaFrameAnchor.
473 __ set_top_ijava_frame_at_SP_as_last_Java_frame(R1_SP, R12_scratch2/*tmp*/); 473 __ set_top_ijava_frame_at_SP_as_last_Java_frame(R1_SP, R12_scratch2/*tmp*/);
474 474
475 // Push a new C frame and save LR. 475 // Push a new C frame and save LR.
476 __ save_LR_CR(R0); 476 __ save_LR_CR(R0);
477 __ push_frame_abi112(0, R11_scratch1); 477 __ push_frame_reg_args(0, R11_scratch1);
478 478
479 // This is not a leaf but we have a JavaFrameAnchor now and we will 479 // This is not a leaf but we have a JavaFrameAnchor now and we will
480 // check (create) exceptions afterward so this is ok. 480 // check (create) exceptions afterward so this is ok.
481 __ call_VM_leaf(CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_AbstractMethodError)); 481 __ call_VM_leaf(CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_AbstractMethodError));
482 482

mercurial