diff options
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/CodeGen/LLVMTargetMachine.cpp | 1 | ||||
-rw-r--r-- | llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp | 3 | ||||
-rw-r--r-- | llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.h | 2 | ||||
-rw-r--r-- | llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp | 15 | ||||
-rw-r--r-- | llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.h | 4 | ||||
-rw-r--r-- | llvm/lib/Target/Mips/MipsTargetMachine.cpp | 1 |
6 files changed, 24 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/LLVMTargetMachine.cpp b/llvm/lib/CodeGen/LLVMTargetMachine.cpp index 610c9f47bac..d49c4f0be5c 100644 --- a/llvm/lib/CodeGen/LLVMTargetMachine.cpp +++ b/llvm/lib/CodeGen/LLVMTargetMachine.cpp @@ -67,6 +67,7 @@ void LLVMTargetMachine::initAsmInfo() { if (Options.CompressDebugSections) TmpAsmInfo->setCompressDebugSections(true); + TmpAsmInfo->finishInit(*this); AsmInfo = TmpAsmInfo; } diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp b/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp index b1f7c2f2259..d2b010486b5 100644 --- a/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp +++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp @@ -122,3 +122,6 @@ unsigned MipsABIInfo::GetEhDataReg(unsigned I) const { return IsN64() ? EhDataReg64[I] : EhDataReg[I]; } +const char *MipsABIInfo::GetPrivateLabelPrefix() const { + return IsO32() ? "$" : ".L"; +} diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.h b/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.h index 9a6ba946765..1e9d57b82b9 100644 --- a/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.h +++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.h @@ -71,6 +71,8 @@ public: inline bool ArePtrs64bit() const { return IsN64(); } unsigned GetEhDataReg(unsigned I) const; + + const char *GetPrivateLabelPrefix() const; }; } diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp b/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp index e2bd5a815ab..b47ca0b5cb5 100644 --- a/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp +++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp @@ -12,7 +12,10 @@ //===----------------------------------------------------------------------===// #include "MipsMCAsmInfo.h" +#include "MCTargetDesc/MipsABIInfo.h" +#include "MipsTargetMachine.h" #include "llvm/ADT/Triple.h" +#include "llvm/Target/TargetMachine.h" using namespace llvm; @@ -29,12 +32,14 @@ MipsMCAsmInfo::MipsMCAsmInfo(StringRef TT) { PointerSize = CalleeSaveStackSlotSize = 8; } + // These two are overridden in finishInit() + PrivateGlobalPrefix = "$"; + PrivateLabelPrefix = "$"; + AlignmentIsInBytes = false; Data16bitsDirective = "\t.2byte\t"; Data32bitsDirective = "\t.4byte\t"; Data64bitsDirective = "\t.8byte\t"; - PrivateGlobalPrefix = "$"; - PrivateLabelPrefix = "$"; CommentString = "#"; ZeroDirective = "\t.space\t"; GPRel32Directive = "\t.gpword\t"; @@ -44,3 +49,9 @@ MipsMCAsmInfo::MipsMCAsmInfo(StringRef TT) { ExceptionsType = ExceptionHandling::DwarfCFI; DwarfRegNumForCFI = true; } + +void MipsMCAsmInfo::finishInit(const LLVMTargetMachine &TM) { + const MipsABIInfo &ABI = static_cast<const MipsTargetMachine &>(TM).getABI(); + PrivateGlobalPrefix = ABI.GetPrivateLabelPrefix(); + PrivateLabelPrefix = ABI.GetPrivateLabelPrefix(); +} diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.h b/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.h index 59ff1c41ed6..aed702320d7 100644 --- a/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.h +++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.h @@ -18,11 +18,15 @@ namespace llvm { class StringRef; + class MipsABIInfo; + class LLVMTargetMachine; class MipsMCAsmInfo : public MCAsmInfoELF { void anchor() override; public: explicit MipsMCAsmInfo(StringRef TT); + + void finishInit(const LLVMTargetMachine &TM) override; }; } // namespace llvm diff --git a/llvm/lib/Target/Mips/MipsTargetMachine.cpp b/llvm/lib/Target/Mips/MipsTargetMachine.cpp index b279184ea30..6036247f2ee 100644 --- a/llvm/lib/Target/Mips/MipsTargetMachine.cpp +++ b/llvm/lib/Target/Mips/MipsTargetMachine.cpp @@ -24,6 +24,7 @@ #include "MipsSEISelLowering.h" #include "MipsSEInstrInfo.h" #include "MipsTargetObjectFile.h" +#include "MCTargetDesc/MipsMCAsmInfo.h" #include "llvm/Analysis/TargetTransformInfo.h" #include "llvm/CodeGen/Passes.h" #include "llvm/IR/LegacyPassManager.h" |