LLVM 20.0.0git
|
#include "AArch64Disassembler.h"
#include "AArch64ExternalSymbolizer.h"
#include "MCTargetDesc/AArch64AddressingModes.h"
#include "MCTargetDesc/AArch64MCTargetDesc.h"
#include "TargetInfo/AArch64TargetInfo.h"
#include "Utils/AArch64BaseInfo.h"
#include "llvm-c/Disassembler.h"
#include "llvm/MC/MCDecoderOps.h"
#include "llvm/MC/MCDisassembler/MCRelocationInfo.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCInstrDesc.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include <algorithm>
#include <memory>
#include "AArch64GenDisassemblerTables.inc"
#include "AArch64GenInstrInfo.inc"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "aarch64-disassembler" |
#define | Success MCDisassembler::Success |
#define | Fail MCDisassembler::Fail |
#define | SoftFail MCDisassembler::SoftFail |
Typedefs | |
using | DecodeStatus = MCDisassembler::DecodeStatus |
Variables | |
static const MCPhysReg | MatrixZATileDecoderTable [5][16] |
#define DEBUG_TYPE "aarch64-disassembler" |
Definition at line 34 of file AArch64Disassembler.cpp.
#define Fail MCDisassembler::Fail |
Definition at line 214 of file AArch64Disassembler.cpp.
#define SoftFail MCDisassembler::SoftFail |
Definition at line 215 of file AArch64Disassembler.cpp.
#define Success MCDisassembler::Success |
Definition at line 213 of file AArch64Disassembler.cpp.
Definition at line 37 of file AArch64Disassembler.cpp.
|
static |
Definition at line 217 of file AArch64Disassembler.cpp.
Referenced by LLVMInitializeAArch64Disassembler().
|
static |
Definition at line 298 of file AArch64Disassembler.cpp.
Referenced by LLVMInitializeAArch64Disassembler().
|
static |
Definition at line 1253 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), Addr, llvm::MCOperand::createImm(), Fail, llvm::MCInst::getOpcode(), and Success.
|
static |
Definition at line 1445 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), Addr, llvm::MCOperand::createImm(), Fail, Success, and llvm::MCDisassembler::tryAddingSymbolicOperand().
|
static |
Definition at line 1426 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), Addr, llvm::MCOperand::createImm(), Fail, Success, and llvm::MCDisassembler::tryAddingSymbolicOperand().
|
static |
Definition at line 1218 of file AArch64Disassembler.cpp.
References Addr, Fail, llvm::MCInst::getOpcode(), SoftFail, and Success.
|
static |
Definition at line 1685 of file AArch64Disassembler.cpp.
References Addr, llvm::MCDisassembler::Fail, and llvm::MCDisassembler::Success.
|
static |
Definition at line 979 of file AArch64Disassembler.cpp.
References Addr, Fail, llvm::MCInst::getOpcode(), SoftFail, and Success.
|
static |
Definition at line 424 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and Success.
|
static |
Definition at line 433 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and Success.
|
static |
Definition at line 496 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::Address, llvm::MCOperand::createImm(), Insn, and Success.
|
static |
Definition at line 344 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), Fail, and Success.
|
static |
Definition at line 1576 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), Fail, and Success.
Referenced by DecodeWSeqPairsClassRegisterClass(), and DecodeXSeqPairsClassRegisterClass().
|
static |
Definition at line 1657 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), Fail, and Success.
|
static |
Definition at line 1328 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), Addr, llvm::MCOperand::createImm(), Fail, llvm::MCInst::getOpcode(), llvm::AArch64_AM::isValidDecodeLogicalImmediate(), and Success.
|
static |
Definition at line 402 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), Fail, MatrixZATileDecoderTable, and Success.
|
static |
Definition at line 381 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), Fail, and Success.
|
static |
Definition at line 470 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and Success.
Referenced by DecodePRFMRegInstruction().
|
static |
Definition at line 1365 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), Addr, llvm::MCOperand::createImm(), llvm::MCInst::getOpcode(), and Success.
|
static |
Definition at line 1406 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), Addr, llvm::MCOperand::createImm(), and Success.
|
static |
Definition at line 669 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), Addr, llvm::MCOperand::createImm(), Fail, llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), and Success.
|
static |
Definition at line 478 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and Success.
|
static |
Definition at line 488 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and Success.
|
static |
Definition at line 1072 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), Addr, llvm::MCOperand::createImm(), Fail, llvm::MCInst::getOpcode(), SoftFail, and Success.
|
static |
Definition at line 440 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), Addr, llvm::MCOperand::createImm(), Fail, Success, and llvm::MCDisassembler::tryAddingSymbolicOperand().
|
static |
Definition at line 455 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), Addr, llvm::MCOperand::createImm(), llvm::MCInst::getOpcode(), Success, and llvm::MCDisassembler::tryAddingSymbolicOperand().
|
static |
Definition at line 413 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), Fail, and Success.
|
static |
Definition at line 1745 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), Addr, llvm::MCOperand::createImm(), DecodeMemExtend(), Fail, llvm::MCInst::getOpcode(), and Success.
|
static |
Definition at line 1716 of file AArch64Disassembler.cpp.
References Addr, llvm::MCDisassembler::Fail, and llvm::MCDisassembler::Success.
|
static |
Definition at line 771 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), Addr, llvm::MCOperand::createImm(), Fail, llvm::MCInst::getOpcode(), SoftFail, and Success.
|
static |
Definition at line 1642 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), Fail, and Success.
|
static |
Definition at line 331 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), Fail, and Success.
|
static |
Definition at line 1676 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), Fail, and Success.
|
static |
Definition at line 1669 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and Success.
|
static |
Definition at line 1624 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), Addr, llvm::MCOperand::createImm(), Fail, llvm::MCInst::getOpcode(), llvm::AArch64_AM::isValidDecodeLogicalImmediate(), and Success.
|
static |
Definition at line 1602 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), Addr, llvm::MCOperand::createImm(), Fail, and Success.
|
static |
Definition at line 1508 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), Fail, llvm::MCSubtargetInfo::getFeatureBits(), llvm::MCDisassembler::getSubtargetInfo(), isInvalidPState(), and Success.
|
static |
Definition at line 1529 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), Fail, llvm::MCSubtargetInfo::getFeatureBits(), llvm::MCDisassembler::getSubtargetInfo(), isInvalidPState(), and Success.
|
static |
Definition at line 1550 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), Addr, llvm::MCOperand::createImm(), Success, and llvm::MCDisassembler::tryAddingSymbolicOperand().
|
static |
Definition at line 602 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), Addr, llvm::MCOperand::createImm(), Fail, llvm::MCInst::getOpcode(), and Success.
|
static |
Definition at line 1486 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), Addr, llvm::MCOperand::createImm(), Success, and llvm::MCDisassembler::tryAddingSymbolicOperand().
|
static |
Definition at line 705 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), Addr, llvm::MCOperand::createImm(), Fail, llvm::MCInst::getOpcode(), Success, and llvm::MCDisassembler::tryAddingSymbolicOperand().
|
static |
Definition at line 589 of file AArch64Disassembler.cpp.
References DecodeVecShiftLImm().
|
static |
Definition at line 583 of file AArch64Disassembler.cpp.
References DecodeVecShiftLImm().
|
static |
Definition at line 577 of file AArch64Disassembler.cpp.
References DecodeVecShiftLImm().
|
static |
Definition at line 595 of file AArch64Disassembler.cpp.
References DecodeVecShiftLImm().
|
static |
Definition at line 529 of file AArch64Disassembler.cpp.
References llvm::Add, llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and Success.
Referenced by DecodeVecShiftL16Imm(), DecodeVecShiftL32Imm(), DecodeVecShiftL64Imm(), and DecodeVecShiftL8Imm().
|
static |
Definition at line 559 of file AArch64Disassembler.cpp.
References DecodeVecShiftRImm().
|
static |
Definition at line 565 of file AArch64Disassembler.cpp.
References DecodeVecShiftRImm().
|
static |
Definition at line 547 of file AArch64Disassembler.cpp.
References DecodeVecShiftRImm().
|
static |
Definition at line 553 of file AArch64Disassembler.cpp.
References DecodeVecShiftRImm().
|
static |
Definition at line 535 of file AArch64Disassembler.cpp.
References DecodeVecShiftRImm().
|
static |
Definition at line 541 of file AArch64Disassembler.cpp.
References DecodeVecShiftRImm().
|
static |
Definition at line 571 of file AArch64Disassembler.cpp.
References DecodeVecShiftRImm().
|
static |
Definition at line 523 of file AArch64Disassembler.cpp.
References llvm::Add, llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and Success.
Referenced by DecodeVecShiftR16Imm(), DecodeVecShiftR16ImmNarrow(), DecodeVecShiftR32Imm(), DecodeVecShiftR32ImmNarrow(), DecodeVecShiftR64Imm(), DecodeVecShiftR64ImmNarrow(), and DecodeVecShiftR8Imm().
|
static |
Definition at line 1589 of file AArch64Disassembler.cpp.
References Addr, and DecodeGPRSeqPairsClassRegisterClass().
|
static |
Definition at line 1596 of file AArch64Disassembler.cpp.
References Addr, and DecodeGPRSeqPairsClassRegisterClass().
|
static |
Definition at line 358 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), Fail, and Success.
|
static |
Definition at line 369 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), Fail, and Success.
Definition at line 1501 of file AArch64Disassembler.cpp.
Referenced by DecodeSystemPStateImm0_15Instruction(), and DecodeSystemPStateImm0_1Instruction().
LLVM_EXTERNAL_VISIBILITY void LLVMInitializeAArch64Disassembler | ( | ) |
Definition at line 306 of file AArch64Disassembler.cpp.
References createAArch64Disassembler(), createAArch64ExternalSymbolizer(), llvm::getTheAArch64_32Target(), llvm::getTheAArch64beTarget(), llvm::getTheAArch64leTarget(), llvm::getTheARM64_32Target(), llvm::getTheARM64Target(), llvm::TargetRegistry::RegisterMCDisassembler(), and llvm::TargetRegistry::RegisterMCSymbolizer().
Definition at line 390 of file AArch64Disassembler.cpp.
Referenced by DecodeMatrixTile().