LLDB mainline
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
lldb_private::EmulateInstructionARM Class Reference

#include <EmulateInstructionARM.h>

Inheritance diagram for lldb_private::EmulateInstructionARM:
Inheritance graph
[legend]

Classes

struct  AddWithCarryResult
 
struct  ARMOpcode
 

Public Types

enum  ARMEncoding {
  eEncodingA1 , eEncodingA2 , eEncodingA3 , eEncodingA4 ,
  eEncodingA5 , eEncodingT1 , eEncodingT2 , eEncodingT3 ,
  eEncodingT4 , eEncodingT5
}
 
enum  Mode { eModeInvalid = -1 , eModeARM , eModeThumb }
 
- Public Types inherited from lldb_private::EmulateInstruction
enum  ContextType {
  eContextInvalid = 0 , eContextReadOpcode , eContextImmediate , eContextPushRegisterOnStack ,
  eContextPopRegisterOffStack , eContextAdjustStackPointer , eContextSetFramePointer , eContextRestoreStackPointer ,
  eContextAdjustBaseRegister , eContextAdjustPC , eContextRegisterPlusOffset , eContextRegisterStore ,
  eContextRegisterLoad , eContextRelativeBranchImmediate , eContextAbsoluteBranchRegister , eContextSupervisorCall ,
  eContextTableBranchReadMemory , eContextWriteRegisterRandomBits , eContextWriteMemoryRandomBits , eContextArithmetic ,
  eContextAdvancePC , eContextReturnFromException
}
 
enum  InfoType {
  eInfoTypeRegisterPlusOffset , eInfoTypeRegisterPlusIndirectOffset , eInfoTypeRegisterToRegisterPlusOffset , eInfoTypeRegisterToRegisterPlusIndirectOffset ,
  eInfoTypeRegisterRegisterOperands , eInfoTypeOffset , eInfoTypeRegister , eInfoTypeImmediate ,
  eInfoTypeImmediateSigned , eInfoTypeAddress , eInfoTypeISAAndImmediate , eInfoTypeISAAndImmediateSigned ,
  eInfoTypeISA , eInfoTypeNoArgs
}
 
typedef size_t(* ReadMemoryCallback) (EmulateInstruction *instruction, void *baton, const Context &context, lldb::addr_t addr, void *dst, size_t length)
 
typedef size_t(* WriteMemoryCallback) (EmulateInstruction *instruction, void *baton, const Context &context, lldb::addr_t addr, const void *dst, size_t length)
 
typedef bool(* ReadRegisterCallback) (EmulateInstruction *instruction, void *baton, const RegisterInfo *reg_info, RegisterValue &reg_value)
 
typedef bool(* WriteRegisterCallback) (EmulateInstruction *instruction, void *baton, const Context &context, const RegisterInfo *reg_info, const RegisterValue &reg_value)
 
typedef uint32_t InstructionCondition
 

Public Member Functions

llvm::StringRef GetPluginName () override
 
bool SetTargetTriple (const ArchSpec &arch) override
 
 EmulateInstructionARM (const ArchSpec &arch)
 
bool SupportsEmulatingInstructionsOfType (InstructionType inst_type) override
 
virtual bool SetArchitecture (const ArchSpec &arch)
 
bool ReadInstruction () override
 
bool SetInstruction (const Opcode &insn_opcode, const Address &inst_addr, Target *target) override
 
bool EvaluateInstruction (uint32_t evaluate_options) override
 
InstructionCondition GetInstructionCondition () override
 
bool TestEmulation (Stream &out_stream, ArchSpec &arch, OptionValueDictionary *test_data) override
 
std::optional< RegisterInfoGetRegisterInfo (lldb::RegisterKind reg_kind, uint32_t reg_num) override
 
bool CreateFunctionEntryUnwind (UnwindPlan &unwind_plan) override
 
uint32_t ArchVersion ()
 
bool ConditionPassed (const uint32_t opcode)
 
uint32_t CurrentCond (const uint32_t opcode)
 
bool InITBlock ()
 
bool LastInITBlock ()
 
bool BadMode (uint32_t mode)
 
bool CurrentModeIsPrivileged ()
 
void CPSRWriteByInstr (uint32_t value, uint32_t bytemask, bool affect_execstate)
 
bool BranchWritePC (const Context &context, uint32_t addr)
 
bool BXWritePC (Context &context, uint32_t addr)
 
bool LoadWritePC (Context &context, uint32_t addr)
 
bool ALUWritePC (Context &context, uint32_t addr)
 
Mode CurrentInstrSet ()
 
bool SelectInstrSet (Mode arm_or_thumb)
 
bool WriteBits32Unknown (int n)
 
bool WriteBits32UnknownToMemory (lldb::addr_t address)
 
bool UnalignedSupport ()
 
AddWithCarryResult AddWithCarry (uint32_t x, uint32_t y, uint8_t carry_in)
 
uint32_t ReadCoreReg (uint32_t regnum, bool *success)
 
bool WriteCoreRegOptionalFlags (Context &context, const uint32_t result, const uint32_t Rd, bool setflags, const uint32_t carry=~0u, const uint32_t overflow=~0u)
 
bool WriteCoreReg (Context &context, const uint32_t result, const uint32_t Rd)
 
bool WriteFlags (Context &context, const uint32_t result, const uint32_t carry=~0u, const uint32_t overflow=~0u)
 
uint64_t MemARead (EmulateInstruction::Context &context, lldb::addr_t address, uint32_t size, uint64_t fail_value, bool *success_ptr)
 
bool MemAWrite (EmulateInstruction::Context &context, lldb::addr_t address, uint64_t data_val, uint32_t size)
 
uint64_t MemURead (EmulateInstruction::Context &context, lldb::addr_t address, uint32_t size, uint64_t fail_value, bool *success_ptr)
 
bool MemUWrite (EmulateInstruction::Context &context, lldb::addr_t address, uint64_t data_val, uint32_t size)
 
- Public Member Functions inherited from lldb_private::EmulateInstruction
 EmulateInstruction (const ArchSpec &arch)
 
 ~EmulateInstruction () override=default
 
virtual bool SupportsEmulatingInstructionsOfType (InstructionType inst_type)=0
 
virtual bool SetTargetTriple (const ArchSpec &arch)=0
 
virtual bool ReadInstruction ()=0
 
virtual bool EvaluateInstruction (uint32_t evaluate_options)=0
 
virtual InstructionCondition GetInstructionCondition ()
 
virtual bool TestEmulation (Stream &out_stream, ArchSpec &arch, OptionValueDictionary *test_data)=0
 
virtual std::optional< RegisterInfoGetRegisterInfo (lldb::RegisterKind reg_kind, uint32_t reg_num)=0
 
virtual bool SetInstruction (const Opcode &insn_opcode, const Address &inst_addr, Target *target)
 
virtual bool CreateFunctionEntryUnwind (UnwindPlan &unwind_plan)
 
std::optional< RegisterValueReadRegister (const RegisterInfo &reg_info)
 
uint64_t ReadRegisterUnsigned (const RegisterInfo &reg_info, uint64_t fail_value, bool *success_ptr)
 
