LLVM: lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9#ifndef LLVM_LIB_TARGET_MIPS_MIPSTARGETSTREAMER_H

10#define LLVM_LIB_TARGET_MIPS_MIPSTARGETSTREAMER_H

11

18

19namespace llvm {

20

22

24public:

26

33

35

41

60

70 virtual void emitMask(unsigned CPUBitmask, int CPUTopSavedRegOff);

71 virtual void emitFMask(unsigned FPUBitmask, int FPUTopSavedRegOff);

72

99

100

108 const MCSymbol &Sym, bool IsReg);

110 bool SaveLocationIsRegister);

111

112

127

130 void emitII(unsigned Opcode, int16_t Imm1, int16_t Imm2, SMLoc IDLoc,

148 int16_t Imm0, int16_t Imm1, int16_t Imm2, SMLoc IDLoc,

157

158

159

160

161

162

163

164

174

178

179

180

181 template

183 ABI = P.getABI();

185 }

186

189 assert(ABI && "ABI hasn't been set!");

190 return *ABI;

191 }

192

193protected:

194 std::optional ABI;

196

200

204

210

211private:

212 bool ModuleDirectiveAllowed;

213};

214

215

218

219public:

221

228

233

252

262 void emitMask(unsigned CPUBitmask, int CPUTopSavedRegOff) override;

263 void emitFMask(unsigned FPUBitmask, int FPUTopSavedRegOff) override;

264

291

292

296

297

298

299

300

301

302

303

307 const MCSymbol &Sym, bool IsReg) override;

309 bool SaveLocationIsRegister) override;

310

311

326};

327

328

330 bool MicroMipsEnabled;

332 bool Pic;

333

334public:

338

340

343 void finish() override;

344

351

356

359

369 void emitMask(unsigned CPUBitmask, int CPUTopSavedRegOff) override;

370 void emitFMask(unsigned FPUBitmask, int FPUTopSavedRegOff) override;

371

372

379 const MCSymbol &Sym, bool IsReg) override;

381 bool SaveLocationIsRegister) override;

382

384};

385}

386#endif

assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")

static bool hasShortDelaySlot(MCInst &Inst)

Base class for the full range of assembler expressions which are needed for parsing.

Instances of this class represent operands of the MCInst class.

Wrapper class representing physical registers. Should be passed by value.

Streaming machine code generation interface.

Generic base class for all target subtargets.

MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...

MCTargetStreamer(MCStreamer &S)

void emitDirectiveSetMips32R3() override

void emitDirectiveSetFp(MipsABIFlagsSection::FpABIKind Value) override

void emitDirectiveSetArch(StringRef Arch) override

void emitDirectiveModuleGINV() override

void emitDirectiveCpsetup(MCRegister Reg, int RegOrOffset, const MCSymbol &Sym, bool IsReg) override

MipsTargetAsmStreamer(MCStreamer &S, formatted_raw_ostream &OS)

void emitDirectiveSetMips5() override

void emitDirectiveSetNoVirt() override

void emitDirectiveSetNoAt() override

void emitDirectiveSetNoCRC() override

void emitDirectiveSetMips32R5() override

void emitDirectiveSetNoMacro() override

void emitDirectiveModuleMT() override

void emitDirectiveSetNoOddSPReg() override

void emitDirectiveCpLocal(MCRegister Reg) override

void emitDirectiveModuleCRC() override

void emitDirectiveEnt(const MCSymbol &Symbol) override

void emitDirectiveSetDspr2() override

void emitDirectiveSetMips1() override

void emitDirectiveSetMips64R2() override

void emitDirectiveSetMips4() override

void emitDirectiveModuleSoftFloat() override

void emitDirectiveSetMips16() override

void emitDirectiveSetMt() override

void emitDirectiveInsn() override

void emitDTPRel64Value(const MCExpr *) override

void emitDirectiveSetMicroMips() override

void emitTPRel64Value(const MCExpr *) override

void emitDirectiveModuleNoCRC() override

void emitDirectiveSetMips32R6() override

bool emitDirectiveCpRestore(int Offset, function_ref< MCRegister()> GetATReg, SMLoc IDLoc, const MCSubtargetInfo *STI) override

Emit a .cprestore directive.

void emitDirectiveCpAdd(MCRegister Reg) override

void emitDirectiveSetNoGINV() override

void emitDirectiveSetMips64R5() override

void emitDirectiveSetMips32() override

void emitDirectiveCpLoad(MCRegister Reg) override

void emitDirectiveSetNoMips3D() override

void emitDirectiveSetPush() override

void emitDirectiveSetNoMips16() override

void emitDirectiveSetNoDsp() override

void emitDirectiveSetMips32R2() override

