GDB (xrefs)
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
regcache Class Reference

#include "regcache.h"

Inheritance diagram for regcache:
detached_regcache readable_regcache reg_buffer

Public Member Functions

 DISABLE_COPY_AND_ASSIGN (regcache)
 
const address_spaceaspace () const
 
void restore (readonly_detached_regcache *src)
 
void raw_write (int regnum, const gdb_byte *buf)
 
template<typename T , typename = RequireLongest<T>>
void raw_write (int regnum, T val)
 
void cooked_write (int regnum, const gdb_byte *buf)
 
template<typename T , typename = RequireLongest<T>>
void cooked_write (int regnum, T val)
 
void raw_update (int regnum) override
 
void raw_write_part (int regnum, int offset, int len, const gdb_byte *buf)
 
void cooked_write_part (int regnum, int offset, int len, const gdb_byte *buf)
 
void supply_regset (const struct regset *regset, int regbase, int regnum, const void *buf, size_t size)
 
void collect_regset (const struct regset *regset, int regbase, int regnum, void *buf, size_t size) const
 
void supply_regset (const struct regset *regset, int regnum, const void *buf, size_t size)
 
void collect_regset (const struct regset *regset, int regnum, void *buf, size_t size) const
 
ptid_t ptid () const
 
void set_ptid (const ptid_t ptid)
 
void debug_print_register (const char *func, int regno)
 
- Public Member Functions inherited from detached_regcache
 detached_regcache (gdbarch *gdbarch, bool has_pseudo)
 
 DISABLE_COPY_AND_ASSIGN (detached_regcache)
 
- Public Member Functions inherited from readable_regcache
 readable_regcache (gdbarch *gdbarch, bool has_pseudo)
 
enum register_status raw_read (int regnum, gdb_byte *buf)
 
template<typename T , typename = RequireLongest<T>>
enum register_status raw_read (int regnum, T *val)
 
enum register_status raw_read_part (int regnum, int offset, int len, gdb_byte *buf)
 
enum register_status cooked_read (int regnum, gdb_byte *buf)
 
template<typename T , typename = RequireLongest<T>>
enum register_status cooked_read (int regnum, T *val)
 
enum register_status cooked_read_part (int regnum, int offset, int len, gdb_byte *buf)
 
struct valuecooked_read_value (int regnum)
 
- Public Member Functions inherited from reg_buffer
 reg_buffer (gdbarch *gdbarch, bool has_pseudo)
 
 DISABLE_COPY_AND_ASSIGN (reg_buffer)
 
gdbarcharch () const
 
enum register_status get_register_status (int regnum) const override
 
void raw_collect (int regnum, void *buf) const override
 
void raw_collect_integer (int regnum, gdb_byte *addr, int addr_len, bool is_signed) const
 
void raw_collect_part (int regnum, int offset, int len, gdb_byte *out) const
 
void raw_supply (int regnum, const void *buf) override
 
void raw_supply (int regnum, const reg_buffer &src)
 
void raw_supply_integer (int regnum, const gdb_byte *addr, int addr_len, bool is_signed)
 
void raw_supply_zeroed (int regnum)
 
void raw_supply_part (int regnum, int offset, int len, const gdb_byte *in)
 
void invalidate (int regnum)
 
virtual ~reg_buffer ()=default
 
bool raw_compare (int regnum, const void *buf, int offset) const override
 

Protected Member Functions

 regcache (inferior *inf_for_target_calls, gdbarch *gdbarch, const address_space *aspace)
 
- Protected Member Functions inherited from readable_regcache
enum register_status read_part (int regnum, int offset, int len, gdb_byte *out, bool is_raw)
 
- Protected Member Functions inherited from reg_buffer
void assert_regnum (int regnum) const
 
int num_raw_registers () const
 
gdb_byte * register_buffer (int regnum) const
 
void save (register_read_ftype cooked_read)
 

Private Member Functions

void transfer_regset_register (struct regcache *out_regcache, int regnum, const gdb_byte *in_buf, gdb_byte *out_buf, int slot_size, int offs) const
 