bool WriteRegister (const Context &context, const RegisterInfo &ref_info, const RegisterValue &reg_value)
 
bool WriteRegisterUnsigned (const Context &context, const RegisterInfo &reg_info, uint64_t reg_value)
 
bool ReadRegister (lldb::RegisterKind reg_kind, uint32_t reg_num, RegisterValue &reg_value)
 
bool WriteRegister (const Context &context, lldb::RegisterKind reg_kind, uint32_t reg_num, const RegisterValue &reg_value)
 
uint64_t ReadRegisterUnsigned (lldb::RegisterKind reg_kind, uint32_t reg_num, uint64_t fail_value, bool *success_ptr)
 
bool WriteRegisterUnsigned (const Context &context, lldb::RegisterKind reg_kind, uint32_t reg_num, uint64_t reg_value)
 
size_t ReadMemory (const Context &context, lldb::addr_t addr, void *dst, size_t dst_len)
 
uint64_t ReadMemoryUnsigned (const Context &context, lldb::addr_t addr, size_t byte_size, uint64_t fail_value, bool *success_ptr)
 
bool WriteMemory (const Context &context, lldb::addr_t addr, const void *src, size_t src_len)
 
bool WriteMemoryUnsigned (const Context &context, lldb::addr_t addr, uint64_t uval, size_t uval_byte_size)
 
uint32_t GetAddressByteSize () const
 
lldb::ByteOrder GetByteOrder () const
 
const OpcodeGetOpcode () const
 
lldb::addr_t GetAddress () const
 
const ArchSpecGetArchitecture () const
 
void SetBaton (void *baton)
 
void SetCallbacks (ReadMemoryCallback read_mem_callback, WriteMemoryCallback write_mem_callback, ReadRegisterCallback read_reg_callback, WriteRegisterCallback write_reg_callback)
 
void SetReadMemCallback (ReadMemoryCallback read_mem_callback)
 
void SetWriteMemCallback (WriteMemoryCallback write_mem_callback)
 
void SetReadRegCallback (ReadRegisterCallback read_reg_callback)
 
void SetWriteRegCallback (WriteRegisterCallback write_reg_callback)
 
- Public Member Functions inherited from lldb_private::PluginInterface
 PluginInterface ()=default
 
virtual ~PluginInterface ()=default
 
virtual llvm::StringRef GetPluginName ()=0
 
 PluginInterface (const PluginInterface &)=delete
 
PluginInterfaceoperator= (const PluginInterface &)=delete
 

Static Public Member Functions

static void Initialize ()
 
static void Terminate ()
 
static llvm::StringRef GetPluginNameStatic ()
 
static llvm::StringRef GetPluginDescriptionStatic ()
 
static lldb_private::EmulateInstructionCreateInstance (const lldb_private::ArchSpec &arch, InstructionType inst_type)
 
static bool SupportsEmulatingInstructionsOfTypeStatic (InstructionType inst_type)
 
- Static Public Member Functions inherited from lldb_private::EmulateInstruction
static EmulateInstructionFindPlugin (const ArchSpec &arch, InstructionType supported_inst_type, const char *plugin_name)
 
static const char * TranslateRegister (lldb::RegisterKind reg_kind, uint32_t reg_num, std::string &reg_name)
 
static size_t ReadMemoryFrame (EmulateInstruction *instruction, void *baton, const Context &context, lldb::addr_t addr, void *dst, size_t length)
 
static size_t WriteMemoryFrame (EmulateInstruction *instruction, void *baton, const Context &context, lldb::addr_t addr, const void *dst, size_t length)
 
static bool ReadRegisterFrame (EmulateInstruction *instruction, void *baton, const RegisterInfo *reg_info, RegisterValue &reg_value)
 
static bool WriteRegisterFrame (EmulateInstruction *instruction, void *baton, const Context &context, const RegisterInfo *reg_info, const RegisterValue &reg_value)
 
static size_t ReadMemoryDefault (EmulateInstruction *instruction, void *baton, const Context &context, lldb::addr_t addr, void *dst, size_t length)
 
static size_t WriteMemoryDefault (EmulateInstruction *instruction, void *baton, const Context &context, lldb::addr_t addr, const void *dst, size_t length)
 
static bool ReadRegisterDefault (EmulateInstruction *instruction, void *baton, const RegisterInfo *reg_info, RegisterValue &reg_value)
 
static bool WriteRegisterDefault (EmulateInstruction *instruction, void *baton, const Context &context, const RegisterInfo *reg_info, const RegisterValue &reg_value)
 
static bool GetBestRegisterKindAndNumber (const RegisterInfo *reg_info, lldb::RegisterKind &reg_kind, uint32_t &reg_num)
 
static uint32_t GetInternalRegisterNumber (RegisterContext *reg_ctx, const RegisterInfo &reg_info)
 

Protected Types

enum  ARMInstrSize { eSize16 , eSize32 }
 

Protected Member Functions

uint32_t GetFramePointerRegisterNumber () const
 
uint32_t GetFramePointerDWARFRegisterNumber () const
 
