diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-01-17 22:47:01 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-01-17 22:47:01 +0000 |
commit | 0bd2ae92b0908f2e3b85eafb9ba48b9d6a82c774 (patch) | |
tree | f952830863f12f4ff35056ba617bebe19296472a /lib/Target/X86/X86CallingConv.td | |
parent | ec572539dd5660f9ca42027ac04df3a3f8c0cab1 (diff) | |
download | llvm-0bd2ae92b0908f2e3b85eafb9ba48b9d6a82c774.tar.gz llvm-0bd2ae92b0908f2e3b85eafb9ba48b9d6a82c774.tar.bz2 llvm-0bd2ae92b0908f2e3b85eafb9ba48b9d6a82c774.tar.xz |
Move X86 callee saved register lists to the X86CallConv .td file.
Add a trivial implementation of the getCallPreservedMask() hook.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148347 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86CallingConv.td')
-rw-r--r-- | lib/Target/X86/X86CallingConv.td | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/Target/X86/X86CallingConv.td b/lib/Target/X86/X86CallingConv.td index d5de878c6e..ed389a03a4 100644 --- a/lib/Target/X86/X86CallingConv.td +++ b/lib/Target/X86/X86CallingConv.td @@ -404,3 +404,18 @@ def CC_X86 : CallingConv<[ CCIfSubtarget<"is64Bit()", CCDelegateTo<CC_X86_64>>, CCDelegateTo<CC_X86_32> ]>; + +//===----------------------------------------------------------------------===// +// Callee-saved Registers. +//===----------------------------------------------------------------------===// + +def CSR_Ghc : CalleeSavedRegs<(add)>; + +def CSR_32 : CalleeSavedRegs<(add ESI, EDI, EBX, EBP)>; +def CSR_64 : CalleeSavedRegs<(add RBX, R12, R13, R14, R15, RBP)>; + +def CSR_32EHRet : CalleeSavedRegs<(add EAX, EDX, CSR_32)>; +def CSR_64EHRet : CalleeSavedRegs<(add RAX, RDX, CSR_64)>; + +def CSR_Win64 : CalleeSavedRegs<(add RBX, RBP, RDI, RSI, R12, R13, R14, R15, + (sequence "XMM%u", 6, 15))>; |