9#ifndef LLDB_SOURCE_PLUGINS_INSTRUCTION_ARM64_EMULATEINSTRUCTIONARM64_H
10#define LLDB_SOURCE_PLUGINS_INSTRUCTION_ARM64_EMULATEINSTRUCTIONARM64_H
69 std::optional<lldb_private::RegisterInfo>
134 uint32_t N : 1, V : 1,
C : 1,
154 static uint64_t
AddWithCarry(uint32_t N, uint64_t x, uint64_t y,
bool carry_in,
177 template <AddrMode a_mode>
bool EmulateLDPSTP(
const uint32_t opcode);
181 bool EmulateB(
const uint32_t opcode);
bool EmulateLDRSTRImm(const uint32_t opcode)
std::optional< lldb_private::RegisterInfo > GetRegisterInfo(lldb::RegisterKind reg_kind, uint32_t reg_num) override
static bool SupportsEmulatingInstructionsOfTypeStatic(lldb_private::InstructionType inst_type)
bool ReadInstruction() override
static llvm::StringRef GetPluginNameStatic()
llvm::StringRef GetPluginName() override
bool EmulateLDPSTP(const uint32_t opcode)
bool EmulateTBZ(const uint32_t opcode)
bool EmulateBcond(const uint32_t opcode)
static Opcode * GetOpcodeForInstruction(const uint32_t opcode)
@ Unpredictable_LDPOVERLAP
@ Unpredictable_WBOVERLAP
EmulateInstructionARM64(const lldb_private::ArchSpec &arch)
bool TestEmulation(lldb_private::Stream &out_stream, lldb_private::ArchSpec &arch, lldb_private::OptionValueDictionary *test_data) override
ProcState m_opcode_pstate
bool BranchTo(const Context &context, uint32_t N, lldb::addr_t target)
bool EmulateCBZ(const uint32_t opcode)
bool SetTargetTriple(const lldb_private::ArchSpec &arch) override
bool CreateFunctionEntryUnwind(lldb_private::UnwindPlan &unwind_plan) override
bool EvaluateInstruction(uint32_t evaluate_options) override
static llvm::StringRef GetPluginDescriptionStatic()
bool EmulateADDSUBImm(const uint32_t opcode)
bool ConditionHolds(const uint32_t cond)
bool EmulateB(const uint32_t opcode)
ProcState m_emulated_pstate
uint32_t GetFramePointerRegisterNumber() const
static lldb_private::EmulateInstruction * CreateInstance(const lldb_private::ArchSpec &arch, lldb_private::InstructionType inst_type)
bool SupportsEmulatingInstructionsOfType(lldb_private::InstructionType inst_type) override
static uint64_t AddWithCarry(uint32_t N, uint64_t x, uint64_t y, bool carry_in, EmulateInstructionARM64::ProcState &proc_state)
An architecture specification class.
"lldb/Core/EmulateInstruction.h" A class that allows emulation of CPU opcodes.
EmulateInstruction(const ArchSpec &arch)
A stream class that can stream formatted output to a file.
InstructionType
Instruction types.
@ eInstructionTypePrologueEpilogue
@ eInstructionTypePCModifying
RegisterKind
Register numbering types.