GDB (xrefs)

Classes | Macros | Enumerations | Functions | Variables
/tmp/gdb-8.1/gdb/sh64-tdep.c File Reference
`#include "defs.h"`
`#include "frame.h"`
`#include "frame-base.h"`
`#include "frame-unwind.h"`
`#include "dwarf2-frame.h"`
`#include "symtab.h"`
`#include "gdbtypes.h"`
`#include "gdbcmd.h"`
`#include "gdbcore.h"`
`#include "value.h"`
`#include "dis-asm.h"`
`#include "inferior.h"`
`#include "arch-utils.h"`
`#include "regcache.h"`
`#include "osabi.h"`
`#include "target-float.h"`
`#include "valprint.h"`
`#include "elf-bfd.h"`
`#include "elf/sh.h"`
`#include "gdb/sim-sh.h"`
`#include "language.h"`
`#include "sh64-tdep.h"`
`#include <algorithm>`

Go to the source code of this file.

## Classes
struct | gdbarch_tdep
struct | sh64_frame_cache

## Macros
#define | NUM_PSEUDO_REGS_SH_MEDIA 80
#define | NUM_PSEUDO_REGS_SH_COMPACT 51
#define | MSYMBOL_IS_SPECIAL(msym) MSYMBOL_TARGET_FLAG_1 (msym)
#define | IS_ISA32_ADDR(addr) ((addr) & 1)
#define | MAKE_ISA32_ADDR(addr) ((addr) | 1)
#define | UNMAKE_ISA32_ADDR(addr) ((addr) & ~1)
#define | IS_PTABSL_R18(x) (((x) & 0xffffff8f) == 0x6bf14a00)
#define | IS_STS_R0(x) ((x) == 0x4022)
#define | IS_STS_PR(x) (((x) & 0xf0ff) == 0x2a)
#define | IS_MOV_TO_R15(x) (((x) & 0xff00) == 0x1f00)
#define | IS_MOV_R14(x) (((x) & 0xfff0) == 0x1fe0)
#define | IS_STQ_R18_R14(x) (((x) & 0xfff003ff) == 0xace00120)
#define | IS_STQ_R18_R15(x) (((x) & 0xfff003ff) == 0xacf00120)
#define | IS_STL_R18_R15(x) (((x) & 0xfff003ff) == 0xa8f00120)
#define | IS_STQ_R14_R15(x) (((x) & 0xfff003ff) == 0xacf000e0)
#define | IS_STL_R14_R15(x) (((x) & 0xfff003ff) == 0xa8f000e0)
#define | IS_ADDIL_SP_MEDIA(x) (((x) & 0xfff003ff) == 0xd4f000f0)
#define | IS_ADDI_SP_MEDIA(x) (((x) & 0xfff003ff) == 0xd0f000f0)
#define | IS_ADDL_SP_FP_MEDIA(x) ((x) == 0x00f8fce0)
#define | IS_ADD_SP_FP_MEDIA(x) ((x) == 0x00f9fce0)
#define | IS_MOV_SP_FP_MEDIA(x) (IS_ADDL_SP_FP_MEDIA(x) || IS_ADD_SP_FP_MEDIA(x))
#define | IS_MOV_R0(x) (((x) & 0xff00) == 0xe000)
#define | IS_MOVL_R0(x) (((x) & 0xff00) == 0xd000)
#define | IS_ADD_SP_R0(x) ((x) == 0x30fc)
#define | IS_MOV_R14_R0(x) ((x) == 0x20e6)
#define | IS_MEDIA_IND_ARG_MOV(x)
#define | IS_MEDIA_ARG_MOV(x)
#define | IS_MEDIA_MOV_TO_R14(x)
#define | IS_COMPACT_IND_ARG_MOV(x)
#define | IS_COMPACT_ARG_MOV(x)
#define | IS_COMPACT_MOV_TO_R14(x) ((((x) & 0xff0f) == 0x2e00) || (((x) & 0xff0f) == 0x2e01))
#define | IS_JSR_R0(x) ((x) == 0x400b)
#define | IS_NOP(x) ((x) == 0x0009)
#define | IS_MOV_SP_FP(x) ((x) == 0x6ef3)
#define | IS_ADD_SP(x) (((x) & 0xff00) == 0x7f00)

## Enumerations
enum | sh_abi { SH_ABI_UNKNOWN, SH_ABI_32, SH_ABI_64 }
enum | { R0_REGNUM = 0, DEFAULT_RETURN_REGNUM = 2, STRUCT_RETURN_REGNUM = 2, ARG0_REGNUM = 2, ARGLAST_REGNUM = 9, FLOAT_ARGLAST_REGNUM = 11, MEDIA_FP_REGNUM = 14, PR_REGNUM = 18, SR_REGNUM = 65, DR0_REGNUM = 141, DR_LAST_REGNUM = 172, FPP0_REGNUM = 173, FPP_LAST_REGNUM = 204, FV0_REGNUM = 205, FV_LAST_REGNUM = 220, R0_C_REGNUM = 221, R_LAST_C_REGNUM = 236, PC_C_REGNUM = 237, GBR_C_REGNUM = 238, MACH_C_REGNUM = 239, MACL_C_REGNUM = 240, PR_C_REGNUM = 241, T_C_REGNUM = 242, FPSCR_C_REGNUM = 243, FPUL_C_REGNUM = 244, FP0_C_REGNUM = 245, FP_LAST_C_REGNUM = 260, DR0_C_REGNUM = 261, DR_LAST_C_REGNUM = 268, FV0_C_REGNUM = 269, FV_LAST_C_REGNUM = 272, FPSCR_REGNUM = SIM_SH64_FPCSR_REGNUM, SSR_REGNUM = SIM_SH64_SSR_REGNUM, SPC_REGNUM = SIM_SH64_SPC_REGNUM, TR7_REGNUM = SIM_SH64_TR0_REGNUM + 7, FP_LAST_REGNUM = SIM_SH64_FR0_REGNUM + SIM_SH64_NR_FP_REGS - 1 }

