Mark xmm6 as caller saved in the register allocator for windows.
authorklebinger.andreas@gmx.at <klebinger.andreas@gmx.at>
Thu, 1 Feb 2018 02:39:19 +0000 (21:39 -0500)
committerBen Gamari <ben@smart-cactus.org>
Thu, 1 Feb 2018 04:29:30 +0000 (23:29 -0500)
commitadd4e1f11b88cd603f6c01bc135eb576e1922a8e
tree78f3a89dedf01891c350b6a53bc013551ee66340
parent382c12d18f3d64e01502a5c8bbc64d4aa4842e3e
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
compiler/nativeGen/X86/Regs.hs
includes/rts/Constants.h
rts/StgCRun.c
testsuite/tests/codeGen/should_run/T14619.hs [new file with mode: 0644]
testsuite/tests/codeGen/should_run/T14619.stdout [new file with mode: 0644]
testsuite/tests/codeGen/should_run/all.T