GDB (xrefs)

Classes | Enumerations | Functions | Variables
/tmp/gdb-8.1/gdb/spu-tdep.c File Reference
`#include "defs.h"`
`#include "arch-utils.h"`
`#include "gdbtypes.h"`
`#include "gdbcmd.h"`
`#include "gdbcore.h"`
`#include "frame.h"`
`#include "frame-unwind.h"`
`#include "frame-base.h"`
`#include "trad-frame.h"`
`#include "symtab.h"`
`#include "symfile.h"`
`#include "value.h"`
`#include "inferior.h"`
`#include "dis-asm.h"`
`#include "disasm.h"`
`#include "objfiles.h"`
`#include "language.h"`
`#include "regcache.h"`
`#include "reggroups.h"`
`#include "block.h"`
`#include "observer.h"`
`#include "infcall.h"`
`#include "dwarf2.h"`
`#include "dwarf2-frame.h"`
`#include "ax.h"`
`#include "spu-tdep.h"`
`#include "location.h"`

Go to the source code of this file.

## Classes
struct | gdbarch_tdep
struct | spu_prologue_data
struct | spu_unwind_cache
struct | spu2ppu_cache
struct | spu_dis_asm_info
struct | spu_overlay_table

## Enumerations
enum | { op_lqd = 0x34, op_lqx = 0x3c4, op_lqa = 0x61, op_lqr = 0x67, op_stqd = 0x24, op_stqx = 0x144, op_stqa = 0x41, op_stqr = 0x47, op_il = 0x081, op_ila = 0x21, op_a = 0x0c0, op_ai = 0x1c, op_selb = 0x8, op_br = 0x64, op_bra = 0x60, op_brsl = 0x66, op_brasl = 0x62, op_brnz = 0x42, op_brz = 0x40, op_brhnz = 0x46, op_brhz = 0x44, op_bi = 0x1a8, op_bisl = 0x1a9, op_biz = 0x128, op_binz = 0x129, op_bihz = 0x12a, op_bihnz = 0x12b }

