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:51:20 +0000 (23:51 -0500)
commitfe485f2961324d3b798d4dc8b1ccd27e887fa213
tree82480b5a0a5ca1d79aea24e2549e856385e1c588
parentf026b1c75003737845d9e46c538df9ada9906b13
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 add4e1f11b88cd603f6c01bc135eb576e1922a8e)
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