void transfer_regset (const struct regset *regset, int regbase, struct regcache *out_regcache, int regnum, const gdb_byte *in_buf, gdb_byte *out_buf, size_t size) const
 
enum register_status write_part (int regnum, int offset, int len, const gdb_byte *in, bool is_raw)
 

Private Attributes

const address_space *const m_aspace
 
inferiorm_inf_for_target_calls
 
ptid_t m_ptid
 

Friends

struct regcacheget_thread_arch_aspace_regcache (inferior *inf_for_target_calls, ptid_t ptid, struct gdbarch *gdbarch, struct address_space *aspace)
 

Additional Inherited Members

- Protected Attributes inherited from reg_buffer
struct regcache_descrm_descr
 
bool m_has_pseudo
 
std::unique_ptr< gdb_byte[]> m_registers
 
std::unique_ptr< register_status[]> m_register_status
 

Detailed Description

Definition at line 337 of file regcache.h.

Constructor & Destructor Documentation

◆ regcache()

regcache::regcache ( inferior * inf_for_target_calls,
gdbarch * gdbarch,
const address_space * aspace )
protected

Definition at line 211 of file regcache.c.

References m_ptid.

Member Function Documentation

◆ aspace()

const address_space * regcache::aspace ( ) const
inline

◆ collect_regset() [1/2]

void regcache::collect_regset ( const struct regset * regset,
int regbase,
int regnum,
void * buf,
size_t size ) const

◆ collect_regset() [2/2]

void regcache::collect_regset ( const struct regset * regset,
int regnum,
void * buf,
size_t size ) const
inline

Definition at line 400 of file regcache.h.

References collect_regset(), regnum, and size.

◆ cooked_write() [1/2]

void regcache::cooked_write ( int regnum,
const gdb_byte * buf )

Definition at line 870 of file regcache.c.

References regcache_descr::gdbarch, gdbarch_pseudo_register_write(), reg_buffer::m_descr, reg_buffer::num_raw_registers(), raw_write(), and regnum.

Referenced by aarch64_store_return_value(), alpha_push_dummy_call(), alpha_store_return_value(), amd64_push_dummy_call(), amd64_windows_push_dummy_call(), amd64_windows_store_arg_in_reg(), arc_push_dummy_call(), arm_push_dummy_call(), arm_return_value(), arm_store_return_value(), bfin_store_return_value(), BP_MANIPULATION(), bpf_store_return_value(), cooked_write(), cris_push_dummy_call(), do_ppc_sysv_return_value(), frv_store_return_value(), get_decimal_float_return_value(), hppa32_push_dummy_call(), hppa32_return_value(), i386_darwin_push_dummy_call(), i386_thiscall_push_dummy_call(), ia64_push_dummy_call(), ia64_store_return_value(), m32c_cat_write(), m32c_push_dummy_call(), m32c_r3r2r1r0_write(), m68k_push_dummy_call(), microblaze_store_return_value(), nds32_push_dummy_call(), nds32_store_return_value(), nios2_store_return_value(), or1k_return_value(), pass_in_far(), pass_in_gar(), pass_in_v(), ppc64_sysv_abi_push_freg(), ppc64_sysv_abi_push_val(), ppc64_sysv_abi_push_vreg(), ppc64_sysv_abi_return_value(), ppc64_sysv_abi_return_value_base(), ppc_sysv_abi_push_dummy_call(), put_frame_register(), record_full_exec_insn(), regcache_cooked_write_signed(), regcache_cooked_write_unsigned(), restore(), riscv_push_dummy_call(), riscv_regcache_cooked_write(), rs6000_lynx178_push_dummy_call(), rs6000_lynx178_return_value(), rs6000_push_dummy_call(), rs6000_return_value(), s390_handle_arg(), s390_register_return_value(), sparc32_store_arguments(), sparc32_store_return_value(), sparc64_store_arguments(), sparc64_store_floating_fields(), sparc64_store_return_value(), tic6x_push_dummy_call(), tic6x_store_return_value(), vax_push_dummy_call(), vax_return_value(), vax_store_arguments(), write_part(), and xtensa_push_dummy_call().

