LLVM 20.0.0git
|
#include "X86InstComments.h"
#include "X86ATTInstPrinter.h"
#include "X86BaseInfo.h"
#include "X86MCTargetDesc.h"
#include "X86ShuffleDecode.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCInstrInfo.h"
#include "llvm/Support/raw_ostream.h"
#include <string_view>
Go to the source code of this file.
Macros | |
#define | CASE_SSE_INS_COMMON(Inst, src) case X86::Inst##src: |
#define | CASE_AVX_INS_COMMON(Inst, Suffix, src) case X86::V##Inst##Suffix##src: |
#define | CASE_MASK_INS_COMMON(Inst, Suffix, src) case X86::V##Inst##Suffix##src##k: |
#define | CASE_MASKZ_INS_COMMON(Inst, Suffix, src) case X86::V##Inst##Suffix##src##kz: |
#define | CASE_AVX512_INS_COMMON(Inst, Suffix, src) |
#define | CASE_FPCLASS_PACKED(Inst, src) |
#define | CASE_FPCLASS_PACKED_MEM(Inst) |
#define | CASE_FPCLASS_SCALAR(Inst, src) |
#define | CASE_PTERNLOG(Inst, src) |
#define | CASE_MOVDUP(Inst, src) |
#define | CASE_MASK_MOVDUP(Inst, src) |
#define | CASE_MASKZ_MOVDUP(Inst, src) |
#define | CASE_PMOVZX(Inst, src) |
#define | CASE_UNPCK(Inst, src) |
#define | CASE_MASK_UNPCK(Inst, src) |
#define | CASE_MASKZ_UNPCK(Inst, src) |
#define | CASE_SHUF(Inst, suf) |
#define | CASE_MASK_SHUF(Inst, src) |
#define | CASE_MASKZ_SHUF(Inst, src) |
#define | CASE_VPERMILPI(Inst, src) |
#define | CASE_MASK_VPERMILPI(Inst, src) |
#define | CASE_MASKZ_VPERMILPI(Inst, src) |
#define | CASE_VPERM(Inst, src) |
#define | CASE_MASK_VPERM(Inst, src) |
#define | CASE_MASKZ_VPERM(Inst, src) |
#define | CASE_VSHUF(Inst, src) |
#define | CASE_MASK_VSHUF(Inst, src) |
#define | CASE_MASKZ_VSHUF(Inst, src) |
#define | CASE_AVX512_FMA(Inst, suf) |
#define | CASE_FMA(Inst, suf) |
#define | CASE_FMA_PACKED_REG(Inst) |
#define | CASE_FMA_PACKED_MEM(Inst) |
#define | CASE_FMA_SCALAR_REG(Inst) |
#define | CASE_FMA_SCALAR_MEM(Inst) |
#define | CASE_FMA4(Inst, suf) |
#define | CASE_FMA4_PACKED_RR(Inst) |
#define | CASE_FMA4_PACKED_RM(Inst) |
#define | CASE_FMA4_PACKED_MR(Inst) |
#define | CASE_FMA4_SCALAR_RR(Inst) |
#define | CASE_FMA4_SCALAR_RM(Inst) |
#define | CASE_FMA4_SCALAR_MR(Inst) |
Functions | |
static unsigned | getVectorRegSize (MCRegister Reg) |
static unsigned | getRegOperandNumElts (const MCInst *MI, unsigned ScalarSize, unsigned OperandIndex) |
static const char * | getRegName (MCRegister Reg) |
static void | printMasking (raw_ostream &OS, const MCInst *MI, const MCInstrInfo &MCII) |
Wraps the destination register name with AVX512 mask/maskz filtering. | |
static bool | printFMAComments (const MCInst *MI, raw_ostream &OS, const MCInstrInfo &MCII) |
static bool | printPTERNLOGComments (const MCInst *MI, raw_ostream &OS, const MCInstrInfo &MCII) |
static bool | printFPCLASSComments (const MCInst *MI, raw_ostream &OS, const MCInstrInfo &MCII) |
Variables | |
constexpr StringLiteral | TernlogFunctions [] |
#define CASE_AVX512_FMA | ( | Inst, | |
suf | |||
) |
Definition at line 172 of file X86InstComments.cpp.
#define CASE_AVX512_INS_COMMON | ( | Inst, | |
Suffix, | |||
src | |||
) |
Definition at line 38 of file X86InstComments.cpp.
#define CASE_AVX_INS_COMMON | ( | Inst, | |
Suffix, | |||
src | |||
) | case X86::V##Inst##Suffix##src: |
Definition at line 29 of file X86InstComments.cpp.
#define CASE_FMA | ( | Inst, | |
suf | |||
) |
Definition at line 177 of file X86InstComments.cpp.
#define CASE_FMA4 | ( | Inst, | |
suf | |||
) |
Definition at line 212 of file X86InstComments.cpp.
#define CASE_FMA4_PACKED_MR | ( | Inst | ) |
Definition at line 224 of file X86InstComments.cpp.
#define CASE_FMA4_PACKED_RM | ( | Inst | ) |
Definition at line 220 of file X86InstComments.cpp.
#define CASE_FMA4_PACKED_RR | ( | Inst | ) |
Definition at line 216 of file X86InstComments.cpp.
#define CASE_FMA4_SCALAR_MR | ( | Inst | ) |
Definition at line 240 of file X86InstComments.cpp.
#define CASE_FMA4_SCALAR_RM | ( | Inst | ) |
Definition at line 234 of file X86InstComments.cpp.
#define CASE_FMA4_SCALAR_RR | ( | Inst | ) |
Definition at line 228 of file X86InstComments.cpp.
#define CASE_FMA_PACKED_MEM | ( | Inst | ) |
Definition at line 186 of file X86InstComments.cpp.
#define CASE_FMA_PACKED_REG | ( | Inst | ) |
Definition at line 182 of file X86InstComments.cpp.
#define CASE_FMA_SCALAR_MEM | ( | Inst | ) |
Definition at line 202 of file X86InstComments.cpp.
#define CASE_FMA_SCALAR_REG | ( | Inst | ) |
Definition at line 192 of file X86InstComments.cpp.
#define CASE_FPCLASS_PACKED | ( | Inst, | |
src | |||
) |
Definition at line 43 of file X86InstComments.cpp.
#define CASE_FPCLASS_PACKED_MEM | ( | Inst | ) |
Definition at line 49 of file X86InstComments.cpp.
#define CASE_FPCLASS_SCALAR | ( | Inst, | |
src | |||
) |
Definition at line 53 of file X86InstComments.cpp.
#define CASE_MASK_INS_COMMON | ( | Inst, | |
Suffix, | |||
src | |||
) | case X86::V##Inst##Suffix##src##k: |
Definition at line 32 of file X86InstComments.cpp.
#define CASE_MASK_MOVDUP | ( | Inst, | |
src | |||
) |
Definition at line 70 of file X86InstComments.cpp.
#define CASE_MASK_SHUF | ( | Inst, | |
src | |||
) |
Definition at line 114 of file X86InstComments.cpp.
#define CASE_MASK_UNPCK | ( | Inst, | |
src | |||
) |
Definition at line 96 of file X86InstComments.cpp.
#define CASE_MASK_VPERM | ( | Inst, | |
src | |||
) |
Definition at line 146 of file X86InstComments.cpp.
#define CASE_MASK_VPERMILPI | ( | Inst, | |
src | |||
) |
Definition at line 131 of file X86InstComments.cpp.
#define CASE_MASK_VSHUF | ( | Inst, | |
src | |||
) |
Definition at line 160 of file X86InstComments.cpp.
#define CASE_MASKZ_INS_COMMON | ( | Inst, | |
Suffix, | |||
src | |||
) | case X86::V##Inst##Suffix##src##kz: |
Definition at line 35 of file X86InstComments.cpp.
#define CASE_MASKZ_MOVDUP | ( | Inst, | |
src | |||
) |
Definition at line 75 of file X86InstComments.cpp.
#define CASE_MASKZ_SHUF | ( | Inst, | |
src | |||
) |
Definition at line 119 of file X86InstComments.cpp.
#define CASE_MASKZ_UNPCK | ( | Inst, | |
src | |||
) |
Definition at line 101 of file X86InstComments.cpp.
#define CASE_MASKZ_VPERM | ( | Inst, | |
src | |||
) |
Definition at line 150 of file X86InstComments.cpp.
#define CASE_MASKZ_VPERMILPI | ( | Inst, | |
src | |||
) |
Definition at line 136 of file X86InstComments.cpp.
#define CASE_MASKZ_VSHUF | ( | Inst, | |
src | |||
) |
Definition at line 166 of file X86InstComments.cpp.
#define CASE_MOVDUP | ( | Inst, | |
src | |||
) |
Definition at line 62 of file X86InstComments.cpp.
#define CASE_PMOVZX | ( | Inst, | |
src | |||
) |
Definition at line 80 of file X86InstComments.cpp.
#define CASE_PTERNLOG | ( | Inst, | |
src | |||
) |
Definition at line 57 of file X86InstComments.cpp.
#define CASE_SHUF | ( | Inst, | |
suf | |||
) |
Definition at line 106 of file X86InstComments.cpp.
#define CASE_SSE_INS_COMMON | ( | Inst, | |
src | |||
) | case X86::Inst##src: |
Definition at line 26 of file X86InstComments.cpp.
#define CASE_UNPCK | ( | Inst, | |
src | |||
) |
Definition at line 88 of file X86InstComments.cpp.
#define CASE_VPERM | ( | Inst, | |
src | |||
) |
Definition at line 141 of file X86InstComments.cpp.
#define CASE_VPERMILPI | ( | Inst, | |
src | |||
) |
Definition at line 124 of file X86InstComments.cpp.
#define CASE_VSHUF | ( | Inst, | |
src | |||
) |
Definition at line 154 of file X86InstComments.cpp.
|
static |
Definition at line 265 of file X86InstComments.cpp.
References llvm::X86ATTInstPrinter::getRegisterName().
Referenced by llvm::EmitAnyX86InstComments(), printFMAComments(), printFPCLASSComments(), printMasking(), and printPTERNLOGComments().
|
static |
Definition at line 259 of file X86InstComments.cpp.
References getVectorRegSize(), and MI.
Referenced by llvm::EmitAnyX86InstComments().
|
static |
Definition at line 246 of file X86InstComments.cpp.
References llvm::X86II::isXMMReg(), llvm::X86II::isYMMReg(), llvm::X86II::isZMMReg(), and llvm_unreachable.
Referenced by getRegOperandNumElts().
|
static |
Definition at line 294 of file X86InstComments.cpp.
References CASE_FMA4_PACKED_MR, CASE_FMA4_PACKED_RM, CASE_FMA4_PACKED_RR, CASE_FMA4_SCALAR_MR, CASE_FMA4_SCALAR_RM, CASE_FMA4_SCALAR_RR, CASE_FMA_PACKED_MEM, CASE_FMA_PACKED_REG, CASE_FMA_SCALAR_MEM, CASE_FMA_SCALAR_REG, llvm::FMSUB, llvm::FNMADD, llvm::FNMSUB, getRegName(), MI, OS, and printMasking().
Referenced by llvm::EmitAnyX86InstComments().
|
static |
Definition at line 966 of file X86InstComments.cpp.
References CASE_FPCLASS_PACKED, CASE_FPCLASS_PACKED_MEM, CASE_FPCLASS_SCALAR, getRegName(), I, MI, OS, and printMasking().
Referenced by llvm::EmitAnyX86InstComments().
|
static |
Wraps the destination register name with AVX512 mask/maskz filtering.
Definition at line 270 of file X86InstComments.cpp.
References llvm::X86II::EVEX_K, llvm::X86II::EVEX_Z, llvm::MCInstrInfo::get(), getRegName(), MI, OS, and llvm::MCOI::TIED_TO.
Referenced by llvm::EmitAnyX86InstComments(), printFMAComments(), printFPCLASSComments(), and printPTERNLOGComments().
|
static |
Definition at line 904 of file X86InstComments.cpp.
References CASE_PTERNLOG, llvm::StringRef::find_first_of(), getRegName(), MI, OS, printMasking(), and TernlogFunctions.
Referenced by llvm::EmitAnyX86InstComments().
|
constexpr |
Definition at line 645 of file X86InstComments.cpp.
Referenced by printPTERNLOGComments().