diff options
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/include/llvm/MC/MCAsmInfo.h | 7 | ||||
| -rw-r--r-- | llvm/lib/MC/MCAsmInfo.cpp | 1 | ||||
| -rw-r--r-- | llvm/lib/MC/MCAsmStreamer.cpp | 2 | 
3 files changed, 9 insertions, 1 deletions
| diff --git a/llvm/include/llvm/MC/MCAsmInfo.h b/llvm/include/llvm/MC/MCAsmInfo.h index 775d22bea42..15b6aa13421 100644 --- a/llvm/include/llvm/MC/MCAsmInfo.h +++ b/llvm/include/llvm/MC/MCAsmInfo.h @@ -284,6 +284,10 @@ namespace llvm {      // use EmitLabelOffsetDifference.      bool DwarfUsesLabelOffsetForRanges; +    /// DwarfRegNumForCFI - True if dwarf register numbers are printed +    /// instead of symbolic register names in .cfi_* directives. +    bool DwarfRegNumForCFI;  // Defaults to false; +      //===--- CBE Asm Translation Table -----------------------------------===//      const char *const *AsmTransCBE;          // Defaults to empty @@ -475,6 +479,9 @@ namespace llvm {      bool doesDwarfUsesLabelOffsetForRanges() const {        return DwarfUsesLabelOffsetForRanges;      } +    bool useDwarfRegNumForCFI() const { +      return DwarfRegNumForCFI; +    }      const char *const *getAsmCBE() const {        return AsmTransCBE;      } diff --git a/llvm/lib/MC/MCAsmInfo.cpp b/llvm/lib/MC/MCAsmInfo.cpp index 73b259eaa0f..b8ce24b78f4 100644 --- a/llvm/lib/MC/MCAsmInfo.cpp +++ b/llvm/lib/MC/MCAsmInfo.cpp @@ -78,6 +78,7 @@ MCAsmInfo::MCAsmInfo() {    DwarfRequiresRelocationForSectionOffset = true;    DwarfSectionOffsetDirective = 0;    DwarfUsesLabelOffsetForRanges = true; +  DwarfRegNumForCFI = false;    HasMicrosoftFastStdCallMangling = false;    AsmTransCBE = 0; diff --git a/llvm/lib/MC/MCAsmStreamer.cpp b/llvm/lib/MC/MCAsmStreamer.cpp index acf77558c33..4ea1c9fb842 100644 --- a/llvm/lib/MC/MCAsmStreamer.cpp +++ b/llvm/lib/MC/MCAsmStreamer.cpp @@ -825,7 +825,7 @@ void MCAsmStreamer::EmitCFIEndProc() {  }  void MCAsmStreamer::EmitRegisterName(int64_t Register) { -  if (InstPrinter) { +  if (InstPrinter && !MAI.useDwarfRegNumForCFI()) {      const TargetAsmInfo &asmInfo = getContext().getTargetAsmInfo();      unsigned LLVMRegister = asmInfo.getLLVMRegNum(Register, true);      InstPrinter->printRegName(OS, LLVMRegister); | 

