summaryrefslogtreecommitdiff
path: root/lib/Target/Blackfin/AsmPrinter/BlackfinAsmPrinter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Target/Blackfin/AsmPrinter/BlackfinAsmPrinter.cpp')
-rw-r--r--lib/Target/Blackfin/AsmPrinter/BlackfinAsmPrinter.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/Target/Blackfin/AsmPrinter/BlackfinAsmPrinter.cpp b/lib/Target/Blackfin/AsmPrinter/BlackfinAsmPrinter.cpp
index 917f7f54fb1e..0bd94d489c85 100644
--- a/lib/Target/Blackfin/AsmPrinter/BlackfinAsmPrinter.cpp
+++ b/lib/Target/Blackfin/AsmPrinter/BlackfinAsmPrinter.cpp
@@ -25,12 +25,14 @@
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/MC/MCStreamer.h"
#include "llvm/MC/MCAsmInfo.h"
+#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCSymbol.h"
#include "llvm/Target/TargetData.h"
#include "llvm/Target/TargetLoweringObjectFile.h"
#include "llvm/Target/TargetRegistry.h"
#include "llvm/Support/Mangler.h"
#include "llvm/ADT/Statistic.h"
+#include "llvm/ADT/SmallString.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/FormattedStream.h"
using namespace llvm;
@@ -179,9 +181,12 @@ void BlackfinAsmPrinter::printOperand(const MachineInstr *MI, int opNum) {
O << Mang->getMangledName(MO.getGlobal());
printOffset(MO.getOffset());
break;
- case MachineOperand::MO_ExternalSymbol:
- O << Mang->makeNameProper(MO.getSymbolName());
+ case MachineOperand::MO_ExternalSymbol: {
+ SmallString<60> NameStr;
+ Mang->getNameWithPrefix(NameStr, MO.getSymbolName());
+ OutContext.GetOrCreateSymbol(NameStr.str())->print(O, MAI);
break;
+ }
case MachineOperand::MO_ConstantPoolIndex:
O << MAI->getPrivateGlobalPrefix() << "CPI" << getFunctionNumber() << "_"
<< MO.getIndex();