GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Enumerations | Functions
aarch64.h File Reference
#include "gdbsupport/tdesc.h"

Go to the source code of this file.

Classes

struct  aarch64_features
 
struct  std::hash< aarch64_features >
 

Namespaces

namespace  std
 

Macros

#define AARCH64_TLS_REGISTER_SIZE   8
 
#define V_REGISTER_SIZE   16
 
#define VA_RANGE_SELECT_BIT_MASK   0x80000000000000ULL
 
#define AARCH64_TOP_BITS_MASK   0xff80000000000000ULL
 
#define AARCH64_Q0_REGNUM   0
 
#define AARCH64_D0_REGNUM   (AARCH64_Q0_REGNUM + AARCH64_D_REGISTER_COUNT)
 
#define AARCH64_S0_REGNUM   (AARCH64_D0_REGNUM + 32)
 
#define AARCH64_H0_REGNUM   (AARCH64_S0_REGNUM + 32)
 
#define AARCH64_B0_REGNUM   (AARCH64_H0_REGNUM + 32)
 
#define AARCH64_SVE_V0_REGNUM   (AARCH64_B0_REGNUM + 32)
 
#define AARCH64_PAUTH_DMASK_REGNUM(pauth_reg_base)   (pauth_reg_base)
 
#define AARCH64_PAUTH_CMASK_REGNUM(pauth_reg_base)   (pauth_reg_base + 1)
 
#define AARCH64_PAUTH_REGS_SIZE   (16)
 
#define AARCH64_X_REGS_NUM   31
 
#define AARCH64_V_REGS_NUM   32
 
#define AARCH64_SVE_Z_REGS_NUM   AARCH64_V_REGS_NUM
 
#define AARCH64_SVE_P_REGS_NUM   16
 
#define AARCH64_NUM_REGS   AARCH64_FPCR_REGNUM + 1
 
#define AARCH64_SVE_NUM_REGS   AARCH64_SVE_VG_REGNUM + 1
 
#define sve_vg_from_vl(vl)   ((vl) / 8)
 
#define sve_vl_from_vg(vg)   ((vg) * 8)
 
#define sve_vq_from_vl(vl)   ((vl) / 0x10)
 
#define sve_vl_from_vq(vq)   ((vq) * 0x10)
 
#define sve_vq_from_vg(vg)   (sve_vq_from_vl (sve_vl_from_vg (vg)))
 
#define sve_vg_from_vq(vq)   (sve_vg_from_vl (sve_vl_from_vq (vq)))
 
#define AARCH64_MAX_SVE_VQ   16
 

Enumerations

enum  aarch64_regnum {
  AARCH64_X0_REGNUM , AARCH64_FP_REGNUM = AARCH64_X0_REGNUM + 29 , AARCH64_LR_REGNUM = AARCH64_X0_REGNUM + 30 , AARCH64_SP_REGNUM ,
  AARCH64_PC_REGNUM , AARCH64_CPSR_REGNUM , AARCH64_V0_REGNUM , AARCH64_V31_REGNUM = AARCH64_V0_REGNUM + 31 ,
  AARCH64_SVE_Z0_REGNUM = AARCH64_V0_REGNUM , AARCH64_SVE_Z31_REGNUM = AARCH64_V31_REGNUM , AARCH64_FPSR_REGNUM , AARCH64_FPCR_REGNUM ,
  AARCH64_SVE_P0_REGNUM , AARCH64_SVE_P15_REGNUM = AARCH64_SVE_P0_REGNUM + 15 , AARCH64_SVE_FFR_REGNUM , AARCH64_SVE_VG_REGNUM ,
  AARCH64_LAST_X_ARG_REGNUM = AARCH64_X0_REGNUM + 7 , AARCH64_STRUCT_RETURN_REGNUM = AARCH64_X0_REGNUM + 8 , AARCH64_LAST_V_ARG_REGNUM = AARCH64_V0_REGNUM + 7
}
 

Functions

bool operator== (const aarch64_features &lhs, const aarch64_features &rhs)
 
target_descaarch64_create_target_description (const aarch64_features &features)
 
CORE_ADDR aarch64_remove_top_bits (CORE_ADDR pointer, CORE_ADDR mask)
 
CORE_ADDR aarch64_mask_from_pac_registers (const CORE_ADDR cmask, const CORE_ADDR dmask)
 

Macro Definition Documentation

◆ AARCH64_B0_REGNUM

#define AARCH64_B0_REGNUM   (AARCH64_H0_REGNUM + 32)

Definition at line 130 of file aarch64.h.

◆ AARCH64_D0_REGNUM

#define AARCH64_D0_REGNUM   (AARCH64_Q0_REGNUM + AARCH64_D_REGISTER_COUNT)

Definition at line 127 of file aarch64.h.

◆ AARCH64_H0_REGNUM

#define AARCH64_H0_REGNUM   (AARCH64_S0_REGNUM + 32)

Definition at line 129 of file aarch64.h.

◆ AARCH64_MAX_SVE_VQ

#define AARCH64_MAX_SVE_VQ   16

Definition at line 166 of file aarch64.h.

◆ AARCH64_NUM_REGS

#define AARCH64_NUM_REGS   AARCH64_FPCR_REGNUM + 1

Definition at line 141 of file aarch64.h.

◆ AARCH64_PAUTH_CMASK_REGNUM

#define AARCH64_PAUTH_CMASK_REGNUM (   pauth_reg_base)    (pauth_reg_base + 1)

