Don't fold indexed loads into TCRETURNmi64.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Thu, 13 Sep 2012 00:25:00 +0000 (00:25 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Thu, 13 Sep 2012 00:25:00 +0000 (00:25 +0000)
commitaa0cfea9a439cb8de1ff288bd6db9b4a86c4da7b
tree35cd4b79ba4213d5d0d0c8c44f63fb4244c13463
parent253353c9cf1ff16d9c30a89c2fb96160ac5a9d65
Don't fold indexed loads into TCRETURNmi64.

We don't have enough GR64_TC registers when calling a varargs function
with 6 arguments. Since %al holds the number of vector registers used,
only %r11 is available as a scratch register.

This means that addressing modes using both base and index registers
can't be folded into TCRETURNmi64.

<rdar://problem/12282281>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163761 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelDAGToDAG.cpp
lib/Target/X86/X86InstrCompiler.td
lib/Target/X86/X86InstrInfo.td
test/CodeGen/X86/tailcall-64.ll