GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Enumerations | Functions
/tmp/gdb-13.1/gdb/ppc-tdep.h File Reference
#include "gdbarch.h"

Go to the source code of this file.

Classes

struct  ppc_reg_offsets
 
struct  ppc_gdbarch_tdep
 
struct  ppc_insn_pattern
 
struct  ppc_inferior_data
 

Macros

#define PPC_MAX_REGISTER_SIZE   64
 
#define PPC_IS_EBB_REGNUM(i)    ((i) >= PPC_BESCR_REGNUM && (i) <= PPC_EBBRR_REGNUM)
 
#define PPC_IS_PMU_REGNUM(i)    ((i) >= PPC_MMCR0_REGNUM && (i) <= PPC_SIER_REGNUM)
 
#define PPC_IS_TMSPR_REGNUM(i)    ((i) >= PPC_TFHAR_REGNUM && (i) <= PPC_TFIAR_REGNUM)
 
#define PPC_IS_CKPTGP_REGNUM(i)    ((i) >= PPC_CR0_REGNUM && (i) <= PPC_CCTR_REGNUM)
 
#define PPC_IS_CKPTFP_REGNUM(i)    ((i) >= PPC_CF0_REGNUM && (i) <= PPC_CFPSCR_REGNUM)
 
#define PPC_IS_CKPTVMX_REGNUM(i)    ((i) >= PPC_CVR0_REGNUM && (i) <= PPC_CVRSAVE_REGNUM)
 
#define PPC_IS_CKPTVSX_REGNUM(i)    ((i) >= PPC_CVSR0_UPPER_REGNUM && (i) < (PPC_CVSR0_UPPER_REGNUM + 32))
 
#define PPC_INSN_SIZE   4
 
#define PPC_MAX_EPILOGUE_INSTRUCTIONS   52
 

Enumerations

enum  powerpc_elf_abi { POWERPC_ELF_AUTO , POWERPC_ELF_V1 , POWERPC_ELF_V2 , POWERPC_ELF_LAST }
 
enum  powerpc_vector_abi {
  POWERPC_VEC_AUTO , POWERPC_VEC_GENERIC , POWERPC_VEC_ALTIVEC , POWERPC_VEC_SPE ,
  POWERPC_VEC_LAST
}
 
enum  powerpc_long_double_abi { POWERPC_LONG_DOUBLE_AUTO , POWERPC_LONG_DOUBLE_IBM128 , POWERPC_LONG_DOUBLE_IEEE128 , POWERPC_LONG_DOUBLE_LAST }
 
enum  {
  ppc_num_gprs = 32 , ppc_num_fprs = 32 , ppc_num_srs = 16 , ppc_num_vrs = 32 ,
  ppc_num_vshrs = 32 , ppc_num_vsrs = 64 , ppc_num_efprs = 32
}
 
