equal
deleted
inserted
replaced
250 // this entry point for the corresponding methods in JDK 1.3. |
250 // this entry point for the corresponding methods in JDK 1.3. |
251 // get argument |
251 // get argument |
252 |
252 |
253 if (kind == Interpreter::java_lang_math_sqrt) { |
253 if (kind == Interpreter::java_lang_math_sqrt) { |
254 __ sqrtsd(xmm0, Address(rsp, wordSize)); |
254 __ sqrtsd(xmm0, Address(rsp, wordSize)); |
|
255 } else if (kind == Interpreter::java_lang_math_exp) { |
|
256 __ movdbl(xmm0, Address(rsp, wordSize)); |
|
257 __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::dexp()))); |
255 } else { |
258 } else { |
256 __ fld_d(Address(rsp, wordSize)); |
259 __ fld_d(Address(rsp, wordSize)); |
257 switch (kind) { |
260 switch (kind) { |
258 case Interpreter::java_lang_math_sin : |
261 case Interpreter::java_lang_math_sin : |
259 __ trigfunc('s'); |
262 __ trigfunc('s'); |
276 case Interpreter::java_lang_math_pow: |
279 case Interpreter::java_lang_math_pow: |
277 __ fld_d(Address(rsp, 3*wordSize)); // second argument (one |
280 __ fld_d(Address(rsp, 3*wordSize)); // second argument (one |
278 // empty stack slot) |
281 // empty stack slot) |
279 __ pow_with_fallback(0); |
282 __ pow_with_fallback(0); |
280 break; |
283 break; |
281 case Interpreter::java_lang_math_exp: |
|
282 __ exp_with_fallback(0); |
|
283 break; |
|
284 default : |
284 default : |
285 ShouldNotReachHere(); |
285 ShouldNotReachHere(); |
286 } |
286 } |
287 |
287 |
288 // return double result in xmm0 for interpreter and compilers. |
288 // return double result in xmm0 for interpreter and compilers. |