comparison src/cpu/ppc/vm/interpreter_ppc.cpp @ 14684:e5e8aa897002

8035647: PPC64: Support for elf v2 abi. Summary: ELFv2 ABI used by the little endian PowerPC64 on Linux. Reviewed-by: kvn Contributed-by: asmundak@google.com
author goetz
date Thu, 06 Mar 2014 10:55:28 -0800
parents 67fa91961822
children 58cf34613a72
comparison
equal deleted inserted replaced
14682:84eafecdb9a9 14684:e5e8aa897002
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