mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-21 08:17:40 +00:00
Eliminate asm parser's dependency on TargetMachine:
- Each target asm parser now creates its own MCSubtatgetInfo (if needed). - Changed AssemblerPredicate to take subtarget features which tablegen uses to generate asm matcher subtarget feature queries. e.g. "ModeThumb,FeatureThumb2" is translated to "(Bits & ModeThumb) != 0 && (Bits & FeatureThumb2) != 0". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134678 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -98,10 +98,10 @@ static cl::opt<cl::boolOrDefault>
|
||||
EnableFastISelOption("fast-isel", cl::Hidden,
|
||||
cl::desc("Enable the \"fast\" instruction selector"));
|
||||
|
||||
LLVMTargetMachine::LLVMTargetMachine(const Target &T,
|
||||
const std::string &Triple)
|
||||
: TargetMachine(T), TargetTriple(Triple) {
|
||||
AsmInfo = T.createAsmInfo(TargetTriple);
|
||||
LLVMTargetMachine::LLVMTargetMachine(const Target &T, StringRef Triple,
|
||||
StringRef CPU, StringRef FS)
|
||||
: TargetMachine(T, Triple, CPU, FS) {
|
||||
AsmInfo = T.createAsmInfo(Triple);
|
||||
}
|
||||
|
||||
// Set the default code model for the JIT for a generic target.
|
||||
@@ -143,7 +143,7 @@ bool LLVMTargetMachine::addPassesToEmitFile(PassManagerBase &PM,
|
||||
TargetAsmBackend *TAB = 0;
|
||||
if (ShowMCEncoding) {
|
||||
MCE = getTarget().createCodeEmitter(*this, *Context);
|
||||
TAB = getTarget().createAsmBackend(TargetTriple);
|
||||
TAB = getTarget().createAsmBackend(getTargetTriple());
|
||||
}
|
||||
|
||||
MCStreamer *S = getTarget().createAsmStreamer(*Context, Out,
|
||||
@@ -160,12 +160,12 @@ bool LLVMTargetMachine::addPassesToEmitFile(PassManagerBase &PM,
|
||||
// Create the code emitter for the target if it exists. If not, .o file
|
||||
// emission fails.
|
||||
MCCodeEmitter *MCE = getTarget().createCodeEmitter(*this, *Context);
|
||||
TargetAsmBackend *TAB = getTarget().createAsmBackend(TargetTriple);
|
||||
TargetAsmBackend *TAB = getTarget().createAsmBackend(getTargetTriple());
|
||||
if (MCE == 0 || TAB == 0)
|
||||
return true;
|
||||
|
||||
AsmStreamer.reset(getTarget().createObjectStreamer(TargetTriple, *Context,
|
||||
*TAB, Out, MCE,
|
||||
AsmStreamer.reset(getTarget().createObjectStreamer(getTargetTriple(),
|
||||
*Context, *TAB, Out, MCE,
|
||||
hasMCRelaxAll(),
|
||||
hasMCNoExecStack()));
|
||||
AsmStreamer.get()->InitSections();
|
||||
@@ -241,12 +241,12 @@ bool LLVMTargetMachine::addPassesToEmitMC(PassManagerBase &PM,
|
||||
// Create the code emitter for the target if it exists. If not, .o file
|
||||
// emission fails.
|
||||
MCCodeEmitter *MCE = getTarget().createCodeEmitter(*this, *Ctx);
|
||||
TargetAsmBackend *TAB = getTarget().createAsmBackend(TargetTriple);
|
||||
TargetAsmBackend *TAB = getTarget().createAsmBackend(getTargetTriple());
|
||||
if (MCE == 0 || TAB == 0)
|
||||
return true;
|
||||
|
||||
OwningPtr<MCStreamer> AsmStreamer;
|
||||
AsmStreamer.reset(getTarget().createObjectStreamer(TargetTriple, *Ctx,
|
||||
AsmStreamer.reset(getTarget().createObjectStreamer(getTargetTriple(), *Ctx,
|
||||
*TAB, Out, MCE,
|
||||
hasMCRelaxAll(),
|
||||
hasMCNoExecStack()));
|
||||
|
||||
Reference in New Issue
Block a user