hotspot/src/cpu/x86/vm/interpreter_x86_32.cpp
changeset 35146 9ebfec283f56
parent 34651 07b1cc0f6040
child 35232 76aed99c0ddd
child 35540 e001ad24dcdb
equal deleted inserted replaced
35145:a4ffa2fa7f4d 35146:9ebfec283f56
   147         __ push_fTOS();
   147         __ push_fTOS();
   148         __ pop_fTOS();
   148         __ pop_fTOS();
   149         break;
   149         break;
   150     case Interpreter::java_lang_math_pow:
   150     case Interpreter::java_lang_math_pow:
   151       __ fld_d(Address(rsp, 3*wordSize)); // second argument
   151       __ fld_d(Address(rsp, 3*wordSize)); // second argument
   152       __ pow_with_fallback(0);
   152       __ subptr(rsp, 4 * wordSize);
   153       // Store to stack to convert 80bit precision back to 64bits
   153       __ fstp_d(Address(rsp, 0));
   154       __ push_fTOS();
   154       __ fstp_d(Address(rsp, 2 * wordSize));
   155       __ pop_fTOS();
   155       if (VM_Version::supports_sse2()) {
       
   156         __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::dpow())));
       
   157       } else {
       
   158         __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, SharedRuntime::dpow)));
       
   159       }
       
   160       __ addptr(rsp, 4 * wordSize);
   156       break;
   161       break;
   157     case Interpreter::java_lang_math_exp:
   162     case Interpreter::java_lang_math_exp:
   158       __ subptr(rsp, 2*wordSize);
   163       __ subptr(rsp, 2*wordSize);
   159       __ fstp_d(Address(rsp, 0));
   164       __ fstp_d(Address(rsp, 0));
   160       if (VM_Version::supports_sse2()) {
   165       if (VM_Version::supports_sse2()) {