[Webkit-unassigned] [Bug 157787] New: sqrt and pow should produce consistent results even in SSE2 available x86 32bit environment

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon May 16 23:32:56 PDT 2016


https://bugs.webkit.org/show_bug.cgi?id=157787

            Bug ID: 157787
           Summary: sqrt and pow should produce consistent results even in
                    SSE2 available x86 32bit environment
    Classification: Unclassified
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: JavaScriptCore
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: utatane.tea at gmail.com

In x86 32bit environment with SSE2 availability, some strange situation occurs.

1. C runtime is compiled with x87

C runtime is compiled with x87 since SSE2 is not considered.
This should be since binary packages (e.g. Debian i686) should consider the processor capabilities conservatively.

2. DFG JIT emits floating point operations in SSE2

But DFG JIT consult CPUID to determine SSE2 availability.
As a result, while C runtime is compiled with x87, DFG JIT code uses SSE2 operations (like sqrtsd, muld etc.)

Since while x87 has 80bit precision SSE has 64bit precision, this produces inconsistent results in C runtime and DFG JIT code.
While both 80 / 64 bit precision is ok, at least we need to ensure that the result with the same argument should be the same in all the JIT tiers.
Currently, while DFG JIT produces 64bit precision values, C runtime produces 80bit precision values.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20160517/8527cf81/attachment.html>


More information about the webkit-unassigned mailing list