Index: src/IceTargetLoweringX8632Traits.h |
diff --git a/src/IceTargetLoweringX8632Traits.h b/src/IceTargetLoweringX8632Traits.h |
index 49a0115aa61333e16501efa85f8ae5e1f9b52784..dbd45653e3531cd32a097dbf293a48a22199ab9c 100644 |
--- a/src/IceTargetLoweringX8632Traits.h |
+++ b/src/IceTargetLoweringX8632Traits.h |
@@ -30,19 +30,16 @@ |
namespace Ice { |
-class TargetX8632; |
- |
namespace X8632 { |
-class AssemblerX8632; |
-} // end of namespace X8632 |
- |
-namespace X86Internal { |
+using namespace ::Ice::X86; |
template <class Machine> struct Insts; |
-template <class Machine> struct MachineTraits; |
template <class Machine> class TargetX86Base; |
+template <class Machine> class AssemblerX86Base; |
-template <> struct MachineTraits<TargetX8632> { |
+class TargetX8632; |
+ |
+struct TargetX8632Traits { |
//---------------------------------------------------------------------------- |
// ______ ______ __ __ |
// /\ __ \/\ ___\/\ "-./ \ |
@@ -51,6 +48,9 @@ template <> struct MachineTraits<TargetX8632> { |
// \/_/\/_/\/_____/\/_/ \/_/ |
// |
//---------------------------------------------------------------------------- |
+ static constexpr ::Ice::Assembler::AssemblerKind AsmKind = |
+ ::Ice::Assembler::Asm_X8632; |
+ |
static constexpr bool Is64Bit = false; |
static constexpr bool HasPopa = true; |
static constexpr bool HasPusha = true; |
@@ -171,7 +171,7 @@ template <> struct MachineTraits<TargetX8632> { |
((encoding_[0] & 0x07) == reg); // Register codes match. |
} |
- template <class> friend class AssemblerX86Base; |
+ friend class AssemblerX86Base<TargetX8632Traits>; |
}; |
class Address : public Operand { |
@@ -752,10 +752,12 @@ public: |
// \/_/\/_/ \/_/\/_____/ \/_/ |
// |
//---------------------------------------------------------------------------- |
- using Insts = ::Ice::X86Internal::Insts<TargetX8632>; |
+ using Traits = TargetX8632Traits; |
+ using Insts = ::Ice::X8632::Insts<Traits>; |
- using TargetLowering = ::Ice::X86Internal::TargetX86Base<TargetX8632>; |
- using Assembler = X8632::AssemblerX8632; |
+ using TargetLowering = ::Ice::X8632::TargetX86Base<Traits>; |
+ using ConcreteTarget = ::Ice::X8632::TargetX8632; |
+ using Assembler = ::Ice::X8632::AssemblerX86Base<Traits>; |
/// X86Operand extends the Operand hierarchy. Its subclasses are X86OperandMem |
/// and VariableSplit. |
@@ -932,10 +934,7 @@ public: |
static uint8_t InstSegmentPrefixes[]; |
}; |
-} // end of namespace X86Internal |
- |
-namespace X8632 { |
-using Traits = ::Ice::X86Internal::MachineTraits<TargetX8632>; |
+using Traits = ::Ice::X8632::TargetX8632Traits; |
} // end of namespace X8632 |
} // end of namespace Ice |