Statistic<> EmittedInsts("asm-printer", "Number of machine instrs printed");
class PPCAsmPrinter : public AsmPrinter {
-public:
+ public:
std::set<std::string> FnStubs, GVStubs, LinkOnceStubs;
PPCAsmPrinter(std::ostream &O, TargetMachine &TM)
Data64bitsDirective = 0; // we can't emit a 64-bit unit
AlignmentIsInBytes = false; // Alignment is by power of 2.
ConstantPoolSection = "\t.const\t";
+ LCOMMDirective = "\t.lcomm\t";
}
virtual const char *getPassName() const {
SwitchSection(".data", I);
if (Size == 0) Size = 1; // .comm Foo, 0 is undefined, avoid it.
if (I->hasInternalLinkage())
- O << ".lcomm " << name << "," << Size << "," << Align;
+ O << LCOMMDirective << name << "," << Size << "," << Align;
else
O << ".comm " << name << "," << Size;
O << "\t\t; '" << I->getName() << "'\n";
(RLDICL G8RC:$in, (SRL64 imm:$imm), imm:$imm)>;
// Hi and Lo for Darwin Global Addresses.
-def : Pat<(PPChi tglobaladdr:$in, (i32 0)), (LIS tglobaladdr:$in)>;
-def : Pat<(PPClo tglobaladdr:$in, (i32 0)), (LI tglobaladdr:$in)>;
-def : Pat<(PPChi tconstpool:$in, (i32 0)), (LIS tconstpool:$in)>;
-def : Pat<(PPClo tconstpool:$in, (i32 0)), (LI tconstpool:$in)>;
+def : Pat<(PPChi tglobaladdr:$in, 0), (LIS tglobaladdr:$in)>;
+def : Pat<(PPClo tglobaladdr:$in, 0), (LI tglobaladdr:$in)>;
+def : Pat<(PPChi tconstpool:$in, 0), (LIS tconstpool:$in)>;
+def : Pat<(PPClo tconstpool:$in, 0), (LI tconstpool:$in)>;
def : Pat<(add GPRC:$in, (PPChi tglobaladdr:$g, 0)),
(ADDIS GPRC:$in, tglobaladdr:$g)>;
def : Pat<(add GPRC:$in, (PPChi tconstpool:$g, 0)),