## Functions
static struct type * | spu_builtin_type_vec128 (struct gdbarch *gdbarch)
static const char * | spu_register_name (struct gdbarch *gdbarch, int reg_nr)
static struct type * | spu_register_type (struct gdbarch *gdbarch, int reg_nr)
static enum register_status | spu_pseudo_register_read_spu (struct regcache *regcache, const char *regname, gdb_byte *buf)
static enum register_status | spu_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, int regnum, gdb_byte *buf)
static void | spu_pseudo_register_write_spu (struct regcache *regcache, const char *regname, const gdb_byte *buf)
static void | spu_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int regnum, const gdb_byte *buf)
static int | spu_ax_pseudo_register_collect (struct gdbarch *gdbarch, struct agent_expr *ax, int regnum)
static int | spu_ax_pseudo_register_push_stack (struct gdbarch *gdbarch, struct agent_expr *ax, int regnum)
static struct value * | spu_value_from_register (struct gdbarch *gdbarch, struct type *type, int regnum, struct frame_id frame_id)
static int | spu_register_reggroup_p (struct gdbarch *gdbarch, int regnum, struct reggroup *group)
static int | spu_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int reg)
static int | spu_gdbarch_id (struct gdbarch *gdbarch)
static int | spu_address_class_type_flags (int byte_size, int dwarf2_addr_class)
static const char * | spu_address_class_type_flags_to_name (struct gdbarch *gdbarch, int type_flags)
static int | spu_address_class_name_to_type_flags (struct gdbarch *gdbarch, const char *name, int *type_flags_ptr)
static void | spu_address_to_pointer (struct gdbarch *gdbarch, struct type *type, gdb_byte *buf, CORE_ADDR addr)
static CORE_ADDR | spu_pointer_to_address (struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf)
static CORE_ADDR | spu_integer_to_address (struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf)
static int | is_rr (unsigned int insn, int op, int *rt, int *ra, int *rb)
static int | is_rrr (unsigned int insn, int op, int *rt, int *ra, int *rb, int *rc)
static int | is_ri7 (unsigned int insn, int op, int *rt, int *ra, int *i7)
static int | is_ri10 (unsigned int insn, int op, int *rt, int *ra, int *i10)
static int | is_ri16 (unsigned int insn, int op, int *rt, int *i16)
static int | is_ri18 (unsigned int insn, int op, int *rt, int *i18)
static int | is_branch (unsigned int insn, int *offset, int *reg)
static CORE_ADDR | spu_analyze_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc, CORE_ADDR end_pc, struct spu_prologue_data *data)
static CORE_ADDR | spu_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
static void | spu_virtual_frame_pointer (struct gdbarch *gdbarch, CORE_ADDR pc, int *reg, LONGEST *offset)
static int | spu_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc)
static struct spu_unwind_cache * | spu_frame_unwind_cache (struct frame_info *this_frame, void **this_prologue_cache)
static void | spu_frame_this_id (struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
static struct value * | spu_frame_prev_register (struct frame_info *this_frame, void **this_prologue_cache, int regnum)
static CORE_ADDR | spu_frame_base_address (struct frame_info *this_frame, void **this_cache)
static CORE_ADDR | spu_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
static CORE_ADDR | spu_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
static CORE_ADDR | spu_read_pc (struct regcache *regcache)
static void | spu_write_pc (struct regcache *regcache, CORE_ADDR pc)
static struct gdbarch * | spu2ppu_prev_arch (struct frame_info *this_frame, void **this_cache)
static void | spu2ppu_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
static struct value * | spu2ppu_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
static int | spu2ppu_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
static void | spu2ppu_dealloc_cache (struct frame_info *self, void *this_cache)
static CORE_ADDR | spu_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp)
static CORE_ADDR | spu_push_dummy_code (struct gdbarch *gdbarch, CORE_ADDR sp, CORE_ADDR funaddr, struct value **args, int nargs, struct type *value_type, CORE_ADDR *real_pc, CORE_ADDR *bp_addr, struct regcache *regcache)
static int | spu_scalar_value_p (struct type *type)
static void | spu_value_to_regcache (struct regcache *regcache, int regnum, struct type *type, const gdb_byte *in)
static void | spu_regcache_to_value (struct regcache *regcache, int regnum, struct type *type, gdb_byte *out)
static CORE_ADDR | spu_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr)
static struct frame_id | spu_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
static enum return_value_convention | spu_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *out, const gdb_byte *in)
typedef | BP_MANIPULATION (spu_break_insn)
static std::vector< CORE_ADDR > | spu_software_single_step (struct regcache *regcache)
static int | spu_get_longjmp_target (struct frame_info *frame, CORE_ADDR *pc)
static void | spu_dis_asm_print_address (bfd_vma addr, struct disassemble_info *info)
static int | gdb_print_insn_spu (bfd_vma memaddr, struct disassemble_info *info)
static struct spu_overlay_table * | spu_get_overlay_table (struct objfile *objfile)
static void | spu_overlay_update_osect (struct obj_section *osect)
static void | spu_overlay_update (struct obj_section *osect)
static void | spu_overlay_new_objfile (struct objfile *objfile)
static void | spu_catch_start (struct objfile *objfile)
static struct objfile * | spu_objfile_from_frame (struct frame_info *frame)
static void | flush_ea_cache (void)
static void | spu_attach_normal_stop (struct bpstats *bs, int print_frame)
static void | info_spu_event_command (const char *args, int from_tty)
static void | info_spu_signal_command (const char *args, int from_tty)
static void | info_spu_mailbox_list (gdb_byte *buf, int nr, enum bfd_endian byte_order, const char *field, const char *msg)
static void | info_spu_mailbox_command (const char *args, int from_tty)
static ULONGEST | spu_mfc_get_bitfield (ULONGEST word, int first, int last)
static void | info_spu_dma_cmdlist (gdb_byte *buf, int nr, enum bfd_endian byte_order)
static void | info_spu_dma_command (const char *args, int from_tty)
static void | info_spu_proxydma_command (const char *args, int from_tty)
static void | info_spu_command (const char *args, int from_tty)
static void | show_spu_command (const char *args, int from_tty)
static void | set_spu_command (const char *args, int from_tty)
static void | show_spu_stop_on_load (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
static void | show_spu_auto_flush_cache (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
static struct gdbarch * | spu_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
void | _initialize_spu_tdep (void)

## Variables
static struct cmd_list_element * | setspucmdlist = NULL
static struct cmd_list_element * | showspucmdlist = NULL
static int | spu_stop_on_load_p = 0
static int | spu_auto_flush_cache_p = 1
static struct cmd_list_element * | infospucmdlist = NULL
static const struct frame_unwind | spu_frame_unwind
static const struct frame_base | spu_frame_base
static const struct frame_unwind | spu2ppu_unwind
constexpr gdb_byte | spu_break_insn [] = { 0x00, 0x00, 0x3f, 0xff }
static const struct objfile_data * | spu_overlay_data

## Enumeration Type Documentation

## ◆ anonymous enum

anonymous enum

Enumerator
op_lqd |
op_lqx |
op_lqa |
op_lqr |
op_stqd |
op_stqx |
op_stqa |
op_stqr |
op_il |
op_ila |
op_a |
op_ai |
op_selb |
op_br |
op_bra |
op_brsl |
op_brasl |
op_brnz |
op_brz |
op_brhnz |
op_brhz |
op_bi |
op_bisl |
op_biz |
op_binz |
op_bihz |
op_bihnz |

Definition at line 498 of file spu-tdep.c.

## Function Documentation

## ◆ _initialize_spu_tdep()

void _initialize_spu_tdep | ( | void |  | ) |

Definition at line 2768 of file spu-tdep.c.

References _, add_cmd(), add_prefix_cmd(), add_setshow_boolean_cmd(), class_info, class_support, info_spu_command(), info_spu_dma_command(), info_spu_event_command(), info_spu_mailbox_command(), info_spu_proxydma_command(), info_spu_signal_command(), infolist, infospucmdlist, no_class, observer_attach_new_objfile(), observer_attach_normal_stop(), register_gdbarch_init(), set_spu_command(), setlist, setspucmdlist, show_spu_auto_flush_cache(), show_spu_command(), show_spu_stop_on_load(), showlist, showspucmdlist, spu_attach_normal_stop(), spu_auto_flush_cache_p, spu_catch_start(), spu_gdbarch_init(), spu_overlay_data, spu_overlay_new_objfile(), and spu_stop_on_load_p.

## ◆ BP_MANIPULATION()

typedef BP_MANIPULATION | ( | spu_break_insn |  | ) |

Definition at line 1576 of file spu-tdep.c.

References current_inferior(), default_memory_remove_breakpoint(), inferior_ptid, pid, and ptid_get_pid().

## ◆ flush_ea_cache()

static void flush_ea_cache | ( | void |  | ) |
| static

Definition at line 2018 of file spu-tdep.c.

References BMSYMBOL_VALUE_ADDRESS, objfile_type::builtin_void, call_function_by_hand(), get_current_frame(), has_stack_frames(), lookup_function_type(), lookup_minimal_symbol(), lookup_pointer_type(), bound_minimal_symbol::minsym, objfile_type(), spu_objfile_from_frame(), type, and value_from_pointer().

Referenced by spu_attach_normal_stop().

## ◆ gdb_print_insn_spu()

static int gdb_print_insn_spu | ( | bfd_vma | memaddr,
|  | struct disassemble_info * | info
| ) |  |
| static

Definition at line 1716 of file spu-tdep.c.

References default_print_insn(), spu_dis_asm_info::id, spu_dis_asm_print_address(), and SPUADDR_SPU.

Referenced by spu_gdbarch_init().

## ◆ info_spu_command()

static void info_spu_command | ( | const char * | args,
|  | int | from_tty
| ) |  |
| static

Definition at line 2603 of file spu-tdep.c.

References _, all_commands, gdb_stdout, help_list(), infospucmdlist, and printf_unfiltered().

Referenced by _initialize_spu_tdep().

## ◆ info_spu_dma_cmdlist()

static void info_spu_dma_cmdlist | ( | gdb_byte * | buf,
|  | int | nr,
|  | enum bfd_endian | byte_order
| ) |  |
| static

Definition at line 2287 of file spu-tdep.c.

References gdbarch::byte_order, current_uiout, extract_unsigned_integer(), phex(), printf_filtered(), spu_mfc_get_bitfield(), and ui_left.

Referenced by info_spu_dma_command(), and info_spu_proxydma_command().

## ◆ info_spu_dma_command()

static void info_spu_dma_command | ( | const char * | args,
|  | int | from_tty
| ) |  |
| static

Definition at line 2462 of file spu-tdep.c.

References _, gdbarch::byte_order, current_target, current_uiout, error(), extract_unsigned_integer(), gdbarch_bfd_arch_info(), gdbarch_byte_order(), get_frame_arch(), get_frame_register_unsigned(), get_selected_frame(), info_spu_dma_cmdlist(), phex(), phex_nz(), printf_filtered(), SPU_ID_REGNUM, TARGET_OBJECT_SPU, target_read(), and xsnprintf().

Referenced by _initialize_spu_tdep().

## ◆ info_spu_event_command()

static void info_spu_event_command | ( | const char * | args,
|  | int | from_tty
| ) |  |
| static

Definition at line 2065 of file spu-tdep.c.

References _, frame_info::arch, current_target, current_uiout, error(), gdbarch_bfd_arch_info(), get_frame_arch(), get_frame_register_unsigned(), get_selected_frame(), phex(), phex_nz(), printf_filtered(), SPU_ID_REGNUM, strtoulst(), TARGET_OBJECT_SPU, target_read(), and xsnprintf().

Referenced by _initialize_spu_tdep().

## ◆ info_spu_mailbox_command()

static void info_spu_mailbox_command | ( | const char * | args,
|  | int | from_tty
| ) |  |
| static

Definition at line 2234 of file spu-tdep.c.

References _, gdbarch::byte_order, current_target, current_uiout, error(), gdbarch_bfd_arch_info(), gdbarch_byte_order(), get_frame_arch(), get_frame_register_unsigned(), get_selected_frame(), info_spu_mailbox_list(), SPU_ID_REGNUM, TARGET_OBJECT_SPU, target_read(), and xsnprintf().

Referenced by _initialize_spu_tdep().

## ◆ info_spu_mailbox_list()

static void info_spu_mailbox_list | ( | gdb_byte * | buf,
|  | int | nr,
|  | enum bfd_endian | byte_order,
|  | const char * | field,
|  | const char * | msg
| ) |  |
| static

Definition at line 2206 of file spu-tdep.c.

References gdbarch::byte_order, current_uiout, extract_unsigned_integer(), phex(), printf_filtered(), and ui_left.

Referenced by info_spu_mailbox_command().

## ◆ info_spu_proxydma_command()

static void info_spu_proxydma_command | ( | const char * | args,
|  | int | from_tty
| ) |  |
| static

Definition at line 2541 of file spu-tdep.c.

References _, gdbarch::byte_order, current_target, current_uiout, error(), extract_unsigned_integer(), gdbarch_bfd_arch_info(), gdbarch_byte_order(), get_frame_arch(), get_frame_register_unsigned(), get_selected_frame(), info_spu_dma_cmdlist(), phex(), phex_nz(), printf_filtered(), SPU_ID_REGNUM, TARGET_OBJECT_SPU, target_read(), and xsnprintf().

Referenced by _initialize_spu_tdep().

## ◆ info_spu_signal_command()

static void info_spu_signal_command | ( | const char * | args,
|  | int | from_tty
| ) |  |
| static

Definition at line 2113 of file spu-tdep.c.

References _, gdbarch::byte_order, current_target, current_uiout, error(), extract_unsigned_integer(), gdbarch_bfd_arch_info(), gdbarch_byte_order(), get_frame_arch(), get_frame_register_unsigned(), get_selected_frame(), phex(), phex_nz(), printf_filtered(), SPU_ID_REGNUM, strtoulst(), TARGET_OBJECT_SPU, target_read(), and xsnprintf().

Referenced by _initialize_spu_tdep().

## ◆ is_branch()

static int is_branch | ( | unsigned int | insn,
|  | int * | offset,
|  | int * | reg
| ) |  |
| static

Definition at line 616 of file spu-tdep.c.

References is_ri16(), is_ri7(), offset, op_bi, op_bihnz, op_bihz, op_binz, op_bisl, op_biz, op_br, op_bra, op_brasl, op_brhnz, op_brhz, op_brnz, op_brsl, op_brz, and SPU_PC_REGNUM.

Referenced by spu_analyze_prologue(), spu_software_single_step(), and spu_stack_frame_destroyed_p().

## ◆ is_ri10()

static int is_ri10 | ( | unsigned int | insn,
|  | int | op,
|  | int * | rt,
|  | int * | ra,
|  | int * | i10
| ) |  |
| static

Definition at line 576 of file spu-tdep.c.

Referenced by spu_analyze_prologue(), and spu_stack_frame_destroyed_p().

## ◆ is_ri16()

static int is_ri16 | ( | unsigned int | insn,
|  | int | op,
|  | int * | rt,
|  | int * | i16
| ) |  |
| static

Definition at line 590 of file spu-tdep.c.

Referenced by is_branch(), and spu_analyze_prologue().

## ◆ is_ri18()

static int is_ri18 | ( | unsigned int | insn,
|  | int | op,
|  | int * | rt,
|  | int * | i18
| ) |  |
| static

Definition at line 603 of file spu-tdep.c.

Referenced by spu_analyze_prologue().

## ◆ is_ri7()

static int is_ri7 | ( | unsigned int | insn,
|  | int | op,
|  | int * | rt,
|  | int * | ra,
|  | int * | i7
| ) |  |
| static

Definition at line 562 of file spu-tdep.c.

Referenced by is_branch().

## ◆ is_rr()

static int is_rr | ( | unsigned int | insn,
|  | int | op,
|  | int * | rt,
|  | int * | ra,
|  | int * | rb
| ) |  |
| static

Definition at line 533 of file spu-tdep.c.

Referenced by spu_analyze_prologue(), and spu_stack_frame_destroyed_p().

## ◆ is_rrr()

static int is_rrr | ( | unsigned int | insn,
|  | int | op,
|  | int * | rt,
|  | int * | ra,
|  | int * | rb,
|  | int * | rc
| ) |  |
| static

Definition at line 547 of file spu-tdep.c.

Referenced by spu_analyze_prologue().

## ◆ set_spu_command()

static void set_spu_command | ( | const char * | args,
|  | int | from_tty
| ) |  |
| static

Definition at line 2620 of file spu-tdep.c.

References all_commands, gdb_stdout, help_list(), and setspucmdlist.

Referenced by _initialize_spu_tdep().

## ◆ show_spu_auto_flush_cache()

static void show_spu_auto_flush_cache | ( | struct ui_file * | file,
|  | int | from_tty,
|  | struct cmd_list_element * | c,
|  | const char * | value
| ) |  |
| static

Definition at line 2634 of file spu-tdep.c.

References _, and fprintf_filtered().

Referenced by _initialize_spu_tdep().

## ◆ show_spu_command()

static void show_spu_command | ( | const char * | args,
|  | int | from_tty
| ) |  |
| static

Definition at line 2614 of file spu-tdep.c.

References all_commands, gdb_stdout, help_list(), and showspucmdlist.

Referenced by _initialize_spu_tdep().

## ◆ show_spu_stop_on_load()

static void show_spu_stop_on_load | ( | struct ui_file * | file,
|  | int | from_tty,
|  | struct cmd_list_element * | c,
|  | const char * | value
| ) |  |
| static

Definition at line 2626 of file spu-tdep.c.

References _, and fprintf_filtered().

Referenced by _initialize_spu_tdep().

## ◆ spu2ppu_dealloc_cache()

static void spu2ppu_dealloc_cache | ( | struct frame_info * | self,
|  | void * | this_cache
| ) |  |
| static

Definition at line 1287 of file spu-tdep.c.

References spu2ppu_cache::regcache.

## ◆ spu2ppu_prev_arch()

static struct gdbarch* spu2ppu_prev_arch | ( | struct frame_info * | this_frame,
|  | void ** | this_cache
| ) |  |
| static

Definition at line 1209 of file spu-tdep.c.

References regcache::arch(), and spu2ppu_cache::regcache.

## ◆ spu2ppu_prev_register()

static struct value* spu2ppu_prev_register | ( | struct frame_info * | this_frame,
|  | void ** | this_cache,
|  | int | regnum
| ) |  |
| static

Definition at line 1224 of file spu-tdep.c.

References regcache::arch(), frame_unwind_got_bytes(), spu2ppu_cache::regcache, regcache_cooked_read(), register_size(), and regnum.

## ◆ spu2ppu_sniffer()

static int spu2ppu_sniffer | ( | const struct frame_unwind * | self,
|  | struct frame_info * | this_frame,
|  | void ** | this_prologue_cache
| ) |  |
| static

Definition at line 1237 of file spu-tdep.c.

References gdbarch::byte_order, extract_unsigned_integer(), spu2ppu_cache::frame_id, frame_id_build(), FRAME_OBSTACK_CALLOC, frame_save_as_regcache(), func, gdbarch_bfd_arch_info(), gdbarch_byte_order(), get_frame_arch(), get_frame_pc(), get_frame_sp(), get_next_frame(), get_thread_arch_regcache(), inferior_ptid, regcache::regcache(), spu2ppu_cache::regcache, regcache_dup(), target_gdbarch(), and target_read_memory().

## ◆ spu2ppu_this_id()

static void spu2ppu_this_id | ( | struct frame_info * | this_frame,
|  | void ** | this_cache,
|  | struct frame_id * | this_id
| ) |  |
| static

Definition at line 1216 of file spu-tdep.c.

References spu2ppu_cache::frame_id.

## ◆ spu_address_class_name_to_type_flags()

static int spu_address_class_name_to_type_flags | ( | struct gdbarch * | gdbarch,
|  | const char * | name,
|  | int * | type_flags_ptr
| ) |  |
| static

Definition at line 448 of file spu-tdep.c.

References name, and TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1.

Referenced by spu_gdbarch_init().

## ◆ spu_address_class_type_flags()

static int spu_address_class_type_flags | ( | int | byte_size,
|  | int | dwarf2_addr_class
| ) |  |
| static

Definition at line 430 of file spu-tdep.c.

References TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1.

Referenced by spu_gdbarch_init().

## ◆ spu_address_class_type_flags_to_name()

static const char* spu_address_class_type_flags_to_name | ( | struct gdbarch * | gdbarch,
|  | int | type_flags
| ) |  |
| static

Definition at line 439 of file spu-tdep.c.

References TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1.

Referenced by spu_gdbarch_init().

## ◆ spu_address_to_pointer()

static void spu_address_to_pointer | ( | struct gdbarch * | gdbarch,
|  | struct type * | type,
|  | gdb_byte * | buf,
|  | CORE_ADDR | addr
| ) |  |
| static

Definition at line 461 of file spu-tdep.c.

References gdbarch_byte_order(), SPUADDR_ADDR, store_unsigned_integer(), and TYPE_LENGTH.

Referenced by spu_gdbarch_init().

## ◆ spu_analyze_prologue()

static CORE_ADDR spu_analyze_prologue | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | start_pc,
|  | CORE_ADDR | end_pc,
|  | struct spu_prologue_data * | data
| ) |  |
| static

Definition at line 671 of file spu-tdep.c.

References spu_prologue_data::cfa_offset, spu_prologue_data::cfa_reg, extract_unsigned_integer(), gdbarch_byte_order(), is_branch(), is_ri10(), is_ri16(), is_ri18(), is_rr(), is_rrr(), op_a, op_ai, op_il, op_ila, op_selb, op_stqd, spu_prologue_data::reg_offset, spu_prologue_data::size, SPU_FP_REGNUM, SPU_LR_REGNUM, SPU_NUM_GPRS, SPU_RAW_SP_REGNUM, SPU_SP_REGNUM, and target_read_memory().

Referenced by spu_frame_unwind_cache(), spu_skip_prologue(), and spu_virtual_frame_pointer().

## ◆ spu_attach_normal_stop()

static void spu_attach_normal_stop | ( | struct bpstats * | bs,
|  | int | print_frame
| ) |  |
| static

Definition at line 2049 of file spu-tdep.c.

References flush_ea_cache(), and spu_auto_flush_cache_p.

Referenced by _initialize_spu_tdep().

## ◆ spu_ax_pseudo_register_collect()

static int spu_ax_pseudo_register_collect | ( | struct gdbarch * | gdbarch,
|  | struct agent_expr * | ax,
|  | int | regnum
| ) |  |
| static

Definition at line 314 of file spu-tdep.c.

References _, ax_reg_mask(), internal_error(), regnum, SPU_DECR_REGNUM, SPU_DECR_STATUS_REGNUM, SPU_FPSCR_REGNUM, SPU_LSLR_REGNUM, SPU_RAW_SP_REGNUM, SPU_SP_REGNUM, and SPU_SRR0_REGNUM.

Referenced by spu_gdbarch_init().

## ◆ spu_ax_pseudo_register_push_stack()

static int spu_ax_pseudo_register_push_stack | ( | struct gdbarch * | gdbarch,
|  | struct agent_expr * | ax,
|  | int | regnum
| ) |  |
| static

Definition at line 336 of file spu-tdep.c.

References _, ax_reg(), internal_error(), regnum, SPU_DECR_REGNUM, SPU_DECR_STATUS_REGNUM, SPU_FPSCR_REGNUM, SPU_LSLR_REGNUM, SPU_RAW_SP_REGNUM, SPU_SP_REGNUM, and SPU_SRR0_REGNUM.

Referenced by spu_gdbarch_init().

## ◆ spu_builtin_type_vec128()

static struct type* spu_builtin_type_vec128 | ( | struct gdbarch * | gdbarch | ) |
| static

Definition at line 73 of file spu-tdep.c.

References append_composite_type_field(), arch_composite_type(), builtin_type::builtin_double, builtin_type::builtin_float, builtin_type::builtin_int128, builtin_type::builtin_int16, builtin_type::builtin_int32, builtin_type::builtin_int64, builtin_type::builtin_int8, builtin_type(), gdbarch_tdep(), init_vector_type(), gdbarch_tdep::spu_builtin_type_vec128, TYPE_CODE_UNION, TYPE_NAME, and TYPE_VECTOR.

Referenced by spu_register_type().

## ◆ spu_catch_start()

static void spu_catch_start | ( | struct objfile * | objfile | ) |
| static

Definition at line 1932 of file spu-tdep.c.

References AUTO_BOOLEAN_FALSE, bkpt_breakpoint_ops, block_lookup_symbol(), BLOCKVECTOR_BLOCK, BMSYMBOL_VALUE_ADDRESS, bp_breakpoint, COMPUNIT_BLOCKVECTOR, create_breakpoint(), find_function_start_sal(), find_pc_sect_compunit_symtab(), fixup_symbol_section(), get_objfile_arch(), GLOBAL_BLOCK, lookup_minimal_symbol(), bound_minimal_symbol::minsym, MSYMBOL_OBJ_SECTION, new_address_location(), objfile::obfd, bound_minimal_symbol::objfile, symtab_and_line::pc, SEARCH_NAME, spu_stop_on_load_p, symfile_objfile, and VAR_DOMAIN.

Referenced by _initialize_spu_tdep().

## ◆ spu_dis_asm_print_address()

static void spu_dis_asm_print_address | ( | bfd_vma | addr,
|  | struct disassemble_info * | info
| ) |  |
| static

Definition at line 1705 of file spu-tdep.c.

References gdb_disassembler::arch(), spu_dis_asm_info::id, print_address(), and SPUADDR.

Referenced by gdb_print_insn_spu().

## ◆ spu_dummy_id()

static struct frame_id spu_dummy_id | ( | struct gdbarch * | gdbarch,
|  | struct frame_info * | this_frame
| ) |  |
| static

Definition at line 1498 of file spu-tdep.c.

References frame_id_build(), gdbarch_tdep(), get_frame_register_unsigned(), gdbarch_tdep::id, gdbarch_tdep::pc, gdbarch_tdep::sp, SPU_PC_REGNUM, SPU_SP_REGNUM, and SPUADDR.

Referenced by spu_gdbarch_init().

## ◆ spu_dwarf_reg_to_regnum()

static int spu_dwarf_reg_to_regnum | ( | struct gdbarch * | gdbarch,
|  | int | reg
| ) |  |
| static

Definition at line 402 of file spu-tdep.c.

References value::reg, SPU_RAW_SP_REGNUM, and SPU_SP_REGNUM.

Referenced by spu_gdbarch_init().

## ◆ spu_frame_align()

static CORE_ADDR spu_frame_align | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | sp
| ) |  |
| static

