aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/Target/Alpha/AlphaAsmPrinter.cpp7
-rw-r--r--lib/Target/Alpha/AlphaInstrInfo.td6
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>;