src/cpu/x86/vm/interpreter_x86_32.cpp
Print this page
rev 3227 : 7133857: exp() and pow() should use the x87 ISA on x86
Summary: use x87 instructions to implement exp() and pow() in interpreter/c1/c2.
Reviewed-by:
*** 179,188 ****
--- 179,201 ----
__ flog10();
// Store to stack to convert 80bit precision back to 64bits
__ push_fTOS();
__ pop_fTOS();
break;
+ case Interpreter::java_lang_math_pow:
+ __ fld_d(Address(rsp, 3*wordSize)); // second argument
+ __ pow_or_exp(false, 0);
+ // Store to stack to convert 80bit precision back to 64bits
+ __ push_fTOS();
+ __ pop_fTOS();
+ break;
+ case Interpreter::java_lang_math_exp:
+ __ pow_or_exp(true, 0);
+ // Store to stack to convert 80bit precision back to 64bits
+ __ push_fTOS();
+ __ pop_fTOS();
+ break;
default :
ShouldNotReachHere();
}
// return double result in xmm0 for interpreter and compilers.