Definition at line 1308 of file spu-tdep.c.

Referenced by spu_gdbarch_init().

## ◆ spu_frame_base_address()

static CORE_ADDR spu_frame_base_address | ( | struct frame_info * | this_frame,
|  | void ** | this_cache
| ) |  |
| static

Definition at line 1147 of file spu-tdep.c.

References spu_unwind_cache::local_base, and spu_frame_unwind_cache().

## ◆ spu_frame_prev_register()

static struct value* spu_frame_prev_register | ( | struct frame_info * | this_frame,
|  | void ** | this_prologue_cache,
|  | int | regnum
| ) |  |
| static

Definition at line 1124 of file spu-tdep.c.

References regnum, spu_unwind_cache::saved_regs, spu_frame_unwind_cache(), SPU_RAW_SP_REGNUM, SPU_SP_REGNUM, and trad_frame_get_prev_register().

## ◆ spu_frame_this_id()

static void spu_frame_this_id | ( | struct frame_info * | this_frame,
|  | void ** | this_prologue_cache,
|  | struct frame_id * | this_id
| ) |  |
| static

Definition at line 1111 of file spu-tdep.c.

References spu_unwind_cache::frame_base, frame_id_build(), spu_unwind_cache::func, and spu_frame_unwind_cache().

## ◆ spu_frame_unwind_cache()

