X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FTarget%2FX86%2FX86AsmPrinter.h;h=e4eef5dbd79642208558c7313187f8965aeb8aa4;hb=5379c6930dc7b3ddb93a42384474cc0e65f7e4c5;hp=6eed5ce08cfc3d6cb0828a7a933c55c694fc27ae;hpb=0187e7a9ba5c50b4559e0c2e0afceb6d5cd32190;p=oota-llvm.git diff --git a/lib/Target/X86/X86AsmPrinter.h b/lib/Target/X86/X86AsmPrinter.h index 6eed5ce08cf..e4eef5dbd79 100644 --- a/lib/Target/X86/X86AsmPrinter.h +++ b/lib/Target/X86/X86AsmPrinter.h @@ -10,63 +10,47 @@ #ifndef X86ASMPRINTER_H #define X86ASMPRINTER_H -#include "X86.h" -#include "X86MachineFunctionInfo.h" -#include "X86TargetMachine.h" +#include "X86Subtarget.h" #include "llvm/CodeGen/AsmPrinter.h" -#include "llvm/CodeGen/MachineModuleInfo.h" -#include "llvm/CodeGen/ValueTypes.h" -#include "llvm/Support/Compiler.h" +#include "llvm/CodeGen/StackMaps.h" +#include "llvm/Target/TargetMachine.h" namespace llvm { - class MCStreamer; +class MCSymbol; class LLVM_LIBRARY_VISIBILITY X86AsmPrinter : public AsmPrinter { const X86Subtarget *Subtarget; + StackMaps SM; + + void GenerateExportDirective(const MCSymbol *Sym, bool IsData); + public: explicit X86AsmPrinter(TargetMachine &TM, MCStreamer &Streamer) - : AsmPrinter(TM, Streamer) { + : AsmPrinter(TM, Streamer), SM(*this) { Subtarget = &TM.getSubtarget(); } - virtual const char *getPassName() const LLVM_OVERRIDE { + const char *getPassName() const override { return "X86 Assembly / Object Emitter"; } const X86Subtarget &getSubtarget() const { return *Subtarget; } - virtual void EmitStartOfAsmFile(Module &M) LLVM_OVERRIDE; - - virtual void EmitEndOfAsmFile(Module &M) LLVM_OVERRIDE; - - virtual void EmitInstruction(const MachineInstr *MI) LLVM_OVERRIDE; - - void printSymbolOperand(const MachineOperand &MO, raw_ostream &O); - - // These methods are used by the tablegen'erated instruction printer. - void printOperand(const MachineInstr *MI, unsigned OpNo, raw_ostream &O, - const char *Modifier = 0, unsigned AsmVariant = 0); - void printPCRelImm(const MachineInstr *MI, unsigned OpNo, raw_ostream &O); + void EmitStartOfAsmFile(Module &M) override; - bool printAsmMRegister(const MachineOperand &MO, char Mode, raw_ostream &O); - virtual bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo, - unsigned AsmVariant, const char *ExtraCode, - raw_ostream &OS) LLVM_OVERRIDE; - virtual bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo, - unsigned AsmVariant, const char *ExtraCode, - raw_ostream &OS) LLVM_OVERRIDE; + void EmitEndOfAsmFile(Module &M) override; - void printMemReference(const MachineInstr *MI, unsigned Op, raw_ostream &O, - const char *Modifier=NULL); - void printLeaMemReference(const MachineInstr *MI, unsigned Op, raw_ostream &O, - const char *Modifier=NULL); + void EmitInstruction(const MachineInstr *MI) override; - void printIntelMemReference(const MachineInstr *MI, unsigned Op, - raw_ostream &O, const char *Modifier=NULL, - unsigned AsmVariant = 1); + bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo, + unsigned AsmVariant, const char *ExtraCode, + raw_ostream &OS) override; + bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo, + unsigned AsmVariant, const char *ExtraCode, + raw_ostream &OS) override; - virtual bool runOnMachineFunction(MachineFunction &F) LLVM_OVERRIDE; + bool runOnMachineFunction(MachineFunction &F) override; }; } // end namespace llvm