diff options
Diffstat (limited to 'lib/Target/Mips/MipsAsmPrinter.h')
-rw-r--r-- | lib/Target/Mips/MipsAsmPrinter.h | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/lib/Target/Mips/MipsAsmPrinter.h b/lib/Target/Mips/MipsAsmPrinter.h index 967aa0b..0582e21 100644 --- a/lib/Target/Mips/MipsAsmPrinter.h +++ b/lib/Target/Mips/MipsAsmPrinter.h @@ -11,8 +11,8 @@ // //===----------------------------------------------------------------------===// -#ifndef MIPSASMPRINTER_H -#define MIPSASMPRINTER_H +#ifndef LLVM_LIB_TARGET_MIPS_MIPSASMPRINTER_H +#define LLVM_LIB_TARGET_MIPS_MIPSASMPRINTER_H #include "Mips16HardFloatInfo.h" #include "MipsMCInstLower.h" @@ -89,11 +89,14 @@ public: const MipsFunctionInfo *MipsFI; MipsMCInstLower MCInstLowering; - explicit MipsAsmPrinter(TargetMachine &TM, MCStreamer &Streamer) - : AsmPrinter(TM, Streamer), MCP(nullptr), InConstantPool(false), - MCInstLowering(*this) { - Subtarget = &TM.getSubtarget<MipsSubtarget>(); - } + // We initialize the subtarget here and in runOnMachineFunction + // since there are certain target specific flags (ABI) that could + // reside on the TargetMachine, but are on the subtarget currently + // and we need them for the beginning of file output before we've + // seen a single function. + explicit MipsAsmPrinter(TargetMachine &TM, MCStreamer &Streamer) + : AsmPrinter(TM, Streamer), MCP(nullptr), InConstantPool(false), + Subtarget(&TM.getSubtarget<MipsSubtarget>()), MCInstLowering(*this) {} const char *getPassName() const override { return "Mips Assembly Printer"; @@ -131,6 +134,7 @@ public: void printMemOperandEA(const MachineInstr *MI, int opNum, raw_ostream &O); void printFCCOperand(const MachineInstr *MI, int opNum, raw_ostream &O, const char *Modifier = nullptr); + void printRegisterList(const MachineInstr *MI, int opNum, raw_ostream &O); void EmitStartOfAsmFile(Module &M) override; void EmitEndOfAsmFile(Module &M) override; void PrintDebugValueComment(const MachineInstr *MI, raw_ostream &OS); |