diff options
Diffstat (limited to 'lib/Target/Mips/MipsTargetStreamer.h')
-rw-r--r-- | lib/Target/Mips/MipsTargetStreamer.h | 71 |
1 files changed, 52 insertions, 19 deletions
diff --git a/lib/Target/Mips/MipsTargetStreamer.h b/lib/Target/Mips/MipsTargetStreamer.h index 99f7d4c..c1f17933 100644 --- a/lib/Target/Mips/MipsTargetStreamer.h +++ b/lib/Target/Mips/MipsTargetStreamer.h @@ -7,10 +7,11 @@ // //===----------------------------------------------------------------------===// -#ifndef MIPSTARGETSTREAMER_H -#define MIPSTARGETSTREAMER_H +#ifndef LLVM_LIB_TARGET_MIPS_MIPSTARGETSTREAMER_H +#define LLVM_LIB_TARGET_MIPS_MIPSTARGETSTREAMER_H #include "llvm/MC/MCELFStreamer.h" +#include "llvm/MC/MCRegisterInfo.h" #include "llvm/MC/MCStreamer.h" #include "MCTargetDesc/MipsABIFlagsSection.h" @@ -30,6 +31,8 @@ public: virtual void emitDirectiveSetNoReorder(); virtual void emitDirectiveSetMacro(); virtual void emitDirectiveSetNoMacro(); + virtual void emitDirectiveSetMsa(); + virtual void emitDirectiveSetNoMsa(); virtual void emitDirectiveSetAt(); virtual void emitDirectiveSetNoAt(); virtual void emitDirectiveEnd(StringRef Name); @@ -45,13 +48,26 @@ public: virtual void emitMask(unsigned CPUBitmask, int CPUTopSavedRegOff); virtual void emitFMask(unsigned FPUBitmask, int FPUTopSavedRegOff); + virtual void emitDirectiveSetArch(StringRef Arch); + virtual void emitDirectiveSetMips0(); + virtual void emitDirectiveSetMips1(); + virtual void emitDirectiveSetMips2(); + virtual void emitDirectiveSetMips3(); + virtual void emitDirectiveSetMips4(); + virtual void emitDirectiveSetMips5(); + virtual void emitDirectiveSetMips32(); virtual void emitDirectiveSetMips32R2(); + virtual void emitDirectiveSetMips32R6(); virtual void emitDirectiveSetMips64(); virtual void emitDirectiveSetMips64R2(); + virtual void emitDirectiveSetMips64R6(); virtual void emitDirectiveSetDsp(); + virtual void emitDirectiveSetNoDsp(); + virtual void emitDirectiveSetPop(); + virtual void emitDirectiveSetPush(); // PIC support - virtual void emitDirectiveCpload(unsigned RegNo); + virtual void emitDirectiveCpLoad(unsigned RegNo); virtual void emitDirectiveCpsetup(unsigned RegNo, int RegOrOffset, const MCSymbol &Sym, bool IsReg); @@ -72,8 +88,8 @@ public: virtual void emitDirectiveModuleOddSPReg(bool Enabled, bool IsO32ABI); virtual void emitDirectiveSetFp(MipsABIFlagsSection::FpABIKind Value){}; virtual void emitMipsAbiFlags(){}; - void setCanHaveModuleDir(bool Can) { canHaveModuleDirective = Can; } - bool getCanHaveModuleDir() { return canHaveModuleDirective; } + void forbidModuleDirective() { ModuleDirectiveAllowed = false; } + bool isModuleDirectiveAllowed() { return ModuleDirectiveAllowed; } // This method enables template classes to set internal abi flags // structure values. @@ -87,8 +103,21 @@ public: protected: MipsABIFlagsSection ABIFlagsSection; + bool GPRInfoSet; + unsigned GPRBitMask; + int GPROffset; + + bool FPRInfoSet; + unsigned FPRBitMask; + int FPROffset; + + bool FrameInfoSet; + int FrameOffset; + unsigned FrameReg; + unsigned ReturnReg; + private: - bool canHaveModuleDirective; + bool ModuleDirectiveAllowed; }; // This part is for ascii assembly output @@ -106,6 +135,8 @@ public: void emitDirectiveSetNoReorder() override; void emitDirectiveSetMacro() override; void emitDirectiveSetNoMacro() override; + void emitDirectiveSetMsa() override; + void emitDirectiveSetNoMsa() override; void emitDirectiveSetAt() override; void emitDirectiveSetNoAt() override; void emitDirectiveEnd(StringRef Name) override; @@ -121,13 +152,26 @@ public: void emitMask(unsigned CPUBitmask, int CPUTopSavedRegOff) override; void emitFMask(unsigned FPUBitmask, int FPUTopSavedRegOff) override; + void emitDirectiveSetArch(StringRef Arch) override; + void emitDirectiveSetMips0() override; + void emitDirectiveSetMips1() override; + void emitDirectiveSetMips2() override; + void emitDirectiveSetMips3() override; + void emitDirectiveSetMips4() override; + void emitDirectiveSetMips5() override; + void emitDirectiveSetMips32() override; void emitDirectiveSetMips32R2() override; + void emitDirectiveSetMips32R6() override; void emitDirectiveSetMips64() override; void emitDirectiveSetMips64R2() override; + void emitDirectiveSetMips64R6() override; void emitDirectiveSetDsp() override; + void emitDirectiveSetNoDsp() override; + void emitDirectiveSetPop() override; + void emitDirectiveSetPush() override; // PIC support - virtual void emitDirectiveCpload(unsigned RegNo); + void emitDirectiveCpLoad(unsigned RegNo) override; void emitDirectiveCpsetup(unsigned RegNo, int RegOrOffset, const MCSymbol &Sym, bool IsReg) override; @@ -157,14 +201,8 @@ public: void emitDirectiveSetMicroMips() override; void emitDirectiveSetNoMicroMips() override; void emitDirectiveSetMips16() override; - void emitDirectiveSetNoMips16() override; - void emitDirectiveSetReorder() override; void emitDirectiveSetNoReorder() override; - void emitDirectiveSetMacro() override; - void emitDirectiveSetNoMacro() override; - void emitDirectiveSetAt() override; - void emitDirectiveSetNoAt() override; void emitDirectiveEnd(StringRef Name) override; void emitDirectiveEnt(const MCSymbol &Symbol) override; @@ -178,13 +216,8 @@ public: void emitMask(unsigned CPUBitmask, int CPUTopSavedRegOff) override; void emitFMask(unsigned FPUBitmask, int FPUTopSavedRegOff) override; - void emitDirectiveSetMips32R2() override; - void emitDirectiveSetMips64() override; - void emitDirectiveSetMips64R2() override; - void emitDirectiveSetDsp() override; - // PIC support - virtual void emitDirectiveCpload(unsigned RegNo); + void emitDirectiveCpLoad(unsigned RegNo) override; void emitDirectiveCpsetup(unsigned RegNo, int RegOrOffset, const MCSymbol &Sym, bool IsReg) override; |