Handle call-clobbered ymm registers on Win64.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Thu, 26 Jan 2012 22:59:28 +0000 (22:59 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Thu, 26 Jan 2012 22:59:28 +0000 (22:59 +0000)
commit53fa56e8dc60c8b594f22b888b4fb3c3b0567d82
tree952e37054fb68acdc1139a842e316a015bbf35c9
parentf26475af976389839c4affdcd2b5ef07ba548a81
Handle call-clobbered ymm registers on Win64.

The Win64 calling convention has xmm6-15 as callee-saved while still
clobbering all ymm registers.

Add a YMM_HI_6_15 pseudo-register that aliases the clobbered part of the
ymm registers, and mark that as call-clobbered.  This allows live xmm
registers across calls.

This hack wouldn't be necessary with RegisterMask operands representing
the call clobbers, but they are not quite operational yet.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149088 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86InstrControl.td
lib/Target/X86/X86RegisterInfo.td
test/CodeGen/X86/avx-win64.ll [new file with mode: 0644]