< prev index next >
src/cpu/x86/vm/interpreter_x86_64.cpp
Print this page
@@ -250,10 +250,13 @@
// this entry point for the corresponding methods in JDK 1.3.
// get argument
if (kind == Interpreter::java_lang_math_sqrt) {
__ sqrtsd(xmm0, Address(rsp, wordSize));
+ } else if (kind == Interpreter::java_lang_math_exp) {
+ __ movdbl(xmm0, Address(rsp, wordSize));
+ __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::dexp())));
} else {
__ fld_d(Address(rsp, wordSize));
switch (kind) {
case Interpreter::java_lang_math_sin :
__ trigfunc('s');
@@ -276,13 +279,10 @@
case Interpreter::java_lang_math_pow:
__ fld_d(Address(rsp, 3*wordSize)); // second argument (one
// empty stack slot)
__ pow_with_fallback(0);
break;
- case Interpreter::java_lang_math_exp:
- __ exp_with_fallback(0);
- break;
default :
ShouldNotReachHere();
}
// return double result in xmm0 for interpreter and compilers.
< prev index next >