summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2012-04-02 19:09:04 +0000
committerHal Finkel <hfinkel@anl.gov>2012-04-02 19:09:04 +0000
commit7591afa235ecceb9c8edb7d02bc6ab6f5708acf3 (patch)
tree383ae2c413f1c12303874f15c6e6462caf1e440b /llvm/lib
parent5dcce096b60a915e38a02dbcd280865ac1dbd08b (diff)
downloadbcm5719-llvm-7591afa235ecceb9c8edb7d02bc6ab6f5708acf3.tar.gz
bcm5719-llvm-7591afa235ecceb9c8edb7d02bc6ab6f5708acf3.zip
The binutils for the IBM BG/P are too old to support CFI.
llvm-svn: 153886
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/PowerPC/PPCSubtarget.h2
-rw-r--r--llvm/lib/Target/PowerPC/PPCTargetMachine.cpp4
2 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCSubtarget.h b/llvm/lib/Target/PowerPC/PPCSubtarget.h
index fbd97de16a6..a275029d3e5 100644
--- a/llvm/lib/Target/PowerPC/PPCSubtarget.h
+++ b/llvm/lib/Target/PowerPC/PPCSubtarget.h
@@ -145,6 +145,8 @@ public:
/// isDarwin - True if this is any darwin platform.
bool isDarwin() const { return TargetTriple.isMacOSX(); }
+ /// isBGP - True if this is a BG/P platform.
+ bool isBGP() const { return TargetTriple.getVendor() == Triple::BGP; }
bool isDarwinABI() const { return isDarwin(); }
bool isSVR4ABI() const { return !isDarwin(); }
diff --git a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
index ba9c77928ce..d1139766991 100644
--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
@@ -39,6 +39,10 @@ PPCTargetMachine::PPCTargetMachine(const Target &T, StringRef TT,
FrameLowering(Subtarget), JITInfo(*this, is64Bit),
TLInfo(*this), TSInfo(*this),
InstrItins(Subtarget.getInstrItineraryData()) {
+
+ // The binutils for the BG/P are too old for CFI.
+ if (Subtarget.isBGP())
+ setMCUseCFI(false);
}
void PPC32TargetMachine::anchor() { }
OpenPOWER on IntegriCloud