◆ cooked_write() [2/2]

template<typename T , typename >
void regcache::cooked_write ( int regnum,
T val )

◆ cooked_write_part()

void regcache::cooked_write_part ( int regnum,
int offset,
int len,
const gdb_byte * buf )

◆ debug_print_register()

void regcache::debug_print_register ( const char * func,
int regno )

◆ DISABLE_COPY_AND_ASSIGN()

regcache::DISABLE_COPY_AND_ASSIGN ( regcache )

◆ ptid()

ptid_t regcache::ptid ( ) const
inline

Definition at line 408 of file regcache.h.

References m_ptid.

Referenced by aarch64_dr_state_insert_one_point(), aarch64_dr_state_remove_one_point(), aarch64_fbsd_get_thread_local_address(), aarch64_handle_aligned_watchpoint(), aarch64_handle_breakpoint(), aarch64_handle_unaligned_watchpoint(), aarch64_handle_watchpoint(), aarch64_point_is_aligned(), amd64bsd_fetch_inferior_registers(), amd64bsd_store_inferior_registers(), amd64fbsd_get_thread_local_address(), arm_fbsd_get_thread_local_address(), fetch_fp_register(), fetch_fp_regs(), fetch_fpregs(), fetch_fpregs_from_thread(), fetch_gregs(), fetch_gregs(), fetch_gregs_from_thread(), fetch_mteregs_from_thread(), fetch_pauth_masks_from_thread(), ravenscar_arch_ops::fetch_register(), fetch_register(), fetch_register(), fetch_register(), fetch_register(), fetch_register(), linux_nat_trad_target::fetch_register(), fbsd_nat_target::fetch_register_set(), aix_thread_target::fetch_registers(), alpha_bsd_nat_target::fetch_registers(), amd_dbgapi_target::fetch_registers(), amd64_fbsd_nat_target::fetch_registers(), amd64_linux_nat_target::fetch_registers(), bsd_uthread_target::fetch_registers(), hppa_nbsd_nat_target::fetch_registers(), hppa_obsd_nat_target::fetch_registers(), i386_darwin_nat_target::fetch_registers(), i386_fbsd_nat_target::fetch_registers(), i386_gnu_nat_target::fetch_registers(), i386_linux_nat_target::fetch_registers(), loongarch_linux_nat_target::fetch_registers(), m32r_linux_nat_target::fetch_registers(), m68k_bsd_nat_target::fetch_registers(), m68k_linux_nat_target::fetch_registers(), mips_fbsd_nat_target::fetch_registers(), mips_nbsd_nat_target::fetch_registers(), mips64_obsd_nat_target::fetch_registers(), nto_procfs_target::fetch_registers(), ppc_fbsd_nat_target::fetch_registers(), ppc_linux_nat_target::fetch_registers(), ppc_nbsd_nat_target::fetch_registers(), ppc_obsd_nat_target::fetch_registers(), procfs_target::fetch_registers(), ravenscar_thread_target::fetch_registers(), record_btrace_target::fetch_registers(), gdbsim_target::fetch_registers(), remote_target::fetch_registers(), s390_linux_nat_target::fetch_registers(), sh_nbsd_nat_target::fetch_registers(), sol_thread_target::fetch_registers(), tilegx_linux_nat_target::fetch_registers(), vax_bsd_nat_target::fetch_registers(), windows_nat_target::fetch_registers(), or1k_linux_nat_target::fetch_registers(), riscv_linux_nat_target::fetch_registers(), fetch_regs(), fetch_regs_kernel_thread(), fbsd_nat_target::fetch_regset(), fetch_sveregs_from_thread(), fetch_tlsregs_from_thread(), fetch_vfp_regs(), fetch_wmmx_regs(), fetch_xtregs(), fetch_za_from_thread(), fetch_zt_from_thread(), core_target::get_core_register_section(), ravenscar_thread_target::get_fpu_state(), get_thread_arch_regcache(), get_thread_regcache(), get_thread_regcache_for_ptid(), i386bsd_fetch_inferior_registers(), i386bsd_store_inferior_registers(), i386fbsd_get_thread_local_address(), ia64_linux_fetch_register(), ia64_linux_store_register(), mips_linux_nat_target::mips64_regsets_fetch_registers(), mips_linux_nat_target::mips64_regsets_store_registers(), ppcfbsd_get_thread_local_address(), ravenscar_thread_target::prepare_to_store(), record_btrace_target::prepare_to_store(), procfs_do_thread_registers(), ps_lgetfpregs(), ps_lgetregs(), ps_lsetfpregs(), ps_lsetregs(), registers_changed_ptid(), riscv_fbsd_get_thread_local_address(), set_ptid(), sol_update_thread_list_callback(), sparc32obsd_collect_uthread(), sparc32obsd_supply_uthread(), sparc64obsd_collect_uthread(), sparc64obsd_supply_uthread(), sparc_collect_rwindow(), sparc_fetch_inferior_registers(), sparc_store_inferior_registers(), sparc_supply_rwindow(), store_debug_register(), store_debug_register_pair(), store_fp_register(), store_fp_regs(), store_fpregs(), store_fpregs_to_thread(), store_gregs(), store_gregs(), store_gregs_to_thread(), store_mteregs_to_thread(), store_register(), store_register(), store_register(), store_register(), linux_nat_trad_target::store_register(), ravenscar_arch_ops::store_register(), store_register(), fbsd_nat_target::store_register_set(), aix_thread_target::store_registers(), alpha_bsd_nat_target::store_registers(), amd_dbgapi_target::store_registers(), amd64_fbsd_nat_target::store_registers(), amd64_linux_nat_target::store_registers(), bsd_uthread_target::store_registers(), hppa_nbsd_nat_target::store_registers(), i386_darwin_nat_target::store_registers(), i386_fbsd_nat_target::store_registers(), i386_gnu_nat_target::store_registers(), i386_linux_nat_target::store_registers(), loongarch_linux_nat_target::store_registers(), m32r_linux_nat_target::store_registers(), m68k_bsd_nat_target::store_registers(), m68k_linux_nat_target::store_registers(), mips_fbsd_nat_target::store_registers(), mips_nbsd_nat_target::store_registers(), mips64_obsd_nat_target::store_registers(), nto_procfs_target::store_registers(), ppc_fbsd_nat_target::store_registers(), ppc_linux_nat_target::store_registers(), ppc_nbsd_nat_target::store_registers(), ppc_obsd_nat_target::store_registers(), procfs_target::store_registers(), ravenscar_thread_target::store_registers(), record_btrace_target::store_registers(), gdbsim_target::store_registers(), remote_target::store_registers(), s390_linux_nat_target::store_registers(), sh_nbsd_nat_target::store_registers(), sol_thread_target::store_registers(), tilegx_linux_nat_target::store_registers(), vax_bsd_nat_target::store_registers(), windows_nat_target::store_registers(), or1k_linux_nat_target::store_registers(), riscv_linux_nat_target::store_registers(), store_regs(), store_regs(), store_regs_kernel_thread(), fbsd_nat_target::store_regset(), store_sveregs_to_thread(), store_tlsregs_to_thread(), store_vfp_regs(), store_wmmx_regs(), store_xtregs(), store_za_to_thread(), and store_zt_to_thread().

