OLD | NEW |
1 //===- subzero/src/IceTargetLoweringX86Base.h - x86 lowering ----*- C++ -*-===// | 1 //===- subzero/src/IceTargetLoweringX86Base.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 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
53 /// | 53 /// |
54 /// but that does not work: the compiler does not know that Machine inherits | 54 /// but that does not work: the compiler does not know that Machine inherits |
55 /// from TargetX86Base at this point in translation. | 55 /// from TargetX86Base at this point in translation. |
56 template <typename TraitsType> class TargetX86Base : public TargetLowering { | 56 template <typename TraitsType> class TargetX86Base : public TargetLowering { |
57 TargetX86Base() = delete; | 57 TargetX86Base() = delete; |
58 TargetX86Base(const TargetX86Base &) = delete; | 58 TargetX86Base(const TargetX86Base &) = delete; |
59 TargetX86Base &operator=(const TargetX86Base &) = delete; | 59 TargetX86Base &operator=(const TargetX86Base &) = delete; |
60 | 60 |
61 public: | 61 public: |
62 using Traits = TraitsType; | 62 using Traits = TraitsType; |
63 using BoolFolding = BoolFolding<Traits>; | |
64 using ConcreteTarget = typename Traits::ConcreteTarget; | 63 using ConcreteTarget = typename Traits::ConcreteTarget; |
65 using InstructionSetEnum = typename Traits::InstructionSet; | 64 using InstructionSetEnum = typename Traits::InstructionSet; |
66 | 65 |
67 using BrCond = typename Traits::Cond::BrCond; | 66 using BrCond = typename Traits::Cond::BrCond; |
68 using CmppsCond = typename Traits::Cond::CmppsCond; | 67 using CmppsCond = typename Traits::Cond::CmppsCond; |
69 | 68 |
70 using X86Address = typename Traits::Address; | 69 using X86Address = typename Traits::Address; |
71 using X86Operand = typename Traits::X86Operand; | 70 using X86Operand = typename Traits::X86Operand; |
72 using X86OperandMem = typename Traits::X86OperandMem; | 71 using X86OperandMem = typename Traits::X86OperandMem; |
73 using SegmentRegisters = typename Traits::X86OperandMem::SegmentRegisters; | 72 using SegmentRegisters = typename Traits::X86OperandMem::SegmentRegisters; |
(...skipping 755 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
829 typename std::enable_if<T::Is64Bit, void>::type lowerIcmp64(const InstIcmp *, | 828 typename std::enable_if<T::Is64Bit, void>::type lowerIcmp64(const InstIcmp *, |
830 const Inst *) { | 829 const Inst *) { |
831 llvm::report_fatal_error( | 830 llvm::report_fatal_error( |
832 "Hey, yo! This is x86-64. Watcha doin'? (lowerIcmp64)"); | 831 "Hey, yo! This is x86-64. Watcha doin'? (lowerIcmp64)"); |
833 } | 832 } |
834 /// x86lowerIcmp64 handles 64-bit icmp lowering. | 833 /// x86lowerIcmp64 handles 64-bit icmp lowering. |
835 template <typename T = Traits> | 834 template <typename T = Traits> |
836 typename std::enable_if<!T::Is64Bit, void>::type | 835 typename std::enable_if<!T::Is64Bit, void>::type |
837 lowerIcmp64(const InstIcmp *Icmp, const Inst *Consumer); | 836 lowerIcmp64(const InstIcmp *Icmp, const Inst *Consumer); |
838 | 837 |
839 BoolFolding FoldingInfo; | 838 BoolFolding<Traits> FoldingInfo; |
840 | 839 |
841 static FixupKind PcRelFixup; | 840 static FixupKind PcRelFixup; |
842 static FixupKind AbsFixup; | 841 static FixupKind AbsFixup; |
843 }; | 842 }; |
844 } // end of namespace X86NAMESPACE | 843 } // end of namespace X86NAMESPACE |
845 } // end of namespace Ice | 844 } // end of namespace Ice |
846 | 845 |
847 #include "IceTargetLoweringX86BaseImpl.h" | 846 #include "IceTargetLoweringX86BaseImpl.h" |
848 | 847 |
849 #endif // SUBZERO_SRC_ICETARGETLOWERINGX86BASE_H | 848 #endif // SUBZERO_SRC_ICETARGETLOWERINGX86BASE_H |
OLD | NEW |