void emitDirectiveSetMips64() override

void emitFrame(MCRegister StackReg, unsigned StackSize, MCRegister ReturnReg) override

void emitDirectiveModuleHardFloat() override

void emitDirectiveOptionPic0() override

void emitDirectiveSetMacro() override

void emitDirectiveSetCRC() override

void emitDirectiveSetNoReorder() override

void emitDirectiveEnd(StringRef Name) override

void emitDirectiveSetMips64R3() override

void emitFMask(unsigned FPUBitmask, int FPUTopSavedRegOff) override

void emitDirectiveSetNoMt() override

void emitDirectiveAbiCalls() override

void emitDirectiveSetMsa() override

void emitDirectiveOptionPic2() override

void emitMask(unsigned CPUBitmask, int CPUTopSavedRegOff) override

void emitDirectiveModuleVirt() override

void emitDirectiveSetGINV() override

void emitDirectiveSetNoMsa() override

void emitDirectiveCpreturn(unsigned SaveLocation, bool SaveLocationIsRegister) override

void emitDirectiveModuleNoVirt() override

void emitDirectiveNaN2008() override

void emitDirectiveSetPop() override

void emitDTPRel32Value(const MCExpr *) override

void emitDirectiveSetMips3() override

void emitDirectiveSetMips0() override

void emitTPRel32Value(const MCExpr *) override

void emitDirectiveSetHardFloat() override

void emitDirectiveModuleNoGINV() override

void emitDirectiveSetVirt() override

void emitDirectiveModuleFP() override

void emitDirectiveSetMips2() override

void emitDirectiveSetMips3D() override

void emitDirectiveSetAtWithArg(unsigned RegNo) override

void emitDirectiveSetReorder() override

void emitDirectiveNaNLegacy() override

void emitGPRel64Value(const MCExpr *) override

void emitDirectiveSetMips64R6() override

void emitDirectiveSetSoftFloat() override

void emitDirectiveSetNoMicroMips() override

void emitGPRel32Value(const MCExpr *) override

void emitDirectiveSetAt() override

void emitDirectiveSetOddSPReg() override

void emitDirectiveModuleOddSPReg() override

void emitDirectiveSetDsp() override

bool emitDirectiveCpRestore(int Offset, function_ref< MCRegister()> GetATReg, SMLoc IDLoc, const MCSubtargetInfo *STI) override

void emitDTPRel32Value(const MCExpr *) override

void setPic(bool Value) override

Definition MipsTargetStreamer.h:339

MipsTargetELFStreamer(MCStreamer &S, const MCSubtargetInfo &STI)

void emitDirectiveNaN2008() override

void emitDirectiveSetNoMicroMips() override

void emitGPRel64Value(const MCExpr *) override

void emitDirectiveInsn() override

void setUsesMicroMips() override

void emitDirectiveOptionPic2() override

void emitGPRel32Value(const MCExpr *) override

bool isMicroMipsEnabled() const

Definition MipsTargetStreamer.h:335

void emitDirectiveEnd(StringRef Name) override

void emitFrame(MCRegister StackReg, unsigned StackSize, MCRegister ReturnReg) override

void emitDirectiveCpsetup(MCRegister Reg, int RegOrOffset, const MCSymbol &Sym, bool IsReg) override

void emitDirectiveCpAdd(MCRegister Reg) override

void emitDirectiveCpLocal(MCRegister Reg) override

void emitTPRel64Value(const MCExpr *) override

void emitDirectiveSetMicroMips() override

void emitLabel(MCSymbol *Symbol) override

void emitTPRel32Value(const MCExpr *) override

void emitDTPRel64Value(const MCExpr *) override

void emitMask(unsigned CPUBitmask, int CPUTopSavedRegOff) override

void emitDirectiveAbiCalls() override

void emitFMask(unsigned FPUBitmask, int FPUTopSavedRegOff) override

void emitDirectiveCpLoad(MCRegister Reg) override

void emitAssignment(MCSymbol *Symbol, const MCExpr *Value) override

void emitDirectiveCpreturn(unsigned SaveLocation, bool SaveLocationIsRegister) override

void emitDirectiveSetMips16() override

void emitDirectiveOptionPic0() override

void emitDirectiveEnt(const MCSymbol &Symbol) override

void emitDirectiveSetNoReorder() override

void emitDirectiveNaNLegacy() override

MCELFStreamer & getStreamer()

std::optional< MipsABIInfo > ABI

Definition MipsTargetStreamer.h:194

virtual void emitDirectiveSetMips64R5()

virtual void emitDirectiveSetAt()

unsigned FPRBitMask

Definition MipsTargetStreamer.h:202

virtual void emitDirectiveModuleNoVirt()