◆ raw_update()

void regcache::raw_update ( int regnum)
overridevirtual

◆ raw_write() [1/2]

void regcache::raw_write ( int regnum,
const gdb_byte * buf )

Definition at line 833 of file regcache.c.

References reg_buffer::arch(), reg_buffer::assert_regnum(), gdbarch_cannot_store_register(), reg_buffer::get_register_status(), reg_buffer::invalidate(), reg_buffer::m_descr, m_inf_for_target_calls, maybe_switch_inferior(), reg_buffer::raw_supply(), reg_buffer::register_buffer(), regnum, regcache_descr::sizeof_register, target_prepare_to_store(), and target_store_registers().

Referenced by aarch64_pseudo_write(), aarch64_pseudo_write_1(), aarch64_sme_pseudo_register_write(), amd64_pseudo_register_write(), amd64_return_value(), arm_neon_quad_write(), arm_pseudo_write(), bfin_pseudo_register_write(), cooked_write(), csky_pseudo_register_write(), dfp_pseudo_register_write(), do_regcache_raw_write(), frv_pseudo_register_write(), h8300_pseudo_register_write(), i386_darwin_push_dummy_call(), i386_pseudo_register_write(), i386_store_return_value(), i387_reset_bnd_regs(), iq2000_push_dummy_call(), iq2000_store_return_value(), m32c_banked_write(), m32c_raw_write(), m68hc11_store_return_value(), m68k_store_return_value(), m68k_svr4_store_return_value(), mep_pseudo_cr32_write(), mep_pseudo_cr64_write(), mep_pseudo_register_write(), mips_pseudo_register_write(), mn10300_store_return_value(), nds32_pseudo_register_write(), raw_write(), regcache_raw_write_signed(), regcache_raw_write_unsigned(), riscv_pseudo_register_write(), rl78_pseudo_register_write(), s390_pseudo_register_write(), sh_pseudo_register_write(), sh_store_return_value_fpu(), sh_store_return_value_nofpu(), sparc32_pseudo_register_write(), sparc64_pseudo_register_write(), tilegx_store_return_value(), v850_store_return_value(), v_alias_pseudo_register_write(), vsx_pseudo_register_write(), write_part(), xstormy16_store_return_value(), xtensa_pseudo_register_write(), and xtensa_store_return_value().

