OLD | NEW |
1 //===- subzero/src/IceTargetLoweringX86BaseImpl.h - x86 lowering -*- C++ -*-==// | 1 //===- subzero/src/IceTargetLoweringX86BaseImpl.h - x86 lowering -*- C++ -*-==// |
2 // | 2 // |
3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
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 /// \file | 10 /// \file |
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
274 (TargetInstructionSet::X86InstructionSet_End - | 274 (TargetInstructionSet::X86InstructionSet_End - |
275 TargetInstructionSet::X86InstructionSet_Begin), | 275 TargetInstructionSet::X86InstructionSet_Begin), |
276 "Traits::InstructionSet range different from TargetInstructionSet"); | 276 "Traits::InstructionSet range different from TargetInstructionSet"); |
277 if (Func->getContext()->getFlags().getTargetInstructionSet() != | 277 if (Func->getContext()->getFlags().getTargetInstructionSet() != |
278 TargetInstructionSet::BaseInstructionSet) { | 278 TargetInstructionSet::BaseInstructionSet) { |
279 InstructionSet = static_cast<typename Traits::InstructionSet>( | 279 InstructionSet = static_cast<typename Traits::InstructionSet>( |
280 (Func->getContext()->getFlags().getTargetInstructionSet() - | 280 (Func->getContext()->getFlags().getTargetInstructionSet() - |
281 TargetInstructionSet::X86InstructionSet_Begin) + | 281 TargetInstructionSet::X86InstructionSet_Begin) + |
282 Traits::InstructionSet::Begin); | 282 Traits::InstructionSet::Begin); |
283 } | 283 } |
284 // TODO: Don't initialize IntegerRegisters and friends every time. Instead, | 284 } |
285 // initialize in some sort of static initializer for the class. | 285 |
| 286 template <class Machine> void TargetX86Base<Machine>::staticInit() { |
286 Traits::initRegisterSet(&TypeToRegisterSet, &RegisterAliases, &ScratchRegs); | 287 Traits::initRegisterSet(&TypeToRegisterSet, &RegisterAliases, &ScratchRegs); |
287 } | 288 } |
288 | 289 |
289 template <class Machine> void TargetX86Base<Machine>::translateO2() { | 290 template <class Machine> void TargetX86Base<Machine>::translateO2() { |
290 TimerMarker T(TimerStack::TT_O2, Func); | 291 TimerMarker T(TimerStack::TT_O2, Func); |
291 | 292 |
292 if (!Ctx->getFlags().getPhiEdgeSplit()) { | 293 if (!Ctx->getFlags().getPhiEdgeSplit()) { |
293 // Lower Phi instructions. | 294 // Lower Phi instructions. |
294 Func->placePhiLoads(); | 295 Func->placePhiLoads(); |
295 if (Func->hasError()) | 296 if (Func->hasError()) |
(...skipping 5562 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5858 } | 5859 } |
5859 // the offset is not eligible for blinding or pooling, return the original | 5860 // the offset is not eligible for blinding or pooling, return the original |
5860 // mem operand | 5861 // mem operand |
5861 return MemOperand; | 5862 return MemOperand; |
5862 } | 5863 } |
5863 | 5864 |
5864 } // end of namespace X86Internal | 5865 } // end of namespace X86Internal |
5865 } // end of namespace Ice | 5866 } // end of namespace Ice |
5866 | 5867 |
5867 #endif // SUBZERO_SRC_ICETARGETLOWERINGX86BASEIMPL_H | 5868 #endif // SUBZERO_SRC_ICETARGETLOWERINGX86BASEIMPL_H |
OLD | NEW |