diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2013-08-23 02:25:47 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2013-08-23 02:25:47 +0000 |
commit | a8960a1f7ce5c52dc95a43617a43e390bf42177d (patch) | |
tree | fe0b7edf864cbcac919e4e27d01864474a1d8884 /llvm/lib/Target/Sparc/SparcCallingConv.td | |
parent | d136f60b07ebbb6fd8991433cb0285f6dacfed6f (diff) | |
download | bcm5719-llvm-a8960a1f7ce5c52dc95a43617a43e390bf42177d.tar.gz bcm5719-llvm-a8960a1f7ce5c52dc95a43617a43e390bf42177d.zip |
Add an OtherPreserved field to the CalleeSaved TableGen class.
This field specifies registers that are preserved across function calls,
but that should not be included in the generates SaveList array.
This can be used ot generate regmasks for architectures that save
registers through other means, like SPARC's register windows.
llvm-svn: 189084
Diffstat (limited to 'llvm/lib/Target/Sparc/SparcCallingConv.td')
-rw-r--r-- | llvm/lib/Target/Sparc/SparcCallingConv.td | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/Sparc/SparcCallingConv.td b/llvm/lib/Target/Sparc/SparcCallingConv.td index a181bcf3d26..181165d6ddd 100644 --- a/llvm/lib/Target/Sparc/SparcCallingConv.td +++ b/llvm/lib/Target/Sparc/SparcCallingConv.td @@ -117,3 +117,9 @@ def CC_Sparc64 : CallingConv<[ // arguments whether they are passed in registers or not. CCCustom<"CC_Sparc64_Full"> ]>; + +// Callee-saved registers are handled by the register window mechanism. +def CSR : CalleeSavedRegs<(add)> { + let OtherPreserved = (add (sequence "I%u", 0, 7), + (sequence "L%u", 0, 7)); +} |