static struct spu_unwind_cache* spu_frame_unwind_cache | ( | struct frame_info * | this_frame,
|  | void ** | this_prologue_cache
| ) |  |
| static

Definition at line 991 of file spu-tdep.c.

References trad_frame_saved_reg::addr, spu_prologue_data::cfa_offset, spu_prologue_data::cfa_reg, extract_unsigned_integer(), spu_unwind_cache::frame_base, FRAME_OBSTACK_ZALLOC, spu_unwind_cache::func, gdbarch_byte_order(), gdbarch_tdep(), get_frame_arch(), get_frame_func(), get_frame_pc(), get_frame_register(), get_frame_register_unsigned(), gdbarch_tdep::id, spu_unwind_cache::local_base, spu_prologue_data::reg_offset, safe_read_memory_integer(), spu_unwind_cache::saved_regs, spu_prologue_data::size, spu_analyze_prologue(), SPU_LR_REGNUM, SPU_LSLR_REGNUM, SPU_NUM_GPRS, SPU_PC_REGNUM, SPU_SAVED1_REGNUM, SPU_SAVEDN_REGNUM, SPU_SP_REGNUM, SPUADDR, SPUADDR_ADDR, status, target_read_memory(), trad_frame_addr_p(), trad_frame_alloc_saved_regs(), and trad_frame_set_value().

