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_MASK_INS_COMMON_INT(Inst, Suffix, src) case X86::V##Inst##Suffix##src##k_Int: |
#define | CASE_MASKZ_INS_COMMON_INT(Inst, Suffix, src) case X86::V##Inst##Suffix##src##kz_Int: |
#define | CASE_AVX512_INS_COMMON_INT(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 183 of file X86InstComments.cpp.
#define CASE_AVX512_INS_COMMON | ( | Inst, | |
Suffix, | |||
src | |||
) |
Definition at line 38 of file X86InstComments.cpp.
#define CASE_AVX512_INS_COMMON_INT | ( | Inst, | |
Suffix, | |||
src | |||
) |
Definition at line 49 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 188 of file X86InstComments.cpp.
#define CASE_FMA4 | ( | Inst, | |
suf | |||
) |
Definition at line 223 of file X86InstComments.cpp.
#define CASE_FMA4_PACKED_MR | ( | Inst | ) |
Definition at line 235 of file X86InstComments.cpp.
#define CASE_FMA4_PACKED_RM | ( | Inst | ) |
Definition at line 231 of file X86InstComments.cpp.
#define CASE_FMA4_PACKED_RR | ( | Inst | ) |
Definition at line 227 of file X86InstComments.cpp.
#define CASE_FMA4_SCALAR_MR | ( | Inst | ) |
Definition at line 251 of file X86InstComments.cpp.
#define CASE_FMA4_SCALAR_RM | ( | Inst | ) |
Definition at line 245 of file X86InstComments.cpp.
#define CASE_FMA4_SCALAR_RR | ( | Inst | ) |
Definition at line 239 of file X86InstComments.cpp.
#define CASE_FMA_PACKED_MEM | ( | Inst | ) |
Definition at line 197 of file X86InstComments.cpp.
#define CASE_FMA_PACKED_REG | ( | Inst | ) |
Definition at line 193 of file X86InstComments.cpp.
#define CASE_FMA_SCALAR_MEM | ( | Inst | ) |
Definition at line 213 of file X86InstComments.cpp.
#define CASE_FMA_SCALAR_REG | ( | Inst | ) |
Definition at line 203 of file X86InstComments.cpp.
#define CASE_FPCLASS_PACKED | ( | Inst, | |
src | |||
) |
Definition at line 54 of file X86InstComments.cpp.
#define CASE_FPCLASS_PACKED_MEM | ( | Inst | ) |
Definition at line 60 of file X86InstComments.cpp.
#define CASE_FPCLASS_SCALAR | ( | Inst, | |
src | |||
) |
Definition at line 64 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_INS_COMMON_INT | ( | Inst, | |
Suffix, | |||
src | |||
) | case X86::V##Inst##Suffix##src##k_Int: |
Definition at line 43 of file X86InstComments.cpp.
#define CASE_MASK_MOVDUP | ( | Inst, | |
src | |||
) |
Definition at line 81 of file X86InstComments.cpp.
#define CASE_MASK_SHUF | ( | Inst, | |
src | |||
) |
Definition at line 125 of file X86InstComments.cpp.
#define CASE_MASK_UNPCK | ( | Inst, | |
src | |||
) |
Definition at line 107 of file X86InstComments.cpp.
#define CASE_MASK_VPERM | ( | Inst, | |
src | |||
) |
Definition at line 157 of file X86InstComments.cpp.
#define CASE_MASK_VPERMILPI | ( | Inst, | |
src | |||
) |
Definition at line 142 of file X86InstComments.cpp.
#define CASE_MASK_VSHUF | ( | Inst, | |
src | |||
) |
Definition at line 171 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_INS_COMMON_INT | ( | Inst, | |
Suffix, | |||
src | |||
) | case X86::V##Inst##Suffix##src##kz_Int: |
Definition at line 46 of file X86InstComments.cpp.
#define CASE_MASKZ_MOVDUP | ( | Inst, | |
src | |||
) |
Definition at line 86 of file X86InstComments.cpp.
#define CASE_MASKZ_SHUF | ( | Inst, | |
src | |||
) |
Definition at line 130 of file X86InstComments.cpp.
#define CASE_MASKZ_UNPCK | ( | Inst, | |
src | |||
) |
Definition at line 112 of file X86InstComments.cpp.
#define CASE_MASKZ_VPERM | ( | Inst, | |
src | |||
) |
Definition at line 161 of file X86InstComments.cpp.
#define CASE_MASKZ_VPERMILPI | ( | Inst, | |
src | |||
) |
Definition at line 147 of file X86InstComments.cpp.
#define CASE_MASKZ_VSHUF | ( | Inst, | |
src | |||
) |
Definition at line 177 of file X86InstComments.cpp.
#define CASE_MOVDUP | ( | Inst, | |
src | |||
) |
Definition at line 73 of file X86InstComments.cpp.
#define CASE_PMOVZX | ( | Inst, | |
src | |||
) |
Definition at line 91 of file X86InstComments.cpp.
#define CASE_PTERNLOG | ( | Inst, | |
src | |||
) |
Definition at line 68 of file X86InstComments.cpp.
#define CASE_SHUF | ( | Inst, | |
suf | |||
) |
Definition at line 117 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 99 of file X86InstComments.cpp.
#define CASE_VPERM | ( | Inst, | |
src | |||
) |
Definition at line 152 of file X86InstComments.cpp.
#define CASE_VPERMILPI | ( | Inst, | |
src | |||
) |
Definition at line 135 of file X86InstComments.cpp.
#define CASE_VSHUF | ( | Inst, | |
src | |||
) |
Definition at line 165 of file X86InstComments.cpp.
|
static |
Definition at line 276 of file X86InstComments.cpp.
References llvm::X86ATTInstPrinter::getRegisterName().
Referenced by llvm::EmitAnyX86InstComments(), printFMAComments(), printFPCLASSComments(), printMasking(), and printPTERNLOGComments().
|
static |
Definition at line 270 of file X86InstComments.cpp.
References getVectorRegSize(), and MI.
Referenced by llvm::EmitAnyX86InstComments().
|
static |
Definition at line 257 of file X86InstComments.cpp.
References llvm::X86II::isXMMReg(), llvm::X86II::isYMMReg(), llvm::X86II::isZMMReg(), and llvm_unreachable.
Referenced by getRegOperandNumElts().
|
static |
Definition at line 305 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 977 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 281 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 915 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 656 of file X86InstComments.cpp.
Referenced by printPTERNLOGComments().