## Functions
struct type * | sh64_littlebyte_bigword_type (struct gdbarch *gdbarch)
static const char * | sh64_register_name (struct gdbarch *gdbarch, int reg_nr)
static void | sh64_elf_make_msymbol_special (asymbol *sym, struct minimal_symbol *msym)
static int | pc_is_isa32 (bfd_vma memaddr)
static int | sh64_breakpoint_kind_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr)
static const gdb_byte * | sh64_sw_breakpoint_from_kind (struct gdbarch *gdbarch, int kind, int *size)
static CORE_ADDR | after_prologue (CORE_ADDR pc)
static CORE_ADDR | look_for_args_moves (struct gdbarch *gdbarch, CORE_ADDR start_pc, int media_mode)
static CORE_ADDR | sh64_skip_prologue_hard_way (struct gdbarch *gdbarch, CORE_ADDR start_pc)
static CORE_ADDR | sh64_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
static int | sh64_use_struct_convention (struct type *type)
static int | sh64_fv_reg_base_num (struct gdbarch *gdbarch, int fv_regnum)
static int | sh64_dr_reg_base_num (struct gdbarch *gdbarch, int dr_regnum)
static int | sh64_fpp_reg_base_num (struct gdbarch *gdbarch, int fpp_regnum)
static int | sh64_compact_reg_base_num (struct gdbarch *gdbarch, int reg_nr)
static int | sign_extend (int value, int bits)
static void | sh64_analyze_prologue (struct gdbarch *gdbarch, struct sh64_frame_cache *cache, CORE_ADDR func_pc, CORE_ADDR current_pc)
static CORE_ADDR | sh64_frame_align (struct gdbarch *ignore, CORE_ADDR sp)
static CORE_ADDR | sh64_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 void | sh64_extract_return_value (struct type *type, struct regcache *regcache, gdb_byte *valbuf)
static void | sh64_store_return_value (struct type *type, struct regcache *regcache, const gdb_byte *valbuf)
static enum return_value_convention | sh64_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
static struct type * | sh64_build_float_register_type (struct gdbarch *gdbarch, int high)
static struct type * | sh64_register_type (struct gdbarch *gdbarch, int reg_nr)
static void | sh64_register_convert_to_virtual (struct gdbarch *gdbarch, int regnum, struct type *type, gdb_byte *from, gdb_byte *to)
static void | sh64_register_convert_to_raw (struct gdbarch *gdbarch, struct type *type, int regnum, const gdb_byte *from, gdb_byte *to)
static enum register_status | pseudo_register_read_portions (struct gdbarch *gdbarch, struct regcache *regcache, int portions, int base_regnum, gdb_byte *buffer)
static enum register_status | sh64_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, int reg_nr, gdb_byte *buffer)
static void | sh64_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int reg_nr, const gdb_byte *buffer)
static void | sh64_do_cr_c_register_info (struct ui_file *file, struct frame_info *frame, int cr_c_regnum)
static void | sh64_do_fp_register (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, int regnum)
static void | sh64_do_pseudo_register (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, int regnum)
static void | sh64_do_register (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, int regnum)
static void | sh64_print_register (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, int regnum)
static void | sh64_media_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, int regnum, int fpregs)
static void | sh64_compact_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, int regnum, int fpregs)
static void | sh64_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, int regnum, int fpregs)
static struct sh64_frame_cache * | sh64_alloc_frame_cache (void)
static struct sh64_frame_cache * | sh64_frame_cache (struct frame_info *this_frame, void **this_cache)
static struct value * | sh64_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
static void | sh64_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
static CORE_ADDR | sh64_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
static CORE_ADDR | sh64_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
static struct frame_id | sh64_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
static CORE_ADDR | sh64_frame_base_address (struct frame_info *this_frame, void **this_cache)
struct gdbarch * | sh64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)

## Variables
static const struct frame_unwind | sh64_frame_unwind
static const struct frame_base | sh64_frame_base

## Macro Definition Documentation

## ◆ IS_ADD_SP

#define IS_ADD_SP | ( |  | x | ) | (((x) & 0xff00) == 0x7f00)

Definition at line 478 of file sh64-tdep.c.

Referenced by sh64_analyze_prologue().

## ◆ IS_ADD_SP_FP_MEDIA

#define IS_ADD_SP_FP_MEDIA | ( |  | x | ) | ((x) == 0x00f9fce0)

Definition at line 404 of file sh64-tdep.c.

## ◆ IS_ADD_SP_R0

#define IS_ADD_SP_R0 | ( |  | x | ) | ((x) == 0x30fc)

Definition at line 418 of file sh64-tdep.c.

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

## ◆ IS_ADDI_SP_MEDIA

#define IS_ADDI_SP_MEDIA | ( |  | x | ) | (((x) & 0xfff003ff) == 0xd0f000f0)

Definition at line 396 of file sh64-tdep.c.

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

## ◆ IS_ADDIL_SP_MEDIA

#define IS_ADDIL_SP_MEDIA | ( |  | x | ) | (((x) & 0xfff003ff) == 0xd4f000f0)

Definition at line 392 of file sh64-tdep.c.

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

## ◆ IS_ADDL_SP_FP_MEDIA

#define IS_ADDL_SP_FP_MEDIA | ( |  | x | ) | ((x) == 0x00f8fce0)

Definition at line 400 of file sh64-tdep.c.

## ◆ IS_COMPACT_ARG_MOV

#define IS_COMPACT_ARG_MOV | ( |  | x | ) |

Value:
(((((x) & 0xff0f) == 0x2e02) && (((x) & 0x00f0) >= 0x0020) \
&& ((x) & 0x00f0) <= 0x0090))

Definition at line 459 of file sh64-tdep.c.

Referenced by look_for_args_moves().

## ◆ IS_COMPACT_IND_ARG_MOV

#define IS_COMPACT_IND_ARG_MOV | ( |  | x | ) |

Value:
((((x) & 0xf00f) == 0x6003) && (((x) & 0x00f0) >= 0x0020) \
&& (((x) & 0x00f0) <= 0x0090))

Definition at line 453 of file sh64-tdep.c.

Referenced by look_for_args_moves().

## ◆ IS_COMPACT_MOV_TO_R14

#define IS_COMPACT_MOV_TO_R14 | ( |  | x | ) | ((((x) & 0xff0f) == 0x2e00) || (((x) & 0xff0f) == 0x2e01))

Definition at line 465 of file sh64-tdep.c.

Referenced by look_for_args_moves().

## ◆ IS_ISA32_ADDR

#define IS_ISA32_ADDR | ( |  | addr | ) | ((addr) & 1)

Definition at line 249 of file sh64-tdep.c.

Referenced by pc_is_isa32().

## ◆ IS_JSR_R0

#define IS_JSR_R0 | ( |  | x | ) | ((x) == 0x400b)

Definition at line 468 of file sh64-tdep.c.

Referenced by look_for_args_moves().

## ◆ IS_MEDIA_ARG_MOV

#define IS_MEDIA_ARG_MOV | ( |  | x | ) |

Value:
(((((x) & 0xfc0ffc0f) == 0xac000000) || (((x) & 0xfc0ffc0f) == 0xa8000000)) \
&& (((x) & 0x000003f0) >= 0x00000020 && ((x) & 0x000003f0) <= 0x00000090))

Definition at line 435 of file sh64-tdep.c.

Referenced by look_for_args_moves().

## ◆ IS_MEDIA_IND_ARG_MOV

#define IS_MEDIA_IND_ARG_MOV | ( |  | x | ) |

Value:
((((x) & 0xfc0ffc0f) == 0x0009fc00) \
&& (((x) & 0x03f00000) >= 0x00200000 \
&& ((x) & 0x03f00000) <= 0x00900000))

Definition at line 427 of file sh64-tdep.c.

Referenced by look_for_args_moves().

## ◆ IS_MEDIA_MOV_TO_R14

#define IS_MEDIA_MOV_TO_R14 | ( |  | x | ) |

Value:
((((x) & 0xfffffc0f) == 0xa0e00000) \
|| (((x) & 0xfffffc0f) == 0xa4e00000) \
|| (((x) & 0xfffffc0f) == 0xa8e00000) \
|| (((x) & 0xfffffc0f) == 0xb4e00000) \
|| (((x) & 0xfffffc0f) == 0xbce00000))

Definition at line 444 of file sh64-tdep.c.

Referenced by look_for_args_moves().

## ◆ IS_MOV_R0

#define IS_MOV_R0 | ( |  | x | ) | (((x) & 0xff00) == 0xe000)

Definition at line 411 of file sh64-tdep.c.

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

## ◆ IS_MOV_R14

#define IS_MOV_R14 | ( |  | x | ) | (((x) & 0xfff0) == 0x1fe0)

Definition at line 368 of file sh64-tdep.c.

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

## ◆ IS_MOV_R14_R0

#define IS_MOV_R14_R0 | ( |  | x | ) | ((x) == 0x20e6)

Definition at line 422 of file sh64-tdep.c.

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

## ◆ IS_MOV_SP_FP

#define IS_MOV_SP_FP | ( |  | x | ) | ((x) == 0x6ef3)

Definition at line 474 of file sh64-tdep.c.

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

## ◆ IS_MOV_SP_FP_MEDIA

#define IS_MOV_SP_FP_MEDIA | ( |  | x | ) | (IS_ADDL_SP_FP_MEDIA(x) || IS_ADD_SP_FP_MEDIA(x))

Definition at line 406 of file sh64-tdep.c.

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

## ◆ IS_MOV_TO_R15

#define IS_MOV_TO_R15 | ( |  | x | ) | (((x) & 0xff00) == 0x1f00)

Definition at line 364 of file sh64-tdep.c.

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

## ◆ IS_MOVL_R0

#define IS_MOVL_R0 | ( |  | x | ) | (((x) & 0xff00) == 0xd000)

Definition at line 414 of file sh64-tdep.c.

Referenced by look_for_args_moves().

## ◆ IS_NOP

#define IS_NOP | ( |  | x | ) | ((x) == 0x0009)

Definition at line 469 of file sh64-tdep.c.

Referenced by look_for_args_moves().

## ◆ IS_PTABSL_R18

#define IS_PTABSL_R18 | ( |  | x | ) | (((x) & 0xffffff8f) == 0x6bf14a00)

Definition at line 352 of file sh64-tdep.c.

Referenced by sh64_skip_prologue_hard_way().

## ◆ IS_STL_R14_R15

#define IS_STL_R14_R15 | ( |  | x | ) | (((x) & 0xfff003ff) == 0xa8f000e0)

Definition at line 388 of file sh64-tdep.c.

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

## ◆ IS_STL_R18_R15

#define IS_STL_R18_R15 | ( |  | x | ) | (((x) & 0xfff003ff) == 0xa8f00120)

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

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

## ◆ IS_STQ_R14_R15

#define IS_STQ_R14_R15 | ( |  | x | ) | (((x) & 0xfff003ff) == 0xacf000e0)

Definition at line 384 of file sh64-tdep.c.

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

## ◆ IS_STQ_R18_R14

#define IS_STQ_R18_R14 | ( |  | x | ) | (((x) & 0xfff003ff) == 0xace00120)

Definition at line 372 of file sh64-tdep.c.

Referenced by sh64_skip_prologue_hard_way().

## ◆ IS_STQ_R18_R15

#define IS_STQ_R18_R15 | ( |  | x | ) | (((x) & 0xfff003ff) == 0xacf00120)

Definition at line 376 of file sh64-tdep.c.

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

## ◆ IS_STS_PR

#define IS_STS_PR | ( |  | x | ) | (((x) & 0xf0ff) == 0x2a)

Definition at line 360 of file sh64-tdep.c.

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

## ◆ IS_STS_R0

#define IS_STS_R0 | ( |  | x | ) | ((x) == 0x4022)

Definition at line 356 of file sh64-tdep.c.

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

## ◆ MAKE_ISA32_ADDR

#define MAKE_ISA32_ADDR | ( |  | addr | ) | ((addr) | 1)

Definition at line 250 of file sh64-tdep.c.

## ◆ MSYMBOL_IS_SPECIAL

#define MSYMBOL_IS_SPECIAL | ( |  | msym | ) | MSYMBOL_TARGET_FLAG_1 (msym)

Definition at line 231 of file sh64-tdep.c.

Referenced by pc_is_isa32().

## ◆ NUM_PSEUDO_REGS_SH_COMPACT

#define NUM_PSEUDO_REGS_SH_COMPACT 51

Definition at line 220 of file sh64-tdep.c.

Referenced by sh64_do_pseudo_register(), and sh64_gdbarch_init().

## ◆ NUM_PSEUDO_REGS_SH_MEDIA

#define NUM_PSEUDO_REGS_SH_MEDIA 80

Definition at line 219 of file sh64-tdep.c.

Referenced by sh64_do_pseudo_register(), and sh64_gdbarch_init().

## ◆ UNMAKE_ISA32_ADDR

#define UNMAKE_ISA32_ADDR | ( |  | addr | ) | ((addr) & ~1)

Definition at line 251 of file sh64-tdep.c.

Referenced by look_for_args_moves(), sh64_analyze_prologue(), sh64_breakpoint_kind_from_pc(), and sh64_skip_prologue_hard_way().

## Enumeration Type Documentation

## ◆ anonymous enum

anonymous enum

Enumerator
R0_REGNUM |
DEFAULT_RETURN_REGNUM |
STRUCT_RETURN_REGNUM |
ARG0_REGNUM |
ARGLAST_REGNUM |
FLOAT_ARGLAST_REGNUM |
MEDIA_FP_REGNUM |
PR_REGNUM |
SR_REGNUM |
DR0_REGNUM |
DR_LAST_REGNUM |
FPP0_REGNUM |
FPP_LAST_REGNUM |
FV0_REGNUM |
FV_LAST_REGNUM |
R0_C_REGNUM |
R_LAST_C_REGNUM |
PC_C_REGNUM |
GBR_C_REGNUM |
MACH_C_REGNUM |
MACL_C_REGNUM |
PR_C_REGNUM |
T_C_REGNUM |
FPSCR_C_REGNUM |
FPUL_C_REGNUM |
FP0_C_REGNUM |
FP_LAST_C_REGNUM |
DR0_C_REGNUM |
DR_LAST_C_REGNUM |
FV0_C_REGNUM |
FV_LAST_C_REGNUM |
FPSCR_REGNUM |
SSR_REGNUM |
SPC_REGNUM |
TR7_REGNUM |
FP_LAST_REGNUM |

Definition at line 98 of file sh64-tdep.c.

## ◆ sh_abi

enum sh_abi

Enumerator
SH_ABI_UNKNOWN |
SH_ABI_32 |
SH_ABI_64 |

Definition at line 53 of file sh64-tdep.c.

## Function Documentation

## ◆ after_prologue()

static CORE_ADDR after_prologue | ( | CORE_ADDR | pc | ) |
| static

Definition at line 485 of file sh64-tdep.c.

References symtab_and_line::end, find_pc_line(), find_pc_partial_function(), and symtab_and_line::pc.

Referenced by sh64_skip_prologue().

## ◆ look_for_args_moves()

static CORE_ADDR look_for_args_moves | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | start_pc,
|  | int | media_mode
| ) |  |
| static

Definition at line 512 of file sh64-tdep.c.

References symtab_and_line::end, gdbarch_byte_order(), IS_COMPACT_ARG_MOV, IS_COMPACT_IND_ARG_MOV, IS_COMPACT_MOV_TO_R14, IS_JSR_R0, IS_MEDIA_ARG_MOV, IS_MEDIA_IND_ARG_MOV, IS_MEDIA_MOV_TO_R14, IS_MOVL_R0, IS_NOP, read_memory_integer(), and UNMAKE_ISA32_ADDR.

Referenced by sh64_skip_prologue_hard_way().

## ◆ pc_is_isa32()

static int pc_is_isa32 | ( | bfd_vma | memaddr | ) |
| static

Definition at line 254 of file sh64-tdep.c.

References IS_ISA32_ADDR, lookup_minimal_symbol_by_pc(), bound_minimal_symbol::minsym, and MSYMBOL_IS_SPECIAL.

Referenced by sh64_breakpoint_kind_from_pc(), sh64_frame_cache(), sh64_print_registers_info(), and sh64_skip_prologue_hard_way().

## ◆ pseudo_register_read_portions()

static enum register_status pseudo_register_read_portions | ( | struct gdbarch * | gdbarch,
|  | struct regcache * | regcache,
|  | int | portions,
|  | int | base_regnum,
|  | gdb_byte * | buffer
| ) |  |
| static

Definition at line 1506 of file sh64-tdep.c.

References REG_VALID, regcache_raw_read(), register_size(), and status.

Referenced by sh64_pseudo_register_read().

## ◆ sh64_alloc_frame_cache()

static struct sh64_frame_cache* sh64_alloc_frame_cache | ( | void |  | ) |
| static

Definition at line 2173 of file sh64-tdep.c.

References sh64_frame_cache::base, FRAME_OBSTACK_ZALLOC, sh64_frame_cache::pc, sh64_frame_cache::saved_regs, sh64_frame_cache::saved_sp, sh64_frame_cache::sp_offset, and sh64_frame_cache::uses_fp.

Referenced by sh64_frame_cache().

## ◆ sh64_analyze_prologue()

static void sh64_analyze_prologue | ( | struct gdbarch * | gdbarch,
|  | struct sh64_frame_cache * | cache,
|  | CORE_ADDR | func_pc,
|  | CORE_ADDR | current_pc
| ) |  |
| static

Definition at line 873 of file sh64-tdep.c.

References gdbarch_byte_order(), IS_ADD_SP, IS_ADD_SP_R0, IS_ADDI_SP_MEDIA, IS_ADDIL_SP_MEDIA, IS_MOV_R0, IS_MOV_R14, IS_MOV_R14_R0, IS_MOV_SP_FP, IS_MOV_SP_FP_MEDIA, IS_MOV_TO_R15, IS_STL_R14_R15, IS_STL_R18_R15, IS_STQ_R14_R15, IS_STQ_R18_R15, IS_STS_PR, IS_STS_R0, MEDIA_FP_REGNUM, sh64_frame_cache::media_mode, symtab_and_line::pc, PR_REGNUM, read_memory_integer(), sh64_frame_cache::saved_regs, sign_extend(), sh64_frame_cache::sp_offset, UNMAKE_ISA32_ADDR, and sh64_frame_cache::uses_fp.

Referenced by sh64_frame_cache().

## ◆ sh64_breakpoint_kind_from_pc()

static int sh64_breakpoint_kind_from_pc | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR * | pcptr
| ) |  |
| static

Definition at line 274 of file sh64-tdep.c.

References pc_is_isa32(), and UNMAKE_ISA32_ADDR.

Referenced by sh64_gdbarch_init().

## ◆ sh64_build_float_register_type()

static struct type* sh64_build_float_register_type | ( | struct gdbarch * | gdbarch,
|  | int | high
| ) |  |
| static