Referenced by spu_frame_base_address(), spu_frame_prev_register(), and spu_frame_this_id().

## ◆ spu_gdbarch_id()

static int spu_gdbarch_id | ( | struct gdbarch * | gdbarch | ) |
| static

Definition at line 412 of file spu-tdep.c.

References gdbarch_tdep(), gdbarch_tdep::id, obj_section_addr, SPUADDR_SPU, and symfile_objfile.

Referenced by spu_integer_to_address(), and spu_pointer_to_address().

## ◆ spu_gdbarch_init()

static struct gdbarch* spu_gdbarch_init | ( | struct gdbarch_info | info,
|  | struct gdbarch_list * | arches
| ) |  |
| static

Definition at line 2645 of file spu-tdep.c.

References gdbarch_info::abfd, core_addr_lessthan(), dwarf2_append_unwinders(), floatformats_ieee_double, floatformats_ieee_single, frame_base_set_default(), frame_unwind_append_unwinder(), frame_unwind_prepend_unwinder(), gdb_print_insn_spu(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_list_lookup_by_info(), gdbarch_tdep(), gdbarch_tdep::id, gdbarch_info::id, name, gdbarch_list::next, ON_STACK, set_gdbarch_addr_bit(), set_gdbarch_address_class_name_to_type_flags(), set_gdbarch_address_class_type_flags(), set_gdbarch_address_class_type_flags_to_name(), set_gdbarch_address_to_pointer(), set_gdbarch_ax_pseudo_register_collect(), set_gdbarch_ax_pseudo_register_push_stack(), set_gdbarch_breakpoint_kind_from_pc(), set_gdbarch_call_dummy_location(), set_gdbarch_char_signed(), set_gdbarch_decr_pc_after_break(), set_gdbarch_double_bit(), set_gdbarch_double_format(), set_gdbarch_dummy_id(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_float_bit(), set_gdbarch_float_format(), set_gdbarch_frame_align(), set_gdbarch_frame_args_skip(), set_gdbarch_frame_red_zone_size(), set_gdbarch_get_longjmp_target(), set_gdbarch_inner_than(), set_gdbarch_int_bit(), set_gdbarch_integer_to_address(), set_gdbarch_long_bit(), set_gdbarch_long_double_bit(), set_gdbarch_long_double_format(), set_gdbarch_long_long_bit(), set_gdbarch_memory_remove_breakpoint(), set_gdbarch_num_pseudo_regs(), set_gdbarch_num_regs(), set_gdbarch_overlay_update(), set_gdbarch_pc_regnum(), set_gdbarch_pointer_to_address(), set_gdbarch_print_insn(), set_gdbarch_pseudo_register_read(), set_gdbarch_pseudo_register_write(), set_gdbarch_ptr_bit(), set_gdbarch_push_dummy_call(), set_gdbarch_push_dummy_code(), set_gdbarch_read_pc(), set_gdbarch_register_name(), set_gdbarch_register_reggroup_p(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_short_bit(), set_gdbarch_significant_addr_bit(), set_gdbarch_skip_prologue(), set_gdbarch_software_single_step(), set_gdbarch_sp_regnum(), set_gdbarch_stack_frame_destroyed_p(), set_gdbarch_sw_breakpoint_from_kind(), set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(), set_gdbarch_value_from_register(), set_gdbarch_virtual_frame_pointer(), set_gdbarch_write_pc(), spu2ppu_unwind, spu_address_class_name_to_type_flags(), spu_address_class_type_flags(), spu_address_class_type_flags_to_name(), spu_address_to_pointer(), spu_ax_pseudo_register_collect(), spu_ax_pseudo_register_push_stack(), spu_dummy_id(), spu_dwarf_reg_to_regnum(), spu_frame_align(), spu_frame_base, spu_frame_unwind, spu_get_longjmp_target(), spu_integer_to_address(), SPU_NUM_PSEUDO_REGS, SPU_NUM_REGS, spu_overlay_update(), SPU_PC_REGNUM, spu_pointer_to_address(), spu_pseudo_register_read(), spu_pseudo_register_write(), spu_push_dummy_call(), spu_push_dummy_code(), spu_read_pc(), spu_register_name(), spu_register_reggroup_p(), spu_register_type(), spu_return_value(), spu_skip_prologue(), spu_software_single_step(), SPU_SP_REGNUM, spu_stack_frame_destroyed_p(), spu_unwind_pc(), spu_unwind_sp(), spu_value_from_register(), spu_virtual_frame_pointer(), spu_write_pc(), and XCNEW.

Referenced by _initialize_spu_tdep().

## ◆ spu_get_longjmp_target()

static int spu_get_longjmp_target | ( | struct frame_info * | frame,
|  | CORE_ADDR * | pc
| ) |  |
| static

Definition at line 1673 of file spu-tdep.c.

References extract_unsigned_integer(), gdbarch_byte_order(), gdbarch_tdep(), get_frame_arch(), get_frame_register_bytes(), gdbarch_tdep::id, gdbarch_tdep::pc, SPU_ARG1_REGNUM, SPUADDR, and target_read_memory().

Referenced by spu_gdbarch_init().

## ◆ spu_get_overlay_table()

static struct spu_overlay_table* spu_get_overlay_table | ( | struct objfile * | objfile | ) |
| static

Definition at line 1780 of file spu-tdep.c.

References ALL_OBJFILE_OSECTIONS, BMSYMBOL_VALUE_ADDRESS, extract_unsigned_integer(), lookup_minimal_symbol(), spu_overlay_table::mapped_ptr, spu_overlay_table::mapped_val, bound_minimal_symbol::minsym, MSYMBOL_SIZE, objfile::obfd, OBSTACK_CALLOC, read_memory(), objfile::sections, objfile::sections_end, size, spu_overlay_data, obj_section::the_bfd_section, xfree(), and xmalloc().

Referenced by spu_overlay_new_objfile(), and spu_overlay_update_osect().

## ◆ spu_integer_to_address()

static CORE_ADDR spu_integer_to_address | ( | struct gdbarch * | gdbarch,
|  | struct type * | type,
|  | const gdb_byte * | buf
| ) |  |
| static

Definition at line 486 of file spu-tdep.c.

References spu_gdbarch_id(), SPUADDR, and unpack_long().

Referenced by spu_gdbarch_init().

## ◆ spu_mfc_get_bitfield()

static ULONGEST spu_mfc_get_bitfield | ( | ULONGEST | word,
|  | int | first,
|  | int | last
| ) |  |
| static

Definition at line 2280 of file spu-tdep.c.

Referenced by info_spu_dma_cmdlist().

## ◆ spu_objfile_from_frame()

static struct objfile* spu_objfile_from_frame | ( | struct frame_info * | frame | ) |
| static

Definition at line 1997 of file spu-tdep.c.

References ALL_OBJFILES, gdbarch_bfd_arch_info(), gdbarch_tdep(), get_frame_arch(), gdbarch_tdep::id, obj_section_addr, objfile::sections, objfile::sections_end, and SPUADDR_SPU.

Referenced by flush_ea_cache().

## ◆ spu_overlay_new_objfile()

static void spu_overlay_new_objfile | ( | struct objfile * | objfile | ) |
| static

Definition at line 1897 of file spu-tdep.c.

References ALL_OBJFILE_OSECTIONS, objfile::obfd, objfile::sections, spu_get_overlay_table(), spu_overlay_data, SPU_OVERLAY_LMA, and obj_section::the_bfd_section.

Referenced by _initialize_spu_tdep().

## ◆ spu_overlay_update()

static void spu_overlay_update | ( | struct obj_section * | osect | ) |
| static

Definition at line 1875 of file spu-tdep.c.

References ALL_OBJSECTIONS, objfile::objfile(), section_is_overlay(), and spu_overlay_update_osect().

Referenced by spu_gdbarch_init().

## ◆ spu_overlay_update_osect()

static void spu_overlay_update_osect | ( | struct obj_section * | osect | ) |
| static

Definition at line 1851 of file spu-tdep.c.

References spu_overlay_table::mapped_ptr, spu_overlay_table::mapped_val, objfile::obfd, obj_section_addr, obj_section::objfile, obj_section::ovly_mapped, read_memory_unsigned_integer(), objfile::sections, spu_get_overlay_table(), SPUADDR, and SPUADDR_SPU.

Referenced by spu_overlay_update().

## ◆ spu_pointer_to_address()

static CORE_ADDR spu_pointer_to_address | ( | struct gdbarch * | gdbarch,
|  | struct type * | type,
|  | const gdb_byte * | buf
| ) |  |
| static

Definition at line 470 of file spu-tdep.c.

References extract_unsigned_integer(), gdbarch_byte_order(), spu_gdbarch_id(), SPUADDR, TYPE_ADDRESS_CLASS_1, and TYPE_LENGTH.

Referenced by spu_gdbarch_init().

## ◆ spu_pseudo_register_read()

static enum register_status spu_pseudo_register_read | ( | struct gdbarch * | gdbarch,
|  | struct regcache * | regcache,
|  | int | regnum,
|  | gdb_byte * | buf
| ) |  |
| static

Definition at line 210 of file spu-tdep.c.

References _, current_target, internal_error(), REG_VALID, regcache_raw_read(), regcache_raw_read_unsigned(), regnum, SPU_DECR_REGNUM, SPU_DECR_STATUS_REGNUM, SPU_FPSCR_REGNUM, SPU_ID_REGNUM, SPU_LSLR_REGNUM, spu_pseudo_register_read_spu(), SPU_RAW_SP_REGNUM, SPU_SP_REGNUM, SPU_SRR0_REGNUM, status, TARGET_OBJECT_SPU, target_read(), and xsnprintf().

Referenced by spu_gdbarch_init().

## ◆ spu_pseudo_register_read_spu()

static enum register_status spu_pseudo_register_read_spu | ( | struct regcache * | regcache,
|  | const char * | regname,
|  | gdb_byte * | buf
| ) |  |
| static

Definition at line 185 of file spu-tdep.c.

References regcache::arch(), gdbarch::byte_order, current_target, gdbarch_byte_order(), memset(), REG_VALID, regcache_raw_read_unsigned(), SPU_ID_REGNUM, status, store_unsigned_integer(), strtoulst(), TARGET_OBJECT_SPU, target_read(), and xsnprintf().

Referenced by spu_pseudo_register_read().

## ◆ spu_pseudo_register_write()

static void spu_pseudo_register_write | ( | struct gdbarch * | gdbarch,
|  | struct regcache * | regcache,
|  | int | regnum,
|  | const gdb_byte * | buf
| ) |  |
| static

Definition at line 271 of file spu-tdep.c.

References _, current_target, internal_error(), regcache_raw_read(), regcache_raw_read_unsigned(), regcache_raw_write(), regnum, SPU_DECR_REGNUM, SPU_DECR_STATUS_REGNUM, SPU_FPSCR_REGNUM, SPU_ID_REGNUM, SPU_LSLR_REGNUM, spu_pseudo_register_write_spu(), SPU_RAW_SP_REGNUM, SPU_SP_REGNUM, SPU_SRR0_REGNUM, TARGET_OBJECT_SPU, target_write(), and xsnprintf().

Referenced by spu_gdbarch_init().

## ◆ spu_pseudo_register_write_spu()

static void spu_pseudo_register_write_spu | ( | struct regcache * | regcache,
|  | const char * | regname,
|  | const gdb_byte * | buf
| ) |  |
| static

Definition at line 253 of file spu-tdep.c.

References regcache::arch(), gdbarch::byte_order, current_target, extract_unsigned_integer(), gdbarch_byte_order(), phex_nz(), regcache_raw_read_unsigned(), SPU_ID_REGNUM, TARGET_OBJECT_SPU, target_write(), and xsnprintf().

Referenced by spu_pseudo_register_write().

## ◆ spu_push_dummy_call()

static CORE_ADDR spu_push_dummy_call | ( | struct gdbarch * | gdbarch,
|  | struct value * | function,
|  | struct regcache * | regcache,
|  | CORE_ADDR | bp_addr,
|  | int | nargs,
|  | struct value ** | args,
|  | CORE_ADDR | sp,
|  | int | struct_return,
|  | CORE_ADDR | struct_addr
| ) |  |
| static

Definition at line 1400 of file spu-tdep.c.

References align_up(), check_typedef(), extract_unsigned_integer(), gdbarch_byte_order(), memset(), regcache_cooked_read(), regcache_cooked_write(), regnum, SPU_ARG1_REGNUM, SPU_ARGN_REGNUM, SPU_LR_REGNUM, SPU_RAW_SP_REGNUM, spu_scalar_value_p(), spu_value_to_regcache(), SPUADDR_ADDR, store_unsigned_integer(), target_write_memory(), TYPE_LENGTH, value_contents(), and value_type().

Referenced by spu_gdbarch_init().

## ◆ spu_push_dummy_code()

static CORE_ADDR spu_push_dummy_code | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | sp,
|  | CORE_ADDR | funaddr,
|  | struct value ** | args,
|  | int | nargs,
|  | struct type * | value_type,
|  | CORE_ADDR * | real_pc,
|  | CORE_ADDR * | bp_addr,
|  | struct regcache * | regcache
| ) |  |
| static

Definition at line 1314 of file spu-tdep.c.

Referenced by spu_gdbarch_init().

## ◆ spu_read_pc()

static CORE_ADDR spu_read_pc | ( | struct regcache * | regcache | ) |
| static

Definition at line 1179 of file spu-tdep.c.

References regcache::arch(), gdbarch_tdep(), gdbarch_tdep::id, gdbarch_tdep::pc, regcache_cooked_read_unsigned(), SPU_PC_REGNUM, and SPUADDR.

Referenced by spu_gdbarch_init().

## ◆ spu_regcache_to_value()

static void spu_regcache_to_value | ( | struct regcache * | regcache,
|  | int | regnum,
|  | struct type * | type,
|  | gdb_byte * | out
| ) |  |
| static

Definition at line 1375 of file spu-tdep.c.

References regcache_cooked_read(), regcache_cooked_read_part(), regnum, spu_scalar_value_p(), and TYPE_LENGTH.

Referenced by spu_return_value().

## ◆ spu_register_name()

static const char* spu_register_name | ( | struct gdbarch * | gdbarch,
|  | int | reg_nr
| ) |  |
| static

Definition at line 114 of file spu-tdep.c.

Referenced by spu_gdbarch_init().

## ◆ spu_register_reggroup_p()

static int spu_register_reggroup_p | ( | struct gdbarch * | gdbarch,
|  | int | regnum,
|  | struct reggroup * | group
| ) |  |
| static

Definition at line 380 of file spu-tdep.c.

References default_register_reggroup_p(), float_reggroup, general_reggroup, regnum, restore_reggroup, and save_reggroup.

Referenced by spu_gdbarch_init().

## ◆ spu_register_type()

static struct type* spu_register_type | ( | struct gdbarch * | gdbarch,
|  | int | reg_nr
| ) |  |
| static

Definition at line 146 of file spu-tdep.c.

References _, builtin_type::builtin_data_ptr, builtin_type::builtin_func_ptr, builtin_type(), builtin_type::builtin_uint128, builtin_type::builtin_uint32, internal_error(), spu_builtin_type_vec128(), SPU_DECR_REGNUM, SPU_DECR_STATUS_REGNUM, SPU_FPSCR_REGNUM, SPU_ID_REGNUM, SPU_LSLR_REGNUM, SPU_NUM_GPRS, SPU_PC_REGNUM, SPU_SP_REGNUM, and SPU_SRR0_REGNUM.

Referenced by spu_gdbarch_init().

## ◆ spu_return_value()

static enum return_value_convention spu_return_value | ( | struct gdbarch * | gdbarch,
|  | struct value * | function,
|  | struct type * | type,
|  | struct regcache * | regcache,
|  | gdb_byte * | out,
|  | const gdb_byte * | in
| ) |  |
| static

Definition at line 1509 of file spu-tdep.c.

References _, check_typedef(), error(), regcache_cooked_read_part(), regcache_cooked_write_part(), RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, SPU_ARG1_REGNUM, SPU_ARGN_REGNUM, spu_regcache_to_value(), spu_value_to_regcache(), TYPE_CALLING_CONVENTION, TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_FUNC, TYPE_CODE_PTR, TYPE_LENGTH, TYPE_TARGET_TYPE, TYPE_VECTOR, and value_type().

Referenced by spu_gdbarch_init().

## ◆ spu_scalar_value_p()

static int spu_scalar_value_p | ( | struct type * | type | ) |
| static

Definition at line 1330 of file spu-tdep.c.

References TYPE_CODE, TYPE_CODE_BOOL, TYPE_CODE_CHAR, TYPE_CODE_ENUM, TYPE_CODE_INT, TYPE_CODE_PTR, TYPE_CODE_RANGE, TYPE_CODE_REF, TYPE_CODE_RVALUE_REF, and TYPE_LENGTH.

Referenced by spu_push_dummy_call(), spu_regcache_to_value(), and spu_value_to_regcache().

## ◆ spu_skip_prologue()

static CORE_ADDR spu_skip_prologue | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | pc
| ) |  |
| static

Definition at line 856 of file spu-tdep.c.

References spu_analyze_prologue().

Referenced by spu_gdbarch_init().

## ◆ spu_software_single_step()

static std::vector<CORE_ADDR> spu_software_single_step | ( | struct regcache * | regcache | ) |
| static

Definition at line 1615 of file spu-tdep.c.

References _, regcache::arch(), gdbarch::byte_order, extract_unsigned_integer(), gdbarch_byte_order(), is_branch(), MEMORY_ERROR, offset, paddress(), REG_VALID, regcache_cooked_read_unsigned(), regcache_raw_read_part(), regcache_read_pc(), SPU_LSLR_REGNUM, SPU_PC_REGNUM, SPUADDR, SPUADDR_ADDR, SPUADDR_SPU, target_read_memory(), and throw_error().

Referenced by spu_gdbarch_init().

## ◆ spu_stack_frame_destroyed_p()

static int spu_stack_frame_destroyed_p | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | pc
| ) |  |
| static

