Lines Matching defs:TargetX8664Traits

43 struct TargetX8664Traits {  struct
52 static constexpr ::Ice::Assembler::AssemblerKind AsmKind =
55 static constexpr bool Is64Bit = true;
56 static constexpr bool HasPopa = false;
57 static constexpr bool HasPusha = false;
58 static constexpr bool UsesX87 = false;
59 static constexpr ::Ice::RegX8664::GPRRegister Last8BitGPR =
62 enum ScaleFactor { TIMES_1 = 0, TIMES_2 = 1, TIMES_4 = 2, TIMES_8 = 3 };
64 using GPRRegister = ::Ice::RegX8664::GPRRegister;
65 using ByteRegister = ::Ice::RegX8664::ByteRegister;
66 using XmmRegister = ::Ice::RegX8664::XmmRegister;
68 using Cond = ::Ice::CondX8664;
70 using RegisterSet = ::Ice::RegX8664;
71 static constexpr RegisterSet::AllRegisters StackPtr = RegX8664::Reg_rsp;
72 static constexpr RegisterSet::AllRegisters FramePtr = RegX8664::Reg_rbp;
73 static constexpr GPRRegister Encoded_Reg_Accumulator =
75 static constexpr GPRRegister Encoded_Reg_Counter = RegX8664::Encoded_Reg_ecx;
76 static constexpr FixupKind FK_PcRel = llvm::ELF::R_X86_64_PC32;
77 static constexpr FixupKind FK_Abs = llvm::ELF::R_X86_64_32S;
78 static constexpr FixupKind FK_Gotoff = llvm::ELF::R_X86_64_GOTOFF64;
79 static constexpr FixupKind FK_GotPC = llvm::ELF::R_X86_64_GOTPC32;
83 enum RexBits {
99 Operand &operator=(const Operand &) = default;
100 Operand &operator=(Operand &&) = default;
102 uint8_t mod() const { return (encoding_at(0) >> 6) & 3; } in mod()
104 uint8_t rexX() const { return (rex_ & RexX) != RexX ? RexNone : RexX; } in rexX()
105 uint8_t rexB() const { return (rex_ & RexB) != RexB ? RexNone : RexB; } in rexB()
107 GPRRegister rm() const { in rm()
112 ScaleFactor scale() const { in scale()
116 GPRRegister index() const { in index()
121 GPRRegister base() const { in base()
126 int8_t disp8() const { in disp8()
131 AssemblerFixup *fixup() const { return fixup_; } in fixup()
134 void SetModRM(int mod, GPRRegister rm) { in SetModRM()
141 void SetSIB(ScaleFactor scale, GPRRegister index, GPRRegister base) { in SetSIB()
150 void SetDisp8(int8_t disp) { in SetDisp8()
155 void SetDisp32(int32_t disp) { in SetDisp32()
162 void SetFixup(AssemblerFixup *fixup) { fixup_ = fixup; } in SetFixup()
187 friend class AssemblerX86Base<TargetX8664Traits>; argument
196 Address &operator=(const Address &) = default;
197 Address &operator=(Address &&) = default;
199 Address(GPRRegister Base, int32_t Disp, AssemblerFixup *Fixup) { in Address()
220 Address(GPRRegister Index, ScaleFactor Scale, int32_t Disp, in Address()
230 Address(GPRRegister Base, GPRRegister Index, ScaleFactor Scale, in Address()
251 static Address RipRelative(RelocOffsetT Offset, AssemblerFixup *Fixup) { in RipRelative()
267 static Address Absolute(RelocOffsetT Addr) { in Absolute()
277 static Address ofConstPool(Assembler *Asm, const Constant *Imm) { in ofConstPool()
293 enum InstructionSet {
301 static const char *TargetName;
302 static constexpr Type WordType = IceType_i64;
304 static const char *getRegName(RegNumT RegNum) { in getRegName()
317 static GPRRegister getEncodedGPR(RegNumT RegNum) { in getEncodedGPR()
331 static ByteRegister getEncodedByteReg(RegNumT RegNum) { in getEncodedByteReg()
345 static XmmRegister getEncodedXmm(RegNumT RegNum) { in getEncodedXmm()
359 static uint32_t getEncoding(RegNumT RegNum) { in getEncoding()
372 static inline RegNumT getBaseReg(RegNumT RegNum) { in getBaseReg()
386 static RegNumT getFirstGprForType(Type Ty) { in getFirstGprForType()
403 static RegNumT getGprForType(Type Ty, RegNumT RegNum) { in getGprForType()
460 SizeOf &operator=(const SizeOf &) = delete;
463 constexpr SizeOf() : Size(0) {} in SizeOf()
465 explicit constexpr SizeOf(T...) in SizeOf()
467 constexpr SizeT size() const { return Size; } in size()
470 template <typename T, typename... U> struct length {