< 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 >