Definition at line 901 of file spu-tdep.c.

References extract_unsigned_integer(), find_pc_partial_function(), gdbarch_byte_order(), is_branch(), is_ri10(), is_rr(), op_a, op_ai, op_lqd, SPU_LR_REGNUM, SPU_RAW_SP_REGNUM, and target_read_memory().

Referenced by spu_gdbarch_init().

## ◆ spu_unwind_pc()

static CORE_ADDR spu_unwind_pc | ( | struct gdbarch * | gdbarch,
|  | struct frame_info * | next_frame
| ) |  |
| static

Definition at line 1162 of file spu-tdep.c.

References frame_unwind_register_unsigned(), gdbarch_tdep(), gdbarch_tdep::id, gdbarch_tdep::pc, SPU_PC_REGNUM, and SPUADDR.

Referenced by spu_gdbarch_init().

## ◆ spu_unwind_sp()

static CORE_ADDR spu_unwind_sp | ( | struct gdbarch * | gdbarch,
|  | struct frame_info * | next_frame
| ) |  |
| static

Definition at line 1171 of file spu-tdep.c.

References frame_unwind_register_unsigned(), gdbarch_tdep(), gdbarch_tdep::id, gdbarch_tdep::sp, SPU_SP_REGNUM, and SPUADDR.

Referenced by spu_gdbarch_init().

## ◆ spu_value_from_register()

static struct value* spu_value_from_register | ( | struct gdbarch * | gdbarch,
|  | struct type * | type,
|  | int | regnum,
|  | struct frame_id | frame_id
| ) |  |
| static

Definition at line 361 of file spu-tdep.c.

References default_value_from_register(), regnum, set_value_offset(), SPU_NUM_GPRS, and TYPE_LENGTH.

Referenced by spu_gdbarch_init().

## ◆ spu_value_to_regcache()

static void spu_value_to_regcache | ( | struct regcache * | regcache,
|  | int | regnum,
|  | struct type * | type,
|  | const gdb_byte * | in
| ) |  |
| static

Definition at line 1350 of file spu-tdep.c.

References regcache_cooked_write(), regcache_cooked_write_part(), regnum, spu_scalar_value_p(), and TYPE_LENGTH.

Referenced by spu_push_dummy_call(), and spu_return_value().

## ◆ spu_virtual_frame_pointer()

static void spu_virtual_frame_pointer | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | pc,
|  | int * | reg,
|  | LONGEST * | offset
| ) |  |
| static

Definition at line 864 of file spu-tdep.c.

References spu_prologue_data::cfa_offset, spu_prologue_data::cfa_reg, offset, spu_prologue_data::size, spu_analyze_prologue(), and SPU_SP_REGNUM.

