equal
deleted
inserted
replaced
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. |