◆ raw_write() [2/2]

template<typename T , typename >
void regcache::raw_write ( int regnum,
T val )

◆ raw_write_part()

void regcache::raw_write_part ( int regnum,
int offset,
int len,
const gdb_byte * buf )

◆ restore()

void regcache::restore ( readonly_detached_regcache * src)

◆ set_ptid()

void regcache::set_ptid ( const ptid_t ptid)
inline

◆ supply_regset() [1/2]

void regcache::supply_regset ( const struct regset * regset,
int regbase,
int regnum,
const void * buf,
size_t size )

◆ supply_regset() [2/2]

void regcache::supply_regset ( const struct regset * regset,
int regnum,
const void * buf,
size_t size )
inline

Definition at line 394 of file regcache.h.

References regnum, size, and supply_regset().

◆ transfer_regset()

void regcache::transfer_regset ( const struct regset * regset,
int regbase,
struct regcache * out_regcache,
int regnum,
const gdb_byte * in_buf,
gdb_byte * out_buf,
size_t size ) const
private

◆ transfer_regset_register()

void regcache::transfer_regset_register ( struct regcache * out_regcache,
int regnum,
const gdb_byte * in_buf,
gdb_byte * out_buf,
int slot_size,
int offs ) const
private

◆ write_part()

enum register_status regcache::write_part ( int regnum,
int offset,
int len,
const gdb_byte * in,
bool is_raw )
private

Friends And Related Symbol Documentation

◆ get_thread_arch_aspace_regcache

struct regcache * get_thread_arch_aspace_regcache ( inferior * inf_for_target_calls,
ptid_t ptid,
struct gdbarch * gdbarch,
struct address_space * aspace )
friend

Definition at line 350 of file regcache.c.

Member Data Documentation

◆ m_aspace

const address_space* const regcache::m_aspace
private

Definition at line 450 of file regcache.h.

Referenced by aspace().

◆ m_inf_for_target_calls

inferior* regcache::m_inf_for_target_calls
private

Definition at line 459 of file regcache.h.

Referenced by raw_update(), and raw_write().

◆ m_ptid

ptid_t regcache::m_ptid
private

Definition at line 463 of file regcache.h.

Referenced by ptid(), regcache(), and set_ptid().


The documentation for this class was generated from the following files: