LLVM 22.0.0git
|
#include "MCTargetDesc/SystemZMCTargetDesc.h"
#include "TargetInfo/SystemZTargetInfo.h"
#include "llvm/MC/MCDecoder.h"
#include "llvm/MC/MCDecoderOps.h"
#include "llvm/MC/MCDisassembler/MCDisassembler.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/MathExtras.h"
#include <cassert>
#include <cstdint>
#include "SystemZGenDisassemblerTables.inc"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "systemz-disassembler" |
#define DEBUG_TYPE "systemz-disassembler" |
Definition at line 25 of file SystemZDisassembler.cpp.
|
static |
Definition at line 44 of file SystemZDisassembler.cpp.
References T.
Referenced by LLVMInitializeSystemZDisassembler().
|
static |
Definition at line 125 of file SystemZDisassembler.cpp.
References decodeRegisterClass(), and llvm::SystemZMC::GR32Regs.
|
static |
Definition at line 131 of file SystemZDisassembler.cpp.
References decodeRegisterClass(), and llvm::SystemZMC::GR64Regs.
|
static |
Definition at line 172 of file SystemZDisassembler.cpp.
References llvm::SystemZMC::AR32Regs, and decodeRegisterClass().
|
static |
Definition at line 178 of file SystemZDisassembler.cpp.
References llvm::SystemZMC::CR64Regs, and decodeRegisterClass().
|
static |
Definition at line 148 of file SystemZDisassembler.cpp.
References decodeRegisterClass(), and llvm::SystemZMC::FP128Regs.
|
static |
Definition at line 136 of file SystemZDisassembler.cpp.
References decodeRegisterClass(), and llvm::SystemZMC::FP32Regs.
|
static |
Definition at line 142 of file SystemZDisassembler.cpp.
References decodeRegisterClass(), and llvm::SystemZMC::FP64Regs.
|
static |
Definition at line 118 of file SystemZDisassembler.cpp.
References decodeRegisterClass(), and llvm::SystemZMC::GR128Regs.
|
static |
Definition at line 100 of file SystemZDisassembler.cpp.
References decodeRegisterClass(), and llvm::SystemZMC::GR32Regs.
|
static |
Definition at line 112 of file SystemZDisassembler.cpp.
References decodeRegisterClass(), and llvm::SystemZMC::GR64Regs.
|
static |
Definition at line 106 of file SystemZDisassembler.cpp.
References decodeRegisterClass(), and llvm::SystemZMC::GRH32Regs.
|
static |
Definition at line 273 of file SystemZDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), llvm::MCDisassembler::Fail, llvm::isUInt(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 296 of file SystemZDisassembler.cpp.
References decodePCDBLOperand().
|
static |
Definition at line 302 of file SystemZDisassembler.cpp.
References decodePCDBLOperand().
|
static |
Definition at line 308 of file SystemZDisassembler.cpp.
References decodePCDBLOperand().
|
static |
Definition at line 314 of file SystemZDisassembler.cpp.
References decodePCDBLOperand().
|
static |
Definition at line 320 of file SystemZDisassembler.cpp.
References decodePCDBLOperand().
|
static |
Definition at line 283 of file SystemZDisassembler.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createImm(), isBranch(), llvm::isUInt(), N, llvm::SignExtend64(), llvm::MCDisassembler::Success, and tryAddingSymbolicOperand().
Referenced by decodePC12DBLBranchOperand(), decodePC16DBLBranchOperand(), decodePC24DBLBranchOperand(), decodePC32DBLBranchOperand(), and decodePC32DBLOperand().
|
static |
Definition at line 85 of file SystemZDisassembler.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Size, and llvm::MCDisassembler::Success.
Referenced by DecodeADDR32BitRegisterClass(), DecodeADDR64BitRegisterClass(), DecodeAR32BitRegisterClass(), DecodeCR64BitRegisterClass(), DecodeFP128BitRegisterClass(), DecodeFP32BitRegisterClass(), DecodeFP64BitRegisterClass(), DecodeGR128BitRegisterClass(), DecodeGR32BitRegisterClass(), DecodeGR64BitRegisterClass(), DecodeGRH32BitRegisterClass(), DecodeVR128BitRegisterClass(), DecodeVR32BitRegisterClass(), and DecodeVR64BitRegisterClass().
|
static |
Definition at line 254 of file SystemZDisassembler.cpp.
References decodeSImmOperand().
|
static |
Definition at line 260 of file SystemZDisassembler.cpp.
References decodeSImmOperand().
|
static |
Definition at line 266 of file SystemZDisassembler.cpp.
References decodeSImmOperand().
|
static |
Definition at line 248 of file SystemZDisassembler.cpp.
References decodeSImmOperand().
|
static |
Definition at line 193 of file SystemZDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), llvm::MCDisassembler::Fail, llvm::isUInt(), llvm::SignExtend64(), and llvm::MCDisassembler::Success.
Referenced by decodeS16ImmOperand(), decodeS20ImmOperand(), decodeS32ImmOperand(), and decodeS8ImmOperand().
|
static |
Definition at line 230 of file SystemZDisassembler.cpp.
References decodeUImmOperand().
|
static |
Definition at line 236 of file SystemZDisassembler.cpp.
References decodeUImmOperand().
|
static |
Definition at line 200 of file SystemZDisassembler.cpp.
References decodeUImmOperand().
|
static |
Definition at line 206 of file SystemZDisassembler.cpp.
References decodeUImmOperand().
|
static |
Definition at line 242 of file SystemZDisassembler.cpp.
References decodeUImmOperand().
|
static |
Definition at line 212 of file SystemZDisassembler.cpp.
References decodeUImmOperand().
|
static |
Definition at line 218 of file SystemZDisassembler.cpp.
References decodeUImmOperand().
|
static |
Definition at line 224 of file SystemZDisassembler.cpp.
References decodeUImmOperand().
|
static |
Definition at line 185 of file SystemZDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), llvm::MCDisassembler::Fail, llvm::isUInt(), and llvm::MCDisassembler::Success.
Referenced by decodeU12ImmOperand(), decodeU16ImmOperand(), decodeU1ImmOperand(), decodeU2ImmOperand(), decodeU32ImmOperand(), decodeU3ImmOperand(), decodeU4ImmOperand(), and decodeU8ImmOperand().
|
static |
Definition at line 166 of file SystemZDisassembler.cpp.
References decodeRegisterClass(), and llvm::SystemZMC::VR128Regs.
|
static |
Definition at line 154 of file SystemZDisassembler.cpp.
References decodeRegisterClass(), and llvm::SystemZMC::VR32Regs.
|
static |
Definition at line 160 of file SystemZDisassembler.cpp.
References decodeRegisterClass(), and llvm::SystemZMC::VR64Regs.
LLVM_ABI LLVM_EXTERNAL_VISIBILITY void LLVMInitializeSystemZDisassembler | ( | ) |
Definition at line 52 of file SystemZDisassembler.cpp.
References createSystemZDisassembler(), llvm::getTheSystemZTarget(), and llvm::TargetRegistry::RegisterMCDisassembler().
|
static |
tryAddingSymbolicOperand - trys to add a symbolic operand in place of the immediate Value in the MCInst.
Value | - The immediate Value, has had any PC adjustment made by the caller. |
isBranch | - If the instruction is a branch instruction |
Address | - The starting address of the instruction |
Offset | - The byte offset to this immediate in the instruction |
Width | - The byte width of this immediate in the instruction |
If the getOpInfo() function was set when setupForSymbolicDisassembly() was called then that function is called to get any symbolic information for the immediate in the instruction using the Address, Offset and Width. If that returns non-zero then the symbolic information it returns is used to create an MCExpr and that is added as an operand to the MCInst. If getOpInfo() returns zero and isBranch is true then a symbol look up for immediate Value is done and if a symbol is found an MCExpr is created with that, else an MCExpr with the immediate Value is created. This function returns true if it adds an operand to the MCInst and false otherwise.
Definition at line 77 of file SystemZDisassembler.cpp.
References MI, llvm::Offset, and llvm::MCDisassembler::tryAddingSymbolicOperand().
Referenced by decodePCDBLOperand().