mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
Change TargetAsmInfo to be constructed via TargetRegistry from a Target+Triple
pair instead of from a virtual method on TargetMachine. This cuts the final ties of TargetAsmInfo to TargetMachine, meaning that MC can now use TargetAsmInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78802 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -20,17 +20,25 @@
|
||||
#include "llvm/Support/FormattedStream.h"
|
||||
using namespace llvm;
|
||||
|
||||
static const TargetAsmInfo *createTargetAsmInfo(const Target &T,
|
||||
const StringRef &TT) {
|
||||
Triple TheTriple(TT);
|
||||
bool isPPC64 = TheTriple.getArch() == Triple::ppc64;
|
||||
if (TheTriple.getOS() == Triple::Darwin)
|
||||
return new PPCDarwinTargetAsmInfo(isPPC64);
|
||||
return new PPCLinuxTargetAsmInfo(isPPC64);
|
||||
|
||||
}
|
||||
|
||||
extern "C" void LLVMInitializePowerPCTarget() {
|
||||
// Register the targets
|
||||
RegisterTargetMachine<PPC32TargetMachine> A(ThePPC32Target);
|
||||
RegisterTargetMachine<PPC64TargetMachine> B(ThePPC64Target);
|
||||
|
||||
RegisterAsmInfoFn C(ThePPC32Target, createTargetAsmInfo);
|
||||
RegisterAsmInfoFn D(ThePPC64Target, createTargetAsmInfo);
|
||||
}
|
||||
|
||||
const TargetAsmInfo *PPCTargetMachine::createTargetAsmInfo() const {
|
||||
if (Subtarget.isDarwin())
|
||||
return new PPCDarwinTargetAsmInfo(Subtarget.isPPC64());
|
||||
return new PPCLinuxTargetAsmInfo(Subtarget.isPPC64());
|
||||
}
|
||||
|
||||
PPCTargetMachine::PPCTargetMachine(const Target &T, const std::string &TT,
|
||||
const std::string &FS, bool is64Bit)
|
||||
|
Reference in New Issue
Block a user