hotspot/src/cpu/x86/vm/interpreter_x86_64.cpp
changeset 35146 9ebfec283f56
parent 34651 07b1cc0f6040
child 35232 76aed99c0ddd
child 35540 e001ad24dcdb
equal deleted inserted replaced
35145:a4ffa2fa7f4d 35146:9ebfec283f56
   253     __ movdbl(xmm0, Address(rsp, wordSize));
   253     __ movdbl(xmm0, Address(rsp, wordSize));
   254     __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::dexp())));
   254     __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::dexp())));
   255   } else if (kind == Interpreter::java_lang_math_log) {
   255   } else if (kind == Interpreter::java_lang_math_log) {
   256     __ movdbl(xmm0, Address(rsp, wordSize));
   256     __ movdbl(xmm0, Address(rsp, wordSize));
   257     __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::dlog())));
   257     __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::dlog())));
       
   258   } else if (kind == Interpreter::java_lang_math_pow) {
       
   259     __ movdbl(xmm1, Address(rsp, wordSize));
       
   260     __ movdbl(xmm0, Address(rsp, 3 * wordSize));
       
   261     __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::dpow())));
   258   } else {
   262   } else {
   259     __ fld_d(Address(rsp, wordSize));
   263     __ fld_d(Address(rsp, wordSize));
   260     switch (kind) {
   264     switch (kind) {
   261       case Interpreter::java_lang_math_sin :
   265       case Interpreter::java_lang_math_sin :
   262           __ trigfunc('s');
   266           __ trigfunc('s');
   270       case Interpreter::java_lang_math_abs:
   274       case Interpreter::java_lang_math_abs:
   271           __ fabs();
   275           __ fabs();
   272           break;
   276           break;
   273       case Interpreter::java_lang_math_log10:
   277       case Interpreter::java_lang_math_log10:
   274           __ flog10();
   278           __ flog10();
   275           break;
       
   276       case Interpreter::java_lang_math_pow:
       
   277           __ fld_d(Address(rsp, 3*wordSize)); // second argument (one
       
   278                                               // empty stack slot)
       
   279           __ pow_with_fallback(0);
       
   280           break;
   279           break;
   281       default                              :
   280       default                              :
   282           ShouldNotReachHere();
   281           ShouldNotReachHere();
   283     }
   282     }
   284 
   283