LLDB  mainline
Classes | Macros | Typedefs | Functions
ABIX86.cpp File Reference
#include "ABIMacOSX_i386.h"
#include "ABISysV_i386.h"
#include "ABISysV_x86_64.h"
#include "ABIWindows_x86_64.h"
#include "ABIX86.h"
#include "lldb/Core/PluginManager.h"
#include "lldb/Target/Process.h"
Include dependency graph for ABIX86.cpp:

Go to the source code of this file.

Classes

struct  RegData
 

Macros

#define GPRh(l)
 
#define GPR(r16)
 
#define GPR64(n)
 
#define STMM(n)   { BaseRegToRegsMap::value_type("st" #n, {{MM, "mm" #n, llvm::None}}) }
 
#define YMM(n)
 

Typedefs

typedef llvm::SmallDenseMap< llvm::StringRef, llvm::SmallVector< RegData, 4 >, 64 > BaseRegToRegsMap
 

Functions

static void addPartialRegisters (std::vector< DynamicRegisterInfo::Register > &regs, llvm::ArrayRef< RegData * > subregs, uint32_t base_size, lldb::Encoding encoding, lldb::Format format, uint32_t subreg_size, uint32_t subreg_offset=0)
 
static void addCombinedRegisters (std::vector< DynamicRegisterInfo::Register > &regs, llvm::ArrayRef< RegData * > subregs1, llvm::ArrayRef< RegData * > subregs2, uint32_t base_size, lldb::Encoding encoding, lldb::Format format)
 
BaseRegToRegsMap makeBaseRegMap (bool is64bit)
 

Macro Definition Documentation

◆ GPR

#define GPR (   r16)
Value:
{ \
is64bit \
? BaseRegToRegsMap::value_type("r" r16, {{GPR32, "e" r16, llvm::None}, \
{GPR16, r16, llvm::None}, \
{GPR8, r16 "l", llvm::None}}) \
: BaseRegToRegsMap::value_type("e" r16, {{GPR16, r16, llvm::None}, \
{GPR8, r16 "l", llvm::None}}) \
}

Definition at line 144 of file ABIX86.cpp.

◆ GPR64

#define GPR64 (   n)
Value:
{ \
BaseRegToRegsMap::value_type("r" #n, {{GPR32, "r" #n "d", llvm::None}, \
{GPR16, "r" #n "w", llvm::None}, \
{GPR8, "r" #n "l", llvm::None}}) \
}

Definition at line 154 of file ABIX86.cpp.

◆ GPRh

#define GPRh (   l)
Value:
{ \
is64bit \
? BaseRegToRegsMap::value_type("r" l "x", \
{{GPR32, "e" l "x", llvm::None}, \
{GPR16, l "x", llvm::None}, \
{GPR8h, l "h", llvm::None}, \
{GPR8, l "l", llvm::None}}) \
: BaseRegToRegsMap::value_type("e" l "x", {{GPR16, l "x", llvm::None}, \
{GPR8h, l "h", llvm::None}, \
{GPR8, l "l", llvm::None}}) \
}

Definition at line 131 of file ABIX86.cpp.

◆ STMM

#define STMM (   n)    { BaseRegToRegsMap::value_type("st" #n, {{MM, "mm" #n, llvm::None}}) }

Definition at line 161 of file ABIX86.cpp.

◆ YMM

#define YMM (   n)
Value:
{BaseRegToRegsMap::value_type("ymm" #n "h", \
{{YMM_YMMh, "ymm" #n, llvm::None}})}, \
{ \
BaseRegToRegsMap::value_type("xmm" #n, {{YMM_XMM, "ymm" #n, llvm::None}}) \
}

Definition at line 164 of file ABIX86.cpp.

Typedef Documentation

◆ BaseRegToRegsMap

typedef llvm::SmallDenseMap<llvm::StringRef, llvm::SmallVector<RegData, 4>, 64> BaseRegToRegsMap

Definition at line 129 of file ABIX86.cpp.

Function Documentation

◆ addCombinedRegisters()

static void addCombinedRegisters ( std::vector< DynamicRegisterInfo::Register > &  regs,
llvm::ArrayRef< RegData * >  subregs1,
llvm::ArrayRef< RegData * >  subregs2,
uint32_t  base_size,
lldb::Encoding  encoding,
lldb::Format  format 
)
static

◆ addPartialRegisters()

static void addPartialRegisters ( std::vector< DynamicRegisterInfo::Register > &  regs,
llvm::ArrayRef< RegData * >  subregs,
uint32_t  base_size,
lldb::Encoding  encoding,
lldb::Format  format,
uint32_t  subreg_size,
uint32_t  subreg_offset = 0 
)
static

◆ makeBaseRegMap()

BaseRegToRegsMap makeBaseRegMap ( bool  is64bit)

Definition at line 171 of file ABIX86.cpp.

References GPR, GPR64, GPRh, STMM, and YMM.

Referenced by ABIX86::AugmentRegisterInfo().

GPR32
struct _GPR32 GPR32