equal
deleted
inserted
replaced
147 __ push_fTOS(); |
147 __ push_fTOS(); |
148 __ pop_fTOS(); |
148 __ pop_fTOS(); |
149 break; |
149 break; |
150 case Interpreter::java_lang_math_pow: |
150 case Interpreter::java_lang_math_pow: |
151 __ fld_d(Address(rsp, 3*wordSize)); // second argument |
151 __ fld_d(Address(rsp, 3*wordSize)); // second argument |
152 __ pow_with_fallback(0); |
152 __ subptr(rsp, 4 * wordSize); |
153 // Store to stack to convert 80bit precision back to 64bits |
153 __ fstp_d(Address(rsp, 0)); |
154 __ push_fTOS(); |
154 __ fstp_d(Address(rsp, 2 * wordSize)); |
155 __ pop_fTOS(); |
155 if (VM_Version::supports_sse2()) { |
|
156 __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::dpow()))); |
|
157 } else { |
|
158 __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, SharedRuntime::dpow))); |
|
159 } |
|
160 __ addptr(rsp, 4 * wordSize); |
156 break; |
161 break; |
157 case Interpreter::java_lang_math_exp: |
162 case Interpreter::java_lang_math_exp: |
158 __ subptr(rsp, 2*wordSize); |
163 __ subptr(rsp, 2*wordSize); |
159 __ fstp_d(Address(rsp, 0)); |
164 __ fstp_d(Address(rsp, 0)); |
160 if (VM_Version::supports_sse2()) { |
165 if (VM_Version::supports_sse2()) { |