Home | History | Annotate | Download | only in MCTargetDesc

Lines Matching defs:TSFlags

128                         uint64_t TSFlags, unsigned &CurByte, raw_ostream &OS,
134 void EmitVEXOpcodePrefix(uint64_t TSFlags, unsigned &CurByte, int MemOperand,
138 void EmitSegmentOverridePrefix(uint64_t TSFlags, unsigned &CurByte,
142 void EmitOpcodePrefix(uint64_t TSFlags, unsigned &CurByte, int MemOperand,
165 static bool isCDisp8(uint64_t TSFlags, int Value, int& CValue) {
166 assert(((TSFlags >> X86II::VEXShift) & X86II::EVEX) &&
169 unsigned CD8E = (TSFlags >> X86II::EVEX_CD8EShift) & X86II::EVEX_CD8EMask;
170 unsigned CD8V = (TSFlags >> X86II::EVEX_CD8VShift) & X86II::EVEX_CD8VMask;
183 bool EVEX_b = (TSFlags >> X86II::VEXShift) & X86II::EVEX_B;
185 unsigned EVEX_LL = ((TSFlags >> X86II::VEXShift) & X86II::VEX_L) ? 1 : 0;
186 EVEX_LL += ((TSFlags >> X86II::VEXShift) & X86II::EVEX_L2) ? 2 : 0;
210 /// in an instruction with the specified TSFlags.
211 static MCFixupKind getImmFixupKind(uint64_t TSFlags) {
212 unsigned Size = X86II::getSizeOfImm(TSFlags);
213 bool isPCRel = X86II::isImmPCRel(TSFlags);
367 uint64_t TSFlags, unsigned &CurByte,
375 bool HasEVEX = (TSFlags >> X86II::VEXShift) & X86II::EVEX;
396 int ImmSize = X86II::hasImm(TSFlags) ? X86II::getSizeOfImm(TSFlags) : 0;
445 if (HasEVEX && isCDisp8(TSFlags, Disp.getImm(), CDisp8)) {
487 } else if (HasEVEX && isCDisp8(TSFlags, Disp.getImm(), CDisp8)) {
529 void X86MCCodeEmitter::EmitVEXOpcodePrefix(uint64_t TSFlags, unsigned &CurByte,
533 bool HasEVEX = (TSFlags >> X86II::VEXShift) & X86II::EVEX;
534 bool HasEVEX_K = HasEVEX && ((TSFlags >> X86II::VEXShift) & X86II::EVEX_K);
535 bool HasVEX_4V = (TSFlags >> X86II::VEXShift) & X86II::VEX_4V;
536 bool HasVEX_4VOp3 = (TSFlags >> X86II::VEXShift) & X86II::VEX_4VOp3;
537 bool HasMemOp4 = (TSFlags >> X86II::VEXShift) & X86II::MemOp4;
616 if (TSFlags & X86II::OpSize)
619 if ((TSFlags >> X86II::VEXShift) & X86II::VEX_W)
622 if ((TSFlags >> X86II::VEXShift) & X86II::XOP)
625 if ((TSFlags >> X86II::VEXShift) & X86II::VEX_L)
627 if (HasEVEX && ((TSFlags >> X86II::VEXShift) & X86II::EVEX_L2))
630 if (HasEVEX_K && ((TSFlags >> X86II::VEXShift) & X86II::EVEX_Z))
633 if (HasEVEX && ((TSFlags >> X86II::VEXShift) & X86II::EVEX_B))
636 switch (TSFlags & X86II::Op0Mask) {
695 switch (TSFlags & X86II::FormMask) {
889 EmitSegmentOverridePrefix(TSFlags, CurByte, MemOperand, MI, OS);
948 static unsigned DetermineREXPrefix(const MCInst &MI, uint64_t TSFlags,
951 if (TSFlags & X86II::REX_W)
974 switch (TSFlags & X86II::FormMask) {
1040 void X86MCCodeEmitter::EmitSegmentOverridePrefix(uint64_t TSFlags,
1044 switch (TSFlags & X86II::SegOvrMask) {
1074 void X86MCCodeEmitter::EmitOpcodePrefix(uint64_t TSFlags, unsigned &CurByte,
1080 if (TSFlags & X86II::LOCK)
1084 EmitSegmentOverridePrefix(TSFlags, CurByte, MemOperand, MI, OS);
1087 if ((TSFlags & X86II::Op0Mask) == X86II::REP)
1092 if (TSFlags & X86II::AdSize) {
1110 if (TSFlags & X86II::OpSize)
1114 switch (TSFlags & X86II::Op0Mask) {
1158 if (unsigned REX = DetermineREXPrefix(MI, TSFlags, Desc))
1167 switch (TSFlags & X86II::Op0Mask) {
1191 uint64_t TSFlags = Desc.TSFlags;
1194 if ((TSFlags & X86II::FormMask) == X86II::Pseudo)
1204 bool HasVEXPrefix = (TSFlags >> X86II::VEXShift) & X86II::VEX;
1207 bool HasVEX_4V = (TSFlags >> X86II::VEXShift) & X86II::VEX_4V;
1208 bool HasVEX_4VOp3 = (TSFlags >> X86II::VEXShift) & X86II::VEX_4VOp3;
1209 bool HasMemOp4 = (TSFlags >> X86II::VEXShift) & X86II::MemOp4;
1213 bool HasEVEX = (TSFlags >> X86II::VEXShift) & X86II::EVEX;
1214 bool HasEVEX_K = HasEVEX && ((TSFlags >> X86II::VEXShift) & X86II::EVEX_K);
1217 int MemoryOperand = X86II::getMemoryOperandNo(TSFlags, Opcode);
1221 EmitOpcodePrefix(TSFlags, CurByte, MemoryOperand, MI, Desc, OS);
1223 EmitVEXOpcodePrefix(TSFlags, CurByte, MemoryOperand, MI, Desc, OS);
1225 unsigned char BaseOpcode = X86II::getBaseOpcodeFor(TSFlags);
1227 if ((TSFlags >> X86II::VEXShift) & X86II::Has3DNow0F0FOpcode)
1231 switch (TSFlags & X86II::FormMask) {
1234 default: errs() << "FORM: " << (TSFlags & X86II::FormMask) << "\n";
1244 X86II::getSizeOfImm(TSFlags), getImmFixupKind(TSFlags),
1252 X86II::getSizeOfImm(TSFlags), getImmFixupKind(TSFlags),
1289 TSFlags, CurByte, OS, Fixups);
1334 TSFlags, CurByte, OS, Fixups);
1349 (TSFlags & X86II::FormMask)-X86II::MRM0r,
1359 EmitMemModRMByte(MI, CurOp, (TSFlags & X86II::FormMask)-X86II::MRM0m,
1360 TSFlags, CurByte, OS, Fixups);
1375 switch (TSFlags & X86II::FormMask) {
1413 if ((TSFlags >> X86II::VEXShift) & X86II::VEX_I8IMM) {
1441 FixupKind = getImmFixupKind(TSFlags);
1443 X86II::getSizeOfImm(TSFlags), MCFixupKind(FixupKind),
1448 if ((TSFlags >> X86II::VEXShift) & X86II::Has3DNow0F0FOpcode)
1449 EmitByte(X86II::getBaseOpcodeFor(TSFlags), CurByte, OS);