Switch ARM to new section handling stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54458 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/ARM/ARMTargetMachine.cpp b/lib/Target/ARM/ARMTargetMachine.cpp
index 913ebe0..4685074 100644
--- a/lib/Target/ARM/ARMTargetMachine.cpp
+++ b/lib/Target/ARM/ARMTargetMachine.cpp
@@ -58,7 +58,7 @@
return getJITMatchQuality()/2;
}
-ThumbTargetMachine::ThumbTargetMachine(const Module &M, const std::string &FS)
+ThumbTargetMachine::ThumbTargetMachine(const Module &M, const std::string &FS)
: ARMTargetMachine(M, FS, true) {
}
@@ -110,7 +110,14 @@
const TargetAsmInfo *ARMTargetMachine::createTargetAsmInfo() const {
- return new ARMTargetAsmInfo(*this);
+ switch (Subtarget.TargetType) {
+ case ARMSubtarget::isDarwin:
+ return new ARMDarwinTargetAsmInfo(*this);
+ case ARMSubtarget::isELF:
+ return new ARMELFTargetAsmInfo(*this);
+ default:
+ return new ARMTargetAsmInfo(*this);
+ }
}
@@ -124,7 +131,7 @@
// FIXME: temporarily disabling load / store optimization pass for Thumb mode.
if (!Fast && !DisableLdStOpti && !Subtarget.isThumb())
PM.add(createARMLoadStoreOptimizationPass());
-
+
if (!Fast && !DisableIfConversion && !Subtarget.isThumb())
PM.add(createIfConverterPass());
@@ -132,7 +139,7 @@
return true;
}
-bool ARMTargetMachine::addAssemblyEmitter(PassManagerBase &PM, bool Fast,
+bool ARMTargetMachine::addAssemblyEmitter(PassManagerBase &PM, bool Fast,
std::ostream &Out) {
// Output assembly language.
PM.add(createARMCodePrinterPass(Out, *this));