LLDB  mainline
Namespaces | Macros | Enumerations | Functions | Variables
ABISysV_arc.cpp File Reference
#include "ABISysV_arc.h"
#include <array>
#include <limits>
#include <type_traits>
#include "llvm/ADT/Triple.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/Support/MathExtras.h"
#include "lldb/Core/Module.h"
#include "lldb/Core/PluginManager.h"
#include "lldb/Core/Value.h"
#include "lldb/Core/ValueObjectConstResult.h"
#include "lldb/Core/ValueObjectMemory.h"
#include "lldb/Core/ValueObjectRegister.h"
#include "lldb/Symbol/UnwindPlan.h"
#include "lldb/Target/Process.h"
#include "lldb/Target/RegisterContext.h"
#include "lldb/Target/StackFrame.h"
#include "lldb/Target/Target.h"
#include "lldb/Target/Thread.h"
#include "lldb/Utility/ConstString.h"
#include "lldb/Utility/RegisterValue.h"
#include "lldb/Utility/Status.h"
Include dependency graph for ABISysV_arc.cpp:

Go to the source code of this file.

Namespaces

 dwarf
 

Macros

#define DEFINE_REG_NAME(reg_num)   ConstString(#reg_num).GetCString()
 
#define DEFINE_REG_NAME_STR(reg_name)   ConstString(reg_name).GetCString()
 
#define DEFINE_GENERIC_REGISTER_STUB(dwarf_num, str_name, generic_num)
 
#define DEFINE_REGISTER_STUB(dwarf_num, str_name)   DEFINE_GENERIC_REGISTER_STUB(dwarf_num, str_name, LLDB_INVALID_REGNUM)
 

Enumerations

enum  regnums
 

Functions

static size_t AugmentArgSize (size_t size_in_bytes)
 
static size_t TotalArgsSizeInWords (const llvm::ArrayRef< ABI::CallArgument > &args)
 
template<typename T >
static void SetInteger (Scalar &scalar, uint64_t raw_value, bool is_signed)
 
static bool SetSizedInteger (Scalar &scalar, uint64_t raw_value, uint8_t size_in_bytes, bool is_signed)
 
static bool SetSizedFloat (Scalar &scalar, uint64_t raw_value, uint8_t size_in_bytes)
 
static uint64_t ReadRawValue (const RegisterContextSP &reg_ctx, uint8_t size_in_bytes)
 

Variables

static const size_t word_size = 4U
 
static const size_t reg_size = word_size
 

Macro Definition Documentation

◆ DEFINE_GENERIC_REGISTER_STUB

#define DEFINE_GENERIC_REGISTER_STUB (   dwarf_num,
  str_name,
  generic_num 
)
Value:
{ \
DEFINE_REG_NAME(dwarf_num), DEFINE_REG_NAME_STR(str_name), \
{ dwarf_num, dwarf_num, generic_num, LLDB_INVALID_REGNUM, dwarf_num }, \
nullptr, nullptr \
}

Definition at line 44 of file ABISysV_arc.cpp.

◆ DEFINE_REG_NAME

#define DEFINE_REG_NAME (   reg_num)    ConstString(#reg_num).GetCString()

Definition at line 38 of file ABISysV_arc.cpp.

◆ DEFINE_REG_NAME_STR

#define DEFINE_REG_NAME_STR (   reg_name)    ConstString(reg_name).GetCString()

Definition at line 39 of file ABISysV_arc.cpp.

◆ DEFINE_REGISTER_STUB

#define DEFINE_REGISTER_STUB (   dwarf_num,
  str_name 
)    DEFINE_GENERIC_REGISTER_STUB(dwarf_num, str_name, LLDB_INVALID_REGNUM)

Definition at line 52 of file ABISysV_arc.cpp.

Enumeration Type Documentation

◆ regnums

enum regnums

Definition at line 62 of file ABISysV_arc.cpp.

Function Documentation

◆ AugmentArgSize()

static size_t AugmentArgSize ( size_t  size_in_bytes)
inlinestatic

Definition at line 173 of file ABISysV_arc.cpp.

References word_size.

Referenced by TotalArgsSizeInWords().

◆ ReadRawValue()

static uint64_t ReadRawValue ( const RegisterContextSP &  reg_ctx,
uint8_t  size_in_bytes 
)
static

◆ SetInteger()

template<typename T >
static void SetInteger ( Scalar scalar,
uint64_t  raw_value,
bool  is_signed 
)
static

Definition at line 375 of file ABISysV_arc.cpp.

◆ SetSizedFloat()

static bool SetSizedFloat ( Scalar scalar,
uint64_t  raw_value,
uint8_t  size_in_bytes 
)
static

◆ SetSizedInteger()

static bool SetSizedInteger ( Scalar scalar,
uint64_t  raw_value,
uint8_t  size_in_bytes,
bool  is_signed 
)
static

◆ TotalArgsSizeInWords()

static size_t TotalArgsSizeInWords ( const llvm::ArrayRef< ABI::CallArgument > &  args)
static

Definition at line 178 of file ABISysV_arc.cpp.

References AugmentArgSize(), reg_size, and word_size.

Variable Documentation

◆ reg_size

const size_t reg_size = word_size
static

◆ word_size

const size_t word_size = 4U
static
LLDB_INVALID_REGNUM
#define LLDB_INVALID_REGNUM
Definition: lldb-defines.h:91
lldb::eEncodingInvalid
@ eEncodingInvalid
Definition: lldb-enumerations.h:147
DEFINE_REG_NAME_STR
#define DEFINE_REG_NAME_STR(reg_name)
Definition: ABISysV_arc.cpp:39
lldb::eFormatDefault
@ eFormatDefault
Definition: lldb-enumerations.h:156