hotspot/src/cpu/x86/vm/templateInterpreterGenerator_x86_32.cpp
changeset 35495 e27da438fa13
parent 35479 62c12ca7a45e
child 38018 1dc6c6f21231
equal deleted inserted replaced
35492:c8c0273e6b91 35495:e27da438fa13
   376         __ push_fTOS();
   376         __ push_fTOS();
   377         __ pop_fTOS();
   377         __ pop_fTOS();
   378         break;
   378         break;
   379     case Interpreter::java_lang_math_pow:
   379     case Interpreter::java_lang_math_pow:
   380       __ fld_d(Address(rsp, 3*wordSize)); // second argument
   380       __ fld_d(Address(rsp, 3*wordSize)); // second argument
   381       __ pow_with_fallback(0);
   381       __ subptr(rsp, 4 * wordSize);
   382       // Store to stack to convert 80bit precision back to 64bits
   382       __ fstp_d(Address(rsp, 0));
   383       __ push_fTOS();
   383       __ fstp_d(Address(rsp, 2 * wordSize));
   384       __ pop_fTOS();
   384       if (VM_Version::supports_sse2()) {
       
   385         __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::dpow())));
       
   386       } else {
       
   387         __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, SharedRuntime::dpow)));
       
   388       }
       
   389       __ addptr(rsp, 4 * wordSize);
   385       break;
   390       break;
   386     case Interpreter::java_lang_math_exp:
   391     case Interpreter::java_lang_math_exp:
   387       __ subptr(rsp, 2*wordSize);
   392       __ subptr(rsp, 2*wordSize);
   388       __ fstp_d(Address(rsp, 0));
   393       __ fstp_d(Address(rsp, 0));
   389       if (VM_Version::supports_sse2()) {
   394       if (VM_Version::supports_sse2()) {