1.1 --- a/src/cpu/ppc/vm/runtime_ppc.cpp Thu Feb 20 11:05:12 2014 +0100 1.2 +++ b/src/cpu/ppc/vm/runtime_ppc.cpp Thu Mar 06 10:55:28 2014 -0800 1.3 @@ -87,7 +87,7 @@ 1.4 1.5 address start = __ pc(); 1.6 1.7 - int frame_size_in_bytes = frame::abi_112_size; 1.8 + int frame_size_in_bytes = frame::abi_reg_args_size; 1.9 OopMap* map = new OopMap(frame_size_in_bytes / sizeof(jint), 0); 1.10 1.11 // Exception pc is 'return address' for stack walker. 1.12 @@ -99,7 +99,7 @@ 1.13 1.14 // Save callee-saved registers. 1.15 // Push a C frame for the exception blob. It is needed for the C call later on. 1.16 - __ push_frame_abi112(0, R11_scratch1); 1.17 + __ push_frame_reg_args(0, R11_scratch1); 1.18 1.19 // This call does all the hard work. It checks if an exception handler 1.20 // exists in the method. 1.21 @@ -109,8 +109,12 @@ 1.22 __ set_last_Java_frame(/*sp=*/R1_SP, noreg); 1.23 1.24 __ mr(R3_ARG1, R16_thread); 1.25 +#if defined(ABI_ELFv2) 1.26 + __ call_c((address) OptoRuntime::handle_exception_C, relocInfo::none); 1.27 +#else 1.28 __ call_c(CAST_FROM_FN_PTR(FunctionDescriptor*, OptoRuntime::handle_exception_C), 1.29 relocInfo::none); 1.30 +#endif 1.31 address calls_return_pc = __ last_calls_return_pc(); 1.32 # ifdef ASSERT 1.33 __ cmpdi(CCR0, R3_RET, 0); 1.34 @@ -162,7 +166,11 @@ 1.35 __ bind(mh_callsite); 1.36 __ mr(R31, R3_RET); // Save branch address. 1.37 __ mr(R3_ARG1, R16_thread); 1.38 +#if defined(ABI_ELFv2) 1.39 + __ call_c((address) adjust_SP_for_methodhandle_callsite, relocInfo::none); 1.40 +#else 1.41 __ call_c(CAST_FROM_FN_PTR(FunctionDescriptor*, adjust_SP_for_methodhandle_callsite), relocInfo::none); 1.42 +#endif 1.43 // Returns unextended_sp in R3_RET. 1.44 1.45 __ mtctr(R31); // Move address of exception handler to SR_CTR.