bool EmulatePUSH (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulatePOP (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateADDRdSPImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateMOVRdSP (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateMOVLowHigh (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRRtPCRelative (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateADDSPImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateADDSPRm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateBLXImmediate (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateBLXRm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateBXRm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateBXJRm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSUBR7IPImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSUBIPSPImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSUBSPImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSUBSPReg (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSTRRtSP (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateVPUSH (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateVPOP (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSVC (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateIT (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateNop (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateB (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateCB (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateTB (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateADDImmThumb (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateADDImmARM (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateADDReg (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateADDRegShift (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateMOVRdRm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateMOVRdImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateCMPImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateCMPReg (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateASRImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateASRReg (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLSLImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLSLReg (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLSRImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLSRReg (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateRORImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateRORReg (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateRRX (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateShiftImm (const uint32_t opcode, const ARMEncoding encoding, ARM_ShifterType shift_type)
 
bool EmulateShiftReg (const uint32_t opcode, const ARMEncoding encoding, ARM_ShifterType shift_type)
 
bool EmulateLDM (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDMDA (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDMDB (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDMIB (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRRtRnImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRImmediateARM (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRLiteral (const uint32_t, const ARMEncoding encoding)
 
bool EmulateLDRRegister (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRBImmediate (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRBImmediateARM (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRBLiteral (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRBRegister (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRBT (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRDImmediate (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRDLiteral (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRDRegister (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDREX (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDREXB (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDREXD (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDREXH (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRHImmediate (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRHImmediateARM (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRHLiteral (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRHRegister (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRHT (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRSBImmediate (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRSBLiteral (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRSBRegister (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRSBT (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRSHImmediate (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRSHLiteral (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRSHRegister (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRSHT (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateLDRT (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSTM (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSTMDA (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSTMDB (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSTMIB (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSTRThumb (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSTRImmARM (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSTRRegister (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSTRBThumb (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSTRBImmARM (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSTRBReg (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSTRBT (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSTRDImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSTRDReg (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSTREX (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSTREXB (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSTREXD (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSTREXH (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSTRHImmThumb (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSTRHImmARM (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSTRHRegister (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSTRHT (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSTRT (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateADCImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateADCReg (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateADR (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateANDImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateANDReg (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateBICImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateBICReg (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateBXJ (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateCMNImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateCMNReg (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateEORImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateEORReg (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateMUL (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateMVNImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateMVNReg (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateORRImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateORRReg (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulatePLDImmediate (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulatePLIImmediate (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulatePLIRegister (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateRSBImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateRSBReg (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateRSCImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateRSCReg (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSBCImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSBCReg (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSUBImmThumb (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSUBImmARM (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSUBReg (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSUBRegShift (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSXTB (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSXTH (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateTEQImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateTEQReg (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateTSTImm (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateTSTReg (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateUXTB (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateUXTH (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateRFE (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateVLDM (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateVSTM (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateVLD1Multiple (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateVLD1Single (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateVLD1SingleAll (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateVST1Multiple (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateVST1Single (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateVLDR (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateVSTR (const uint32_t opcode, const ARMEncoding encoding)
 
bool EmulateSUBSPcLrEtc (const uint32_t opcode, const ARMEncoding encoding)
 

Static Protected Member Functions

static ARMOpcodeGetARMOpcodeForInstruction (const uint32_t opcode, uint32_t isa_mask)
 
static ARMOpcodeGetThumbOpcodeForInstruction (const uint32_t opcode, uint32_t isa_mask)
 

Protected Attributes

uint32_t m_arm_isa
 
Mode m_opcode_mode
 
uint32_t m_opcode_cpsr
 
uint32_t m_new_inst_cpsr
 
ITSession m_it_session
 
bool m_ignore_conditions
 
- Protected Attributes inherited from lldb_private::EmulateInstruction
ArchSpec m_arch
 
void * m_baton = nullptr
 
ReadMemoryCallback m_read_mem_callback = &ReadMemoryDefault
 
WriteMemoryCallback m_write_mem_callback = &WriteMemoryDefault
 
ReadRegisterCallback m_read_reg_callback = &ReadRegisterDefault
 
WriteRegisterCallback m_write_reg_callback = &WriteRegisterDefault
 
lldb::addr_t m_addr = LLDB_INVALID_ADDRESS
 
Opcode m_opcode
 

Additional Inherited Members

- Static Public Attributes inherited from lldb_private::EmulateInstruction
static const InstructionCondition UnconditionalCondition = UINT32_MAX
 

Detailed Description

Definition at line 46 of file EmulateInstructionARM.h.

Member Enumeration Documentation

◆ ARMEncoding

Enumerator
eEncodingA1 
eEncodingA2 
eEncodingA3 
eEncodingA4 
eEncodingA5 
eEncodingT1 
eEncodingT2 
eEncodingT3 
eEncodingT4 
eEncodingT5 

Definition at line 48 of file EmulateInstructionARM.h.

◆ ARMInstrSize

Enumerator
eSize16 
eSize32 

Definition at line 291 of file EmulateInstructionARM.h.

◆ Mode

Enumerator
eModeInvalid 
eModeARM 
eModeThumb 

Definition at line 90 of file EmulateInstructionARM.h.

Constructor & Destructor Documentation

◆ EmulateInstructionARM()

lldb_private::EmulateInstructionARM::EmulateInstructionARM ( const ArchSpec arch)
inline

Definition at line 92 of file EmulateInstructionARM.h.

References SetArchitecture().

Member Function Documentation

◆ AddWithCarry()

EmulateInstructionARM::AddWithCarryResult EmulateInstructionARM::AddWithCarry ( uint32_t  x,
uint32_t  y,
uint8_t  carry_in 
)

◆ ALUWritePC()

bool EmulateInstructionARM::ALUWritePC ( Context context,
uint32_t  addr 
)

◆ ArchVersion()

uint32_t EmulateInstructionARM::ArchVersion ( )

◆ BadMode()

bool EmulateInstructionARM::BadMode ( uint32_t  mode)

Definition at line 13956 of file EmulateInstructionARM.cpp.

Referenced by CurrentModeIsPrivileged().

◆ BranchWritePC()

bool EmulateInstructionARM::BranchWritePC ( const Context context,
uint32_t  addr 
)

◆ BXWritePC()

bool EmulateInstructionARM::BXWritePC ( Context context,
uint32_t  addr 
)

◆ ConditionPassed()

bool EmulateInstructionARM::ConditionPassed ( const uint32_t  opcode)

Definition at line 13844 of file EmulateInstructionARM.cpp.

References CurrentCond(), m_ignore_conditions, m_opcode_cpsr, MASK_CPSR_C, MASK_CPSR_N, MASK_CPSR_V, MASK_CPSR_Z, UINT32_MAX, and lldb_private::UnsignedBits().

Referenced by EmulateADCImm(), EmulateADCReg(), EmulateADDImmARM(), EmulateADDImmThumb(), EmulateADDRdSPImm(), EmulateADDReg(), EmulateADDRegShift(), EmulateADDSPImm(), EmulateADDSPRm(), EmulateADR(), EmulateANDImm(), EmulateANDReg(), EmulateASRImm(), EmulateASRReg(), EmulateB(), EmulateBICImm(), EmulateBICReg(), EmulateBLXImmediate(), EmulateBLXRm(), EmulateBXJRm(), EmulateBXRm(), EmulateCMNImm(), EmulateCMNReg(), EmulateCMPImm(), EmulateCMPReg(), EmulateEORImm(), EmulateEORReg(), EmulateLDM(), EmulateLDMDA(), EmulateLDMDB(), EmulateLDMIB(), EmulateLDRBImmediate(), EmulateLDRBLiteral(), EmulateLDRBRegister(), EmulateLDRDImmediate(), EmulateLDRDRegister(), EmulateLDRHImmediate(), EmulateLDRHLiteral(), EmulateLDRHRegister(), EmulateLDRImmediateARM(), EmulateLDRRegister(), EmulateLDRRtPCRelative(), EmulateLDRRtRnImm(), EmulateLDRSBImmediate(), EmulateLDRSBLiteral(), EmulateLDRSBRegister(), EmulateLDRSHImmediate(), EmulateLDRSHLiteral(), EmulateLDRSHRegister(), EmulateLSLImm(), EmulateLSLReg(), EmulateLSRImm(), EmulateLSRReg(), EmulateMOVRdImm(), EmulateMOVRdRm(), EmulateMOVRdSP(), EmulateMUL(), EmulateMVNImm(), EmulateMVNReg(), EmulateORRImm(), EmulateORRReg(), EmulatePOP(), EmulatePUSH(), EmulateRFE(), EmulateRORImm(), EmulateRORReg(), EmulateRRX(), EmulateRSBImm(), EmulateRSBReg(), EmulateRSCImm(), EmulateRSCReg(), EmulateSBCImm(), EmulateSBCReg(), EmulateShiftImm(), EmulateShiftReg(), EmulateSTM(), EmulateSTMDA(), EmulateSTMDB(), EmulateSTMIB(), EmulateSTRBImmARM(), EmulateSTRBThumb(), EmulateSTRDImm(), EmulateSTRDReg(), EmulateSTREX(), EmulateSTRHRegister(), EmulateSTRImmARM(), EmulateSTRRegister(), EmulateSTRRtSP(), EmulateSTRThumb(), EmulateSUBImmARM(), EmulateSUBImmThumb(), EmulateSUBIPSPImm(), EmulateSUBR7IPImm(), EmulateSUBReg(), EmulateSUBSPcLrEtc(), EmulateSUBSPImm(), EmulateSUBSPReg(), EmulateSVC(), EmulateSXTB(), EmulateSXTH(), EmulateTB(), EmulateTEQImm(), EmulateTEQReg(), EmulateTSTImm(), EmulateTSTReg(), EmulateUXTB(), EmulateUXTH(), EmulateVLD1Multiple(), EmulateVLD1Single(), EmulateVLD1SingleAll(), EmulateVLDM(), EmulateVLDR(), EmulateVPOP(), EmulateVPUSH(), EmulateVST1Multiple(), EmulateVST1Single(), EmulateVSTM(), and EmulateVSTR().

◆ CPSRWriteByInstr()

void EmulateInstructionARM::CPSRWriteByInstr ( uint32_t  value,
uint32_t  bytemask,
bool  affect_execstate 
)

◆ CreateFunctionEntryUnwind()

bool EmulateInstructionARM::CreateFunctionEntryUnwind ( UnwindPlan unwind_plan)
overridevirtual

◆ CreateInstance()

EmulateInstruction * EmulateInstructionARM::CreateInstance ( const lldb_private::ArchSpec arch,
InstructionType  inst_type 
)
static

◆ CurrentCond()

uint32_t EmulateInstructionARM::CurrentCond ( const uint32_t  opcode)

◆ CurrentInstrSet()

EmulateInstructionARM::Mode EmulateInstructionARM::CurrentInstrSet ( )

◆ CurrentModeIsPrivileged()

bool EmulateInstructionARM::CurrentModeIsPrivileged ( )

Definition at line 13981 of file EmulateInstructionARM.cpp.

References BadMode(), lldb_private::Bits32(), and m_opcode_cpsr.

Referenced by CPSRWriteByInstr(), and EmulateRFE().

◆ EmulateADCImm()

bool EmulateInstructionARM::EmulateADCImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateADCReg()

bool EmulateInstructionARM::EmulateADCReg ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateADDImmARM()

bool EmulateInstructionARM::EmulateADDImmARM ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateADDImmThumb()

bool EmulateInstructionARM::EmulateADDImmThumb ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateADDRdSPImm()

bool EmulateInstructionARM::EmulateADDRdSPImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateADDReg()

bool EmulateInstructionARM::EmulateADDReg ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateADDRegShift()

bool EmulateInstructionARM::EmulateADDRegShift ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateADDSPImm()

bool EmulateInstructionARM::EmulateADDSPImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateADDSPRm()

bool EmulateInstructionARM::EmulateADDSPRm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateADR()

bool EmulateInstructionARM::EmulateADR ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateANDImm()

bool EmulateInstructionARM::EmulateANDImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateANDReg()

bool EmulateInstructionARM::EmulateANDReg ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateASRImm()

bool EmulateInstructionARM::EmulateASRImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateASRReg()

bool EmulateInstructionARM::EmulateASRReg ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateB()

bool EmulateInstructionARM::EmulateB ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateBICImm()

bool EmulateInstructionARM::EmulateBICImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateBICReg()

bool EmulateInstructionARM::EmulateBICReg ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateBLXImmediate()

bool EmulateInstructionARM::EmulateBLXImmediate ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateBLXRm()

bool EmulateInstructionARM::EmulateBLXRm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateBXJ()

bool lldb_private::EmulateInstructionARM::EmulateBXJ ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateBXJRm()

bool EmulateInstructionARM::EmulateBXJRm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateBXRm()

bool EmulateInstructionARM::EmulateBXRm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateCB()

bool EmulateInstructionARM::EmulateCB ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateCMNImm()

bool EmulateInstructionARM::EmulateCMNImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateCMNReg()

bool EmulateInstructionARM::EmulateCMNReg ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateCMPImm()

bool EmulateInstructionARM::EmulateCMPImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateCMPReg()

bool EmulateInstructionARM::EmulateCMPReg ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateEORImm()

bool EmulateInstructionARM::EmulateEORImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateEORReg()

bool EmulateInstructionARM::EmulateEORReg ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateIT()

bool EmulateInstructionARM::EmulateIT ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDM()

bool EmulateInstructionARM::EmulateLDM ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDMDA()

bool EmulateInstructionARM::EmulateLDMDA ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDMDB()

bool EmulateInstructionARM::EmulateLDMDB ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDMIB()

bool EmulateInstructionARM::EmulateLDMIB ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRBImmediate()

bool EmulateInstructionARM::EmulateLDRBImmediate ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRBImmediateARM()

bool lldb_private::EmulateInstructionARM::EmulateLDRBImmediateARM ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRBLiteral()

bool EmulateInstructionARM::EmulateLDRBLiteral ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRBRegister()

bool EmulateInstructionARM::EmulateLDRBRegister ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRBT()

bool lldb_private::EmulateInstructionARM::EmulateLDRBT ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRDImmediate()

bool EmulateInstructionARM::EmulateLDRDImmediate ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRDLiteral()

bool lldb_private::EmulateInstructionARM::EmulateLDRDLiteral ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRDRegister()

bool EmulateInstructionARM::EmulateLDRDRegister ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDREX()

bool lldb_private::EmulateInstructionARM::EmulateLDREX ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDREXB()

bool lldb_private::EmulateInstructionARM::EmulateLDREXB ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDREXD()

bool lldb_private::EmulateInstructionARM::EmulateLDREXD ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDREXH()

bool lldb_private::EmulateInstructionARM::EmulateLDREXH ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRHImmediate()

bool EmulateInstructionARM::EmulateLDRHImmediate ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRHImmediateARM()

bool lldb_private::EmulateInstructionARM::EmulateLDRHImmediateARM ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRHLiteral()

bool EmulateInstructionARM::EmulateLDRHLiteral ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRHRegister()

bool EmulateInstructionARM::EmulateLDRHRegister ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRHT()

bool lldb_private::EmulateInstructionARM::EmulateLDRHT ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRImmediateARM()

bool EmulateInstructionARM::EmulateLDRImmediateARM ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRLiteral()

bool lldb_private::EmulateInstructionARM::EmulateLDRLiteral ( const uint32_t  ,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRRegister()

bool EmulateInstructionARM::EmulateLDRRegister ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRRtPCRelative()

bool EmulateInstructionARM::EmulateLDRRtPCRelative ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRRtRnImm()

bool EmulateInstructionARM::EmulateLDRRtRnImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRSBImmediate()

bool EmulateInstructionARM::EmulateLDRSBImmediate ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRSBLiteral()

bool EmulateInstructionARM::EmulateLDRSBLiteral ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRSBRegister()

bool EmulateInstructionARM::EmulateLDRSBRegister ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRSBT()

bool lldb_private::EmulateInstructionARM::EmulateLDRSBT ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRSHImmediate()

bool EmulateInstructionARM::EmulateLDRSHImmediate ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRSHLiteral()

bool EmulateInstructionARM::EmulateLDRSHLiteral ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRSHRegister()

bool EmulateInstructionARM::EmulateLDRSHRegister ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRSHT()

bool lldb_private::EmulateInstructionARM::EmulateLDRSHT ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLDRT()

bool lldb_private::EmulateInstructionARM::EmulateLDRT ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLSLImm()

bool EmulateInstructionARM::EmulateLSLImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLSLReg()

bool EmulateInstructionARM::EmulateLSLReg ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLSRImm()

bool EmulateInstructionARM::EmulateLSRImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateLSRReg()

bool EmulateInstructionARM::EmulateLSRReg ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateMOVLowHigh()

bool EmulateInstructionARM::EmulateMOVLowHigh ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

Definition at line 1258 of file EmulateInstructionARM.cpp.

References EmulateMOVRdRm().

Referenced by GetThumbOpcodeForInstruction().

◆ EmulateMOVRdImm()

bool EmulateInstructionARM::EmulateMOVRdImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateMOVRdRm()

bool EmulateInstructionARM::EmulateMOVRdRm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateMOVRdSP()

bool EmulateInstructionARM::EmulateMOVRdSP ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateMUL()

bool EmulateInstructionARM::EmulateMUL ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateMVNImm()

bool EmulateInstructionARM::EmulateMVNImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateMVNReg()

bool EmulateInstructionARM::EmulateMVNReg ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateNop()

bool EmulateInstructionARM::EmulateNop ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

Definition at line 2791 of file EmulateInstructionARM.cpp.

Referenced by GetThumbOpcodeForInstruction().

◆ EmulateORRImm()

bool EmulateInstructionARM::EmulateORRImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateORRReg()

bool EmulateInstructionARM::EmulateORRReg ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulatePLDImmediate()

bool lldb_private::EmulateInstructionARM::EmulatePLDImmediate ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulatePLIImmediate()

bool lldb_private::EmulateInstructionARM::EmulatePLIImmediate ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulatePLIRegister()

bool lldb_private::EmulateInstructionARM::EmulatePLIRegister ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulatePOP()

bool EmulateInstructionARM::EmulatePOP ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulatePUSH()

bool EmulateInstructionARM::EmulatePUSH ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateRFE()

bool EmulateInstructionARM::EmulateRFE ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateRORImm()

bool EmulateInstructionARM::EmulateRORImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateRORReg()

bool EmulateInstructionARM::EmulateRORReg ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateRRX()

bool EmulateInstructionARM::EmulateRRX ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateRSBImm()

bool EmulateInstructionARM::EmulateRSBImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateRSBReg()

bool EmulateInstructionARM::EmulateRSBReg ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateRSCImm()

bool EmulateInstructionARM::EmulateRSCImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateRSCReg()

bool EmulateInstructionARM::EmulateRSCReg ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSBCImm()

bool EmulateInstructionARM::EmulateSBCImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSBCReg()

bool EmulateInstructionARM::EmulateSBCReg ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateShiftImm()

bool EmulateInstructionARM::EmulateShiftImm ( const uint32_t  opcode,
const ARMEncoding  encoding,
ARM_ShifterType  shift_type 
)
protected

◆ EmulateShiftReg()

bool EmulateInstructionARM::EmulateShiftReg ( const uint32_t  opcode,
const ARMEncoding  encoding,
ARM_ShifterType  shift_type 
)
protected

◆ EmulateSTM()

bool EmulateInstructionARM::EmulateSTM ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSTMDA()

bool EmulateInstructionARM::EmulateSTMDA ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSTMDB()

bool EmulateInstructionARM::EmulateSTMDB ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSTMIB()

bool EmulateInstructionARM::EmulateSTMIB ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSTRBImmARM()

bool EmulateInstructionARM::EmulateSTRBImmARM ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSTRBReg()

bool lldb_private::EmulateInstructionARM::EmulateSTRBReg ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSTRBT()

bool lldb_private::EmulateInstructionARM::EmulateSTRBT ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSTRBThumb()

bool EmulateInstructionARM::EmulateSTRBThumb ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSTRDImm()

bool EmulateInstructionARM::EmulateSTRDImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSTRDReg()

bool EmulateInstructionARM::EmulateSTRDReg ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSTREX()

bool EmulateInstructionARM::EmulateSTREX ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSTREXB()

bool lldb_private::EmulateInstructionARM::EmulateSTREXB ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSTREXD()

bool lldb_private::EmulateInstructionARM::EmulateSTREXD ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSTREXH()

bool lldb_private::EmulateInstructionARM::EmulateSTREXH ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSTRHImmARM()

bool lldb_private::EmulateInstructionARM::EmulateSTRHImmARM ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSTRHImmThumb()

bool lldb_private::EmulateInstructionARM::EmulateSTRHImmThumb ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSTRHRegister()

bool EmulateInstructionARM::EmulateSTRHRegister ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSTRHT()

bool lldb_private::EmulateInstructionARM::EmulateSTRHT ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSTRImmARM()

bool EmulateInstructionARM::EmulateSTRImmARM ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSTRRegister()

bool EmulateInstructionARM::EmulateSTRRegister ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSTRRtSP()

bool EmulateInstructionARM::EmulateSTRRtSP ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSTRT()

bool lldb_private::EmulateInstructionARM::EmulateSTRT ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSTRThumb()

bool EmulateInstructionARM::EmulateSTRThumb ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSUBImmARM()

bool EmulateInstructionARM::EmulateSUBImmARM ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSUBImmThumb()

bool EmulateInstructionARM::EmulateSUBImmThumb ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSUBIPSPImm()

bool EmulateInstructionARM::EmulateSUBIPSPImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSUBR7IPImm()

bool EmulateInstructionARM::EmulateSUBR7IPImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSUBReg()

bool EmulateInstructionARM::EmulateSUBReg ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSUBRegShift()

bool lldb_private::EmulateInstructionARM::EmulateSUBRegShift ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSUBSPcLrEtc()

bool EmulateInstructionARM::EmulateSUBSPcLrEtc ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSUBSPImm()

bool EmulateInstructionARM::EmulateSUBSPImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSUBSPReg()

bool EmulateInstructionARM::EmulateSUBSPReg ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSVC()

bool EmulateInstructionARM::EmulateSVC ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSXTB()

bool EmulateInstructionARM::EmulateSXTB ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateSXTH()

bool EmulateInstructionARM::EmulateSXTH ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateTB()

bool EmulateInstructionARM::EmulateTB ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateTEQImm()

bool EmulateInstructionARM::EmulateTEQImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateTEQReg()

bool EmulateInstructionARM::EmulateTEQReg ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateTSTImm()

bool EmulateInstructionARM::EmulateTSTImm ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateTSTReg()

bool EmulateInstructionARM::EmulateTSTReg ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateUXTB()

bool EmulateInstructionARM::EmulateUXTB ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateUXTH()

bool EmulateInstructionARM::EmulateUXTH ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateVLD1Multiple()

bool EmulateInstructionARM::EmulateVLD1Multiple ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateVLD1Single()

bool EmulateInstructionARM::EmulateVLD1Single ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateVLD1SingleAll()

bool EmulateInstructionARM::EmulateVLD1SingleAll ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateVLDM()

bool EmulateInstructionARM::EmulateVLDM ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateVLDR()

bool EmulateInstructionARM::EmulateVLDR ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateVPOP()

bool EmulateInstructionARM::EmulateVPOP ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateVPUSH()

bool EmulateInstructionARM::EmulateVPUSH ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateVST1Multiple()

bool EmulateInstructionARM::EmulateVST1Multiple ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateVST1Single()

bool EmulateInstructionARM::EmulateVST1Single ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateVSTM()

bool EmulateInstructionARM::EmulateVSTM ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EmulateVSTR()

bool EmulateInstructionARM::EmulateVSTR ( const uint32_t  opcode,
const ARMEncoding  encoding 
)
protected

◆ EvaluateInstruction()

bool EmulateInstructionARM::EvaluateInstruction ( uint32_t  evaluate_options)
overridevirtual

◆ GetARMOpcodeForInstruction()

EmulateInstructionARM::ARMOpcode * EmulateInstructionARM::GetARMOpcodeForInstruction ( const uint32_t  opcode,
uint32_t  isa_mask 
)
staticprotected

Definition at line 12810 of file EmulateInstructionARM.cpp.

References AdvancedSIMD, ARMV5_ABOVE, ARMV5TE_ABOVE, ARMV6_ABOVE, ARMV6T2_ABOVE, ARMvAll, eEncodingA1, eEncodingA2, EmulateADCImm(), EmulateADCReg(), EmulateADDImmARM(), EmulateADDRdSPImm(), EmulateADDReg(), EmulateADDRegShift(), EmulateADR(), EmulateANDImm(), EmulateANDReg(), EmulateASRImm(), EmulateASRReg(), EmulateB(), EmulateBICImm(), EmulateBICReg(), EmulateBLXImmediate(), EmulateBLXRm(), EmulateBXJRm(), EmulateBXRm(), EmulateCMNImm(), EmulateCMNReg(), EmulateCMPImm(), EmulateCMPReg(), EmulateEORImm(), EmulateEORReg(), EmulateLDM(), EmulateLDMDA(), EmulateLDMDB(), EmulateLDMIB(), EmulateLDRBLiteral(), EmulateLDRBRegister(), EmulateLDRDImmediate(), EmulateLDRDRegister(), EmulateLDRHLiteral(), EmulateLDRHRegister(), EmulateLDRImmediateARM(), EmulateLDRRegister(), EmulateLDRSBImmediate(), EmulateLDRSBLiteral(), EmulateLDRSBRegister(), EmulateLDRSHImmediate(), EmulateLDRSHLiteral(), EmulateLDRSHRegister(), EmulateLSLImm(), EmulateLSLReg(), EmulateLSRImm(), EmulateLSRReg(), EmulateMOVRdImm(), EmulateMOVRdRm(), EmulateMOVRdSP(), EmulateMUL(), EmulateMVNImm(), EmulateMVNReg(), EmulateORRImm(), EmulateORRReg(), EmulatePOP(), EmulatePUSH(), EmulateRFE(), EmulateRORImm(), EmulateRORReg(), EmulateRRX(), EmulateRSBImm(), EmulateRSBReg(), EmulateRSCImm(), EmulateRSCReg(), EmulateSBCImm(), EmulateSBCReg(), EmulateSTM(), EmulateSTMDA(), EmulateSTMDB(), EmulateSTMIB(), EmulateSTRBImmARM(), EmulateSTRDImm(), EmulateSTRDReg(), EmulateSTREX(), EmulateSTRHRegister(), EmulateSTRImmARM(), EmulateSTRRegister(), EmulateSTRRtSP(), EmulateSUBImmARM(), EmulateSUBIPSPImm(), EmulateSUBR7IPImm(), EmulateSUBReg(), EmulateSUBSPcLrEtc(), EmulateSUBSPImm(), EmulateSUBSPReg(), EmulateSVC(), EmulateSXTB(), EmulateSXTH(), EmulateTEQImm(), EmulateTEQReg(), EmulateTSTImm(), EmulateTSTReg(), EmulateUXTB(), EmulateUXTH(), EmulateVLD1Multiple(), EmulateVLD1Single(), EmulateVLD1SingleAll(), EmulateVLDM(), EmulateVLDR(), EmulateVPOP(), EmulateVPUSH(), EmulateVST1Multiple(), EmulateVST1Single(), EmulateVSTM(), EmulateVSTR(), eSize32, No_VFP, VFPv2_ABOVE, and VFPv2v3.

Referenced by EvaluateInstruction().

◆ GetFramePointerDWARFRegisterNumber()

uint32_t EmulateInstructionARM::GetFramePointerDWARFRegisterNumber ( ) const
protected

◆ GetFramePointerRegisterNumber()

uint32_t EmulateInstructionARM::GetFramePointerRegisterNumber ( ) const
protected

◆ GetInstructionCondition()

EmulateInstruction::InstructionCondition EmulateInstructionARM::GetInstructionCondition ( )
overridevirtual

◆ GetPluginDescriptionStatic()

llvm::StringRef EmulateInstructionARM::GetPluginDescriptionStatic ( )
static

Definition at line 717 of file EmulateInstructionARM.cpp.

Referenced by Initialize().

◆ GetPluginName()

llvm::StringRef lldb_private::EmulateInstructionARM::GetPluginName ( )
inlineoverridevirtual

Implements lldb_private::PluginInterface.

Definition at line 86 of file EmulateInstructionARM.h.

References GetPluginNameStatic().

◆ GetPluginNameStatic()

static llvm::StringRef lldb_private::EmulateInstructionARM::GetPluginNameStatic ( )
inlinestatic

Definition at line 65 of file EmulateInstructionARM.h.

Referenced by GetPluginName(), and Initialize().

◆ GetRegisterInfo()

std::optional< RegisterInfo > EmulateInstructionARM::GetRegisterInfo ( lldb::RegisterKind  reg_kind,
uint32_t  reg_num 
)
overridevirtual

Implements lldb_private::EmulateInstruction.

Definition at line 787 of file EmulateInstructionARM.cpp.

References dwarf_cpsr, dwarf_lr, dwarf_pc, dwarf_r7, dwarf_sp, lldb::eRegisterKindDWARF, lldb::eRegisterKindGeneric, GetARMDWARFRegisterInfo(), LLDB_REGNUM_GENERIC_FLAGS, LLDB_REGNUM_GENERIC_FP, LLDB_REGNUM_GENERIC_PC, LLDB_REGNUM_GENERIC_RA, and LLDB_REGNUM_GENERIC_SP.

Referenced by EmulateADDImmARM(), EmulateADDImmThumb(), EmulateADDRdSPImm(), EmulateADDReg(), EmulateADDRegShift(), EmulateADDSPImm(), EmulateADDSPRm(), EmulateBLXRm(), EmulateBXJRm(), EmulateBXRm(), EmulateLDM(), EmulateLDMDA(), EmulateLDMDB(), EmulateLDMIB(), EmulateLDRBImmediate(), EmulateLDRBRegister(), EmulateLDRHImmediate(), EmulateLDRHLiteral(), EmulateLDRHRegister(), EmulateLDRImmediateARM(), EmulateLDRRegister(), EmulateLDRRtPCRelative(), EmulateLDRRtRnImm(), EmulateLDRSBImmediate(), EmulateLDRSBLiteral(), EmulateLDRSBRegister(), EmulateLDRSHImmediate(), EmulateLDRSHLiteral(), EmulateLDRSHRegister(), EmulateMOVRdRm(), EmulateMOVRdSP(), EmulateMUL(), EmulatePOP(), EmulatePUSH(), EmulateRFE(), EmulateSTM(), EmulateSTMDA(), EmulateSTMDB(), EmulateSTMIB(), EmulateSTRBImmARM(), EmulateSTRBThumb(), EmulateSTRDImm(), EmulateSTRDReg(), EmulateSTREX(), EmulateSTRHRegister(), EmulateSTRImmARM(), EmulateSTRRegister(), EmulateSTRRtSP(), EmulateSTRThumb(), EmulateSUBImmARM(), EmulateSUBIPSPImm(), EmulateSUBR7IPImm(), EmulateSUBReg(), EmulateSUBSPReg(), EmulateSXTB(), EmulateSXTH(), EmulateUXTB(), EmulateUXTH(), EmulateVLD1Multiple(), EmulateVLD1Single(), EmulateVLD1SingleAll(), EmulateVLDM(), EmulateVLDR(), EmulateVPOP(), EmulateVPUSH(), EmulateVST1Multiple(), EmulateVST1Single(), EmulateVSTM(), and EmulateVSTR().

◆ GetThumbOpcodeForInstruction()

EmulateInstructionARM::ARMOpcode * EmulateInstructionARM::GetThumbOpcodeForInstruction ( const uint32_t  opcode,
uint32_t  isa_mask 
)
staticprotected

Definition at line 13182 of file EmulateInstructionARM.cpp.

References AdvancedSIMD, ARMV4T_ABOVE, ARMV5_ABOVE, ARMV5J_ABOVE, ARMV6_ABOVE, ARMV6T2_ABOVE, ARMV7_ABOVE, ARMvAll, eEncodingT1, eEncodingT2, eEncodingT3, eEncodingT4, EmulateADCImm(), EmulateADCReg(), EmulateADDImmThumb(), EmulateADDRdSPImm(), EmulateADDReg(), EmulateADDSPImm(), EmulateADDSPRm(), EmulateADR(), EmulateANDImm(), EmulateANDReg(), EmulateASRImm(), EmulateASRReg(), EmulateB(), EmulateBICImm(), EmulateBICReg(), EmulateBLXImmediate(), EmulateBLXRm(), EmulateBXJRm(), EmulateBXRm(), EmulateCB(), EmulateCMNImm(), EmulateCMNReg(), EmulateCMPImm(), EmulateCMPReg(), EmulateEORImm(), EmulateEORReg(), EmulateIT(), EmulateLDM(), EmulateLDMDB(), EmulateLDRBImmediate(), EmulateLDRBLiteral(), EmulateLDRBRegister(), EmulateLDRDImmediate(), EmulateLDRHImmediate(), EmulateLDRHLiteral(), EmulateLDRHRegister(), EmulateLDRRegister(), EmulateLDRRtPCRelative(), EmulateLDRRtRnImm(), EmulateLDRSBImmediate(), EmulateLDRSBLiteral(), EmulateLDRSBRegister(), EmulateLDRSHImmediate(), EmulateLDRSHLiteral(), EmulateLDRSHRegister(), EmulateLSLImm(), EmulateLSLReg(), EmulateLSRImm(), EmulateLSRReg(), EmulateMOVLowHigh(), EmulateMOVRdImm(), EmulateMOVRdRm(), EmulateMOVRdSP(), EmulateMUL(), EmulateMVNImm(), EmulateMVNReg(), EmulateNop(), EmulateORRImm(), EmulateORRReg(), EmulatePOP(), EmulatePUSH(), EmulateRFE(), EmulateRORImm(), EmulateRORReg(), EmulateRRX(), EmulateRSBImm(), EmulateRSBReg(), EmulateSBCImm(), EmulateSBCReg(), EmulateSTM(), EmulateSTMDB(), EmulateSTRBThumb(), EmulateSTRDImm(), EmulateSTREX(), EmulateSTRHRegister(), EmulateSTRRegister(), EmulateSTRThumb(), EmulateSUBImmThumb(), EmulateSUBReg(), EmulateSUBSPcLrEtc(), EmulateSUBSPImm(), EmulateSUBSPReg(), EmulateSVC(), EmulateSXTB(), EmulateSXTH(), EmulateTB(), EmulateTEQImm(), EmulateTEQReg(), EmulateTSTImm(), EmulateTSTReg(), EmulateUXTB(), EmulateUXTH(), EmulateVLD1Multiple(), EmulateVLD1Single(), EmulateVLD1SingleAll(), EmulateVLDM(), EmulateVLDR(), EmulateVPOP(), EmulateVPUSH(), EmulateVST1Multiple(), EmulateVST1Single(), EmulateVSTM(), EmulateVSTR(), eSize16, eSize32, No_VFP, VFPv2_ABOVE, and VFPv2v3.

Referenced by EvaluateInstruction().

◆ InITBlock()

bool EmulateInstructionARM::InITBlock ( )

◆ Initialize()

void EmulateInstructionARM::Initialize ( )
static

◆ LastInITBlock()

bool EmulateInstructionARM::LastInITBlock ( )

◆ LoadWritePC()

bool EmulateInstructionARM::LoadWritePC ( Context context,
uint32_t  addr 
)

◆ MemARead()

uint64_t lldb_private::EmulateInstructionARM::MemARead ( EmulateInstruction::Context context,
lldb::addr_t  address,
uint32_t  size,
uint64_t  fail_value,
bool *  success_ptr 
)
inline

◆ MemAWrite()

bool lldb_private::EmulateInstructionARM::MemAWrite ( EmulateInstruction::Context context,
lldb::addr_t  address,
uint64_t  data_val,
uint32_t  size 
)
inline

◆ MemURead()

uint64_t lldb_private::EmulateInstructionARM::MemURead ( EmulateInstruction::Context context,
lldb::addr_t  address,
uint32_t  size,
uint64_t  fail_value,
bool *  success_ptr 
)
inline

◆ MemUWrite()

bool lldb_private::EmulateInstructionARM::MemUWrite ( EmulateInstruction::Context context,
lldb::addr_t  address,
uint64_t  data_val,
uint32_t  size 
)
inline

◆ ReadCoreReg()

uint32_t EmulateInstructionARM::ReadCoreReg ( uint32_t  regnum,
bool *  success 
)

Definition at line 14153 of file EmulateInstructionARM.cpp.

References CurrentInstrSet(), dwarf_r0, eModeARM, lldb::eRegisterKindDWARF, lldb::eRegisterKindGeneric, LLDB_REGNUM_GENERIC_PC, LLDB_REGNUM_GENERIC_RA, LLDB_REGNUM_GENERIC_SP, LR_REG, PC_REG, lldb_private::EmulateInstruction::ReadRegisterUnsigned(), SP_REG, and UINT32_MAX.

Referenced by EmulateADCImm(), EmulateADCReg(), EmulateADDImmARM(), EmulateADDRdSPImm(), EmulateADDReg(), EmulateADDRegShift(), EmulateADDSPImm(), EmulateADDSPRm(), EmulateADR(), EmulateANDImm(), EmulateANDReg(), EmulateB(), EmulateBICImm(), EmulateBICReg(), EmulateBLXImmediate(), EmulateBLXRm(), EmulateBXJRm(), EmulateBXRm(), EmulateCB(), EmulateCMNImm(), EmulateCMNReg(), EmulateCMPImm(), EmulateCMPReg(), EmulateEORImm(), EmulateEORReg(), EmulateLDMDA(), EmulateLDRBLiteral(), EmulateLDRDImmediate(), EmulateLDRDRegister(), EmulateLDRHLiteral(), EmulateLDRImmediateARM(), EmulateLDRRtPCRelative(), EmulateLDRRtRnImm(), EmulateLDRSBImmediate(), EmulateLDRSBLiteral(), EmulateLDRSHLiteral(), EmulateMOVRdRm(), EmulateMOVRdSP(), EmulateMVNReg(), EmulateORRImm(), EmulateORRReg(), EmulatePOP(), EmulatePUSH(), EmulateRSBImm(), EmulateRSBReg(), EmulateRSCImm(), EmulateRSCReg(), EmulateSBCImm(), EmulateSBCReg(), EmulateShiftImm(), EmulateShiftReg(), EmulateSTM(), EmulateSTMDA(), EmulateSTMDB(), EmulateSTMIB(), EmulateSTRBImmARM(), EmulateSTRDImm(), EmulateSTRDReg(), EmulateSTREX(), EmulateSTRHRegister(), EmulateSTRImmARM(), EmulateSTRRegister(), EmulateSTRRtSP(), EmulateSTRThumb(), EmulateSUBImmARM(), EmulateSUBImmThumb(), EmulateSUBIPSPImm(), EmulateSUBR7IPImm(), EmulateSUBReg(), EmulateSUBSPcLrEtc(), EmulateSUBSPImm(), EmulateSUBSPReg(), EmulateSVC(), EmulateTB(), EmulateTEQImm(), EmulateTEQReg(), EmulateTSTImm(), EmulateTSTReg(), EmulateVLD1Multiple(), EmulateVLD1Single(), EmulateVLD1SingleAll(), EmulateVLDM(), EmulateVLDR(), EmulateVPOP(), EmulateVPUSH(), EmulateVST1Multiple(), EmulateVST1Single(), EmulateVSTM(), and EmulateVSTR().

◆ ReadInstruction()

bool EmulateInstructionARM::ReadInstruction ( )
overridevirtual

◆ SelectInstrSet()

bool EmulateInstructionARM::SelectInstrSet ( Mode  arm_or_thumb)

◆ SetArchitecture()

bool EmulateInstructionARM::SetArchitecture ( const ArchSpec arch)
virtual

◆ SetInstruction()

bool EmulateInstructionARM::SetInstruction ( const Opcode insn_opcode,
const Address inst_addr,
Target target 
)
overridevirtual

◆ SetTargetTriple()

bool EmulateInstructionARM::SetTargetTriple ( const ArchSpec arch)
overridevirtual

◆ SupportsEmulatingInstructionsOfType()

bool lldb_private::EmulateInstructionARM::SupportsEmulatingInstructionsOfType ( InstructionType  inst_type)
inlineoverridevirtual

◆ SupportsEmulatingInstructionsOfTypeStatic()

static bool lldb_private::EmulateInstructionARM::SupportsEmulatingInstructionsOfTypeStatic ( InstructionType  inst_type)
inlinestatic

◆ Terminate()

void EmulateInstructionARM::Terminate ( )
static

◆ TestEmulation()

bool EmulateInstructionARM::TestEmulation ( Stream out_stream,
ArchSpec arch,
OptionValueDictionary test_data 
)
overridevirtual

◆ UnalignedSupport()

bool EmulateInstructionARM::UnalignedSupport ( )

◆ WriteBits32Unknown()

bool EmulateInstructionARM::WriteBits32Unknown ( int  n)

◆ WriteBits32UnknownToMemory()

bool EmulateInstructionARM::WriteBits32UnknownToMemory ( lldb::addr_t  address)

◆ WriteCoreReg()

bool lldb_private::EmulateInstructionARM::WriteCoreReg ( Context context,
const uint32_t  result,
const uint32_t  Rd 
)
inline

Definition at line 201 of file EmulateInstructionARM.h.

References WriteCoreRegOptionalFlags().

Referenced by EmulateADR().

◆ WriteCoreRegOptionalFlags()

bool EmulateInstructionARM::WriteCoreRegOptionalFlags ( Context context,
const uint32_t  result,
const uint32_t  Rd,
bool  setflags,
const uint32_t  carry = ~0u,
const uint32_t  overflow = ~0u 
)

◆ WriteFlags()

bool EmulateInstructionARM::WriteFlags ( Context context,
const uint32_t  result,
const uint32_t  carry = ~0u,
const uint32_t  overflow = ~0u 
)

Member Data Documentation

◆ m_arm_isa

uint32_t lldb_private::EmulateInstructionARM::m_arm_isa
protected

Definition at line 773 of file EmulateInstructionARM.h.

Referenced by ArchVersion(), EvaluateInstruction(), and SetArchitecture().

◆ m_ignore_conditions

bool lldb_private::EmulateInstructionARM::m_ignore_conditions
protected

◆ m_it_session

ITSession lldb_private::EmulateInstructionARM::m_it_session
protected

◆ m_new_inst_cpsr

uint32_t lldb_private::EmulateInstructionARM::m_new_inst_cpsr
protected

◆ m_opcode_cpsr

uint32_t lldb_private::EmulateInstructionARM::m_opcode_cpsr
protected

◆ m_opcode_mode

Mode lldb_private::EmulateInstructionARM::m_opcode_mode
protected

The documentation for this class was generated from the following files: