mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-10-31 08:16:47 +00:00 
			
		
		
		
	The DarwinAsmPrinter need not check for isDarwin. createPPCAsmPrinterPass
should create the right asmprinter subclass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30542 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
		| @@ -26,7 +26,7 @@ class MachineCodeEmitter; | ||||
|  | ||||
| FunctionPass *createPPCBranchSelectionPass(); | ||||
| FunctionPass *createPPCISelDag(PPCTargetMachine &TM); | ||||
| FunctionPass *createDarwinCodePrinterPass(std::ostream &OS, | ||||
| FunctionPass *createPPCAsmPrinterPass(std::ostream &OS, | ||||
|                                       PPCTargetMachine &TM); | ||||
| FunctionPass *createPPCCodeEmitterPass(PPCTargetMachine &TM, | ||||
|                                        MachineCodeEmitter &MCE); | ||||
|   | ||||
| @@ -270,15 +270,6 @@ namespace { | ||||
|   }; | ||||
| } // end of anonymous namespace | ||||
|  | ||||
| /// createDarwinCodePrinterPass - Returns a pass that prints the PPC assembly | ||||
| /// code for a MachineFunction to the given output stream, in a format that the | ||||
| /// Darwin assembler can deal with. | ||||
| /// | ||||
| FunctionPass *llvm::createDarwinCodePrinterPass(std::ostream &o, | ||||
|                                                 PPCTargetMachine &tm) { | ||||
|   return new DarwinAsmPrinter(o, tm, tm.getTargetAsmInfo()); | ||||
| } | ||||
|  | ||||
| // Include the auto-generated portion of the assembly writer | ||||
| #include "PPCGenAsmWriter.inc" | ||||
|  | ||||
| @@ -639,10 +630,20 @@ bool DarwinAsmPrinter::doFinalization(Module &M) { | ||||
|   // implementation of multiple entry points).  If this doesn't occur, the | ||||
|   // linker can safely perform dead code stripping.  Since LLVM never generates | ||||
|   // code that does this, it is always safe to set. | ||||
|   if (Subtarget.isDarwin()) | ||||
|   O << "\t.subsections_via_symbols\n"; | ||||
|  | ||||
|   AsmPrinter::doFinalization(M); | ||||
|   return false; // success | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| /// createDarwinCodePrinterPass - Returns a pass that prints the PPC assembly | ||||
| /// code for a MachineFunction to the given output stream, in a format that the | ||||
| /// Darwin assembler can deal with. | ||||
| /// | ||||
| FunctionPass *llvm::createPPCAsmPrinterPass(std::ostream &o, | ||||
|                                             PPCTargetMachine &tm) { | ||||
|   return new DarwinAsmPrinter(o, tm, tm.getTargetAsmInfo()); | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -122,7 +122,7 @@ bool PPCTargetMachine::addPreEmitPass(FunctionPassManager &PM, bool Fast) { | ||||
|  | ||||
| bool PPCTargetMachine::addAssemblyEmitter(FunctionPassManager &PM, bool Fast,  | ||||
|                                           std::ostream &Out) { | ||||
|   PM.add(createDarwinCodePrinterPass(Out, *this)); | ||||
|   PM.add(createPPCAsmPrinterPass(Out, *this)); | ||||
|   return false; | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user