enum  {
  PPC_R0_REGNUM = 0 , PPC_F0_REGNUM = 32 , PPC_PC_REGNUM = 64 , PPC_MSR_REGNUM = 65 ,
  PPC_CR_REGNUM = 66 , PPC_LR_REGNUM = 67 , PPC_CTR_REGNUM = 68 , PPC_XER_REGNUM = 69 ,
  PPC_FPSCR_REGNUM = 70 , PPC_MQ_REGNUM = 71 , PPC_SPE_UPPER_GP0_REGNUM = 72 , PPC_SPE_ACC_REGNUM = 104 ,
  PPC_SPE_FSCR_REGNUM = 105 , PPC_VR0_REGNUM = 106 , PPC_VSCR_REGNUM = 138 , PPC_VRSAVE_REGNUM = 139 ,
  PPC_VSR0_UPPER_REGNUM = 140 , PPC_VSR31_UPPER_REGNUM = 171 , PPC_PPR_REGNUM = 172 , PPC_DSCR_REGNUM = 173 ,
  PPC_TAR_REGNUM = 174 , PPC_BESCR_REGNUM = 175 , PPC_EBBHR_REGNUM = 176 , PPC_EBBRR_REGNUM = 177 ,
  PPC_MMCR0_REGNUM = 178 , PPC_MMCR2_REGNUM = 179 , PPC_SIAR_REGNUM = 180 , PPC_SDAR_REGNUM = 181 ,
  PPC_SIER_REGNUM = 182 , PPC_TFHAR_REGNUM = 183 , PPC_TEXASR_REGNUM = 184 , PPC_TFIAR_REGNUM = 185 ,
  PPC_CR0_REGNUM = 186 , PPC_CCR_REGNUM = 218 , PPC_CXER_REGNUM = 219 , PPC_CLR_REGNUM = 220 ,
  PPC_CCTR_REGNUM = 221 , PPC_CF0_REGNUM = 222 , PPC_CFPSCR_REGNUM = 254 , PPC_CVR0_REGNUM = 255 ,
  PPC_CVSCR_REGNUM = 287 , PPC_CVRSAVE_REGNUM = 288 , PPC_CVSR0_UPPER_REGNUM = 289 , PPC_CPPR_REGNUM = 321 ,
  PPC_CDSCR_REGNUM = 322 , PPC_CTAR_REGNUM = 323 , PPC_NUM_REGS
}
 

Functions

enum return_value_convention ppc_sysv_abi_return_value (struct gdbarch *gdbarch, struct value *function, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
 
enum return_value_convention ppc_sysv_abi_broken_return_value (struct gdbarch *gdbarch, struct value *function, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
 
CORE_ADDR ppc_sysv_abi_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, function_call_return_method return_method, CORE_ADDR struct_addr)
 
CORE_ADDR ppc64_sysv_abi_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, function_call_return_method return_method, CORE_ADDR struct_addr)
 
enum return_value_convention ppc64_sysv_abi_return_value (struct gdbarch *gdbarch, struct value *function, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
 
int altivec_register_p (struct gdbarch *gdbarch, int regno)
 
int vsx_register_p (struct gdbarch *gdbarch, int regno)
 
int spe_register_p (struct gdbarch *gdbarch, int regno)
 
int ppc_floating_point_unit_p (struct gdbarch *gdbarch)
 
int ppc_altivec_support_p (struct gdbarch *gdbarch)
 
int vsx_support_p (struct gdbarch *gdbarch)
 
std::vector< CORE_ADDR > ppc_deal_with_atomic_sequence (struct regcache *regcache)
 
void ppc_supply_reg (struct regcache *regcache, int regnum, const gdb_byte *regs, size_t offset, int regsize)
 
void ppc_collect_reg (const struct regcache *regcache, int regnum, gdb_byte *regs, size_t offset, int regsize)
 
void ppc_supply_gregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
 
void ppc_supply_fpregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *fpregs, size_t len)
 
void ppc_supply_vrregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *vrregs, size_t len)
 
void ppc_supply_vsxregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *vsxregs, size_t len)
 
void ppc_collect_gregset (const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)
 
void ppc_collect_fpregset (const struct regset *regset, const struct regcache *regcache, int regnum, void *fpregs, size_t len)
 
void ppc_collect_vrregset (const struct regset *regset, const struct regcache *regcache, int regnum, void *vrregs, size_t len)
 
void ppc_collect_vsxregset (const struct regset *regset, const struct regcache *regcache, int regnum, void *vsxregs, size_t len)
 
CORE_ADDR ppc64_sysv_get_return_buf_addr (type *, frame_info_ptr)
 
int ppc_insns_match_pattern (frame_info_ptr frame, CORE_ADDR pc, const struct ppc_insn_pattern *pattern, unsigned int *insns)
 
CORE_ADDR ppc_insn_d_field (unsigned int insn)
 
CORE_ADDR ppc_insn_ds_field (unsigned int insn)
 
CORE_ADDR ppc_insn_prefix_dform (unsigned int insn1, unsigned int insn2)
 
int ppc_process_record (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr)
 
