GDB (xrefs)
Classes | Defines | Enumerations | Functions | Variables
/home/stan/gdb/src/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 "gdb_string.h"
#include "gdb_assert.h"
#include "arch-utils.h"
#include "regcache.h"
#include "osabi.h"
#include "valprint.h"
#include "elf-bfd.h"
#include "elf/sh.h"
#include "gdb/sim-sh.h"
#include "language.h"
#include "sh64-tdep.h"

Go to the source code of this file.

Classes

struct  gdbarch_tdep
struct  sh64_frame_cache

Defines

#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

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 const unsigned char * sh64_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr)
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, void *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 typesh64_build_float_register_type (struct gdbarch *gdbarch, int high)
static struct typesh64_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 void *from, void *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_cachesh64_alloc_frame_cache (void)
static struct sh64_frame_cachesh64_frame_cache (struct frame_info *this_frame, void **this_cache)
static struct valuesh64_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 gdbarchsh64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)

Variables

static struct frame_unwind sh64_frame_unwind
static struct frame_base sh64_frame_base

Define Documentation

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

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

Referenced by sh64_analyze_prologue().

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

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

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

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

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

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

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

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

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

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

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

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

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

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

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

Referenced by look_for_args_moves().

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

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

Referenced by look_for_args_moves().

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

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

Referenced by look_for_args_moves().

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

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

Referenced by pc_is_isa32().

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

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

Referenced by look_for_args_moves().

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

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

Referenced by look_for_args_moves().

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

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

Referenced by look_for_args_moves().

#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 427 of file sh64-tdep.c.

Referenced by look_for_args_moves().

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

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

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

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

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

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

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

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

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

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

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

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

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

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

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

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

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

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

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

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

Referenced by look_for_args_moves().

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

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

Referenced by look_for_args_moves().

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

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

Referenced by sh64_skip_prologue_hard_way().

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

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

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

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

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

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

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

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

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

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

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

Referenced by sh64_skip_prologue_hard_way().

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

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

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

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

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

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

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

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

Referenced by sh64_analyze_prologue(), and sh64_skip_prologue_hard_way().

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

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

#define MSYMBOL_IS_SPECIAL (   msym)    MSYMBOL_TARGET_FLAG_1 (msym)

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

Referenced by pc_is_isa32().

#define NUM_PSEUDO_REGS_SH_COMPACT   51

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

Referenced by sh64_do_pseudo_register(), and sh64_gdbarch_init().

#define NUM_PSEUDO_REGS_SH_MEDIA   80

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

Referenced by sh64_do_pseudo_register(), and sh64_gdbarch_init().

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

Enumeration Type Documentation

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 82 of file sh64-tdep.c.

enum sh_abi
Enumerator:
SH_ABI_UNKNOWN 
SH_ABI_32 
SH_ABI_64 

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


Function Documentation

static CORE_ADDR after_prologue ( CORE_ADDR  pc) [static]

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

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

Referenced by sh64_skip_prologue().

static CORE_ADDR look_for_args_moves ( struct gdbarch gdbarch,
CORE_ADDR  start_pc,
int  media_mode 
) [static]
static int pc_is_isa32 ( bfd_vma  memaddr) [static]
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 1504 of file sh64-tdep.c.

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

Referenced by sh64_pseudo_register_read().

static struct sh64_frame_cache* sh64_alloc_frame_cache ( void  ) [static, read]
static void sh64_analyze_prologue ( struct gdbarch gdbarch,
struct sh64_frame_cache cache,
CORE_ADDR  func_pc,
CORE_ADDR  current_pc 
) [static]
static const unsigned char* sh64_breakpoint_from_pc ( struct gdbarch gdbarch,
CORE_ADDR pcptr,
int lenptr 
) [static]

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

References gdbarch_byte_order(), pc_is_isa32(), and UNMAKE_ISA32_ADDR.

Referenced by sh64_gdbarch_init().

static struct type* sh64_build_float_register_type ( struct gdbarch gdbarch,
int  high 
) [static, read]

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

References lookup_array_range_type().

Referenced by sh64_register_type().

static void sh64_compact_print_registers_info ( struct gdbarch gdbarch,
struct ui_file file,
struct frame_info frame,
int  regnum,
int  fpregs 
) [static]
static int sh64_compact_reg_base_num ( struct gdbarch gdbarch,
int  reg_nr 
) [static]
static void sh64_do_cr_c_register_info ( struct ui_file file,
struct frame_info frame,
int  cr_c_regnum 
) [static]
static void sh64_do_fp_register ( struct gdbarch gdbarch,
struct ui_file file,
struct frame_info frame,
int  regnum 
) [static]
static void sh64_do_pseudo_register ( struct gdbarch gdbarch,
struct ui_file file,
struct frame_info frame,
int  regnum 
) [static]
static void sh64_do_register ( struct gdbarch gdbarch,
struct ui_file file,
struct frame_info frame,
int  regnum 
) [static]
static int sh64_dr_reg_base_num ( struct gdbarch gdbarch,
int  dr_regnum 
) [static]
static struct frame_id sh64_dummy_id ( struct gdbarch gdbarch,
struct frame_info this_frame 
) [static, read]
static void sh64_elf_make_msymbol_special ( asymbol *  sym,
struct minimal_symbol msym 
) [static]

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

