LLVM  6.0.0svn
Functions
X86AsmParser.cpp File Reference
#include "InstPrinter/X86IntelInstPrinter.h"
#include "MCTargetDesc/X86BaseInfo.h"
#include "MCTargetDesc/X86TargetStreamer.h"
#include "X86AsmInstrumentation.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/Support/SourceMgr.h"
#include "llvm/Support/TargetRegistry.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <memory>
#include "X86GenAsmMatcher.inc"
Include dependency graph for X86AsmParser.cpp:

Go to the source code of this file.

Macros

Auto-generated Matcher Functions

{

#define GET_ASSEMBLER_HEADER
 

Functions

static bool checkScale (unsigned Scale, StringRef &ErrMsg)
 

Auto-generated Match Functions

{

#define GET_REGISTER_MATCHER
 
#define GET_MATCHER_IMPLEMENTATION
 
#define GET_SUBTARGET_FEATURE_NAME
 
static unsigned MatchRegisterName (StringRef Name)
 
static bool CheckBaseRegAndIndexRegAndScale (unsigned BaseReg, unsigned IndexReg, unsigned Scale, StringRef &ErrMsg)
 } More...
 
static const chargetSubtargetFeatureName (uint64_t Val)
 
static unsigned getPrefixes (OperandVector &Operands)
 
void LLVMInitializeX86AsmParser ()
 

Macro Definition Documentation

◆ GET_ASSEMBLER_HEADER

#define GET_ASSEMBLER_HEADER

Definition at line 933 of file X86AsmParser.cpp.

◆ GET_MATCHER_IMPLEMENTATION

#define GET_MATCHER_IMPLEMENTATION

Definition at line 3275 of file X86AsmParser.cpp.

◆ GET_REGISTER_MATCHER

#define GET_REGISTER_MATCHER

Definition at line 3274 of file X86AsmParser.cpp.

◆ GET_SUBTARGET_FEATURE_NAME

#define GET_SUBTARGET_FEATURE_NAME

Definition at line 3276 of file X86AsmParser.cpp.

Function Documentation

◆ CheckBaseRegAndIndexRegAndScale()

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

}

Definition at line 969 of file X86AsmParser.cpp.

References llvm::AsmToken::Amp, llvm::AOK_EndOfStatement, llvm::AOK_Label, llvm::AOK_SizeDirective, llvm::AOK_Skip, llvm::ParseInstructionInfo::AsmRewrites, assert(), llvm::StringRef::back(), llvm::SmallVectorTemplateCommon< T, typename >::back(), llvm::X86Operand::MemOp::BaseReg, llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::AsmToken::Caret, llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Cases(), checkScale(), llvm::AsmToken::Colon, llvm::AsmToken::Comma, llvm::StringRef::compare(), contains(), llvm::StringRef::count(), llvm::MCConstantExpr::create(), llvm::MCSymbolRefExpr::create(), llvm::MCBinaryExpr::createAdd(), llvm::X86Operand::CreateImm(), llvm::X86Operand::CreateMem(), llvm::X86Operand::CreatePrefix(), llvm::X86Operand::CreateReg(), llvm::X86Operand::CreateToken(), llvm::StringRef::data(), llvm::InlineAsmIdentifierInfo::LabelIdentifier::Decl, llvm::InlineAsmIdentifierInfo::VariableIdentifier::Decl, llvm::StringSwitch< T, R >::Default(), llvm::X86Operand::MemOp::Disp, llvm::AsmToken::Dollar, llvm::StringRef::drop_back(), llvm::StringRef::drop_front(), llvm::N86::EBX, llvm::N86::EDI, llvm::WebAssembly::End, llvm::AsmToken::EndOfStatement, llvm::StringRef::endswith(), llvm::StringRef::equals(), llvm::StringRef::equals_lower(), llvm::SmallVectorImpl< T >::erase(), llvm::lltok::Error, llvm::AsmToken::Error, llvm::N86::ESI, llvm::StringRef::getAsInteger(), llvm::MCAsmParser::getContext(), llvm::X86Operand::getEndLoc(), llvm::AsmToken::getEndLoc(), llvm::SMLoc::getFromPointer(), llvm::AsmToken::getIdentifier(), llvm::X86Operand::getImm(), llvm::AsmToken::getIntVal(), llvm::AsmToken::getLoc(), llvm::MCSymbol::getName(), llvm::SMLoc::getPointer(), llvm::X86Operand::getReg(), llvm::X86IntelInstPrinter::getRegisterName(), llvm::X86Operand::getStartLoc(), llvm::AsmToken::getString(), getSubtargetFeatureName(), llvm::MCAsmParser::getTok(), llvm::X86Operand::getToken(), llvm::getX86SubSuperRegisterOrZero(), llvm::APInt::getZExtValue(), llvm::AsmToken::GreaterGreater, llvm::AsmToken::Identifier, llvm::object::Identifier, llvm::InlineAsmIdentifierInfo::IK_EnumVal, llvm::InlineAsmIdentifierInfo::IK_Invalid, llvm::InlineAsmIdentifierInfo::IK_Label, llvm::InlineAsmIdentifierInfo::IK_Var, llvm::X86Operand::MemOp::IndexReg, llvm::AsmToken::Integer, llvm::tgtok::IntVal, llvm::X86::IP_HAS_LOCK, llvm::X86::IP_HAS_REPEAT, llvm::X86::IP_HAS_REPEAT_NE, llvm::X86::IP_NO_PREFIX, llvm::AsmToken::is(), llvm::X86II::is32ExtendedReg(), llvm::InlineAsmIdentifierInfo::VariableIdentifier::IsGlobalLV, llvm::X86Operand::isImm(), llvm::InlineAsmIdentifierInfo::isKind(), llvm::X86Operand::isMem(), llvm::X86Operand::isMem8(), llvm::AsmToken::isNot(), isPrefix(), llvm::X86Operand::isReg(), llvm::MCSymbol::isUndefined(), llvm::X86II::isX86_64ExtendedReg(), llvm::X86II::isX86_64NonExtLowByteReg(), llvm::InlineAsmIdentifierInfo::Label, llvm::AsmToken::LBrac, llvm::AsmToken::LCurly, llvm::InlineAsmIdentifierInfo::VariableIdentifier::Length, llvm::AsmToken::LessLess, llvm::MCAsmParser::Lex(), llvm_unreachable, llvm::StringRef::lower(), llvm::AsmToken::LParen, llvm::BitmaskEnumDetail::Mask(), llvm::MatchRegisterName(), llvm::X86Operand::Mem, llvm::AsmToken::Minus, N, llvm::AsmToken::Percent, llvm::AsmToken::Pipe, llvm::AsmToken::Plus, llvm::SmallVectorTemplateBase< T, isPodLike >::pop_back(), llvm::cl::Prefix, llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::AsmToken::RBrac, llvm::AsmToken::RCurly, llvm::AsmToken::Real, llvm::AsmToken::RParen, llvm::X86Operand::MemOp::SegReg, llvm::MCInst::setLoc(), llvm::MCInst::setOpcode(), SI, llvm::InlineAsmIdentifierInfo::VariableIdentifier::Size, llvm::X86Operand::MemOp::Size, llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::StringRef::size(), llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Size, llvm::AsmToken::Slash, llvm::StringRef::slice(), llvm::StringRef::split(), llvm::AsmToken::Star, startswith(), llvm::StringRef::startswith(), llvm::raw_svector_ostream::str(), llvm::AsmToken::String, llvm::StringRef::substr(), llvm::AsmToken::Tilde, llvm::X86::TO_NEAREST_INT, llvm::X86::TO_NEG_INF, llvm::X86::TO_POS_INF, llvm::X86::TO_ZERO, llvm::InlineAsmIdentifierInfo::VariableIdentifier::Type, llvm::StringRef::upper(), llvm::InlineAsmIdentifierInfo::Var, llvm::MCSymbolRefExpr::VK_None, llvm::dwarf::syntax::Warning, and llvm::Z.

