|
LLVM
3.7.0
|
#include "AArch64Disassembler.h"#include "AArch64ExternalSymbolizer.h"#include "AArch64Subtarget.h"#include "MCTargetDesc/AArch64AddressingModes.h"#include "Utils/AArch64BaseInfo.h"#include "llvm/MC/MCFixedLenDisassembler.h"#include "llvm/MC/MCInst.h"#include "llvm/Support/Debug.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/TargetRegistry.h"#include "AArch64GenDisassemblerTables.inc"#include "AArch64GenInstrInfo.inc"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "aarch64-disassembler" |
| #define | Success llvm::MCDisassembler::Success |
| #define | Fail llvm::MCDisassembler::Fail |
| #define | SoftFail llvm::MCDisassembler::SoftFail |
Typedefs | |
| typedef llvm::MCDisassembler::DecodeStatus | DecodeStatus |
Variables | |
| static const unsigned | FPR128DecoderTable [] |
| static const unsigned | FPR64DecoderTable [] |
| static const unsigned | FPR32DecoderTable [] |
| static const unsigned | FPR16DecoderTable [] |
| static const unsigned | FPR8DecoderTable [] |
| static const unsigned | GPR64DecoderTable [] |
| static const unsigned | GPR32DecoderTable [] |
| static const unsigned | VectorDecoderTable [] |
| static const unsigned | QQDecoderTable [] |
| static const unsigned | QQQDecoderTable [] |
| static const unsigned | QQQQDecoderTable [] |
| static const unsigned | DDDecoderTable [] |
| static const unsigned | DDDDecoderTable [] |
| static const unsigned | DDDDDecoderTable [] |
| #define DEBUG_TYPE "aarch64-disassembler" |
Definition at line 26 of file AArch64Disassembler.cpp.
| #define Fail llvm::MCDisassembler::Fail |
Definition at line 200 of file AArch64Disassembler.cpp.
Referenced by DecodeAddSubERegInstruction(), DecodeAdrInstruction(), DecodeBaseAddSubImm(), DecodeDDDDRegisterClass(), DecodeDDDRegisterClass(), DecodeDDRegisterClass(), DecodeExclusiveLdStInstruction(), DecodeFPR128_loRegisterClass(), DecodeFPR128RegisterClass(), DecodeFPR16RegisterClass(), DecodeFPR32RegisterClass(), DecodeFPR64RegisterClass(), DecodeFPR8RegisterClass(), DecodeGPR32RegisterClass(), DecodeGPR32spRegisterClass(), DecodeGPR64RegisterClass(), DecodeGPR64spRegisterClass(), DecodeGPRSeqPairsClassRegisterClass(), DecodeLogicalImmInstruction(), DecodeMoveImmInstruction(), DecodePairLdStInstruction(), DecodeQQQQRegisterClass(), DecodeQQQRegisterClass(), DecodeQQRegisterClass(), DecodeSignedLdStInstruction(), DecodeSystemPStateInstruction(), DecodeThreeAddrSRegInstruction(), DecodeUnsignedLdStInstruction(), and DecodeVectorRegisterClass().
| #define SoftFail llvm::MCDisassembler::SoftFail |
Definition at line 201 of file AArch64Disassembler.cpp.
Referenced by DecodeExclusiveLdStInstruction(), DecodePairLdStInstruction(), and DecodeSignedLdStInstruction().
| #define Success llvm::MCDisassembler::Success |
Definition at line 199 of file AArch64Disassembler.cpp.
Referenced by collectUsesWithPtrTypes(), DecodeAddSubERegInstruction(), DecodeAdrInstruction(), DecodeBaseAddSubImm(), DecodeDDDDRegisterClass(), DecodeDDDRegisterClass(), DecodeDDRegisterClass(), DecodeExclusiveLdStInstruction(), DecodeFixedPointScaleImm32(), DecodeFixedPointScaleImm64(), DecodeFMOVLaneInstruction(), DecodeFPR128RegisterClass(), DecodeFPR16RegisterClass(), DecodeFPR32RegisterClass(), DecodeFPR64RegisterClass(), DecodeFPR8RegisterClass(), DecodeGPR32RegisterClass(), DecodeGPR32spRegisterClass(), DecodeGPR64RegisterClass(), DecodeGPR64spRegisterClass(), DecodeGPRSeqPairsClassRegisterClass(), DecodeLogicalImmInstruction(), DecodeMemExtend(), DecodeModImmInstruction(), DecodeModImmTiedInstruction(), DecodeMoveImmInstruction(), DecodeMRSSystemRegister(), DecodeMSRSystemRegister(), DecodePairLdStInstruction(), DecodePCRelLabel19(), DecodeQQQQRegisterClass(), DecodeQQQRegisterClass(), DecodeQQRegisterClass(), DecodeSignedLdStInstruction(), DecodeSystemPStateInstruction(), DecodeTestAndBranch(), DecodeThreeAddrSRegInstruction(), DecodeUnconditionalBranch(), DecodeUnsignedLdStInstruction(), DecodeVecShiftLImm(), DecodeVecShiftRImm(), and DecodeVectorRegisterClass().
Definition at line 29 of file AArch64Disassembler.cpp.
|
static |
Definition at line 181 of file AArch64Disassembler.cpp.
References llvm::MCDisassembler::Fail, llvm::tgtok::In, llvm_unreachable, llvm::MCDisassembler::SoftFail, and llvm::MCDisassembler::Success.
|
static |
Definition at line 203 of file AArch64Disassembler.cpp.
Referenced by LLVMInitializeAArch64Disassembler().
|
static |
Definition at line 231 of file AArch64Disassembler.cpp.
Referenced by LLVMInitializeAArch64Disassembler().
|
static |
Definition at line 1293 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeGPR32RegisterClass(), DecodeGPR32spRegisterClass(), DecodeGPR64RegisterClass(), DecodeGPR64spRegisterClass(), Fail, llvm::MCInst::getOpcode(), and Success.
|
static |
Definition at line 1438 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeGPR64RegisterClass(), Fail, Success, and llvm::MCDisassembler::tryAddingSymbolicOperand().
|
static |
Definition at line 1457 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeGPR32RegisterClass(), DecodeGPR32spRegisterClass(), DecodeGPR64RegisterClass(), DecodeGPR64spRegisterClass(), Fail, Success, and llvm::MCDisassembler::tryAddingSymbolicOperand().
|
static |
Definition at line 580 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), DDDDDecoderTable, Fail, Register, and Success.
|
static |
Definition at line 557 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), DDDDecoderTable, Fail, Register, and Success.
|
static |
Definition at line 534 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), DDDecoderTable, Fail, Register, and Success.
|
static |
Definition at line 1081 of file AArch64Disassembler.cpp.
References DecodeGPR32RegisterClass(), DecodeGPR64RegisterClass(), DecodeGPR64spRegisterClass(), Fail, llvm::MCInst::getOpcode(), SoftFail, and Success.
|
static |
Definition at line 590 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and Success.
|
static |
Definition at line 599 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and Success.
|
static |
Definition at line 647 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeFPR128RegisterClass(), DecodeGPR64RegisterClass(), and Success.
|
static |
Definition at line 276 of file AArch64Disassembler.cpp.
References DecodeFPR128RegisterClass(), and Fail.
|
static |
Definition at line 265 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), Fail, FPR128DecoderTable, Register, and Success.
Referenced by DecodeFMOVLaneInstruction(), DecodeFPR128_loRegisterClass(), DecodePairLdStInstruction(), DecodeSignedLdStInstruction(), and DecodeUnsignedLdStInstruction().
|
static |
Definition at line 336 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), Fail, FPR16DecoderTable, Register, and Success.
Referenced by DecodeSignedLdStInstruction(), and DecodeUnsignedLdStInstruction().
|
static |
Definition at line 315 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), Fail, FPR32DecoderTable, Register, and Success.
Referenced by DecodePairLdStInstruction(), DecodeSignedLdStInstruction(), and DecodeUnsignedLdStInstruction().
|
static |
Definition at line 294 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), Fail, FPR64DecoderTable, Register, and Success.
Referenced by DecodeModImmInstruction(), DecodePairLdStInstruction(), DecodeSignedLdStInstruction(), and DecodeUnsignedLdStInstruction().
|
static |
Definition at line 357 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), Fail, FPR8DecoderTable, Register, and Success.
Referenced by DecodeSignedLdStInstruction(), and DecodeUnsignedLdStInstruction().
|
static |
Definition at line 411 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), Fail, GPR32DecoderTable, Register, and Success.
Referenced by DecodeAddSubERegInstruction(), DecodeBaseAddSubImm(), DecodeExclusiveLdStInstruction(), DecodeLogicalImmInstruction(), DecodeMoveImmInstruction(), DecodePairLdStInstruction(), DecodeSignedLdStInstruction(), DecodeTestAndBranch(), DecodeThreeAddrSRegInstruction(), and DecodeUnsignedLdStInstruction().
|
static |
Definition at line 422 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), Fail, GPR32DecoderTable, Register, and Success.
Referenced by DecodeAddSubERegInstruction(), DecodeBaseAddSubImm(), and DecodeLogicalImmInstruction().
|
static |
Definition at line 378 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), Fail, GPR64DecoderTable, Register, and Success.
Referenced by DecodeAddSubERegInstruction(), DecodeAdrInstruction(), DecodeBaseAddSubImm(), DecodeExclusiveLdStInstruction(), DecodeFMOVLaneInstruction(), DecodeLogicalImmInstruction(), DecodeMoveImmInstruction(), DecodePairLdStInstruction(), DecodeSignedLdStInstruction(), DecodeTestAndBranch(), DecodeThreeAddrSRegInstruction(), and DecodeUnsignedLdStInstruction().
|
static |
Definition at line 389 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), Fail, GPR64DecoderTable, Register, and Success.
Referenced by DecodeAddSubERegInstruction(), DecodeBaseAddSubImm(), DecodeExclusiveLdStInstruction(), DecodeLogicalImmInstruction(), DecodePairLdStInstruction(), DecodeSignedLdStInstruction(), and DecodeUnsignedLdStInstruction().
|
static |
Definition at line 1555 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), Fail, Register, and Success.
Referenced by DecodeWSeqPairsClassRegisterClass(), and DecodeXSeqPairsClassRegisterClass().
|
static |
Definition at line 1350 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeGPR32RegisterClass(), DecodeGPR32spRegisterClass(), DecodeGPR64RegisterClass(), DecodeGPR64spRegisterClass(), Fail, llvm::MCInst::getOpcode(), llvm::AArch64_AM::isValidDecodeLogicalImmediate(), and Success.
|
static |
Definition at line 622 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and Success.
|
static |
Definition at line 1381 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeFPR64RegisterClass(), DecodeVectorRegisterClass(), llvm::MCInst::getOpcode(), and Success.
|
static |
Definition at line 1420 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeVectorRegisterClass(), and Success.
|
static |
Definition at line 802 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeGPR32RegisterClass(), DecodeGPR64RegisterClass(), Fail, llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), and Success.
|
static |
Definition at line 629 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and Success.
|
static |
Definition at line 639 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and Success.
|
static |
Definition at line 1164 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeFPR128RegisterClass(), DecodeFPR32RegisterClass(), DecodeFPR64RegisterClass(), DecodeGPR32RegisterClass(), DecodeGPR64RegisterClass(), DecodeGPR64spRegisterClass(), Fail, llvm::MCInst::getOpcode(), SoftFail, and Success.
|
static |
Definition at line 606 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), llvm::MCInst::getOpcode(), Success, and llvm::MCDisassembler::tryAddingSymbolicOperand().
|
static |
Definition at line 513 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), Fail, QQQQDecoderTable, Register, and Success.
|
static |
Definition at line 490 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), Fail, QQQDecoderTable, Register, and Success.
|
static |
Definition at line 467 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), Fail, QQDecoderTable, Register, and Success.
|
static |
Definition at line 896 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeFPR128RegisterClass(), DecodeFPR16RegisterClass(), DecodeFPR32RegisterClass(), DecodeFPR64RegisterClass(), DecodeFPR8RegisterClass(), DecodeGPR32RegisterClass(), DecodeGPR64RegisterClass(), DecodeGPR64spRegisterClass(), Fail, llvm::MCInst::getOpcode(), SoftFail, and Success.
|
static |
Definition at line 1510 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), Fail, llvm::MCSubtargetInfo::getFeatureBits(), llvm::MCDisassembler::getSubtargetInfo(), Success, and llvm::AArch64NamedImmMapper::toString().
|
static |
Definition at line 1531 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeGPR32RegisterClass(), DecodeGPR64RegisterClass(), Success, and llvm::MCDisassembler::tryAddingSymbolicOperand().
|
static |
Definition at line 740 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeGPR32RegisterClass(), DecodeGPR64RegisterClass(), Fail, llvm::MCInst::getOpcode(), and Success.
|
static |
Definition at line 1493 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), Success, and llvm::MCDisassembler::tryAddingSymbolicOperand().
|
static |
Definition at line 835 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeFPR128RegisterClass(), DecodeFPR16RegisterClass(), DecodeFPR32RegisterClass(), DecodeFPR64RegisterClass(), DecodeFPR8RegisterClass(), DecodeGPR32RegisterClass(), DecodeGPR64RegisterClass(), DecodeGPR64spRegisterClass(), Fail, llvm::MCInst::getOpcode(), Success, and llvm::MCDisassembler::tryAddingSymbolicOperand().
|
static |
Definition at line 730 of file AArch64Disassembler.cpp.
References DecodeVecShiftLImm().
|
static |
Definition at line 725 of file AArch64Disassembler.cpp.
References DecodeVecShiftLImm().
|
static |
Definition at line 720 of file AArch64Disassembler.cpp.
References DecodeVecShiftLImm().
|
static |
Definition at line 735 of file AArch64Disassembler.cpp.
References DecodeVecShiftLImm().
|
static |
Definition at line 676 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and Success.
Referenced by DecodeVecShiftL16Imm(), DecodeVecShiftL32Imm(), DecodeVecShiftL64Imm(), and DecodeVecShiftL8Imm().
|
static |
Definition at line 704 of file AArch64Disassembler.cpp.
References DecodeVecShiftRImm().
|
static |
Definition at line 709 of file AArch64Disassembler.cpp.
References DecodeVecShiftRImm().
|
static |
Definition at line 693 of file AArch64Disassembler.cpp.
References DecodeVecShiftRImm().
|
static |
Definition at line 698 of file AArch64Disassembler.cpp.
References DecodeVecShiftRImm().
|
static |
Definition at line 682 of file AArch64Disassembler.cpp.
References DecodeVecShiftRImm().
|
static |
Definition at line 687 of file AArch64Disassembler.cpp.
References DecodeVecShiftRImm().
|
static |
Definition at line 715 of file AArch64Disassembler.cpp.
References DecodeVecShiftRImm().
|
static |
Definition at line 670 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and Success.
Referenced by DecodeVecShiftR16Imm(), DecodeVecShiftR16ImmNarrow(), DecodeVecShiftR32Imm(), DecodeVecShiftR32ImmNarrow(), DecodeVecShiftR64Imm(), DecodeVecShiftR64ImmNarrow(), and DecodeVecShiftR8Imm().
|
static |
Definition at line 445 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), Fail, Register, Success, and VectorDecoderTable.
Referenced by DecodeModImmInstruction(), and DecodeModImmTiedInstruction().
|
static |
Definition at line 1569 of file AArch64Disassembler.cpp.
References DecodeGPRSeqPairsClassRegisterClass().
|
static |
Definition at line 1578 of file AArch64Disassembler.cpp.
References DecodeGPRSeqPairsClassRegisterClass().
| void LLVMInitializeAArch64Disassembler | ( | ) |
Definition at line 239 of file AArch64Disassembler.cpp.
References createAArch64Disassembler(), createAArch64ExternalSymbolizer(), llvm::TargetRegistry::RegisterMCDisassembler(), llvm::TargetRegistry::RegisterMCSymbolizer(), llvm::TheAArch64beTarget, llvm::TheAArch64leTarget, and llvm::TheARM64Target.
Definition at line 566 of file AArch64Disassembler.cpp.
Referenced by DecodeDDDDRegisterClass().
Definition at line 543 of file AArch64Disassembler.cpp.
Referenced by DecodeDDDRegisterClass().
Definition at line 523 of file AArch64Disassembler.cpp.
Referenced by DecodeDDRegisterClass().
Definition at line 255 of file AArch64Disassembler.cpp.
Referenced by DecodeFPR128RegisterClass().
Definition at line 326 of file AArch64Disassembler.cpp.
Referenced by DecodeFPR16RegisterClass().
Definition at line 305 of file AArch64Disassembler.cpp.
Referenced by DecodeFPR32RegisterClass().
Definition at line 284 of file AArch64Disassembler.cpp.
Referenced by DecodeFPR64RegisterClass().
Definition at line 347 of file AArch64Disassembler.cpp.
Referenced by DecodeFPR8RegisterClass().
Definition at line 401 of file AArch64Disassembler.cpp.
Referenced by DecodeGPR32RegisterClass(), and DecodeGPR32spRegisterClass().
Definition at line 368 of file AArch64Disassembler.cpp.
Referenced by DecodeGPR64RegisterClass(), and DecodeGPR64spRegisterClass().
Definition at line 456 of file AArch64Disassembler.cpp.
Referenced by DecodeQQRegisterClass().
Definition at line 476 of file AArch64Disassembler.cpp.
Referenced by DecodeQQQRegisterClass().
Definition at line 499 of file AArch64Disassembler.cpp.
Referenced by DecodeQQQQRegisterClass().
Definition at line 435 of file AArch64Disassembler.cpp.
Referenced by DecodeVectorRegisterClass().
1.8.6