References MSYMBOL_TARGET_FLAG_1, and SYMBOL_VALUE_ADDRESS.

Referenced by sh64_gdbarch_init().

static void sh64_extract_return_value ( struct type type,
struct regcache regcache,
void *  valbuf 
) [static]
static int sh64_fpp_reg_base_num ( struct gdbarch gdbarch,
int  fpp_regnum 
) [static]
static CORE_ADDR sh64_frame_align ( struct gdbarch ignore,
CORE_ADDR  sp 
) [static]

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

Referenced by sh64_gdbarch_init(), and sh64_push_dummy_call().

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

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

References sh64_frame_cache::base, and sh64_frame_cache().

static struct sh64_frame_cache* sh64_frame_cache ( struct frame_info this_frame,
void **  this_cache 
) [static, read]
static struct value* sh64_frame_prev_register ( struct frame_info this_frame,
void **  this_cache,
int  regnum 
) [static, read]
static void sh64_frame_this_id ( struct frame_info this_frame,
void **  this_cache,
struct frame_id this_id 
) [static]
static int sh64_fv_reg_base_num ( struct gdbarch gdbarch,
int  fv_regnum 
) [static]
struct gdbarch* sh64_gdbarch_init ( struct gdbarch_info  info,
struct gdbarch_list arches 
) [read]

Definition at line 2361 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_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_insn(), 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_unwind_pc(), set_gdbarch_unwind_sp(), sh64_breakpoint_from_pc(), sh64_dummy_id(), sh64_elf_make_msymbol_special(), sh64_frame_align(), sh64_gdbarch_init, 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_unwind_pc(), sh64_unwind_sp(), gdbarch_tdep::sh_abi, SH_ABI_32, SH_ABI_64, and XMALLOC.

static void sh64_media_print_registers_info ( struct gdbarch gdbarch,
struct ui_file file,
struct frame_info frame,
int  regnum,
int  fpregs 
) [static]
static void sh64_print_register ( struct gdbarch gdbarch,
struct ui_file file,
struct frame_info frame,
int  regnum 
) [static]
static void sh64_print_registers_info ( struct gdbarch gdbarch,
struct ui_file file,
struct frame_info frame,
int  regnum,
int  fpregs 
) [static]
static enum register_status sh64_pseudo_register_read ( struct gdbarch gdbarch,
struct regcache regcache,
int  reg_nr,
gdb_byte buffer 
) [static]
static void sh64_pseudo_register_write ( struct gdbarch gdbarch,
struct regcache regcache,
int  reg_nr,
const gdb_byte buffer 
) [static]
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]
static void sh64_register_convert_to_raw ( struct gdbarch gdbarch,
struct type type,
int  regnum,
const void *  from,
void *  to 
) [static]
static void sh64_register_convert_to_virtual ( struct gdbarch gdbarch,
int  regnum,
struct type type,
gdb_byte from,
gdb_byte to 
) [static]
static const char* sh64_register_name ( struct gdbarch gdbarch,
int  reg_nr 
) [static]

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

Referenced by sh64_gdbarch_init().

static struct type* sh64_register_type ( struct gdbarch gdbarch,
int  reg_nr 
) [static, read]
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]
static CORE_ADDR sh64_skip_prologue ( struct gdbarch gdbarch,
CORE_ADDR  pc 
) [static]

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

References after_prologue(), max, and sh64_skip_prologue_hard_way().

Referenced by sh64_gdbarch_init().

static CORE_ADDR sh64_skip_prologue_hard_way ( struct gdbarch gdbarch,
CORE_ADDR  start_pc 
) [static]
static void sh64_store_return_value ( struct type type,
struct regcache regcache,
const gdb_byte valbuf 
) [static]
static CORE_ADDR sh64_unwind_pc ( struct gdbarch gdbarch,
struct frame_info next_frame 
) [static]

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

References frame_unwind_register_unsigned(), and gdbarch_pc_regnum().

Referenced by sh64_gdbarch_init().

static CORE_ADDR sh64_unwind_sp ( 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_sp_regnum().

Referenced by sh64_gdbarch_init().

static int sh64_use_struct_convention ( struct type type) [static]

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

References TYPE_LENGTH.

Referenced by sh64_return_value().

static int sign_extend ( int  value,
int  bits 
) [static]

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

References bits.

Referenced by sh64_analyze_prologue().


Variable Documentation

struct frame_base sh64_frame_base [static]
Initial value:

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

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines