Mark xmm6 as caller saved in the register allocator for windows.
This prevents the register being picked up as a scratch register. Otherwise the allocator would be free to use it before a call. This fixes #14619. Test Plan: ci, repro case on #14619 Reviewers: bgamari, Phyx, erikd, simonmar, RyanGlScott, simonpj Reviewed By: Phyx, RyanGlScott, simonpj Subscribers: simonpj, RyanGlScott, Phyx, rwbarton, thomie, carter GHC Trac Issues: #14619 Differential Revision: https://phabricator.haskell.org/D4348 (cherry picked from commit add4e1f1)
Showing
- compiler/nativeGen/X86/Regs.hs 4 additions, 2 deletionscompiler/nativeGen/X86/Regs.hs
- includes/rts/Constants.h 6 additions, 2 deletionsincludes/rts/Constants.h
- rts/StgCRun.c 28 additions, 5 deletionsrts/StgCRun.c
- testsuite/tests/codeGen/should_run/T14619.hs 46 additions, 0 deletionstestsuite/tests/codeGen/should_run/T14619.hs
- testsuite/tests/codeGen/should_run/T14619.stdout 1 addition, 0 deletionstestsuite/tests/codeGen/should_run/T14619.stdout
- testsuite/tests/codeGen/should_run/all.T 1 addition, 0 deletionstestsuite/tests/codeGen/should_run/all.T
Loading
Please register or sign in to comment