Definition at line 1420 of file sh64-tdep.c.

References lookup_array_range_type().

Referenced by sh64_register_type().

## ◆ sh64_compact_print_registers_info()

static void sh64_compact_print_registers_info | ( | struct gdbarch * | gdbarch,
|  | struct ui_file * | file,
|  | struct frame_info * | frame,
|  | int | regnum,
|  | int | fpregs
| ) |  |
| static

Definition at line 2134 of file sh64-tdep.c.

References _, error(), gdbarch_num_pseudo_regs(), gdbarch_num_regs(), gdbarch_register_name(), R0_C_REGNUM, regnum, sh64_do_pseudo_register(), and sh64_print_register().

Referenced by sh64_print_registers_info().

## ◆ sh64_compact_reg_base_num()

static int sh64_compact_reg_base_num | ( | struct gdbarch * | gdbarch,
|  | int | reg_nr
| ) |  |
| static

Definition at line 812 of file sh64-tdep.c.

References DR0_C_REGNUM, DR0_REGNUM, DR_LAST_C_REGNUM, FP0_C_REGNUM, FP_LAST_C_REGNUM, FPSCR_C_REGNUM, FPSCR_REGNUM, FPUL_C_REGNUM, FV0_C_REGNUM, FV0_REGNUM, FV_LAST_C_REGNUM, GBR_C_REGNUM, gdbarch_fp0_regnum(), gdbarch_pc_regnum(), MACH_C_REGNUM, MACL_C_REGNUM, PC_C_REGNUM, PR_C_REGNUM, PR_REGNUM, R0_C_REGNUM, R_LAST_C_REGNUM, sh64_dr_reg_base_num(), sh64_fv_reg_base_num(), and T_C_REGNUM.

Referenced by sh64_do_pseudo_register(), sh64_pseudo_register_read(), and sh64_pseudo_register_write().

## ◆ sh64_do_cr_c_register_info()

static void sh64_do_cr_c_register_info | ( | struct ui_file * | file,
|  | struct frame_info * | frame,
|  | int | cr_c_regnum
| ) |  |
| static

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

References fprintf_filtered(), FPSCR_C_REGNUM, FPUL_C_REGNUM, GBR_C_REGNUM, get_frame_register_unsigned(), MACH_C_REGNUM, MACL_C_REGNUM, PC_C_REGNUM, PR_C_REGNUM, and T_C_REGNUM.

Referenced by sh64_do_pseudo_register().

## ◆ sh64_do_fp_register()

static void sh64_do_fp_register | ( | struct gdbarch * | gdbarch,
|  | struct ui_file * | file,
|  | struct frame_info * | frame,
|  | int | regnum
| ) |  |
| static

Definition at line 1916 of file sh64-tdep.c.

References _, builtin_type::builtin_float, builtin_type(), deprecated_frame_register_read(), error(), fprintf_filtered(), fputs_filtered(), gdbarch_byte_order(), gdbarch_fp0_regnum(), gdbarch_register_name(), print_hex_chars(), print_spaces_filtered(), register_size(), regnum, string, and target_float_to_string().

Referenced by sh64_do_pseudo_register(), sh64_media_print_registers_info(), and sh64_print_register().

## ◆ sh64_do_pseudo_register()

static void sh64_do_pseudo_register | ( | struct gdbarch * | gdbarch,
|  | struct ui_file * | file,
|  | struct frame_info * | frame,
|  | int | regnum
| ) |  |
| static

Definition at line 1950 of file sh64-tdep.c.

References _, DR0_C_REGNUM, DR0_REGNUM, DR_LAST_C_REGNUM, DR_LAST_REGNUM, FP0_C_REGNUM, FP_LAST_C_REGNUM, fp_regnum, FPP0_REGNUM, FPP_LAST_REGNUM, fprintf_filtered(), FPUL_C_REGNUM, FV0_C_REGNUM, FV0_REGNUM, FV_LAST_C_REGNUM, FV_LAST_REGNUM, gdbarch_num_regs(), get_frame_register_unsigned(), internal_error(), NUM_PSEUDO_REGS_SH_COMPACT, NUM_PSEUDO_REGS_SH_MEDIA, PC_C_REGNUM, R0_C_REGNUM, R_LAST_C_REGNUM, regnum, sh64_compact_reg_base_num(), sh64_do_cr_c_register_info(), sh64_do_fp_register(), sh64_dr_reg_base_num(), sh64_fpp_reg_base_num(), and sh64_fv_reg_base_num().

Referenced by sh64_compact_print_registers_info(), sh64_media_print_registers_info(), and sh64_print_register().

## ◆ sh64_do_register()

static void sh64_do_register | ( | struct gdbarch * | gdbarch,
|  | struct ui_file * | file,
|  | struct frame_info * | frame,
|  | int | regnum
| ) |  |
| static

Definition at line 2022 of file sh64-tdep.c.

References current_language, value_print_options::deref_ref, fprintf_filtered(), fputs_filtered(), gdbarch_register_name(), get_formatted_print_options(), get_frame_register_value(), print_spaces_filtered(), register_type(), regnum, val_print(), value_entirely_available(), and value_optimized_out().

Referenced by sh64_media_print_registers_info(), and sh64_print_register().

## ◆ sh64_dr_reg_base_num()

static int sh64_dr_reg_base_num | ( | struct gdbarch * | gdbarch,
|  | int | dr_regnum
| ) |  |
| static

Definition at line 731 of file sh64-tdep.c.

References DR0_REGNUM, fp_regnum, and gdbarch_fp0_regnum().

Referenced by sh64_compact_reg_base_num(), sh64_do_pseudo_register(), sh64_pseudo_register_read(), and sh64_pseudo_register_write().

## ◆ sh64_dummy_id()

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

Definition at line 2330 of file sh64-tdep.c.

References frame_id_build(), gdbarch_sp_regnum(), get_frame_pc(), and get_frame_register_unsigned().

Referenced by sh64_gdbarch_init().

## ◆ sh64_elf_make_msymbol_special()

static void sh64_elf_make_msymbol_special | ( | asymbol * | sym,
|  | struct minimal_symbol * | msym
| ) |  |
| static

Definition at line 235 of file sh64-tdep.c.

References MSYMBOL_TARGET_FLAG_1, MSYMBOL_VALUE_RAW_ADDRESS, and SET_MSYMBOL_VALUE_ADDRESS.

