LLVM
17.0.0git
|
#include "ARMBaseInstrInfo.h"
#include "ARMFeatures.h"
#include "MCTargetDesc/ARMAddressingModes.h"
#include "MCTargetDesc/ARMBaseInfo.h"
#include "MCTargetDesc/ARMInstPrinter.h"
#include "MCTargetDesc/ARMMCExpr.h"
#include "MCTargetDesc/ARMMCTargetDesc.h"
#include "TargetInfo/ARMTargetInfo.h"
#include "Utils/ARMBaseInfo.h"
#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/ADT/Triple.h"
#include "llvm/ADT/Twine.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCInstrDesc.h"
#include "llvm/MC/MCInstrInfo.h"
#include "llvm/MC/MCParser/MCAsmLexer.h"
#include "llvm/MC/MCParser/MCAsmParser.h"
#include "llvm/MC/MCParser/MCAsmParserExtension.h"
#include "llvm/MC/MCParser/MCAsmParserUtils.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/SubtargetFeature.h"
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Support/ARMBuildAttributes.h"
#include "llvm/Support/ARMEHABI.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/SMLoc.h"
#include "llvm/Support/TargetParser.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <iterator>
#include <limits>
#include <memory>
#include <string>
#include <utility>
#include <vector>
#include "ARMGenAsmMatcher.inc"
Go to the source code of this file.
Namespaces | |
llvm | |
This is an optimization pass for GlobalISel generic memory operations. | |
Macros | |
#define | DEBUG_TYPE "asm-parser" |
#define | GET_OPERAND_DIAGNOSTIC_TYPES |
Auto-generated Match Functions | |
{ | |
#define | GET_ASSEMBLER_HEADER |
Functions | |
template<> | |
bool | llvm::IsCPSRDead< MCInst > (const MCInst *Instr) |
Variables | |
const MCInstrDesc | llvm::ARMInsts [] |
Auto-generated Match Functions | |
#define | GET_REGISTER_MATCHER |
#define | GET_SUBTARGET_FEATURE_NAME |
#define | GET_MATCHER_IMPLEMENTATION |
#define | GET_MNEMONIC_SPELL_CHECKER |
static unsigned | MatchRegisterName (StringRef Name) |
static int | MatchCoprocessorOperandName (StringRef Name, char CoprocOp) |
MatchCoprocessorOperandName - Try to parse an coprocessor related instruction with a symbolic operand name. More... | |
static unsigned | getNextRegister (unsigned Reg) |
static bool | insertNoDuplicates (SmallVectorImpl< std::pair< unsigned, unsigned >> &Regs, unsigned Enc, unsigned Reg) |
static bool | isDataTypeToken (StringRef Tok) |
static bool | doesIgnoreDataTypeSuffix (StringRef Mnemonic, StringRef DT) |
static void | applyMnemonicAliases (StringRef &Mnemonic, const FeatureBitset &Features, unsigned VariantID) |
static bool | checkLowRegisterList (const MCInst &Inst, unsigned OpNo, unsigned Reg, unsigned HiReg, bool &containsReg) |
static bool | listContainsReg (const MCInst &Inst, unsigned OpNo, unsigned Reg) |
static bool | instIsBreakpoint (const MCInst &Inst) |
static int | findFirstVectorPredOperandIdx (const MCInstrDesc &MCID) |
static bool | isVectorPredicable (const MCInstrDesc &MCID) |
static unsigned | getRealVSTOpcode (unsigned Opc, unsigned &Spacing) |
static unsigned | getRealVLDOpcode (unsigned Opc, unsigned &Spacing) |
static std::string | ARMMnemonicSpellCheck (StringRef S, const FeatureBitset &FBS, unsigned VariantID=0) |
static const char * | getSubtargetFeatureName (uint64_t Val) |
LLVM_EXTERNAL_VISIBILITY void | LLVMInitializeARMAsmParser () |
Force static initialization. More... | |
#define DEBUG_TYPE "asm-parser" |
Definition at line 68 of file ARMAsmParser.cpp.
#define GET_ASSEMBLER_HEADER |
Definition at line 616 of file ARMAsmParser.cpp.
#define GET_MATCHER_IMPLEMENTATION |
Definition at line 12266 of file ARMAsmParser.cpp.
#define GET_MNEMONIC_SPELL_CHECKER |
Definition at line 12267 of file ARMAsmParser.cpp.
#define GET_OPERAND_DIAGNOSTIC_TYPES |
Definition at line 674 of file ARMAsmParser.cpp.
#define GET_REGISTER_MATCHER |
Definition at line 12264 of file ARMAsmParser.cpp.
#define GET_SUBTARGET_FEATURE_NAME |
Definition at line 12265 of file ARMAsmParser.cpp.
|
static |
|
static |
|
static |
Definition at line 7495 of file ARMAsmParser.cpp.
References llvm::MCInst::getNumOperands(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), i, and llvm::isARMLowRegister().
Definition at line 6960 of file ARMAsmParser.cpp.
References llvm::StringRef::startswith().
|
static |
Definition at line 7628 of file ARMAsmParser.cpp.
References i, llvm::ARM::isVpred(), llvm::MCInstrDesc::NumOperands, and llvm::MCInstrDesc::operands().
Referenced by isVectorPredicable().
|
static |
Definition at line 4438 of file ARMAsmParser.cpp.
References contains(), llvm_unreachable, R2, R4, and R6.
|
static |
Definition at line 8569 of file ARMAsmParser.cpp.
References llvm_unreachable.
|
static |
Definition at line 8460 of file ARMAsmParser.cpp.
References llvm_unreachable.
|
static |
Definition at line 4460 of file ARMAsmParser.cpp.
References E, I, and std::swap().
Definition at line 7523 of file ARMAsmParser.cpp.
References llvm::MCInst::getOpcode().
|
static |
Definition at line 6948 of file ARMAsmParser.cpp.
|
static |
Definition at line 7636 of file ARMAsmParser.cpp.
References findFirstVectorPredOperandIdx().
Definition at line 7512 of file ARMAsmParser.cpp.
References llvm::numbers::e, llvm::MCInst::getNumOperands(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), and i.
LLVM_EXTERNAL_VISIBILITY void LLVMInitializeARMAsmParser | ( | ) |
Force static initialization.
Definition at line 12257 of file ARMAsmParser.cpp.
References B, llvm::getTheARMBETarget(), llvm::getTheARMLETarget(), llvm::getTheThumbBETarget(), llvm::getTheThumbLETarget(), X, and Y.
MatchCoprocessorOperandName - Try to parse an coprocessor related instruction with a symbolic operand name.
We accept "crN" syntax for GAS compatibility. <operand-name> ::= <prefix><number> If CoprocOp is 'c', then: <prefix> ::= c | cr If CoprocOp is 'p', then : <prefix> ::= p <number> ::= integer in range [0, 15]
Definition at line 4300 of file ARMAsmParser.cpp.
|
static |