diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Target/Alpha/AlphaAsmPrinter.cpp | 7 | ||||
-rw-r--r-- | lib/Target/Alpha/AlphaInstrInfo.td | 6 |
2 files changed, 10 insertions, 3 deletions
diff --git a/lib/Target/Alpha/AlphaAsmPrinter.cpp b/lib/Target/Alpha/AlphaAsmPrinter.cpp index 0f82b03cb1..f4540dbe8f 100644 --- a/lib/Target/Alpha/AlphaAsmPrinter.cpp +++ b/lib/Target/Alpha/AlphaAsmPrinter.cpp @@ -285,6 +285,13 @@ bool AlphaAsmPrinter::doFinalization(Module &M) { } } + for (Module::const_iterator I = M.begin(), E = M.end(); I != E; ++I) + if (I->hasExternalWeakLinkage()) { + O << "\n\n"; + std::string name = Mang->getValueName(I); + O << "\t.weak " << name << "\n"; + } + AsmPrinter::doFinalization(M); return false; } diff --git a/lib/Target/Alpha/AlphaInstrInfo.td b/lib/Target/Alpha/AlphaInstrInfo.td index c2919b0772..548dc02080 100644 --- a/lib/Target/Alpha/AlphaInstrInfo.td +++ b/lib/Target/Alpha/AlphaInstrInfo.td @@ -140,11 +140,11 @@ class CmpOpFrag<dag res> : PatFrag<(ops node:$R), res>; //Pseudo ops for selection -def IDEF_I : PseudoInstAlpha<(ops GPRC:$RA), "#idef $RA", +def IDEF_I : PseudoInstAlpha<(ops GPRC:$RA), ";#idef $RA", [(set GPRC:$RA, (undef))], s_pseudo>; -def IDEF_F32 : PseudoInstAlpha<(ops F4RC:$RA), "#idef $RA", +def IDEF_F32 : PseudoInstAlpha<(ops F4RC:$RA), ";#idef $RA", [(set F4RC:$RA, (undef))], s_pseudo>; -def IDEF_F64 : PseudoInstAlpha<(ops F8RC:$RA), "#idef $RA", +def IDEF_F64 : PseudoInstAlpha<(ops F8RC:$RA), ";#idef $RA", [(set F8RC:$RA, (undef))], s_pseudo>; def WTF : PseudoInstAlpha<(ops variable_ops), "#wtf", [], s_pseudo>; |