| 
    LLVM 22.0.0git
    
   | 
 
#include "ARMBaseInstrInfo.h"#include "ARMFeatures.h"#include "MCTargetDesc/ARMAddressingModes.h"#include "MCTargetDesc/ARMBaseInfo.h"#include "MCTargetDesc/ARMInstPrinter.h"#include "MCTargetDesc/ARMMCAsmInfo.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/SmallBitVector.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/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/AsmLexer.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/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/Debug.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/MathExtras.h"#include "llvm/Support/SMLoc.h"#include "llvm/Support/raw_ostream.h"#include "llvm/TargetParser/SubtargetFeature.h"#include "llvm/TargetParser/TargetParser.h"#include <algorithm>#include <cassert>#include <cstddef>#include <cstdint>#include <iterator>#include <limits>#include <memory>#include <optional>#include <string>#include <utility>#include <vector>#include "ARMGenAsmMatcher.inc"Go to the source code of this file.
Namespaces | |
| namespace | 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) | 
| #define DEBUG_TYPE "asm-parser" | 
Definition at line 70 of file ARMAsmParser.cpp.
| #define GET_ASSEMBLER_HEADER | 
Definition at line 623 of file ARMAsmParser.cpp.
| #define GET_MATCHER_IMPLEMENTATION | 
Definition at line 12737 of file ARMAsmParser.cpp.
| #define GET_MNEMONIC_SPELL_CHECKER | 
Definition at line 12738 of file ARMAsmParser.cpp.
| #define GET_OPERAND_DIAGNOSTIC_TYPES | 
Definition at line 686 of file ARMAsmParser.cpp.
| #define GET_REGISTER_MATCHER | 
Definition at line 12735 of file ARMAsmParser.cpp.
| #define GET_SUBTARGET_FEATURE_NAME | 
Definition at line 12736 of file ARMAsmParser.cpp.
      
  | 
  static | 
References MRI.
      
  | 
  static | 
      
  | 
  static | 
Definition at line 7494 of file ARMAsmParser.cpp.
References containsReg(), llvm::MCInst::getNumOperands(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), llvm::isARMLowRegister(), and Reg.
Definition at line 6937 of file ARMAsmParser.cpp.
References llvm::StringRef::starts_with().
| unsigned findCCOutInd | ( | const OperandVector & | Operands, | 
| unsigned | MnemonicOpsEndInd ) | 
Definition at line 5810 of file ARMAsmParser.cpp.
References I.
| unsigned findCondCodeInd | ( | const OperandVector & | Operands, | 
| unsigned | MnemonicOpsEndInd ) | 
Definition at line 5800 of file ARMAsmParser.cpp.
References I.
      
  | 
  static | 
Definition at line 7639 of file ARMAsmParser.cpp.
References llvm::ARM::isVpred().
Referenced by isVectorPredicable().
      
  | 
  static | 
Definition at line 4159 of file ARMAsmParser.cpp.
References llvm::MCExpr::Constant, llvm::dyn_cast(), llvm::getToken(), llvm::ARM_PROC::ID, llvm::ARM_PROC::IE, isDataTypeToken(), and llvm::SmallVectorTemplateCommon< T, typename >::size().
      
  | 
  static | 
Definition at line 4579 of file ARMAsmParser.cpp.
References contains(), llvm_unreachable, and Reg.
Definition at line 8803 of file ARMAsmParser.cpp.
References llvm_unreachable, and Opc.
Definition at line 8694 of file ARMAsmParser.cpp.
References llvm_unreachable, and Opc.
| unsigned getRegListInd | ( | const OperandVector & | Operands, | 
| unsigned | MnemonicOpsEndInd ) | 
Definition at line 7529 of file ARMAsmParser.cpp.
References I, and llvm::SmallVectorTemplateCommon< T, typename >::size().
References llvm::dbgs().
      
  | 
  static | 
Definition at line 4601 of file ARMAsmParser.cpp.
References E(), I, Reg, and std::swap().
Definition at line 7522 of file ARMAsmParser.cpp.
References llvm::MCInst::getOpcode().
      
  | 
  static | 
Definition at line 7651 of file ARMAsmParser.cpp.
References llvm::dyn_cast(), and E().
}
Definition at line 4151 of file ARMAsmParser.cpp.
References llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::contains().
Referenced by getMnemonicOpsEndInd().
      
  | 
  static | 
Definition at line 6876 of file ARMAsmParser.cpp.
References llvm::dyn_cast(), E(), llvm::ARM::S_HI_0_7, llvm::ARM::S_HI_8_15, llvm::ARM::S_LO_0_7, and llvm::ARM::S_LO_8_15.
      
  | 
  static | 
Definition at line 7647 of file ARMAsmParser.cpp.
References findFirstVectorPredOperandIdx().
      
  | 
  static | 
Definition at line 7511 of file ARMAsmParser.cpp.
References llvm::MCInst::getNumOperands(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), and Reg.
| LLVM_ABI LLVM_EXTERNAL_VISIBILITY void LLVMInitializeARMAsmParser | ( | ) | 
Force static initialization.
Definition at line 12728 of file ARMAsmParser.cpp.
References A(), B(), llvm::getTheARMBETarget(), llvm::getTheARMLETarget(), llvm::getTheThumbBETarget(), llvm::getTheThumbLETarget(), LLVM_ABI, LLVM_EXTERNAL_VISIBILITY, 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 4447 of file ARMAsmParser.cpp.
      
  | 
  static | 
| bool operandsContainWide | ( | OperandVector & | Operands, | 
| unsigned | MnemonicOpsEndInd ) | 
Definition at line 6776 of file ARMAsmParser.cpp.
References I.
| void removeCCOut | ( | OperandVector & | Operands, | 
| unsigned & | MnemonicOpsEndInd ) | 
Definition at line 7068 of file ARMAsmParser.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorImpl< T >::erase(), and I.
| void removeCondCode | ( | OperandVector & | Operands, | 
| unsigned & | MnemonicOpsEndInd ) | 
Definition at line 7059 of file ARMAsmParser.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorImpl< T >::erase(), and I.
| void removeVPTCondCode | ( | OperandVector & | Operands, | 
| unsigned & | MnemonicOpsEndInd ) | 
Definition at line 7077 of file ARMAsmParser.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorImpl< T >::erase(), and I.