LLVM 20.0.0git
Macros | Functions | Variables
X86AsmParser.cpp File Reference
#include "MCTargetDesc/X86BaseInfo.h"
#include "MCTargetDesc/X86EncodingOptimization.h"
#include "MCTargetDesc/X86IntelInstPrinter.h"
#include "MCTargetDesc/X86MCExpr.h"
#include "MCTargetDesc/X86MCTargetDesc.h"
#include "MCTargetDesc/X86TargetStreamer.h"
#include "TargetInfo/X86TargetInfo.h"
#include "X86AsmParserCommon.h"
#include "X86Operand.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/ADT/Twine.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCInstrInfo.h"
#include "llvm/MC/MCParser/MCAsmLexer.h"
#include "llvm/MC/MCParser/MCAsmParser.h"
#include "llvm/MC/MCParser/MCParsedAsmOperand.h"
#include "llvm/MC/MCParser/MCTargetAsmParser.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/MC/MCSection.h"
#include "llvm/MC/MCStreamer.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/MC/MCSymbol.h"
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <memory>
#include "X86GenInstrMapping.inc"
#include "X86GenAsmMatcher.inc"

Go to the source code of this file.

Macros

#define GET_X86_SSE2AVX_TABLE
 
#define GET_OPERAND_DIAGNOSTIC_TYPES
 
#define GET_REGISTER_MATCHER
 
#define GET_SUBTARGET_FEATURE_NAME
 
#define FROM_TO(FROM, TO)
 
#define GET_MATCHER_IMPLEMENTATION
 
Auto-generated Matcher Functions

{

#define GET_ASSEMBLER_HEADER
 

Functions

static bool checkScale (unsigned Scale, StringRef &ErrMsg)
 
static bool CheckBaseRegAndIndexRegAndScale (unsigned BaseReg, unsigned IndexReg, unsigned Scale, bool Is64BitMode, StringRef &ErrMsg)
 
static bool convertSSEToAVX (MCInst &Inst)
 
static unsigned getPrefixes (OperandVector &Operands)
 
LLVM_EXTERNAL_VISIBILITY void LLVMInitializeX86AsmParser ()
 

Variables

static cl::opt< boolLVIInlineAsmHardening ("x86-experimental-lvi-inline-asm-hardening", cl::desc("Harden inline assembly code that may be vulnerable to Load Value" " Injection (LVI). This feature is experimental."), cl::Hidden)
 

Macro Definition Documentation

◆ FROM_TO

#define FROM_TO (   FROM,
  TO 
)
Value:
case X86::FROM: \
return replaceWithCCMPCTEST(X86::TO);

◆ GET_ASSEMBLER_HEADER

#define GET_ASSEMBLER_HEADER

Definition at line 1263 of file X86AsmParser.cpp.

◆ GET_MATCHER_IMPLEMENTATION

#define GET_MATCHER_IMPLEMENTATION

Definition at line 5032 of file X86AsmParser.cpp.

◆ GET_OPERAND_DIAGNOSTIC_TYPES

#define GET_OPERAND_DIAGNOSTIC_TYPES

Definition at line 1271 of file X86AsmParser.cpp.

◆ GET_REGISTER_MATCHER

#define GET_REGISTER_MATCHER

Definition at line 1299 of file X86AsmParser.cpp.

◆ GET_SUBTARGET_FEATURE_NAME

#define GET_SUBTARGET_FEATURE_NAME

Definition at line 1300 of file X86AsmParser.cpp.

◆ GET_X86_SSE2AVX_TABLE

#define GET_X86_SSE2AVX_TABLE

Definition at line 62 of file X86AsmParser.cpp.

Function Documentation

◆ CheckBaseRegAndIndexRegAndScale()

static bool CheckBaseRegAndIndexRegAndScale ( unsigned  BaseReg,
unsigned  IndexReg,
unsigned  Scale,
bool  Is64BitMode,
StringRef ErrMsg 
)
static

Definition at line 1303 of file X86AsmParser.cpp.

References checkScale(), and contains().

◆ checkScale()

static bool checkScale ( unsigned  Scale,
StringRef ErrMsg 
)
static

Definition at line 51 of file X86AsmParser.cpp.

Referenced by CheckBaseRegAndIndexRegAndScale().

◆ convertSSEToAVX()

static bool convertSSEToAVX ( MCInst Inst)
static

◆ getPrefixes()

static unsigned getPrefixes ( OperandVector Operands)
static

Definition at line 4107 of file X86AsmParser.cpp.

References Operands.

◆ LLVMInitializeX86AsmParser()

LLVM_EXTERNAL_VISIBILITY void LLVMInitializeX86AsmParser ( )

Definition at line 5027 of file X86AsmParser.cpp.

References llvm::getTheX86_32Target(), llvm::getTheX86_64Target(), X, and Y.

Variable Documentation

◆ LVIInlineAsmHardening

cl::opt< bool > LVIInlineAsmHardening("x86-experimental-lvi-inline-asm-hardening", cl::desc("Harden inline assembly code that may be vulnerable to Load Value" " Injection (LVI). This feature is experimental."), cl::Hidden) ( "x86-experimental-lvi-inline-asm-hardening"  ,
cl::desc("Harden inline assembly code that may be vulnerable to Load Value" " Injection (LVI). This feature is experimental.")  ,
cl::Hidden   
)
static