◆ checkScale()

static bool checkScale ( unsigned  Scale,
StringRef ErrMsg 
)
static

◆ getPrefixes()

static unsigned getPrefixes ( OperandVector Operands)
static

Definition at line 2690 of file X86AsmParser.cpp.

References llvm::AOK_SizeDirective, llvm::array_lengthof(), assert(), llvm::SmallVectorTemplateCommon< T >::back(), llvm::SmallVectorTemplateCommon< T, typename >::back(), llvm::sys::path::begin(), llvm::AsmToken::Comma, llvm::count(), llvm::dyn_cast(), E, llvm::SmallVectorBase::empty(), llvm::sys::path::end(), llvm::AsmToken::EndOfStatement, llvm::lltok::Error, llvm::AsmToken::getIdentifier(), llvm::AsmToken::getLoc(), llvm::X86Operand::getLocRange(), llvm::X86Operand::getMemFrontendSize(), llvm::MCInst::getOpcode(), llvm::X86Operand::getPrefix(), llvm::X86Operand::getStartLoc(), llvm::AsmToken::getString(), llvm::MCAsmParser::getTok(), I, llvm::isIntN(), llvm::X86Operand::isMemUnsized(), llvm::X86Operand::isPrefix(), llvm::isUIntN(), llvm::SMLoc::isValid(), llvm::MCAsmParser::Lex(), llvm_unreachable, llvm::MCAF_Code16, llvm::MCAF_Code32, llvm::MCAF_Code64, llvm::X86Operand::Mem, llvm::None, llvm::MCAsmParser::parseEOL(), llvm::MCAsmParser::parseIdentifier(), llvm::MCAsmParser::parseIntToken(), llvm::SmallVectorTemplateBase< T, isPodLike >::pop_back(), llvm::cl::Prefix, llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::ARMBuildAttrs::Section, llvm::MCInst::setFlags(), llvm::MCInst::setLoc(), llvm::X86Operand::MemOp::Size, llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Size, llvm::StringRef::startswith(), llvm::raw_svector_ostream::str(), llvm::MCAsmParser::TokError(), and llvm::MCSection::UseCodeAlign().

◆ getSubtargetFeatureName()

static const char* getSubtargetFeatureName ( uint64_t  Val)
static

◆ LLVMInitializeX86AsmParser()

void LLVMInitializeX86AsmParser ( )

Definition at line 3269 of file X86AsmParser.cpp.

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

◆ MatchRegisterName()

static unsigned MatchRegisterName ( StringRef  Name)
static