Referenced by spu_gdbarch_init().

## ◆ spu_write_pc()

static void spu_write_pc | ( | struct regcache * | regcache,
|  | CORE_ADDR | pc
| ) |  |
| static

Definition at line 1189 of file spu-tdep.c.

References gdbarch_tdep::pc, regcache_cooked_read_unsigned(), regcache_cooked_write_unsigned(), SPU_PC_REGNUM, and SPUADDR_ADDR.

Referenced by spu_gdbarch_init().

## Variable Documentation

## ◆ infospucmdlist

struct cmd_list_element* infospucmdlist = NULL
| static

Definition at line 109 of file spu-tdep.c.

Referenced by _initialize_spu_tdep(), and info_spu_command().

## ◆ setspucmdlist

struct cmd_list_element* setspucmdlist = NULL
| static

Definition at line 51 of file spu-tdep.c.

Referenced by _initialize_spu_tdep(), and set_spu_command().

## ◆ showspucmdlist

struct cmd_list_element* showspucmdlist = NULL
| static

Definition at line 52 of file spu-tdep.c.

Referenced by _initialize_spu_tdep(), and show_spu_command().

## ◆ spu2ppu_unwind

const struct frame_unwind spu2ppu_unwind
| static

Initial value:
= {
ARCH_FRAME,
default_frame_unwind_stop_reason,
spu2ppu_this_id,
spu2ppu_prev_register,
NULL,
spu2ppu_sniffer,
spu2ppu_dealloc_cache,
spu2ppu_prev_arch,
}
ARCH_FRAME
Definition: frame.h:257
spu2ppu_dealloc_cache
static void spu2ppu_dealloc_cache(struct frame_info *self, void *this_cache)
Definition: spu-tdep.c:1287
spu2ppu_prev_register
static struct value * spu2ppu_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
Definition: spu-tdep.c:1224
spu2ppu_this_id
static void spu2ppu_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
Definition: spu-tdep.c:1216
spu2ppu_prev_arch
static struct gdbarch * spu2ppu_prev_arch(struct frame_info *this_frame, void **this_cache)
Definition: spu-tdep.c:1209
default_frame_unwind_stop_reason
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:184
spu2ppu_sniffer
static int spu2ppu_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
Definition: spu-tdep.c:1237

Definition at line 1293 of file spu-tdep.c.

Referenced by spu_gdbarch_init().

## ◆ spu_auto_flush_cache_p

int spu_auto_flush_cache_p = 1
| static

Definition at line 57 of file spu-tdep.c.

Referenced by _initialize_spu_tdep(), and spu_attach_normal_stop().

## ◆ spu_break_insn

constexpr gdb_byte spu_break_insn[] = { 0x00, 0x00, 0x3f, 0xff }

Definition at line 1574 of file spu-tdep.c.

## ◆ spu_frame_base

const struct frame_base spu_frame_base
| static

Initial value:
= {
&spu_frame_unwind,
spu_frame_base_address,
spu_frame_base_address,
spu_frame_base_address
}
spu_frame_base_address
static CORE_ADDR spu_frame_base_address(struct frame_info *this_frame, void **this_cache)
Definition: spu-tdep.c:1147
spu_frame_unwind
static const struct frame_unwind spu_frame_unwind
Definition: spu-tdep.c:1137

Definition at line 1154 of file spu-tdep.c.

Referenced by spu_gdbarch_init().

## ◆ spu_frame_unwind

const struct frame_unwind spu_frame_unwind
| static

Initial value:
= {
NORMAL_FRAME,
default_frame_unwind_stop_reason,
spu_frame_this_id,
spu_frame_prev_register,
NULL,
default_frame_sniffer
}
spu_frame_this_id
static void spu_frame_this_id(struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
Definition: spu-tdep.c:1111
NORMAL_FRAME
Definition: frame.h:244
default_frame_sniffer
int default_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
Definition: frame-unwind.c:174
spu_frame_prev_register
static struct value * spu_frame_prev_register(struct frame_info *this_frame, void **this_prologue_cache, int regnum)
Definition: spu-tdep.c:1124
default_frame_unwind_stop_reason
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:184

Definition at line 1137 of file spu-tdep.c.

Referenced by spu_gdbarch_init().

## ◆ spu_overlay_data

const struct objfile_data* spu_overlay_data
| static

Definition at line 1768 of file spu-tdep.c.

Referenced by _initialize_spu_tdep(), spu_get_overlay_table(), and spu_overlay_new_objfile().

## ◆ spu_stop_on_load_p

int spu_stop_on_load_p = 0
| static

Definition at line 55 of file spu-tdep.c.

Referenced by _initialize_spu_tdep(), and spu_catch_start().