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) { |
258 } else if (kind == Interpreter::java_lang_math_pow) { |
259 __ movdbl(xmm1, Address(rsp, wordSize)); |
259 __ movdbl(xmm1, Address(rsp, wordSize)); |
260 __ movdbl(xmm0, Address(rsp, 3 * wordSize)); |
260 __ movdbl(xmm0, Address(rsp, 3 * wordSize)); |
261 __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::dpow()))); |
261 __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::dpow()))); |
|
262 } else if (kind == Interpreter::java_lang_math_sin && StubRoutines::dsin() != NULL) { |
|
263 __ movdbl(xmm0, Address(rsp, wordSize)); |
|
264 __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::dsin()))); |
|
265 } else if (kind == Interpreter::java_lang_math_cos && StubRoutines::dcos() != NULL) { |
|
266 __ movdbl(xmm0, Address(rsp, wordSize)); |
|
267 __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::dcos()))); |
262 } else { |
268 } else { |
263 __ fld_d(Address(rsp, wordSize)); |
269 __ fld_d(Address(rsp, wordSize)); |
264 switch (kind) { |
270 switch (kind) { |
265 case Interpreter::java_lang_math_sin : |
271 case Interpreter::java_lang_math_sin : |
266 __ trigfunc('s'); |
272 __ trigfunc('s'); |