Referenced by sh64_gdbarch_init().

## ◆ sh64_extract_return_value()

static void sh64_extract_return_value | ( | struct type * | type,
|  | struct regcache * | regcache,
|  | gdb_byte * | valbuf
| ) |  |
| static

Definition at line 1243 of file sh64-tdep.c.

References _, regcache::arch(), DEFAULT_RETURN_REGNUM, DR0_REGNUM, error(), gdbarch_byte_order(), gdbarch_fp0_regnum(), offset, regcache_cooked_read(), regcache_raw_read(), register_size(), sh64_littlebyte_bigword_type(), target_float_convert(), TYPE_CODE, TYPE_CODE_FLT, and TYPE_LENGTH.

Referenced by sh64_return_value().

## ◆ sh64_fpp_reg_base_num()

static int sh64_fpp_reg_base_num | ( | struct gdbarch * | gdbarch,
|  | int | fpp_regnum
| ) |  |
| static

Definition at line 741 of file sh64-tdep.c.

References fp_regnum, FPP0_REGNUM, and gdbarch_fp0_regnum().

Referenced by sh64_do_pseudo_register(), sh64_pseudo_register_read(), and sh64_pseudo_register_write().

## ◆ sh64_frame_align()

static CORE_ADDR sh64_frame_align | ( | struct gdbarch * | ignore,
|  | CORE_ADDR | sp
| ) |  |
| static

Definition at line 1005 of file sh64-tdep.c.

Referenced by sh64_gdbarch_init(), and sh64_push_dummy_call().

## ◆ sh64_frame_base_address()

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

Definition at line 2338 of file sh64-tdep.c.

References sh64_frame_cache::base, and sh64_frame_cache().

## ◆ sh64_frame_cache()

static struct sh64_frame_cache* sh64_frame_cache | ( | struct frame_info * | this_frame,
|  | void ** | this_cache
| ) |  |
| static

Definition at line 2200 of file sh64-tdep.c.

References sh64_frame_cache::base, gdbarch_sp_regnum(), get_frame_arch(), get_frame_func(), get_frame_pc(), get_frame_register_unsigned(), MEDIA_FP_REGNUM, sh64_frame_cache::media_mode, sh64_frame_cache::pc, pc_is_isa32(), sh64_frame_cache::saved_regs, sh64_frame_cache::saved_sp, sh64_alloc_frame_cache(), sh64_analyze_prologue(), sh64_frame_cache::sp_offset, and sh64_frame_cache::uses_fp.

Referenced by sh64_frame_base_address(), sh64_frame_prev_register(), and sh64_frame_this_id().

## ◆ sh64_frame_prev_register()

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

Definition at line 2257 of file sh64-tdep.c.

References gdbarch::byte_order, frame_unwind_got_constant(), frame_unwind_got_memory(), frame_unwind_got_register(), gdb_assert, gdbarch_byte_order(), gdbarch_pc_regnum(), gdbarch_sp_regnum(), get_frame_arch(), MEDIA_FP_REGNUM, PR_REGNUM, read_memory_unsigned_integer(), regnum, sh64_frame_cache::saved_regs, sh64_frame_cache::saved_sp, sh64_frame_cache(), and SH_ABI_32.

## ◆ sh64_frame_this_id()

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

Definition at line 2294 of file sh64-tdep.c.

References sh64_frame_cache::base, frame_id_build(), sh64_frame_cache::pc, sh64_frame_cache::saved_sp, and sh64_frame_cache().

## ◆ sh64_fv_reg_base_num()

static int sh64_fv_reg_base_num | ( | struct gdbarch * | gdbarch,
|  | int | fv_regnum
| ) |  |
| static

Definition at line 721 of file sh64-tdep.c.

References fp_regnum, FV0_REGNUM, and gdbarch_fp0_regnum().

Referenced by sh64_compact_reg_base_num(), sh64_do_pseudo_register(), sh64_pseudo_register_read(), and sh64_pseudo_register_write().

## ◆ sh64_gdbarch_init()

struct gdbarch* sh64_gdbarch_init | ( | struct gdbarch_info | info,
|  | struct gdbarch_list * | arches
| ) |  |

Definition at line 2354 of file sh64-tdep.c.