void emitRRX(unsigned Opcode, MCRegister Reg0, MCRegister Reg1, MCOperand Op2, SMLoc IDLoc, const MCSubtargetInfo *STI)

virtual void emitDirectiveSetReorder()

virtual void emitDirectiveSetNoCRC()

virtual void emitFrame(MCRegister StackReg, unsigned StackSize, MCRegister ReturnReg)

void emitRRRX(unsigned Opcode, MCRegister Reg0, MCRegister Reg1, MCRegister Reg2, MCOperand Op3, SMLoc IDLoc, const MCSubtargetInfo *STI)

MCRegister GPReg

Definition MipsTargetStreamer.h:208

void reallowModuleDirective()

Definition MipsTargetStreamer.h:176

virtual void emitDirectiveModuleNoGINV()

int FrameOffset

Definition MipsTargetStreamer.h:206

virtual void emitDirectiveCpLoad(MCRegister Reg)

virtual void emitDirectiveSetSoftFloat()

virtual void emitDirectiveSetNoDsp()

void forbidModuleDirective()

Definition MipsTargetStreamer.h:175

virtual void emitDirectiveCpreturn(unsigned SaveLocation, bool SaveLocationIsRegister)

virtual void emitGPRel32Value(const MCExpr *)

virtual void emitDirectiveSetNoMicroMips()

void emitRX(unsigned Opcode, MCRegister Reg0, MCOperand Op1, SMLoc IDLoc, const MCSubtargetInfo *STI)

virtual void emitDirectiveSetDspr2()

virtual void emitDirectiveNaN2008()

virtual void emitDirectiveSetMips64R2()

virtual void emitDirectiveSetMips3D()

virtual void emitDirectiveEnd(StringRef Name)

virtual void emitDirectiveSetFp(MipsABIFlagsSection::FpABIKind Value)

virtual void emitDirectiveSetCRC()

virtual void emitTPRel64Value(const MCExpr *)

virtual void emitDirectiveSetMips64R3()

virtual void emitDirectiveSetNoVirt()

virtual void emitDirectiveSetGINV()

virtual void emitDirectiveSetMacro()

virtual void emitDirectiveSetMips3()

void emitR(unsigned Opcode, MCRegister Reg0, SMLoc IDLoc, const MCSubtargetInfo *STI)

virtual void emitDirectiveSetNoGINV()

virtual void setUsesMicroMips()

virtual void emitDirectiveSetMips32R3()

virtual void emitDirectiveSetMips32R2()

void emitRRI(unsigned Opcode, MCRegister Reg0, MCRegister Reg1, int16_t Imm, SMLoc IDLoc, const MCSubtargetInfo *STI)

virtual void emitDirectiveEnt(const MCSymbol &Symbol)

bool GPRInfoSet

Definition MipsTargetStreamer.h:197

virtual void emitDirectiveSetMips1()

virtual void emitDirectiveSetDsp()

virtual void emitDirectiveSetNoMips3D()

void emitLoadWithImmOffset(unsigned Opcode, MCRegister DstReg, MCRegister BaseReg, int64_t Offset, MCRegister TmpReg, SMLoc IDLoc, const MCSubtargetInfo *STI)

Emit a load instruction with an immediate offset.

virtual void emitDirectiveSetHardFloat()

void emitEmptyDelaySlot(bool hasShortDelaySlot, SMLoc IDLoc, const MCSubtargetInfo *STI)

void emitAddu(MCRegister DstReg, MCRegister SrcReg, MCRegister TrgReg, bool Is64Bit, const MCSubtargetInfo *STI)

void emitRI(unsigned Opcode, MCRegister Reg0, int32_t Imm, SMLoc IDLoc, const MCSubtargetInfo *STI)

virtual void emitTPRel32Value(const MCExpr *)

virtual void emitDirectiveSetNoMips16()

virtual void emitDirectiveSetMips5()

virtual void emitDirectiveSetMips2()

virtual void emitDirectiveSetPush()

int GPROffset

Definition MipsTargetStreamer.h:199

virtual void emitDirectiveSetMt()

bool isModuleDirectiveAllowed()

Definition MipsTargetStreamer.h:177

unsigned ReturnReg

Definition MipsTargetStreamer.h:209

virtual void setPic(bool Value)

Definition MipsTargetStreamer.h:34

virtual void emitDirectiveSetNoOddSPReg()

virtual void emitGPRel64Value(const MCExpr *)

void emitII(unsigned Opcode, int16_t Imm1, int16_t Imm2, SMLoc IDLoc, const MCSubtargetInfo *STI)

void emitRR(unsigned Opcode, MCRegister Reg0, MCRegister Reg1, SMLoc IDLoc, const MCSubtargetInfo *STI)

