[Bug 50429] Serious Sam Engine / Serious Sam Classic broken MP with math functions from musl

WineHQ Bugzilla wine-bugs at winehq.org
Mon Jan 4 11:39:11 CST 2021


https://bugs.winehq.org/show_bug.cgi?id=50429

Piotr Caban <piotr.caban at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |piotr.caban at gmail.com

--- Comment #7 from Piotr Caban <piotr.caban at gmail.com> ---
I've started looking on this bug today, here's what I have found so far:
 - native implementation sets sse2 status word, not x87
 - current implementation returns correct values for all calls recorded in
arcsin_fixme_serious_sam_tfe file
 - current implementation returns different values than native in some cases,
e.g.: asin(-1.08632087707519531250000e-01) = -1.08846890318393410557185e-01,
expected -1.08846890318393396679397e-01
 - we used to implement asin(x) as atan2(x, sqrt((1 - x) * (1 + x))), it's
probably not going to fix the problem because both atan2 and sqrt needs
precision fixes as well

I guess that the proper solution is to implement __libm_sse2_asin and call it
inside asin. I didn't test yet if the function is affected by _set_SSE2_enable
function.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list