On Tue, 8 Apr 2025 07:48:19 GMT, Roman Marchenko <rmarche...@openjdk.org> wrote:

> All the crashes are on "`movaps`" instructions, like "`movaps xmmword ptr 
> [esi+0x30], xmm0`".
> 
> "`movaps`" must operate with aligned addresses as 
>> When the source or destination operand is a memory operand, the operand must 
>> be aligned on a 16-byte boundary or a general-protection exception (#GP) is 
>> generated
> 
> written in docs. When crashes, ESI contains value like `0x27DB63A8`, so it 
> doesn’t seem aligned to 16-byte boundary. The line "`siginfo: 
> ExceptionCode=0xc0000005, reading address 0xffffffff`" from `hs_err` file 
> implicitly says it is GP, not a real "reading address 0xffffffff".
> 
> It might be related to clang-cl bug, see 
> https://github.com/llvm/llvm-project/issues/55844
> 
> The workaround is to disable SSE when building 32bit on Windows. (`-mno-sse`)

This looks good to me. A quick sanity test passed. We will do a little more 
testing then approve.

I left one inline comment about adding a note indicating that this is for the 
"JAVA" platform.

modules/javafx.web/src/main/native/Source/cmake/WebKitCompilerFlags.cmake line 
154:

> 152:         WEBKIT_PREPEND_GLOBAL_COMPILER_FLAGS(-Wno-sign-compare
> 153:                                              
> -Wno-deprecated-declarations)
> 154:         if (WTF_CPU_X86 AND NOT CMAKE_CROSSCOMPILING)

Please add the following comment above line 154:


        # Disable SSE for 32-bit Windows on JAVA platform

-------------

PR Review: https://git.openjdk.org/jfx/pull/1764#pullrequestreview-2750051129
PR Review Comment: https://git.openjdk.org/jfx/pull/1764#discussion_r2033233369

Reply via email to