The binutils for the IBM BG/P are too old to support CFI.
authorHal Finkel <hfinkel@anl.gov>
Mon, 2 Apr 2012 19:09:04 +0000 (19:09 +0000)
committerHal Finkel <hfinkel@anl.gov>
Mon, 2 Apr 2012 19:09:04 +0000 (19:09 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153886 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCSubtarget.h
lib/Target/PowerPC/PPCTargetMachine.cpp

index fbd97de16a62b1fb58c3c4f29c9f4320f944d2b7..a275029d3e5d366fbfda8c22387f68a3d52e94e4 100644 (file)
@@ -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(); }
index ba9c77928ce35a1293beb8c182720252c5a61bbd..d113976699124c198a9234c951b9b7f24426bbe4 100644 (file)
@@ -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() { }