--- a/hotspot/src/cpu/x86/vm/interpreter_x86_32.cpp Wed Sep 30 04:35:39 2015 -0400
+++ b/hotspot/src/cpu/x86/vm/interpreter_x86_32.cpp Mon Oct 05 20:02:40 2015 -0700
@@ -151,11 +151,15 @@
__ pop_fTOS();
break;
case Interpreter::java_lang_math_exp:
- __ exp_with_fallback(0);
- // Store to stack to convert 80bit precision back to 64bits
- __ push_fTOS();
- __ pop_fTOS();
- break;
+ __ subptr(rsp, 2*wordSize);
+ __ fstp_d(Address(rsp, 0));
+ if (VM_Version::supports_sse2()) {
+ __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::dexp())));
+ } else {
+ __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, SharedRuntime::dexp)));
+ }
+ __ addptr(rsp, 2*wordSize);
+ break;
default :
ShouldNotReachHere();
}