summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2008-09-24 22:03:04 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2008-09-24 22:03:04 +0000
commitffecb087a3748a29ea64f3e7b98b1f9fe497f211 (patch)
tree727be1098fd23b926214cfe6bc22b92548e34ed1 /llvm/lib
parent4ef4b1a7c15d9e40f7eca56f2593422dfc25a4c2 (diff)
downloadbcm5719-llvm-ffecb087a3748a29ea64f3e7b98b1f9fe497f211.tar.gz
bcm5719-llvm-ffecb087a3748a29ea64f3e7b98b1f9fe497f211.zip
XMM6-XMM15 are callee-saved on Win64. Patch by Nicolas Capens!
llvm-svn: 56568
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/X86RegisterInfo.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/llvm/lib/Target/X86/X86RegisterInfo.cpp b/llvm/lib/Target/X86/X86RegisterInfo.cpp
index 3a8209ae7fd..e86c6be0dd3 100644
--- a/llvm/lib/Target/X86/X86RegisterInfo.cpp
+++ b/llvm/lib/Target/X86/X86RegisterInfo.cpp
@@ -185,8 +185,11 @@ X86RegisterInfo::getCalleeSavedRegs(const MachineFunction *MF) const {
};
static const unsigned CalleeSavedRegsWin64[] = {
- X86::RBX, X86::RBP, X86::RDI, X86::RSI,
- X86::R12, X86::R13, X86::R14, X86::R15, 0
+ X86::RBX, X86::RBP, X86::RDI, X86::RSI,
+ X86::R12, X86::R13, X86::R14, X86::R15,
+ X86::XMM6, X86::XMM7, X86::XMM8, X86::XMM9,
+ X86::XMM10, X86::XMM11, X86::XMM12, X86::XMM13,
+ X86::XMM14, X86::XMM15, 0
};
if (Is64Bit) {
@@ -230,10 +233,15 @@ X86RegisterInfo::getCalleeSavedRegClasses(const MachineFunction *MF) const {
&X86::GR64RegClass, &X86::GR64RegClass, 0
};
static const TargetRegisterClass * const CalleeSavedRegClassesWin64[] = {
- &X86::GR64RegClass, &X86::GR64RegClass,
- &X86::GR64RegClass, &X86::GR64RegClass,
- &X86::GR64RegClass, &X86::GR64RegClass,
- &X86::GR64RegClass, &X86::GR64RegClass, 0
+ &X86::GR64RegClass, &X86::GR64RegClass,
+ &X86::GR64RegClass, &X86::GR64RegClass,
+ &X86::GR64RegClass, &X86::GR64RegClass,
+ &X86::GR64RegClass, &X86::GR64RegClass,
+ &X86::VR128RegClass, &X86::VR128RegClass,
+ &X86::VR128RegClass, &X86::VR128RegClass,
+ &X86::VR128RegClass, &X86::VR128RegClass,
+ &X86::VR128RegClass, &X86::VR128RegClass,
+ &X86::VR128RegClass, &X86::VR128RegClass, 0
};
if (Is64Bit) {
OpenPOWER on IntegriCloud