diff options
| author | Akira Hatanaka <ahatanak@gmail.com> | 2011-07-07 20:30:33 +0000 | 
|---|---|---|
| committer | Akira Hatanaka <ahatanak@gmail.com> | 2011-07-07 20:30:33 +0000 | 
| commit | 2f2d9cbb22ed99337e275356e0869a3dbb9ebb46 (patch) | |
| tree | 39dca2f8b9e22d354b1533fa87d49ebb22b4b043 /llvm/lib | |
| parent | d755e6ac4828d6de90afca6eb64a7f90a33f603c (diff) | |
| download | bcm5719-llvm-2f2d9cbb22ed99337e275356e0869a3dbb9ebb46.tar.gz bcm5719-llvm-2f2d9cbb22ed99337e275356e0869a3dbb9ebb46.zip | |
This patch adds a flag in MCAsmInfo that indicates whether dwarf register
numbers should be printed instead of symbolic register names in
MCAsmStreamer::EmitRegisterName. This is necessary because some versions of
GNU assembler won't accept code in which symbolic register names are used in
cfi directives. There is no change in behavior unless the flag is explicitly
set to true by a backend.
llvm-svn: 134635
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/MC/MCAsmInfo.cpp | 1 | ||||
| -rw-r--r-- | llvm/lib/MC/MCAsmStreamer.cpp | 2 | 
2 files changed, 2 insertions, 1 deletions
| 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); | 