virtual void emitDirectiveSetOddSPReg()

virtual void emitDirectiveSetNoMt()

virtual bool emitDirectiveCpRestore(int Offset, function_ref< MCRegister()> GetATReg, SMLoc IDLoc, const MCSubtargetInfo *STI)

bool FPRInfoSet

Definition MipsTargetStreamer.h:201

virtual void emitDirectiveModuleCRC()

virtual void emitDirectiveModuleGINV()

virtual void emitDirectiveSetNoAt()

void updateABIInfo(const PredicateLibrary &P)

Definition MipsTargetStreamer.h:182

virtual void emitDirectiveNaNLegacy()

virtual void emitMask(unsigned CPUBitmask, int CPUTopSavedRegOff)

virtual void emitDirectiveCpsetup(MCRegister Reg, int RegOrOffset, const MCSymbol &Sym, bool IsReg)

void emitRRIII(unsigned Opcode, MCRegister Reg0, MCRegister Reg1, int16_t Imm0, int16_t Imm1, int16_t Imm2, SMLoc IDLoc, const MCSubtargetInfo *STI)

virtual void emitDirectiveSetPop()

virtual void emitDirectiveSetMicroMips()

virtual void emitDirectiveSetMips0()

virtual void emitDTPRel64Value(const MCExpr *)

virtual void emitDirectiveModuleSoftFloat()

virtual void emitDirectiveSetArch(StringRef Arch)

virtual void emitDTPRel32Value(const MCExpr *)

virtual void emitDirectiveCpAdd(MCRegister Reg)

virtual void emitDirectiveSetAtWithArg(unsigned RegNo)

virtual void emitDirectiveModuleNoCRC()

virtual void emitDirectiveSetNoMacro()

void emitDSLL(MCRegister DstReg, MCRegister SrcReg, int16_t ShiftAmount, SMLoc IDLoc, const MCSubtargetInfo *STI)

const MipsABIInfo & getABI() const

Definition MipsTargetStreamer.h:188

virtual void emitDirectiveModuleOddSPReg()

virtual void emitDirectiveInsn()

unsigned GPRBitMask

Definition MipsTargetStreamer.h:198

virtual void emitDirectiveSetMips64R6()

virtual void emitDirectiveSetNoMsa()

virtual void emitDirectiveSetVirt()

bool FrameInfoSet

Definition MipsTargetStreamer.h:205

void emitGPRestore(int Offset, SMLoc IDLoc, const MCSubtargetInfo *STI)

Emit the $gp restore operation for .cprestore.

MipsTargetStreamer(MCStreamer &S)

virtual void emitFMask(unsigned FPUBitmask, int FPUTopSavedRegOff)

virtual void emitDirectiveModuleVirt()

void emitNop(SMLoc IDLoc, const MCSubtargetInfo *STI)

void emitRRR(unsigned Opcode, MCRegister Reg0, MCRegister Reg1, MCRegister Reg2, SMLoc IDLoc, const MCSubtargetInfo *STI)

virtual void emitDirectiveSetNoReorder()

MipsABIFlagsSection & getABIFlagsSection()

Definition MipsTargetStreamer.h:187

void emitStoreWithImmOffset(unsigned Opcode, MCRegister SrcReg, MCRegister BaseReg, int64_t Offset, function_ref< MCRegister()> GetATReg, SMLoc IDLoc, const MCSubtargetInfo *STI)

Emit a store instruction with an offset.

virtual void emitDirectiveSetMips32()

virtual void emitDirectiveOptionPic0()

int FPROffset

Definition MipsTargetStreamer.h:203

virtual void emitDirectiveModuleMT()

virtual void emitDirectiveModuleHardFloat()

virtual void emitDirectiveSetMips32R5()

virtual void emitDirectiveSetMsa()

virtual void emitDirectiveSetMips32R6()

virtual void emitDirectiveSetMips4()

virtual void emitDirectiveOptionPic2()

unsigned FrameReg

Definition MipsTargetStreamer.h:207

virtual void emitDirectiveCpLocal(MCRegister Reg)

virtual void emitDirectiveSetMips16()

virtual void emitDirectiveSetMips64()

virtual void emitDirectiveAbiCalls()

virtual void emitDirectiveModuleFP()

MipsABIFlagsSection ABIFlagsSection

Definition MipsTargetStreamer.h:195

Represents a location in source code.

StringRef - Represent a constant reference to a string, i.e.

LLVM Value Representation.

formatted_raw_ostream - A raw_ostream that wraps another one and keeps track of line and column posit...

An efficient, type-erasing, non-owning reference to a callable.

This is an optimization pass for GlobalISel generic memory operations.