References gdbarch_info::abfd, core_addr_lessthan(), dwarf2_append_unwinders(), frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), legacy_register_sim_regno(), NUM_PSEUDO_REGS_SH_COMPACT, NUM_PSEUDO_REGS_SH_MEDIA, set_gdbarch_believe_pcc_promotion(), set_gdbarch_breakpoint_kind_from_pc(), set_gdbarch_double_bit(), set_gdbarch_dummy_id(), set_gdbarch_elf_make_msymbol_special(), set_gdbarch_float_bit(), set_gdbarch_fp0_regnum(), set_gdbarch_frame_align(), set_gdbarch_inner_than(), set_gdbarch_int_bit(), set_gdbarch_long_bit(), set_gdbarch_long_double_bit(), set_gdbarch_long_long_bit(), set_gdbarch_num_pseudo_regs(), set_gdbarch_num_regs(), set_gdbarch_pc_regnum(), set_gdbarch_print_registers_info(), set_gdbarch_pseudo_register_read(), set_gdbarch_pseudo_register_write(), set_gdbarch_ptr_bit(), set_gdbarch_push_dummy_call(), set_gdbarch_register_name(), set_gdbarch_register_sim_regno(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_short_bit(), set_gdbarch_skip_prologue(), set_gdbarch_sp_regnum(), set_gdbarch_sw_breakpoint_from_kind(), set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(), sh64_breakpoint_kind_from_pc(), sh64_dummy_id(), sh64_elf_make_msymbol_special(), sh64_frame_align(), sh64_frame_base, sh64_frame_unwind, sh64_print_registers_info(), sh64_pseudo_register_read(), sh64_pseudo_register_write(), sh64_push_dummy_call(), sh64_register_name(), sh64_register_type(), sh64_return_value(), sh64_skip_prologue(), sh64_sw_breakpoint_from_kind(), sh64_unwind_pc(), sh64_unwind_sp(), gdbarch_tdep::sh_abi, SH_ABI_32, SH_ABI_64, TARGET_CHAR_BIT, and XCNEW.

## ◆ sh64_littlebyte_bigword_type()

struct type* sh64_littlebyte_bigword_type | ( | struct gdbarch * | gdbarch | ) |

Definition at line 68 of file sh64-tdep.c.

References arch_float_type(), floatformats_ieee_double_littlebyte_bigword, gdbarch_tdep(), and gdbarch_tdep::sh_littlebyte_bigword_type.

Referenced by sh64_extract_return_value(), sh64_register_convert_to_raw(), and sh64_register_convert_to_virtual().

## ◆ sh64_media_print_registers_info()

static void sh64_media_print_registers_info | ( | struct gdbarch * | gdbarch,
|  | struct ui_file * | file,
|  | struct frame_info * | frame,
|  | int | regnum,
|  | int | fpregs
| ) |  |
| static

Definition at line 2077 of file sh64-tdep.c.

References _, error(), FP_LAST_REGNUM, gdbarch_fp0_regnum(), gdbarch_num_pseudo_regs(), gdbarch_num_regs(), gdbarch_register_name(), register_type(), regnum, sh64_do_fp_register(), sh64_do_pseudo_register(), sh64_do_register(), sh64_print_register(), TYPE_CODE, and TYPE_CODE_FLT.

Referenced by sh64_print_registers_info().

## ◆ sh64_print_register()

static void sh64_print_register | ( | struct gdbarch * | gdbarch,
|  | struct ui_file * | file,
|  | struct frame_info * | frame,
|  | int | regnum
| ) |  |
| static

Definition at line 2055 of file sh64-tdep.c.

References _, gdbarch_num_pseudo_regs(), gdbarch_num_regs(), internal_error(), register_type(), regnum, sh64_do_fp_register(), sh64_do_pseudo_register(), sh64_do_register(), TYPE_CODE, and TYPE_CODE_FLT.

Referenced by sh64_compact_print_registers_info(), and sh64_media_print_registers_info().

## ◆ sh64_print_registers_info()

static void sh64_print_registers_info | ( | struct gdbarch * | gdbarch,
|  | struct ui_file * | file,
|  | struct frame_info * | frame,
|  | int | regnum,
|  | int | fpregs
| ) |  |
| static

Definition at line 2163 of file sh64-tdep.c.

References get_frame_pc(), pc_is_isa32(), regnum, sh64_compact_print_registers_info(), and sh64_media_print_registers_info().

Referenced by sh64_gdbarch_init().

## ◆ sh64_pseudo_register_read()

static enum register_status sh64_pseudo_register_read | ( | struct gdbarch * | gdbarch,
|  | struct regcache * | regcache,
|  | int | reg_nr,
|  | gdb_byte * | buffer
| ) |  |
| static

Definition at line 1528 of file sh64-tdep.c.

References DR0_C_REGNUM, DR0_REGNUM, DR_LAST_C_REGNUM, DR_LAST_REGNUM, FP0_C_REGNUM, FP_LAST_C_REGNUM, FPP0_REGNUM, FPP_LAST_REGNUM, FPSCR_C_REGNUM, FPSCR_REGNUM, FPUL_C_REGNUM, FV0_C_REGNUM, FV0_REGNUM, FV_LAST_C_REGNUM, FV_LAST_REGNUM, gdb_assert_not_reached, gdbarch_byte_order(), offset, pseudo_register_read_portions(), R0_C_REGNUM, regcache::raw_read(), REG_VALID, regcache_raw_read(), register_type(), sh64_compact_reg_base_num(), sh64_dr_reg_base_num(), sh64_fpp_reg_base_num(), sh64_fv_reg_base_num(), sh64_register_convert_to_virtual(), SR_REGNUM, status, store_unsigned_integer(), and T_C_REGNUM.

Referenced by sh64_gdbarch_init().

## ◆ sh64_pseudo_register_write()

static void sh64_pseudo_register_write | ( | struct gdbarch * | gdbarch,
|  | struct regcache * | regcache,
|  | int | reg_nr,
|  | const gdb_byte * | buffer
| ) |  |
| static

Definition at line 1702 of file sh64-tdep.c.

References DR0_C_REGNUM, DR0_REGNUM, DR_LAST_C_REGNUM, DR_LAST_REGNUM, extract_unsigned_integer(), FP0_C_REGNUM, FP_LAST_C_REGNUM, FPP0_REGNUM, FPP_LAST_REGNUM, FPSCR_C_REGNUM, FPSCR_REGNUM, FPUL_C_REGNUM, FV0_C_REGNUM, FV0_REGNUM, FV_LAST_C_REGNUM, FV_LAST_REGNUM, gdbarch_byte_order(), offset, R0_C_REGNUM, regcache::raw_read(), regcache::raw_write(), regcache_raw_read(), regcache_raw_write(), register_size(), register_type(), sh64_compact_reg_base_num(), sh64_dr_reg_base_num(), sh64_fpp_reg_base_num(), sh64_fv_reg_base_num(), sh64_register_convert_to_raw(), SR_REGNUM, and T_C_REGNUM.

Referenced by sh64_gdbarch_init().

## ◆ sh64_push_dummy_call()

static CORE_ADDR sh64_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 1073 of file sh64-tdep.c.

References ARG0_REGNUM, ARGLAST_REGNUM, DR0_REGNUM, extract_unsigned_integer(), FLOAT_ARGLAST_REGNUM, gdbarch_byte_order(), gdbarch_fp0_regnum(), gdbarch_sp_regnum(), memset(), PR_REGNUM, regcache_cooked_write(), regcache_cooked_write_unsigned(), register_size(), regnum, sh64_frame_align(), STRUCT_RETURN_REGNUM, type, TYPE_CODE, TYPE_CODE_FLT, TYPE_LENGTH, value_contents(), value_type(), and write_memory().

Referenced by sh64_gdbarch_init().

## ◆ sh64_register_convert_to_raw()

static void sh64_register_convert_to_raw | ( | struct gdbarch * | gdbarch,
|  | struct type * | type,
|  | int | regnum,
|  | const gdb_byte * | from,
|  | gdb_byte * | to
| ) |  |
| static

Definition at line 1481 of file sh64-tdep.c.

References _, DR0_C_REGNUM, DR0_REGNUM, DR_LAST_C_REGNUM, DR_LAST_REGNUM, error(), gdbarch_byte_order(), register_size(), regnum, sh64_littlebyte_bigword_type(), and target_float_convert().

Referenced by sh64_pseudo_register_write().

## ◆ sh64_register_convert_to_virtual()

static void sh64_register_convert_to_virtual | ( | struct gdbarch * | gdbarch,
|  | int | regnum,
|  | struct type * | type,
|  | gdb_byte * | from,
|  | gdb_byte * | to
| ) |  |
| static

Definition at line 1459 of file sh64-tdep.c.

References _, DR0_C_REGNUM, DR0_REGNUM, DR_LAST_C_REGNUM, DR_LAST_REGNUM, error(), gdbarch_byte_order(), register_size(), regnum, sh64_littlebyte_bigword_type(), and target_float_convert().

Referenced by sh64_pseudo_register_read().

## ◆ sh64_register_name()

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

Definition at line 143 of file sh64-tdep.c.

Referenced by sh64_gdbarch_init().

## ◆ sh64_register_type()

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

Definition at line 1429 of file sh64-tdep.c.

References builtin_type::builtin_double, builtin_type::builtin_float, builtin_type::builtin_int, builtin_type::builtin_long_long, builtin_type(), DR0_C_REGNUM, DR0_REGNUM, DR_LAST_C_REGNUM, DR_LAST_REGNUM, FP0_C_REGNUM, FP_LAST_C_REGNUM, FP_LAST_REGNUM, FPP0_REGNUM, FPP_LAST_REGNUM, FPSCR_REGNUM, FV0_C_REGNUM, FV0_REGNUM, FV_LAST_C_REGNUM, FV_LAST_REGNUM, gdbarch_fp0_regnum(), R0_C_REGNUM, and sh64_build_float_register_type().

Referenced by sh64_gdbarch_init().

## ◆ sh64_return_value()

static enum return_value_convention sh64_return_value | ( | struct gdbarch * | gdbarch,
|  | struct value * | function,
|  | struct type * | type,
|  | struct regcache * | regcache,
|  | gdb_byte * | readbuf,
|  | const gdb_byte * | writebuf
| ) |  |
| static

Definition at line 1338 of file sh64-tdep.c.

References RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, sh64_extract_return_value(), sh64_store_return_value(), and sh64_use_struct_convention().

Referenced by sh64_gdbarch_init().

## ◆ sh64_skip_prologue()

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

Definition at line 695 of file sh64-tdep.c.

References after_prologue(), symtab_and_line::pc, and sh64_skip_prologue_hard_way().

Referenced by sh64_gdbarch_init().

## ◆ sh64_skip_prologue_hard_way()

static CORE_ADDR sh64_skip_prologue_hard_way | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | start_pc
| ) |  |
| static

