summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86RegisterInfo.cpp
diff options
context:
space:
mode:
authorNAKAMURA Takumi <geek4civic@gmail.com>2011-01-26 02:04:09 +0000
committerNAKAMURA Takumi <geek4civic@gmail.com>2011-01-26 02:04:09 +0000
commit0cfdac078ec50e1d445436714b6816064125aac6 (patch)
tree9f3c57282aec7f5312fa96793ac1200bdcf44508 /llvm/lib/Target/X86/X86RegisterInfo.cpp
parent31aafbd5013ca93e4ae8f8eeff7ed83eb29239df (diff)
downloadbcm5719-llvm-0cfdac078ec50e1d445436714b6816064125aac6.tar.gz
bcm5719-llvm-0cfdac078ec50e1d445436714b6816064125aac6.zip
Target/X86: Tweak win64's tailcall.
llvm-svn: 124272
Diffstat (limited to 'llvm/lib/Target/X86/X86RegisterInfo.cpp')
-rw-r--r--llvm/lib/Target/X86/X86RegisterInfo.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86RegisterInfo.cpp b/llvm/lib/Target/X86/X86RegisterInfo.cpp
index f41be0cfe5a..2f6bd88c652 100644
--- a/llvm/lib/Target/X86/X86RegisterInfo.cpp
+++ b/llvm/lib/Target/X86/X86RegisterInfo.cpp
@@ -320,6 +320,12 @@ X86RegisterInfo::getPointerRegClass(unsigned Kind) const {
if (TM.getSubtarget<X86Subtarget>().is64Bit())
return &X86::GR64_NOSPRegClass;
return &X86::GR32_NOSPRegClass;
+ case 2: // Available for tailcall (not callee-saved GPRs).
+ if (TM.getSubtarget<X86Subtarget>().isTargetWin64())
+ return &X86::GR64_TCW64RegClass;
+ if (TM.getSubtarget<X86Subtarget>().is64Bit())
+ return &X86::GR64_TCRegClass;
+ return &X86::GR32_TCRegClass;
}
}
OpenPOWER on IntegriCloud