ppc_inferior_dataget_ppc_per_inferior (inferior *inf)
 

Macro Definition Documentation

◆ PPC_INSN_SIZE

#define PPC_INSN_SIZE   4

Definition at line 438 of file ppc-tdep.h.

◆ PPC_IS_CKPTFP_REGNUM

#define PPC_IS_CKPTFP_REGNUM (   i)     ((i) >= PPC_CF0_REGNUM && (i) <= PPC_CFPSCR_REGNUM)

Definition at line 407 of file ppc-tdep.h.

◆ PPC_IS_CKPTGP_REGNUM

#define PPC_IS_CKPTGP_REGNUM (   i)     ((i) >= PPC_CR0_REGNUM && (i) <= PPC_CCTR_REGNUM)

Definition at line 404 of file ppc-tdep.h.

◆ PPC_IS_CKPTVMX_REGNUM

#define PPC_IS_CKPTVMX_REGNUM (   i)     ((i) >= PPC_CVR0_REGNUM && (i) <= PPC_CVRSAVE_REGNUM)

Definition at line 410 of file ppc-tdep.h.

◆ PPC_IS_CKPTVSX_REGNUM

#define PPC_IS_CKPTVSX_REGNUM (   i)     ((i) >= PPC_CVSR0_UPPER_REGNUM && (i) < (PPC_CVSR0_UPPER_REGNUM + 32))

Definition at line 413 of file ppc-tdep.h.

◆ PPC_IS_EBB_REGNUM

#define PPC_IS_EBB_REGNUM (   i)     ((i) >= PPC_BESCR_REGNUM && (i) <= PPC_EBBRR_REGNUM)

Definition at line 395 of file ppc-tdep.h.

◆ PPC_IS_PMU_REGNUM

#define PPC_IS_PMU_REGNUM (   i)     ((i) >= PPC_MMCR0_REGNUM && (i) <= PPC_SIER_REGNUM)

Definition at line 398 of file ppc-tdep.h.

◆ PPC_IS_TMSPR_REGNUM

#define PPC_IS_TMSPR_REGNUM (   i)     ((i) >= PPC_TFHAR_REGNUM && (i) <= PPC_TFIAR_REGNUM)

Definition at line 401 of file ppc-tdep.h.

◆ PPC_MAX_EPILOGUE_INSTRUCTIONS

#define PPC_MAX_EPILOGUE_INSTRUCTIONS   52

Definition at line 441 of file ppc-tdep.h.

◆ PPC_MAX_REGISTER_SIZE

#define PPC_MAX_REGISTER_SIZE   64

Definition at line 393 of file ppc-tdep.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
ppc_num_gprs 
ppc_num_fprs 
ppc_num_srs 
ppc_num_vrs 
ppc_num_vshrs 
ppc_num_vsrs 
ppc_num_efprs 

Definition at line 314 of file ppc-tdep.h.

◆ anonymous enum

anonymous enum
Enumerator
PPC_R0_REGNUM 
PPC_F0_REGNUM 
PPC_PC_REGNUM 
PPC_MSR_REGNUM 
PPC_CR_REGNUM 
PPC_LR_REGNUM 
PPC_CTR_REGNUM 
PPC_XER_REGNUM 
PPC_FPSCR_REGNUM 
PPC_MQ_REGNUM 
PPC_SPE_UPPER_GP0_REGNUM 
PPC_SPE_ACC_REGNUM 
PPC_SPE_FSCR_REGNUM 
PPC_VR0_REGNUM 
PPC_VSCR_REGNUM 
PPC_VRSAVE_REGNUM 
PPC_VSR0_UPPER_REGNUM 
PPC_VSR31_UPPER_REGNUM 
PPC_PPR_REGNUM 
PPC_DSCR_REGNUM 
PPC_TAR_REGNUM 
PPC_BESCR_REGNUM 
PPC_EBBHR_REGNUM 
PPC_EBBRR_REGNUM 
PPC_MMCR0_REGNUM 
PPC_MMCR2_REGNUM 
PPC_SIAR_REGNUM 
PPC_SDAR_REGNUM 
PPC_SIER_REGNUM 
PPC_TFHAR_REGNUM 
PPC_TEXASR_REGNUM 
PPC_TFIAR_REGNUM 
PPC_CR0_REGNUM 
PPC_CCR_REGNUM 
PPC_CXER_REGNUM 
PPC_CLR_REGNUM 
PPC_CCTR_REGNUM 
PPC_CF0_REGNUM 
PPC_CFPSCR_REGNUM 
PPC_CVR0_REGNUM 
PPC_CVSCR_REGNUM 
PPC_CVRSAVE_REGNUM 
PPC_CVSR0_UPPER_REGNUM 
PPC_CPPR_REGNUM 
PPC_CDSCR_REGNUM 
PPC_CTAR_REGNUM 
PPC_NUM_REGS 

Definition at line 331 of file ppc-tdep.h.

◆ powerpc_elf_abi

Enumerator
POWERPC_ELF_AUTO 
POWERPC_ELF_V1 
POWERPC_ELF_V2 
POWERPC_ELF_LAST 

Definition at line 183 of file ppc-tdep.h.

◆ powerpc_long_double_abi

Enumerator
POWERPC_LONG_DOUBLE_AUTO 
POWERPC_LONG_DOUBLE_IBM128 
POWERPC_LONG_DOUBLE_IEEE128 
POWERPC_LONG_DOUBLE_LAST 

Definition at line 202 of file ppc-tdep.h.

◆ powerpc_vector_abi

Enumerator
POWERPC_VEC_AUTO 
POWERPC_VEC_GENERIC 
POWERPC_VEC_ALTIVEC 
POWERPC_VEC_SPE 
POWERPC_VEC_LAST 

Definition at line 192 of file ppc-tdep.h.

Function Documentation

◆ altivec_register_p()

int altivec_register_p ( struct gdbarch gdbarch,
int  regno 
)

◆ get_ppc_per_inferior()

ppc_inferior_data * get_ppc_per_inferior ( inferior inf)

◆ ppc64_sysv_abi_push_dummy_call()

CORE_ADDR ppc64_sysv_abi_push_dummy_call ( struct gdbarch gdbarch,
struct value function,
struct regcache regcache,
CORE_ADDR  bp_addr,
int  nargs,
struct value **  args,
CORE_ADDR  sp,
function_call_return_method  return_method,
CORE_ADDR  struct_addr 
)

◆ ppc64_sysv_abi_return_value()

enum return_value_convention ppc64_sysv_abi_return_value ( struct gdbarch gdbarch,
struct value function,
struct type valtype,
struct regcache regcache,
gdb_byte *  readbuf,
const gdb_byte *  writebuf 
)

◆ ppc64_sysv_get_return_buf_addr()

CORE_ADDR ppc64_sysv_get_return_buf_addr ( type val_type,
frame_info_ptr  cur_frame 
)

◆ ppc_altivec_support_p()

int ppc_altivec_support_p ( struct gdbarch gdbarch)

◆ ppc_collect_fpregset()

void ppc_collect_fpregset ( const struct regset regset,
const struct regcache regcache,
int  regnum,
void *  fpregs,
size_t  len 
)

◆ ppc_collect_gregset()

void ppc_collect_gregset ( const struct regset regset,
const struct regcache regcache,
int  regnum,
void *  gregs,
size_t  len 
)

◆ ppc_collect_reg()

void ppc_collect_reg ( const struct regcache regcache,
int  regnum,
gdb_byte *  regs,
size_t  offset,
int  regsize 
)

◆ ppc_collect_vrregset()

void ppc_collect_vrregset ( const struct regset regset,
const struct regcache regcache,
int  regnum,
void *  vrregs,
size_t  len 
)

◆ ppc_collect_vsxregset()

