hotspot/src/cpu/x86/vm/interpreter_x86_32.cpp
changeset 33089 f4e956ed8b43
parent 25950 b5c40ed1d349
child 33465 6063f28a6efb
equal deleted inserted replaced
33088:34fe49ecee13 33089:f4e956ed8b43
   149       // Store to stack to convert 80bit precision back to 64bits
   149       // Store to stack to convert 80bit precision back to 64bits
   150       __ push_fTOS();
   150       __ push_fTOS();
   151       __ pop_fTOS();
   151       __ pop_fTOS();
   152       break;
   152       break;
   153     case Interpreter::java_lang_math_exp:
   153     case Interpreter::java_lang_math_exp:
   154       __ exp_with_fallback(0);
   154       __ subptr(rsp, 2*wordSize);
   155       // Store to stack to convert 80bit precision back to 64bits
   155       __ fstp_d(Address(rsp, 0));
   156       __ push_fTOS();
   156       if (VM_Version::supports_sse2()) {
   157       __ pop_fTOS();
   157         __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::dexp())));
   158       break;
   158       } else {
       
   159         __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, SharedRuntime::dexp)));
       
   160       }
       
   161       __ addptr(rsp, 2*wordSize);
       
   162     break;
   159     default                              :
   163     default                              :
   160         ShouldNotReachHere();
   164         ShouldNotReachHere();
   161   }
   165   }
   162 
   166 
   163   // return double result in xmm0 for interpreter and compilers.
   167   // return double result in xmm0 for interpreter and compilers.