Definition at line 614 of file sh64-tdep.c.

References symtab_and_line::end, gdbarch_byte_order(), IS_ADD_SP_R0, IS_ADDI_SP_MEDIA, IS_ADDIL_SP_MEDIA, IS_MOV_R0, IS_MOV_R14, IS_MOV_R14_R0, IS_MOV_SP_FP, IS_MOV_SP_FP_MEDIA, IS_MOV_TO_R15, IS_PTABSL_R18, IS_STL_R14_R15, IS_STL_R18_R15, IS_STQ_R14_R15, IS_STQ_R18_R14, IS_STQ_R18_R15, IS_STS_PR, IS_STS_R0, look_for_args_moves(), pc_is_isa32(), read_memory_integer(), and UNMAKE_ISA32_ADDR.

Referenced by sh64_skip_prologue().

## ◆ sh64_store_return_value()

static void sh64_store_return_value | ( | struct type * | type,
|  | struct regcache * | regcache,
|  | const gdb_byte * | valbuf
| ) |  |
| static

Definition at line 1297 of file sh64-tdep.c.

References regcache::arch(), DEFAULT_RETURN_REGNUM, gdbarch_byte_order(), gdbarch_fp0_regnum(), memset(), offset, regcache_raw_write(), register_size(), regnum, TYPE_CODE, TYPE_CODE_FLT, and TYPE_LENGTH.

Referenced by sh64_return_value().

## ◆ sh64_sw_breakpoint_from_kind()

static const gdb_byte* sh64_sw_breakpoint_from_kind | ( | struct gdbarch * | gdbarch,
|  | int | kind,
|  | int * | size
| ) |  |
| static

Definition at line 286 of file sh64-tdep.c.

References gdbarch_byte_order(), and size.

Referenced by sh64_gdbarch_init().

## ◆ sh64_unwind_pc()

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

Definition at line 2323 of file sh64-tdep.c.

References frame_unwind_register_unsigned(), and gdbarch_pc_regnum().

Referenced by sh64_gdbarch_init().

## ◆ sh64_unwind_sp()

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

Definition at line 2316 of file sh64-tdep.c.

References frame_unwind_register_unsigned(), and gdbarch_sp_regnum().

Referenced by sh64_gdbarch_init().

## ◆ sh64_use_struct_convention()

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

Definition at line 714 of file sh64-tdep.c.

References TYPE_LENGTH.

Referenced by sh64_return_value().

## ◆ sign_extend()

static int sign_extend | ( | int | value,
|  | int | bits
| ) |  |
| static

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

References bits.

Referenced by sh64_analyze_prologue().

## Variable Documentation

## ◆ sh64_frame_base

const struct frame_base sh64_frame_base
| static

Initial value:
= {
&sh64_frame_unwind,
sh64_frame_base_address,
sh64_frame_base_address,
sh64_frame_base_address
}
sh64_frame_unwind
static const struct frame_unwind sh64_frame_unwind
Definition: sh64-tdep.c:2306
sh64_frame_base_address
static CORE_ADDR sh64_frame_base_address(struct frame_info *this_frame, void **this_cache)
Definition: sh64-tdep.c:2338

Definition at line 2345 of file sh64-tdep.c.

Referenced by sh64_gdbarch_init().

## ◆ sh64_frame_unwind

const struct frame_unwind sh64_frame_unwind
| static

Initial value:
= {
NORMAL_FRAME,
default_frame_unwind_stop_reason,
sh64_frame_this_id,
sh64_frame_prev_register,
NULL,
default_frame_sniffer
}
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
sh64_frame_this_id
static void sh64_frame_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
Definition: sh64-tdep.c:2294
sh64_frame_prev_register
static struct value * sh64_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
Definition: sh64-tdep.c:2257
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 2306 of file sh64-tdep.c.

Referenced by sh64_gdbarch_init().