Definition at line 134 of file aarch64.h.

◆ AARCH64_PAUTH_DMASK_REGNUM

#define AARCH64_PAUTH_DMASK_REGNUM (   pauth_reg_base)    (pauth_reg_base)

Definition at line 133 of file aarch64.h.

◆ AARCH64_PAUTH_REGS_SIZE

#define AARCH64_PAUTH_REGS_SIZE   (16)

Definition at line 135 of file aarch64.h.

◆ AARCH64_Q0_REGNUM

#define AARCH64_Q0_REGNUM   0

Definition at line 126 of file aarch64.h.

◆ AARCH64_S0_REGNUM

#define AARCH64_S0_REGNUM   (AARCH64_D0_REGNUM + 32)

Definition at line 128 of file aarch64.h.

◆ AARCH64_SVE_NUM_REGS

#define AARCH64_SVE_NUM_REGS   AARCH64_SVE_VG_REGNUM + 1

Definition at line 142 of file aarch64.h.

◆ AARCH64_SVE_P_REGS_NUM

#define AARCH64_SVE_P_REGS_NUM   16

Definition at line 140 of file aarch64.h.

◆ AARCH64_SVE_V0_REGNUM

#define AARCH64_SVE_V0_REGNUM   (AARCH64_B0_REGNUM + 32)

Definition at line 131 of file aarch64.h.

◆ AARCH64_SVE_Z_REGS_NUM

#define AARCH64_SVE_Z_REGS_NUM   AARCH64_V_REGS_NUM

Definition at line 139 of file aarch64.h.

◆ AARCH64_TLS_REGISTER_SIZE

#define AARCH64_TLS_REGISTER_SIZE   8

Definition at line 115 of file aarch64.h.

◆ AARCH64_TOP_BITS_MASK

#define AARCH64_TOP_BITS_MASK   0xff80000000000000ULL

Definition at line 123 of file aarch64.h.

◆ AARCH64_V_REGS_NUM

#define AARCH64_V_REGS_NUM   32

Definition at line 138 of file aarch64.h.

◆ AARCH64_X_REGS_NUM

#define AARCH64_X_REGS_NUM   31

Definition at line 137 of file aarch64.h.

◆ sve_vg_from_vl

#define sve_vg_from_vl (   vl)    ((vl) / 8)

Definition at line 153 of file aarch64.h.

◆ sve_vg_from_vq

#define sve_vg_from_vq (   vq)    (sve_vg_from_vl (sve_vl_from_vq (vq)))

Definition at line 162 of file aarch64.h.

◆ sve_vl_from_vg

#define sve_vl_from_vg (   vg)    ((vg) * 8)

Definition at line 154 of file aarch64.h.

◆ sve_vl_from_vq

#define sve_vl_from_vq (   vq)    ((vq) * 0x10)

Definition at line 159 of file aarch64.h.

◆ sve_vq_from_vg

#define sve_vq_from_vg (   vg)    (sve_vq_from_vl (sve_vl_from_vg (vg)))

Definition at line 161 of file aarch64.h.

◆ sve_vq_from_vl

#define sve_vq_from_vl (   vl)    ((vl) / 0x10)

Definition at line 156 of file aarch64.h.

◆ V_REGISTER_SIZE

#define V_REGISTER_SIZE   16

Definition at line 116 of file aarch64.h.

◆ VA_RANGE_SELECT_BIT_MASK

#define VA_RANGE_SELECT_BIT_MASK   0x80000000000000ULL

Definition at line 120 of file aarch64.h.

Enumeration Type Documentation

◆ aarch64_regnum

Enumerator
AARCH64_X0_REGNUM 
AARCH64_FP_REGNUM 
AARCH64_LR_REGNUM 
AARCH64_SP_REGNUM 
AARCH64_PC_REGNUM 
AARCH64_CPSR_REGNUM 
AARCH64_V0_REGNUM 
AARCH64_V31_REGNUM 
AARCH64_SVE_Z0_REGNUM 
AARCH64_SVE_Z31_REGNUM 
AARCH64_FPSR_REGNUM 
AARCH64_FPCR_REGNUM 
AARCH64_SVE_P0_REGNUM 
AARCH64_SVE_P15_REGNUM 
AARCH64_SVE_FFR_REGNUM 
AARCH64_SVE_VG_REGNUM 
AARCH64_LAST_X_ARG_REGNUM 
AARCH64_STRUCT_RETURN_REGNUM 
AARCH64_LAST_V_ARG_REGNUM 

Definition at line 88 of file aarch64.h.

Function Documentation

◆ aarch64_create_target_description()

target_desc * aarch64_create_target_description ( const aarch64_features features)

◆ aarch64_mask_from_pac_registers()

CORE_ADDR aarch64_mask_from_pac_registers ( const CORE_ADDR  cmask,
const CORE_ADDR  dmask 
)

Definition at line 85 of file aarch64.c.

Referenced by aarch64_remove_non_address_bits().

◆ aarch64_remove_top_bits()

CORE_ADDR aarch64_remove_top_bits ( CORE_ADDR  pointer,
CORE_ADDR  mask 
)

Definition at line 66 of file aarch64.c.

References VA_RANGE_SELECT_BIT_MASK.

Referenced by aarch64_remove_non_address_bits().

◆ operator==()

bool operator== ( const aarch64_features lhs,
const aarch64_features rhs 
)
inline