mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
Factor out asmprinter out of ppc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54887 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -26,6 +26,9 @@ X("ppc32", " PowerPC 32");
|
||||
static RegisterTarget<PPC64TargetMachine>
|
||||
Y("ppc64", " PowerPC 64");
|
||||
|
||||
// No assembler printer by default
|
||||
PPCTargetMachine::AsmPrinterCtorFn PPCTargetMachine::AsmPrinterCtor = 0;
|
||||
|
||||
const TargetAsmInfo *PPCTargetMachine::createTargetAsmInfo() const {
|
||||
if (Subtarget.isDarwin())
|
||||
return new PPCDarwinTargetAsmInfo(*this);
|
||||
@@ -132,7 +135,10 @@ bool PPCTargetMachine::addPreEmitPass(PassManagerBase &PM, bool Fast) {
|
||||
|
||||
bool PPCTargetMachine::addAssemblyEmitter(PassManagerBase &PM, bool Fast,
|
||||
std::ostream &Out) {
|
||||
PM.add(createPPCAsmPrinterPass(Out, *this));
|
||||
assert(AsmPrinterCtor && "AsmPrinter was not linked in");
|
||||
if (AsmPrinterCtor)
|
||||
PM.add(AsmPrinterCtor(Out, *this));
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -158,8 +164,12 @@ bool PPCTargetMachine::addCodeEmitter(PassManagerBase &PM, bool Fast,
|
||||
|
||||
// Machine code emitter pass for PowerPC.
|
||||
PM.add(createPPCCodeEmitterPass(*this, MCE));
|
||||
if (DumpAsm)
|
||||
PM.add(createPPCAsmPrinterPass(*cerr.stream(), *this));
|
||||
if (DumpAsm) {
|
||||
assert(AsmPrinterCtor && "AsmPrinter was not linked in");
|
||||
if (AsmPrinterCtor)
|
||||
PM.add(AsmPrinterCtor(*cerr.stream(), *this));
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -167,7 +177,11 @@ bool PPCTargetMachine::addSimpleCodeEmitter(PassManagerBase &PM, bool Fast,
|
||||
bool DumpAsm, MachineCodeEmitter &MCE) {
|
||||
// Machine code emitter pass for PowerPC.
|
||||
PM.add(createPPCCodeEmitterPass(*this, MCE));
|
||||
if (DumpAsm)
|
||||
PM.add(createPPCAsmPrinterPass(*cerr.stream(), *this));
|
||||
if (DumpAsm) {
|
||||
assert(AsmPrinterCtor && "AsmPrinter was not linked in");
|
||||
if (AsmPrinterCtor)
|
||||
PM.add(AsmPrinterCtor(*cerr.stream(), *this));
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
Reference in New Issue
Block a user