summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86RegisterInfo.cpp
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2007-02-19 21:49:54 +0000
committerEvan Cheng <evan.cheng@apple.com>2007-02-19 21:49:54 +0000
commitf7ed82da1011dc74cfbac0a65b7295ca0d4473d3 (patch)
tree61c2d44fc7362e01cd1ccf15fecb925b1ee359c8 /llvm/lib/Target/X86/X86RegisterInfo.cpp
parentd5cfe7d0040ae9ca32c22bb388faa5503c123880 (diff)
downloadbcm5719-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.cpp16
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
//===----------------------------------------------------------------------===//
OpenPOWER on IntegriCloud