OLD | NEW |
1 //===-- X86AsmPrinter.h - X86 implementation of AsmPrinter ------*- C++ -*-===// | 1 //===-- X86AsmPrinter.h - X86 implementation of AsmPrinter ------*- C++ -*-===// |
2 // | 2 // |
3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 | 9 |
10 #ifndef LLVM_LIB_TARGET_X86_X86ASMPRINTER_H | 10 #ifndef LLVM_LIB_TARGET_X86_X86ASMPRINTER_H |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 } | 95 } |
96 | 96 |
97 const X86Subtarget &getSubtarget() const { return *Subtarget; } | 97 const X86Subtarget &getSubtarget() const { return *Subtarget; } |
98 | 98 |
99 void EmitStartOfAsmFile(Module &M) override; | 99 void EmitStartOfAsmFile(Module &M) override; |
100 | 100 |
101 void EmitEndOfAsmFile(Module &M) override; | 101 void EmitEndOfAsmFile(Module &M) override; |
102 | 102 |
103 void EmitInstruction(const MachineInstr *MI) override; | 103 void EmitInstruction(const MachineInstr *MI) override; |
104 | 104 |
| 105 bool UseReadOnlyJumpTables() const override; // @LOCALMOD |
| 106 |
| 107 unsigned GetTargetBasicBlockAlign() const override; // @LOCLAMOD |
| 108 |
| 109 unsigned |
| 110 GetTargetLabelAlign(const MachineInstr *MI) const override; //@LOCALMOD |
| 111 |
105 void EmitBasicBlockEnd(const MachineBasicBlock &MBB) override { | 112 void EmitBasicBlockEnd(const MachineBasicBlock &MBB) override { |
106 SMShadowTracker.emitShadowPadding(OutStreamer, getSubtargetInfo()); | 113 SMShadowTracker.emitShadowPadding(OutStreamer, getSubtargetInfo()); |
107 } | 114 } |
108 | 115 |
109 bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo, | 116 bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo, |
110 unsigned AsmVariant, const char *ExtraCode, | 117 unsigned AsmVariant, const char *ExtraCode, |
111 raw_ostream &OS) override; | 118 raw_ostream &OS) override; |
112 bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo, | 119 bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo, |
113 unsigned AsmVariant, const char *ExtraCode, | 120 unsigned AsmVariant, const char *ExtraCode, |
114 raw_ostream &OS) override; | 121 raw_ostream &OS) override; |
115 | 122 |
116 /// \brief Return the symbol for the specified constant pool entry. | 123 /// \brief Return the symbol for the specified constant pool entry. |
117 MCSymbol *GetCPISymbol(unsigned CPID) const override; | 124 MCSymbol *GetCPISymbol(unsigned CPID) const override; |
118 | 125 |
119 bool doInitialization(Module &M) override { | 126 bool doInitialization(Module &M) override { |
120 SMShadowTracker.reset(0); | 127 // @LOCALMOD-BEGIN -- disable ShadowMapShadowTracker for NaCl for now. |
| 128 // This requires knowing the size of instructions, and with NaCl pseudos |
| 129 // being expanded late by the streamer, it isn't going to be counting |
| 130 // the expanded instruction. It might not be counting the bundle padding |
| 131 // correctly either. |
| 132 if (!Subtarget->isTargetNaCl()) |
| 133 SMShadowTracker.reset(0); |
| 134 // @LOCALMOD-END |
121 SM.reset(); | 135 SM.reset(); |
122 return AsmPrinter::doInitialization(M); | 136 return AsmPrinter::doInitialization(M); |
123 } | 137 } |
124 | 138 |
125 bool runOnMachineFunction(MachineFunction &F) override; | 139 bool runOnMachineFunction(MachineFunction &F) override; |
126 }; | 140 }; |
127 | 141 |
128 } // end namespace llvm | 142 } // end namespace llvm |
129 | 143 |
130 #endif | 144 #endif |
OLD | NEW |