hotspot/src/cpu/x86/vm/interpreter_x86_64.cpp
changeset 33089 f4e956ed8b43
parent 25950 b5c40ed1d349
child 33155 73bf16b22e89
equal deleted inserted replaced
33088:34fe49ecee13 33089:f4e956ed8b43
   250   //       this entry point for the corresponding methods in JDK 1.3.
   250   //       this entry point for the corresponding methods in JDK 1.3.
   251   // get argument
   251   // get argument
   252 
   252 
   253   if (kind == Interpreter::java_lang_math_sqrt) {
   253   if (kind == Interpreter::java_lang_math_sqrt) {
   254     __ sqrtsd(xmm0, Address(rsp, wordSize));
   254     __ sqrtsd(xmm0, Address(rsp, wordSize));
       
   255   } else if (kind == Interpreter::java_lang_math_exp) {
       
   256     __ movdbl(xmm0, Address(rsp, wordSize));
       
   257     __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::dexp())));
   255   } else {
   258   } else {
   256     __ fld_d(Address(rsp, wordSize));
   259     __ fld_d(Address(rsp, wordSize));
   257     switch (kind) {
   260     switch (kind) {
   258       case Interpreter::java_lang_math_sin :
   261       case Interpreter::java_lang_math_sin :
   259           __ trigfunc('s');
   262           __ trigfunc('s');
   276       case Interpreter::java_lang_math_pow:
   279       case Interpreter::java_lang_math_pow:
   277           __ fld_d(Address(rsp, 3*wordSize)); // second argument (one
   280           __ fld_d(Address(rsp, 3*wordSize)); // second argument (one
   278                                               // empty stack slot)
   281                                               // empty stack slot)
   279           __ pow_with_fallback(0);
   282           __ pow_with_fallback(0);
   280           break;
   283           break;
   281       case Interpreter::java_lang_math_exp:
       
   282           __ exp_with_fallback(0);
       
   283            break;
       
   284       default                              :
   284       default                              :
   285           ShouldNotReachHere();
   285           ShouldNotReachHere();
   286     }
   286     }
   287 
   287 
   288     // return double result in xmm0 for interpreter and compilers.
   288     // return double result in xmm0 for interpreter and compilers.