LLDB mainline
EmulateInstructionARM64.cpp File Reference
#include "EmulateInstructionARM64.h"
#include "lldb/Core/Address.h"
#include "lldb/Core/PluginManager.h"
#include "lldb/Symbol/UnwindPlan.h"
#include "lldb/Utility/ArchSpec.h"
#include "lldb/Utility/RegisterValue.h"
#include "lldb/Utility/Stream.h"
#include "llvm/Support/CheckedArithmetic.h"
#include "Plugins/Process/Utility/ARMDefines.h"
#include "Plugins/Process/Utility/ARMUtils.h"
#include "Plugins/Process/Utility/lldb-arm64-register-enums.h"
#include <algorithm>
#include <cstdlib>
#include <optional>
#include "Plugins/Process/Utility/RegisterInfos_arm64.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Support/MathExtras.h"
#include "Plugins/Process/Utility/InstructionUtils.h"

Go to the source code of this file.

Macros

#define GPR_OFFSET(idx)
#define GPR_OFFSET_NAME(reg)
#define FPU_OFFSET(idx)
#define FPU_OFFSET_NAME(reg)
#define EXC_OFFSET_NAME(reg)
#define DBG_OFFSET_NAME(reg)
#define DBG_OFFSET_NAME(reg)
#define DEFINE_DBG(re, y)
#define DECLARE_REGISTER_INFOS_ARM64_STRUCT
#define No_VFP   0
#define VFPv1   (1u << 1)
#define VFPv2   (1u << 2)
#define VFPv3   (1u << 3)
#define AdvancedSIMD   (1u << 4)
#define VFPv1_ABOVE   (VFPv1 | VFPv2 | VFPv3 | AdvancedSIMD)
#define VFPv2_ABOVE   (VFPv2 | VFPv3 | AdvancedSIMD)
#define VFPv2v3   (VFPv2 | VFPv3)
#define UInt(x)
#define SInt(x)
#define bit   bool
#define boolean   bool
#define integer   int64_t

Functions

static std::optional< RegisterInfoLLDBTableGetRegisterInfo (uint32_t reg_num)
static bool IsZero (uint64_t x)
static uint64_t NOT (uint64_t x)
static uint64_t LSL (uint64_t x, integer shift)
EmulateInstructionARM64::ConstraintType ConstrainUnpredictable (EmulateInstructionARM64::Unpredictable which)

Macro Definition Documentation

◆ AdvancedSIMD

#define AdvancedSIMD   (1u << 4)

Definition at line 65 of file EmulateInstructionARM64.cpp.

◆ bit

◆ boolean

#define boolean   bool

Definition at line 74 of file EmulateInstructionARM64.cpp.

◆ DBG_OFFSET_NAME [1/2]

#define DBG_OFFSET_NAME ( reg)
Value:
0

Definition at line 33 of file EmulateInstructionARM64.cpp.

◆ DBG_OFFSET_NAME [2/2]

#define DBG_OFFSET_NAME ( reg)
Value:
0

Definition at line 33 of file EmulateInstructionARM64.cpp.

◆ DECLARE_REGISTER_INFOS_ARM64_STRUCT

#define DECLARE_REGISTER_INFOS_ARM64_STRUCT

Definition at line 41 of file EmulateInstructionARM64.cpp.

◆ DEFINE_DBG

#define DEFINE_DBG ( re,
y )
Value:
"na", nullptr, 8, 0, lldb::eEncodingUint, lldb::eFormatHex, \
nullptr, nullptr, nullptr
#define LLDB_INVALID_REGNUM
@ eEncodingUint
unsigned integer

Definition at line 35 of file EmulateInstructionARM64.cpp.

◆ EXC_OFFSET_NAME

#define EXC_OFFSET_NAME ( reg)
Value:
0

Definition at line 32 of file EmulateInstructionARM64.cpp.

◆ FPU_OFFSET

#define FPU_OFFSET ( idx)
Value:
((idx)*16)

Definition at line 30 of file EmulateInstructionARM64.cpp.

◆ FPU_OFFSET_NAME

#define FPU_OFFSET_NAME ( reg)
Value:
0

Definition at line 31 of file EmulateInstructionARM64.cpp.

◆ GPR_OFFSET

#define GPR_OFFSET ( idx)
Value:
((idx)*8)

Definition at line 28 of file EmulateInstructionARM64.cpp.

◆ GPR_OFFSET_NAME

#define GPR_OFFSET_NAME ( reg)
Value:
0

Definition at line 29 of file EmulateInstructionARM64.cpp.

◆ integer

◆ No_VFP

#define No_VFP   0

Definition at line 61 of file EmulateInstructionARM64.cpp.

◆ SInt

#define SInt ( x)

◆ UInt

◆ VFPv1

#define VFPv1   (1u << 1)

Definition at line 62 of file EmulateInstructionARM64.cpp.

◆ VFPv1_ABOVE

#define VFPv1_ABOVE   (VFPv1 | VFPv2 | VFPv3 | AdvancedSIMD)

Definition at line 67 of file EmulateInstructionARM64.cpp.

◆ VFPv2

#define VFPv2   (1u << 2)

Definition at line 63 of file EmulateInstructionARM64.cpp.

◆ VFPv2_ABOVE

#define VFPv2_ABOVE   (VFPv2 | VFPv3 | AdvancedSIMD)

Definition at line 68 of file EmulateInstructionARM64.cpp.

◆ VFPv2v3

#define VFPv2v3   (VFPv2 | VFPv3)

Definition at line 69 of file EmulateInstructionARM64.cpp.

◆ VFPv3

#define VFPv3   (1u << 3)

Definition at line 64 of file EmulateInstructionARM64.cpp.

Function Documentation

◆ ConstrainUnpredictable()

◆ IsZero()

◆ LLDBTableGetRegisterInfo()

std::optional< RegisterInfo > LLDBTableGetRegisterInfo ( uint32_t reg_num)
static

◆ LSL()

uint64_t LSL ( uint64_t x,
integer shift )
inlinestatic

◆ NOT()