[Bug 48019] New: SSE register MXCSR is wrong for new threads

WineHQ Bugzilla wine-bugs at winehq.org
Thu Oct 31 06:16:16 CDT 2019


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

            Bug ID: 48019
           Summary: SSE register MXCSR is wrong for new threads
           Product: Wine
           Version: 4.15
          Hardware: x86-64
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: kernel32
          Assignee: wine-bugs at winehq.org
          Reporter: mterrisse at free.fr
      Distribution: ---

Created attachment 65554
  --> https://bugs.winehq.org/attachment.cgi?id=65554
Command line executable with source code to get MXCSR in a new created thread

Hello,

I am running Wine 4.15 64 bits (PlayOnLinux) on Ubuntu 19.10 (More recent
versions of Wine are not available yet).

On Windows when a new thread is created (CreateThread), the value of the SSE
register MXCSR is initialized to 0x1f80.
But for Wine 4.15 on Ubuntu, it is initialized to 0x1920.

This is fatal for our programs that use libcef.dll (Chromium Embedded
Framework), this library creates new renderer threads, doesn't set the MXCSR
register (so exceptions due to denormalization of floats are not masked), then
there is an unhandled exception and the whole program crashes.

I tested with Wine 4.18 on macOS 10.15.1 Catalina, I get the correct value
0x1f80, and indeed there is no crash on macOS.
So this is specific to Wine on Linux (except is something has changed between
Wine 4.15 and Wine 4.18).

Here attach you can find a command line executable with source code (Delphi)
that displays the value of MXCSR for a new thread.

Thank you for your help.
Regards,

Michel Terrisse

-- 
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