hotspot/src/cpu/x86/vm/templateInterpreterGenerator_x86_64.cpp
changeset 41323 ddd5600d4762
parent 38699 f8bec5f6b09c
child 42580 56304dee97f3
equal deleted inserted replaced
41321:463ff7705f2f 41323:ddd5600d4762
   367   // stack: [ ret adr ] <-- rsp
   367   // stack: [ ret adr ] <-- rsp
   368   //        [ lo(arg) ]
   368   //        [ lo(arg) ]
   369   //        [ hi(arg) ]
   369   //        [ hi(arg) ]
   370   //
   370   //
   371 
   371 
   372 
   372   if (kind == Interpreter::java_lang_math_fmaD) {
   373   if (kind == Interpreter::java_lang_math_sqrt) {
   373     __ movdbl(xmm0, Address(rsp, wordSize));
       
   374     __ movdbl(xmm1, Address(rsp, 3 * wordSize));
       
   375     __ movdbl(xmm2, Address(rsp, 5 * wordSize));
       
   376     __ fmad(xmm0, xmm1, xmm2, xmm0);
       
   377   } else if (kind == Interpreter::java_lang_math_fmaF) {
       
   378     __ movflt(xmm0, Address(rsp, wordSize));
       
   379     __ movflt(xmm1, Address(rsp, 2 * wordSize));
       
   380     __ movflt(xmm2, Address(rsp, 3 * wordSize));
       
   381     __ fmaf(xmm0, xmm1, xmm2, xmm0);
       
   382   } else if (kind == Interpreter::java_lang_math_sqrt) {
   374     __ sqrtsd(xmm0, Address(rsp, wordSize));
   383     __ sqrtsd(xmm0, Address(rsp, wordSize));
   375   } else if (kind == Interpreter::java_lang_math_exp) {
   384   } else if (kind == Interpreter::java_lang_math_exp) {
   376     __ movdbl(xmm0, Address(rsp, wordSize));
   385     __ movdbl(xmm0, Address(rsp, wordSize));
   377     if (StubRoutines::dexp() != NULL) {
   386     if (StubRoutines::dexp() != NULL) {
   378       __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::dexp())));
   387       __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::dexp())));