mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-02-11 04:06:20 +00:00
Revert "[NFC][MC] remove unused argument MCRegisterInfo
in MCCodeEmitter
"
This reverts commit fe25c06cc5bdc2ef9427309f8ec1434aad69dc7a.
This commit is contained in:
parent
fe25c06cc5
commit
9cc49c1951
@ -1192,14 +1192,14 @@ public:
|
||||
/*PIC=*/!HasFixedLoadAddress));
|
||||
MCEInstance.LocalCtx->setObjectFileInfo(MCEInstance.LocalMOFI.get());
|
||||
MCEInstance.MCE.reset(
|
||||
TheTarget->createMCCodeEmitter(*MII, *MCEInstance.LocalCtx));
|
||||
TheTarget->createMCCodeEmitter(*MII, *MRI, *MCEInstance.LocalCtx));
|
||||
return MCEInstance;
|
||||
}
|
||||
|
||||
/// Creating MCStreamer instance.
|
||||
std::unique_ptr<MCStreamer>
|
||||
createStreamer(llvm::raw_pwrite_stream &OS) const {
|
||||
MCCodeEmitter *MCE = TheTarget->createMCCodeEmitter(*MII, *Ctx);
|
||||
MCCodeEmitter *MCE = TheTarget->createMCCodeEmitter(*MII, *MRI, *Ctx);
|
||||
MCAsmBackend *MAB =
|
||||
TheTarget->createMCAsmBackend(*STI, *MRI, MCTargetOptions());
|
||||
std::unique_ptr<MCObjectWriter> OW = MAB->createObjectWriter(OS);
|
||||
|
@ -223,7 +223,7 @@ BinaryContext::createBinaryContext(const ObjectFile *File, bool IsPIC,
|
||||
InstructionPrinter->setPrintImmHex(true);
|
||||
|
||||
std::unique_ptr<MCCodeEmitter> MCE(
|
||||
TheTarget->createMCCodeEmitter(*MII, *Ctx));
|
||||
TheTarget->createMCCodeEmitter(*MII, *MRI, *Ctx));
|
||||
|
||||
// Make sure we don't miss any output on core dumps.
|
||||
outs().SetUnbuffered();
|
||||
|
@ -455,7 +455,7 @@ static bool ExecuteAssemblerImpl(AssemblerInvocation &Opts,
|
||||
|
||||
std::unique_ptr<MCCodeEmitter> CE;
|
||||
if (Opts.ShowEncoding)
|
||||
CE.reset(TheTarget->createMCCodeEmitter(*MCII, Ctx));
|
||||
CE.reset(TheTarget->createMCCodeEmitter(*MCII, *MRI, Ctx));
|
||||
std::unique_ptr<MCAsmBackend> MAB(
|
||||
TheTarget->createMCAsmBackend(*STI, *MRI, MCOptions));
|
||||
|
||||
@ -475,7 +475,7 @@ static bool ExecuteAssemblerImpl(AssemblerInvocation &Opts,
|
||||
}
|
||||
|
||||
std::unique_ptr<MCCodeEmitter> CE(
|
||||
TheTarget->createMCCodeEmitter(*MCII, Ctx));
|
||||
TheTarget->createMCCodeEmitter(*MCII, *MRI, Ctx));
|
||||
std::unique_ptr<MCAsmBackend> MAB(
|
||||
TheTarget->createMCAsmBackend(*STI, *MRI, MCOptions));
|
||||
assert(MAB && "Unable to create asm backend!");
|
||||
|
@ -175,6 +175,7 @@ public:
|
||||
const MCInstrInfo &MII,
|
||||
const MCRegisterInfo &MRI);
|
||||
using MCCodeEmitterCtorTy = MCCodeEmitter *(*)(const MCInstrInfo &II,
|
||||
const MCRegisterInfo &MRI,
|
||||
MCContext &Ctx);
|
||||
using ELFStreamerCtorTy =
|
||||
MCStreamer *(*)(const Triple &T, MCContext &Ctx,
|
||||
@ -505,10 +506,11 @@ public:
|
||||
|
||||
/// createMCCodeEmitter - Create a target specific code emitter.
|
||||
MCCodeEmitter *createMCCodeEmitter(const MCInstrInfo &II,
|
||||
const MCRegisterInfo &MRI,
|
||||
MCContext &Ctx) const {
|
||||
if (!MCCodeEmitterCtorFn)
|
||||
return nullptr;
|
||||
return MCCodeEmitterCtorFn(II, Ctx);
|
||||
return MCCodeEmitterCtorFn(II, MRI, Ctx);
|
||||
}
|
||||
|
||||
/// Create a target specific MCStreamer.
|
||||
@ -1358,6 +1360,7 @@ template <class MCCodeEmitterImpl> struct RegisterMCCodeEmitter {
|
||||
|
||||
private:
|
||||
static MCCodeEmitter *Allocator(const MCInstrInfo & /*II*/,
|
||||
const MCRegisterInfo & /*MRI*/,
|
||||
MCContext & /*Ctx*/) {
|
||||
return new MCCodeEmitterImpl();
|
||||
}
|
||||
|
@ -165,7 +165,7 @@ Expected<std::unique_ptr<MCStreamer>> LLVMTargetMachine::createMCStreamer(
|
||||
// Create a code emitter if asked to show the encoding.
|
||||
std::unique_ptr<MCCodeEmitter> MCE;
|
||||
if (Options.MCOptions.ShowMCEncoding)
|
||||
MCE.reset(getTarget().createMCCodeEmitter(MII, Context));
|
||||
MCE.reset(getTarget().createMCCodeEmitter(MII, MRI, Context));
|
||||
|
||||
std::unique_ptr<MCAsmBackend> MAB(
|
||||
getTarget().createMCAsmBackend(STI, MRI, Options.MCOptions));
|
||||
@ -180,7 +180,7 @@ Expected<std::unique_ptr<MCStreamer>> LLVMTargetMachine::createMCStreamer(
|
||||
case CGFT_ObjectFile: {
|
||||
// Create the code emitter for the target if it exists. If not, .o file
|
||||
// emission fails.
|
||||
MCCodeEmitter *MCE = getTarget().createMCCodeEmitter(MII, Context);
|
||||
MCCodeEmitter *MCE = getTarget().createMCCodeEmitter(MII, MRI, Context);
|
||||
if (!MCE)
|
||||
return make_error<StringError>("createMCCodeEmitter failed",
|
||||
inconvertibleErrorCode());
|
||||
@ -260,7 +260,8 @@ bool LLVMTargetMachine::addPassesToEmitMC(PassManagerBase &PM, MCContext *&Ctx,
|
||||
// emission fails.
|
||||
const MCSubtargetInfo &STI = *getMCSubtargetInfo();
|
||||
const MCRegisterInfo &MRI = *getMCRegisterInfo();
|
||||
MCCodeEmitter *MCE = getTarget().createMCCodeEmitter(*getMCInstrInfo(), *Ctx);
|
||||
MCCodeEmitter *MCE =
|
||||
getTarget().createMCCodeEmitter(*getMCInstrInfo(), MRI, *Ctx);
|
||||
MCAsmBackend *MAB =
|
||||
getTarget().createMCAsmBackend(STI, MRI, Options.MCOptions);
|
||||
if (!MCE || !MAB)
|
||||
|
@ -68,7 +68,7 @@ bool DwarfStreamer::init(Triple TheTriple,
|
||||
if (!MII)
|
||||
return error("no instr info info for target " + TripleName, Context), false;
|
||||
|
||||
MCE = TheTarget->createMCCodeEmitter(*MII, *MC);
|
||||
MCE = TheTarget->createMCCodeEmitter(*MII, *MRI, *MC);
|
||||
if (!MCE)
|
||||
return error("no code emitter for target " + TripleName, Context), false;
|
||||
|
||||
|
@ -304,6 +304,7 @@ unsigned LanaiMCCodeEmitter::getBranchTargetOpValue(
|
||||
|
||||
llvm::MCCodeEmitter *
|
||||
llvm::createLanaiMCCodeEmitter(const MCInstrInfo &InstrInfo,
|
||||
const MCRegisterInfo & /*MRI*/,
|
||||
MCContext &context) {
|
||||
return new LanaiMCCodeEmitter(InstrInfo, context);
|
||||
}
|
||||
|
@ -94,6 +94,7 @@ private:
|
||||
} // end anonymous namespace
|
||||
|
||||
MCCodeEmitter *llvm::createRISCVMCCodeEmitter(const MCInstrInfo &MCII,
|
||||
const MCRegisterInfo &MRI,
|
||||
MCContext &Ctx) {
|
||||
return new RISCVMCCodeEmitter(Ctx, MCII);
|
||||
}
|
||||
|
@ -29,6 +29,7 @@ class MCSubtargetInfo;
|
||||
class Target;
|
||||
|
||||
MCCodeEmitter *createRISCVMCCodeEmitter(const MCInstrInfo &MCII,
|
||||
const MCRegisterInfo &MRI,
|
||||
MCContext &Ctx);
|
||||
|
||||
MCAsmBackend *createRISCVAsmBackend(const Target &T, const MCSubtargetInfo &STI,
|
||||
|
@ -1843,6 +1843,7 @@ void X86MCCodeEmitter::encodeInstruction(const MCInst &MI, raw_ostream &OS,
|
||||
}
|
||||
|
||||
MCCodeEmitter *llvm::createX86MCCodeEmitter(const MCInstrInfo &MCII,
|
||||
const MCRegisterInfo &MRI,
|
||||
MCContext &Ctx) {
|
||||
return new X86MCCodeEmitter(MCII, Ctx);
|
||||
}
|
||||
|
@ -70,6 +70,7 @@ MCSubtargetInfo *createX86MCSubtargetInfo(const Triple &TT, StringRef CPU,
|
||||
}
|
||||
|
||||
MCCodeEmitter *createX86MCCodeEmitter(const MCInstrInfo &MCII,
|
||||
const MCRegisterInfo &MRI,
|
||||
MCContext &Ctx);
|
||||
|
||||
MCAsmBackend *createX86_32AsmBackend(const Target &T,
|
||||
|
@ -60,7 +60,8 @@ bool X86AsmPrinter::runOnMachineFunction(MachineFunction &MF) {
|
||||
|
||||
SMShadowTracker.startFunction(MF);
|
||||
CodeEmitter.reset(TM.getTarget().createMCCodeEmitter(
|
||||
*Subtarget->getInstrInfo(), MF.getContext()));
|
||||
*Subtarget->getInstrInfo(), *Subtarget->getRegisterInfo(),
|
||||
MF.getContext()));
|
||||
|
||||
EmitFPOData =
|
||||
Subtarget->isTargetWin32() && MF.getMMI().getModule()->getCodeViewFlag();
|
||||
|
@ -165,7 +165,7 @@ int main(int argc, char **argv) {
|
||||
if (!MII)
|
||||
return error("no instr info info for target " + TripleName, Context);
|
||||
|
||||
MCCodeEmitter *MCE = TheTarget->createMCCodeEmitter(*MII, MC);
|
||||
MCCodeEmitter *MCE = TheTarget->createMCCodeEmitter(*MII, *MRI, MC);
|
||||
if (!MCE)
|
||||
return error("no code emitter for target " + TripleName, Context);
|
||||
|
||||
|
@ -67,7 +67,8 @@ bool LLVMState::canAssemble(const MCInst &Inst) const {
|
||||
TheTargetMachine->getMCSubtargetInfo());
|
||||
std::unique_ptr<const MCCodeEmitter> CodeEmitter(
|
||||
TheTargetMachine->getTarget().createMCCodeEmitter(
|
||||
*TheTargetMachine->getMCInstrInfo(), Context));
|
||||
*TheTargetMachine->getMCInstrInfo(), *TheTargetMachine->getMCRegisterInfo(),
|
||||
Context));
|
||||
assert(CodeEmitter && "unable to create code emitter");
|
||||
SmallVector<char, 16> Tmp;
|
||||
raw_svector_ostream OS(Tmp);
|
||||
|
@ -229,7 +229,7 @@ int AssembleOneInput(const uint8_t *Data, size_t Size) {
|
||||
OS = BOS.get();
|
||||
}
|
||||
|
||||
MCCodeEmitter *CE = TheTarget->createMCCodeEmitter(*MCII, Ctx);
|
||||
MCCodeEmitter *CE = TheTarget->createMCCodeEmitter(*MCII, *MRI, Ctx);
|
||||
MCAsmBackend *MAB = TheTarget->createMCAsmBackend(*STI, *MRI, MCOptions);
|
||||
Str.reset(TheTarget->createMCObjectStreamer(
|
||||
TheTriple, Ctx, std::unique_ptr<MCAsmBackend>(MAB),
|
||||
|
@ -541,7 +541,7 @@ int main(int argc, char **argv) {
|
||||
// Set up the AsmStreamer.
|
||||
std::unique_ptr<MCCodeEmitter> CE;
|
||||
if (ShowEncoding)
|
||||
CE.reset(TheTarget->createMCCodeEmitter(*MCII, Ctx));
|
||||
CE.reset(TheTarget->createMCCodeEmitter(*MCII, *MRI, Ctx));
|
||||
|
||||
std::unique_ptr<MCAsmBackend> MAB(
|
||||
TheTarget->createMCAsmBackend(*STI, *MRI, MCOptions));
|
||||
@ -561,7 +561,7 @@ int main(int argc, char **argv) {
|
||||
OS = BOS.get();
|
||||
}
|
||||
|
||||
MCCodeEmitter *CE = TheTarget->createMCCodeEmitter(*MCII, Ctx);
|
||||
MCCodeEmitter *CE = TheTarget->createMCCodeEmitter(*MCII, *MRI, Ctx);
|
||||
MCAsmBackend *MAB = TheTarget->createMCAsmBackend(*STI, *MRI, MCOptions);
|
||||
Str.reset(TheTarget->createMCObjectStreamer(
|
||||
TheTriple, Ctx, std::unique_ptr<MCAsmBackend>(MAB),
|
||||
|
@ -479,7 +479,7 @@ int main(int argc, char **argv) {
|
||||
unsigned RegionIdx = 0;
|
||||
|
||||
std::unique_ptr<MCCodeEmitter> MCE(
|
||||
TheTarget->createMCCodeEmitter(*MCII, Ctx));
|
||||
TheTarget->createMCCodeEmitter(*MCII, *MRI, Ctx));
|
||||
assert(MCE && "Unable to create code emitter!");
|
||||
|
||||
std::unique_ptr<MCAsmBackend> MAB(TheTarget->createMCAsmBackend(
|
||||
|
@ -377,7 +377,7 @@ int main(int Argc, char **Argv) {
|
||||
// Set up the AsmStreamer.
|
||||
std::unique_ptr<MCCodeEmitter> CE;
|
||||
if (InputArgs.hasArg(OPT_show_encoding))
|
||||
CE.reset(TheTarget->createMCCodeEmitter(*MCII, Ctx));
|
||||
CE.reset(TheTarget->createMCCodeEmitter(*MCII, *MRI, Ctx));
|
||||
|
||||
std::unique_ptr<MCAsmBackend> MAB(
|
||||
TheTarget->createMCAsmBackend(*STI, *MRI, MCOptions));
|
||||
@ -395,7 +395,7 @@ int main(int Argc, char **Argv) {
|
||||
OS = BOS.get();
|
||||
}
|
||||
|
||||
MCCodeEmitter *CE = TheTarget->createMCCodeEmitter(*MCII, Ctx);
|
||||
MCCodeEmitter *CE = TheTarget->createMCCodeEmitter(*MCII, *MRI, Ctx);
|
||||
MCAsmBackend *MAB = TheTarget->createMCAsmBackend(*STI, *MRI, MCOptions);
|
||||
Str.reset(TheTarget->createMCObjectStreamer(
|
||||
TheTriple, Ctx, std::unique_ptr<MCAsmBackend>(MAB),
|
||||
|
@ -106,7 +106,7 @@ DWARFExpressionCopyBytesTest::createStreamer(raw_pwrite_stream &OS) {
|
||||
Res.Ctx->setObjectFileInfo(Res.MOFI.get());
|
||||
|
||||
Res.MII.reset(TheTarget->createMCInstrInfo());
|
||||
MCCodeEmitter *MCE = TheTarget->createMCCodeEmitter(*Res.MII, *Res.Ctx);
|
||||
MCCodeEmitter *MCE = TheTarget->createMCCodeEmitter(*Res.MII, *MRI, *Res.Ctx);
|
||||
MCAsmBackend *MAB =
|
||||
TheTarget->createMCAsmBackend(*STI, *MRI, MCTargetOptions());
|
||||
std::unique_ptr<MCObjectWriter> OW = MAB->createObjectWriter(OS);
|
||||
|
@ -464,7 +464,7 @@ llvm::Error dwarfgen::Generator::init(Triple TheTriple, uint16_t V) {
|
||||
TLOF->Initialize(*MC, *TM);
|
||||
MC->setObjectFileInfo(TLOF);
|
||||
|
||||
MCE = TheTarget->createMCCodeEmitter(*MII, *MC);
|
||||
MCE = TheTarget->createMCCodeEmitter(*MII, *MRI, *MC);
|
||||
if (!MCE)
|
||||
return make_error<StringError>("no code emitter for target " + TripleName,
|
||||
inconvertibleErrorCode());
|
||||
|
@ -77,7 +77,8 @@ public:
|
||||
Res.Ctx->setObjectFileInfo(Res.MOFI.get());
|
||||
|
||||
Res.MII.reset(TheTarget->createMCInstrInfo());
|
||||
MCCodeEmitter *MCE = TheTarget->createMCCodeEmitter(*Res.MII, *Res.Ctx);
|
||||
MCCodeEmitter *MCE =
|
||||
TheTarget->createMCCodeEmitter(*Res.MII, *MRI, *Res.Ctx);
|
||||
MCAsmBackend *MAB =
|
||||
TheTarget->createMCAsmBackend(*STI, *MRI, MCTargetOptions());
|
||||
std::unique_ptr<MCObjectWriter> OW = MAB->createObjectWriter(OS);
|
||||
|
@ -377,7 +377,7 @@ SerializeToHsacoPass::assembleIsa(const std::string &isa) {
|
||||
std::unique_ptr<llvm::MCStreamer> mcStreamer;
|
||||
std::unique_ptr<llvm::MCInstrInfo> mcii(target->createMCInstrInfo());
|
||||
|
||||
llvm::MCCodeEmitter *ce = target->createMCCodeEmitter(*mcii, ctx);
|
||||
llvm::MCCodeEmitter *ce = target->createMCCodeEmitter(*mcii, *mri, ctx);
|
||||
llvm::MCAsmBackend *mab = target->createMCAsmBackend(*sti, *mri, mcOptions);
|
||||
mcStreamer.reset(target->createMCObjectStreamer(
|
||||
triple, ctx, std::unique_ptr<llvm::MCAsmBackend>(mab),
|
||||
|
Loading…
x
Reference in New Issue
Block a user