
#12736: Calling a complex Haskell function (obtained via FFI wrapper function) from MSVC 64-bit C code (passed in as FunPtr) can leave SSE2 registers in the XMM6-XMM15 range modified -------------------------------------+------------------------------------- Reporter: bavism | Owner: (none) Type: bug | Status: closed Priority: normal | Milestone: Component: Compiler (FFI) | Version: 7.10.3 Resolution: fixed | Keywords: | ffi,registers,sse2,clobber,xmm Operating System: Windows | Architecture: x86_64 | (amd64) Type of failure: Incorrect result | Test Case: at runtime | https://github.com/bavis-m/raycast Blocked By: | Blocking: Related Tickets: #14619 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by AndreasK): * status: new => closed * resolution: => fixed * related: => #14619 Comment: Fixed with #14619. GHC did not respect callee saved XMM registers on windows. Leading to them being clobbered. I do not have VS2015 to confirm the repro case is fixed. But it's exactly what I would expect to happen without the fix so I'm closing this as fixed. Feel free to reopen if the issue persists. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12736#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler