diff options
| author | Evan Cheng <evan.cheng@apple.com> | 2007-02-19 21:49:54 +0000 |
|---|---|---|
| committer | Evan Cheng <evan.cheng@apple.com> | 2007-02-19 21:49:54 +0000 |
| commit | f7ed82da1011dc74cfbac0a65b7295ca0d4473d3 (patch) | |
| tree | 61c2d44fc7362e01cd1ccf15fecb925b1ee359c8 /llvm/lib/Target/X86/X86RegisterInfo.cpp | |
| parent | d5cfe7d0040ae9ca32c22bb388faa5503c123880 (diff) | |
| download | bcm5719-llvm-f7ed82da1011dc74cfbac0a65b7295ca0d4473d3.tar.gz bcm5719-llvm-f7ed82da1011dc74cfbac0a65b7295ca0d4473d3.zip | |
Re-apply my liveintervalanalysis changes. Now with PR1207 fixes.
llvm-svn: 34428
Diffstat (limited to 'llvm/lib/Target/X86/X86RegisterInfo.cpp')
| -rw-r--r-- | llvm/lib/Target/X86/X86RegisterInfo.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86RegisterInfo.cpp b/llvm/lib/Target/X86/X86RegisterInfo.cpp index 50fb0917272..65e847e0dbb 100644 --- a/llvm/lib/Target/X86/X86RegisterInfo.cpp +++ b/llvm/lib/Target/X86/X86RegisterInfo.cpp @@ -31,6 +31,7 @@ #include "llvm/Target/TargetMachine.h" #include "llvm/Target/TargetOptions.h" #include "llvm/Support/CommandLine.h" +#include "llvm/ADT/BitVector.h" #include "llvm/ADT/STLExtras.h" using namespace llvm; @@ -883,6 +884,21 @@ X86RegisterInfo::getCalleeSavedRegClasses() const { return Is64Bit ? CalleeSavedRegClasses64Bit : CalleeSavedRegClasses32Bit; } +BitVector X86RegisterInfo::getReservedRegs(const MachineFunction &MF) const { + BitVector Reserved(getNumRegs()); + Reserved.set(X86::RSP); + Reserved.set(X86::ESP); + Reserved.set(X86::SP); + Reserved.set(X86::SPL); + if (hasFP(MF)) { + Reserved.set(X86::RBP); + Reserved.set(X86::EBP); + Reserved.set(X86::BP); + Reserved.set(X86::BPL); + } + return Reserved; +} + //===----------------------------------------------------------------------===// // Stack Frame Processing methods //===----------------------------------------------------------------------===// |

