< prev index next >
src/hotspot/cpu/arm/templateTable_arm.cpp
Print this page
*** 1608,1619 ****
transition(ftos, ftos);
#ifdef __SOFTFP__
__ mov(R1, R0_tos);
__ pop_i(R0);
switch (op) {
! case add: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_fadd_glibc), R0, R1); break;
! case sub: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_fsub_glibc), R0, R1); break;
case mul: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_fmul), R0, R1); break;
case div: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_fdiv), R0, R1); break;
case rem: __ call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::frem), R0, R1); break;
default : ShouldNotReachHere();
}
--- 1608,1621 ----
transition(ftos, ftos);
#ifdef __SOFTFP__
__ mov(R1, R0_tos);
__ pop_i(R0);
switch (op) {
! // __aeabi_XXXX_extlib: Optional wrapper around SoftFloat-3e
! // for calculation accuracy improvement. See CR 6757269, JDK-8215902.
! case add: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_fadd_extlib), R0, R1); break;
! case sub: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_fsub_extlib), R0, R1); break;
case mul: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_fmul), R0, R1); break;
case div: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_fdiv), R0, R1); break;
case rem: __ call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::frem), R0, R1); break;
default : ShouldNotReachHere();
}
*** 1650,1662 ****
#ifdef __SOFTFP__
__ mov(R2, R0_tos_lo);
__ mov(R3, R1_tos_hi);
__ pop_l(R0, R1);
switch (op) {
! // __aeabi_XXXX_glibc: Imported code from glibc soft-fp bundle for calculation accuracy improvement. See CR 6757269.
! case add: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_dadd_glibc), R0, R1, R2, R3); break;
! case sub: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_dsub_glibc), R0, R1, R2, R3); break;
case mul: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_dmul), R0, R1, R2, R3); break;
case div: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_ddiv), R0, R1, R2, R3); break;
case rem: __ call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::drem), R0, R1, R2, R3); break;
default : ShouldNotReachHere();
}
--- 1652,1665 ----
#ifdef __SOFTFP__
__ mov(R2, R0_tos_lo);
__ mov(R3, R1_tos_hi);
__ pop_l(R0, R1);
switch (op) {
! // __aeabi_XXXX_extlib: Optional wrapper around SoftFloat-3e
! // for calculation accuracy improvement. See CR 6757269, JDK-8215902.
! case add: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_dadd_extlib), R0, R1, R2, R3); break;
! case sub: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_dsub_extlib), R0, R1, R2, R3); break;
case mul: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_dmul), R0, R1, R2, R3); break;
case div: __ call_VM_leaf(CAST_FROM_FN_PTR(address, __aeabi_ddiv), R0, R1, R2, R3); break;
case rem: __ call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::drem), R0, R1, R2, R3); break;
default : ShouldNotReachHere();
}
< prev index next >