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]
Collaboration diagram for lldb_private::EmulateInstructionARM:
Collaboration 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

lldb_private::ConstString 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
 
bool GetRegisterInfo (lldb::RegisterKind reg_kind, uint32_t reg_num, RegisterInfo &reg_info) 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
 
bool ReadRegister (const RegisterInfo *reg_info, RegisterValue &reg_value)
 
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
 
 PluginInterface (const PluginInterface &)=delete
 
PluginInterfaceoperator= (const PluginInterface &)=delete
 

Static Public Member Functions

static void Initialize ()
 
static void Terminate ()
 
static lldb_private::ConstString GetPluginNameStatic ()
 
static const char * 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

- Public Attributes inherited from lldb_private::EmulateInstruction
enum lldb_private::EmulateInstruction::InfoType InfoType
 
- 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 292 of file EmulateInstructionARM.h.

◆ Mode

Enumerator
eModeInvalid 
eModeARM 
eModeThumb 

Definition at line 92 of file EmulateInstructionARM.h.

Constructor & Destructor Documentation

◆ EmulateInstructionARM()

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

Definition at line 94 of file EmulateInstructionARM.h.

References SetArchitecture().

Member Function Documentation

◆ AddWithCarry()

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

Definition at line 14169 of file EmulateInstructionARM.cpp.

References lldb_private::UnsignedBits().

◆ ALUWritePC()

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

Definition at line 14126 of file EmulateInstructionARM.cpp.

References ARMv7.

◆ ArchVersion()

uint32_t EmulateInstructionARM::ArchVersion ( )

Definition at line 13879 of file EmulateInstructionARM.cpp.

◆ BadMode()

bool EmulateInstructionARM::BadMode ( uint32_t  mode)

Definition at line 13993 of file EmulateInstructionARM.cpp.

◆ 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)

◆ 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

Definition at line 726 of file EmulateInstructionARM.cpp.

References lldb_private::ArchSpec::GetTriple().

◆ CurrentCond()

uint32_t EmulateInstructionARM::CurrentCond ( const uint32_t  opcode)

◆ CurrentInstrSet()

EmulateInstructionARM::Mode EmulateInstructionARM::CurrentInstrSet ( )

Definition at line 14133 of file EmulateInstructionARM.cpp.

◆ CurrentModeIsPrivileged()

bool EmulateInstructionARM::CurrentModeIsPrivileged ( )

Definition at line 14018 of file EmulateInstructionARM.cpp.

References lldb_private::Bits32().

◆ 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

Definition at line 2784 of file EmulateInstructionARM.cpp.

References lldb_private::Bits32().

◆ 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 1260 of file EmulateInstructionARM.cpp.

◆ 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 2796 of file EmulateInstructionARM.cpp.

◆ 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

◆ GetFramePointerDWARFRegisterNumber()

uint32_t EmulateInstructionARM::GetFramePointerDWARFRegisterNumber ( ) const
protected

Definition at line 860 of file EmulateInstructionARM.cpp.

References dwarf_r11, and dwarf_r7.

◆ GetFramePointerRegisterNumber()

uint32_t EmulateInstructionARM::GetFramePointerRegisterNumber ( ) const
protected

Definition at line 825 of file EmulateInstructionARM.cpp.

References LLDB_INVALID_REGNUM.

◆ GetInstructionCondition()

EmulateInstruction::InstructionCondition EmulateInstructionARM::GetInstructionCondition ( )
overridevirtual

Reimplemented from lldb_private::EmulateInstruction.

Definition at line 14379 of file EmulateInstructionARM.cpp.

References UINT32_MAX.

◆ GetPluginDescriptionStatic()

const char * EmulateInstructionARM::GetPluginDescriptionStatic ( )
static

Definition at line 721 of file EmulateInstructionARM.cpp.

◆ GetPluginName()

lldb_private::ConstString lldb_private::EmulateInstructionARM::GetPluginName ( )
inlineoverridevirtual

Implements lldb_private::PluginInterface.

Definition at line 86 of file EmulateInstructionARM.h.

References GetPluginNameStatic().

◆ GetPluginNameStatic()

ConstString EmulateInstructionARM::GetPluginNameStatic ( )
static

Definition at line 716 of file EmulateInstructionARM.cpp.

Referenced by GetPluginName().

◆ GetRegisterInfo()

bool EmulateInstructionARM::GetRegisterInfo ( lldb::RegisterKind  reg_kind,
uint32_t  reg_num,
RegisterInfo &  reg_info 
)
overridevirtual

◆ GetThumbOpcodeForInstruction()

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

◆ InITBlock()

bool EmulateInstructionARM::InITBlock ( )

Definition at line 13985 of file EmulateInstructionARM.cpp.

◆ Initialize()

void EmulateInstructionARM::Initialize ( )
static

Definition at line 707 of file EmulateInstructionARM.cpp.

◆ LastInITBlock()

bool EmulateInstructionARM::LastInITBlock ( )

Definition at line 13989 of file EmulateInstructionARM.cpp.

◆ LoadWritePC()

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

Definition at line 14117 of file EmulateInstructionARM.cpp.

References ARMv5T.

◆ 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 
)

◆ ReadInstruction()

bool EmulateInstructionARM::ReadInstruction ( )
overridevirtual

◆ SelectInstrSet()

bool EmulateInstructionARM::SelectInstrSet ( Mode  arm_or_thumb)

Definition at line 14140 of file EmulateInstructionARM.cpp.

References MASK_CPSR_T.

◆ 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

Definition at line 712 of file EmulateInstructionARM.cpp.

◆ TestEmulation()

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

◆ UnalignedSupport()

bool EmulateInstructionARM::UnalignedSupport ( )

Definition at line 14160 of file EmulateInstructionARM.cpp.

References ARMv7.

◆ 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 202 of file EmulateInstructionARM.h.

References WriteCoreRegOptionalFlags().

◆ 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 774 of file EmulateInstructionARM.h.

◆ m_ignore_conditions

bool lldb_private::EmulateInstructionARM::m_ignore_conditions
protected

Definition at line 779 of file EmulateInstructionARM.h.

◆ m_it_session

ITSession lldb_private::EmulateInstructionARM::m_it_session
protected

Definition at line 778 of file EmulateInstructionARM.h.

◆ m_new_inst_cpsr

uint32_t lldb_private::EmulateInstructionARM::m_new_inst_cpsr
protected

Definition at line 777 of file EmulateInstructionARM.h.

◆ m_opcode_cpsr

uint32_t lldb_private::EmulateInstructionARM::m_opcode_cpsr
protected

Definition at line 776 of file EmulateInstructionARM.h.

◆ m_opcode_mode

Mode lldb_private::EmulateInstructionARM::m_opcode_mode
protected

Definition at line 775 of file EmulateInstructionARM.h.


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