void ppc_collect_vsxregset ( const struct regset regset,
const struct regcache regcache,
int  regnum,
void *  vsxregs,
size_t  len 
)

◆ ppc_deal_with_atomic_sequence()

std::vector< CORE_ADDR > ppc_deal_with_atomic_sequence ( struct regcache regcache)

◆ ppc_floating_point_unit_p()

int ppc_floating_point_unit_p ( struct gdbarch gdbarch)

◆ ppc_insn_d_field()

CORE_ADDR ppc_insn_d_field ( unsigned int  insn)

◆ ppc_insn_ds_field()

CORE_ADDR ppc_insn_ds_field ( unsigned int  insn)

◆ ppc_insn_prefix_dform()

CORE_ADDR ppc_insn_prefix_dform ( unsigned int  insn1,
unsigned int  insn2 
)

Definition at line 8592 of file rs6000-tdep.c.

Referenced by ppc64_pcrel_linkage1_target(), and ppc64_pcrel_linkage2_target().

◆ ppc_insns_match_pattern()

int ppc_insns_match_pattern ( frame_info_ptr  frame,
CORE_ADDR  pc,
const struct ppc_insn_pattern pattern,
unsigned int *  insns 
)

Definition at line 8547 of file rs6000-tdep.c.

References ppc_insn_pattern::mask, and read_insn().

Referenced by ppc64_skip_trampoline_code_1(), and ppc_skip_trampoline_code().

◆ ppc_process_record()

int ppc_process_record ( struct gdbarch gdbarch,
struct regcache regcache,
CORE_ADDR  addr 
)

◆ ppc_supply_fpregset()

void ppc_supply_fpregset ( const struct regset regset,
struct regcache regcache,
int  regnum,
const void *  fpregs,
size_t  len 
)

◆ ppc_supply_gregset()

void ppc_supply_gregset ( const struct regset regset,
struct regcache regcache,
int  regnum,
const void *  gregs,
size_t  len 
)

◆ ppc_supply_reg()

void ppc_supply_reg ( struct regcache regcache,
int  regnum,
const gdb_byte *  regs,
size_t  offset,
int  regsize 
)

◆ ppc_supply_vrregset()

void ppc_supply_vrregset ( const struct regset regset,
struct regcache regcache,
int  regnum,
const void *  vrregs,
size_t  len 
)

◆ ppc_supply_vsxregset()

void ppc_supply_vsxregset ( const struct regset regset,
struct regcache regcache,
int  regnum,
const void *  vsxregs,
size_t  len 
)

◆ ppc_sysv_abi_broken_return_value()

enum return_value_convention ppc_sysv_abi_broken_return_value ( struct gdbarch gdbarch,
struct value function,
struct type valtype,
struct regcache regcache,
gdb_byte *  readbuf,
const gdb_byte *  writebuf 
)

◆ ppc_sysv_abi_push_dummy_call()

CORE_ADDR ppc_sysv_abi_push_dummy_call ( struct gdbarch gdbarch,
struct value function,
struct regcache regcache,
CORE_ADDR  bp_addr,
int  nargs,
struct value **  args,
CORE_ADDR  sp,
function_call_return_method  return_method,
CORE_ADDR  struct_addr 
)

◆ ppc_sysv_abi_return_value()

enum return_value_convention ppc_sysv_abi_return_value ( struct gdbarch gdbarch,
struct value function,
struct type valtype,
struct regcache regcache,
gdb_byte *  readbuf,
const gdb_byte *  writebuf 
)

Definition at line 1010 of file ppc-sysv-tdep.c.

References do_ppc_sysv_return_value(), and value_type().

Referenced by ppc_linux_return_value(), and rs6000_gdbarch_init().

◆ spe_register_p()

int spe_register_p ( struct gdbarch gdbarch,
int  regno 
)

◆ vsx_register_p()

int vsx_register_p ( struct gdbarch gdbarch,
int  regno 
)

◆ vsx_support_p()

int vsx_support_p ( struct gdbarch gdbarch)