GDB (xrefs)
Classes | Macros | Functions | Variables
/tmp/gdb-7.10/gdb/score-tdep.c File Reference
#include "defs.h"
#include "inferior.h"
#include "symtab.h"
#include "objfiles.h"
#include "gdbcore.h"
#include "target.h"
#include "arch-utils.h"
#include "regcache.h"
#include "regset.h"
#include "dis-asm.h"
#include "frame-unwind.h"
#include "frame-base.h"
#include "trad-frame.h"
#include "dwarf2-frame.h"
#include "score-tdep.h"

Go to the source code of this file.

Classes

struct  inst_t
 
struct  score_frame_cache
 

Macros

#define G_FLD(_i, _ms, _ls)   ((unsigned)((_i) << (31 - (_ms))) >> (31 - (_ms) + (_ls)))
 
#define EXTRACT_LEN   2
 
#define SCORE7_LINUX_EPC_OFFSET   (44 * 4)
 
#define SCORE7_LINUX_SIZEOF_GREGSET   (49 * 4)
 

Functions

static struct typescore_register_type (struct gdbarch *gdbarch, int regnum)
 
static CORE_ADDR score_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
 
static CORE_ADDR score_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
 
static const char * score7_register_name (struct gdbarch *gdbarch, int regnum)
 
static const char * score3_register_name (struct gdbarch *gdbarch, int regnum)
 
static int score_print_insn (bfd_vma memaddr, struct disassemble_info *info)
 
static inst_tscore7_fetch_inst (struct gdbarch *gdbarch, CORE_ADDR addr, gdb_byte *memblock)
 
static inst_tscore3_adjust_pc_and_fetch_inst (CORE_ADDR *pcptr, int *lenptr, enum bfd_endian byte_order)
 
static const gdb_bytescore7_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr)
 
static const gdb_bytescore3_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr)
 
static CORE_ADDR score_adjust_breakpoint_address (struct gdbarch *gdbarch, CORE_ADDR bpaddr)
 
static CORE_ADDR score_frame_align (struct gdbarch *gdbarch, CORE_ADDR addr)
 
static void score_xfer_register (struct regcache *regcache, int regnum, int length, enum bfd_endian endian, gdb_byte *readbuf, const gdb_byte *writebuf, int buf_offset)
 
static enum return_value_convention score_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
 
static struct frame_id score_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
 
static int score_type_needs_double_align (struct type *type)
 
static CORE_ADDR score_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 CORE_ADDR score7_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static CORE_ADDR score3_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static int score7_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR cur_pc)
 
static int score3_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR cur_pc)
 
static gdb_bytescore7_malloc_and_get_memblock (CORE_ADDR addr, CORE_ADDR size)
 
static void score7_free_memblock (gdb_byte *memblock)
 
static void score7_adjust_memblock_ptr (gdb_byte **memblock, CORE_ADDR prev_pc, CORE_ADDR cur_pc)
 
static void score7_analyze_prologue (CORE_ADDR startaddr, CORE_ADDR pc, struct frame_info *this_frame, struct score_frame_cache *this_cache)
 
static void score3_analyze_prologue (CORE_ADDR startaddr, CORE_ADDR pc, struct frame_info *this_frame, struct score_frame_cache *this_cache)
 
static struct score_frame_cachescore_make_prologue_cache (struct frame_info *this_frame, void **this_cache)
 
static void score_prologue_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
 
static struct valuescore_prologue_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
 
static CORE_ADDR score_prologue_frame_base_address (struct frame_info *this_frame, void **this_cache)
 
static const struct frame_basescore_prologue_frame_base_sniffer (struct frame_info *this_frame)
 
static void score7_linux_supply_gregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
 
static void score7_linux_iterate_over_regset_sections (struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
 
static struct gdbarchscore_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
 
void _initialize_score_tdep (void)
 

Variables

static int target_mach = bfd_mach_score7
 
static const struct frame_unwind score_prologue_unwind
 
static const struct frame_base score_prologue_frame_base
 
static const struct regcache_map_entry score7_linux_gregmap []
 
static const struct regset score7_linux_gregset
 
initialize_file_ftype _initialize_score_tdep
 

Macro Definition Documentation

#define EXTRACT_LEN   2
#define G_FLD (   _i,
  _ms,
  _ls 
)    ((unsigned)((_i) << (31 - (_ms))) >> (31 - (_ms) + (_ls)))
#define SCORE7_LINUX_EPC_OFFSET   (44 * 4)

Definition at line 1425 of file score-tdep.c.

Referenced by score7_linux_supply_gregset().

#define SCORE7_LINUX_SIZEOF_GREGSET   (49 * 4)

Definition at line 1426 of file score-tdep.c.

Referenced by score7_linux_iterate_over_regset_sections().

Function Documentation

void _initialize_score_tdep ( void  )

Definition at line 1541 of file score-tdep.c.

References gdbarch_register(), and score_gdbarch_init().

static inst_t* score3_adjust_pc_and_fetch_inst ( CORE_ADDR pcptr,
int lenptr,
enum bfd_endian  byte_order 
)
static
static void score3_analyze_prologue ( CORE_ADDR  startaddr,
CORE_ADDR  pc,
struct frame_info this_frame,
struct score_frame_cache this_cache 
)
static
static const gdb_byte* score3_breakpoint_from_pc ( struct gdbarch gdbarch,
CORE_ADDR pcptr,
int lenptr 
)
static

Definition at line 366 of file score-tdep.c.

References gdbarch_byte_order(), len, and score3_adjust_pc_and_fetch_inst().

Referenced by score_gdbarch_init().

static const char* score3_register_name ( struct gdbarch gdbarch,
int  regnum 
)
static

Definition at line 100 of file score-tdep.c.

References gdb_assert, regnum, and SCORE3_NUM_REGS.

Referenced by score_gdbarch_init().

static CORE_ADDR score3_skip_prologue ( struct gdbarch gdbarch,
CORE_ADDR  pc 
)
static
static int score3_stack_frame_destroyed_p ( struct gdbarch gdbarch,
CORE_ADDR  cur_pc 
)
static
static void score7_adjust_memblock_ptr ( gdb_byte **  memblock,
CORE_ADDR  prev_pc,
CORE_ADDR  cur_pc 
)
static

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

References SCORE_INSTLEN.

Referenced by score7_analyze_prologue().

static void score7_analyze_prologue ( CORE_ADDR  startaddr,
CORE_ADDR  pc,
struct frame_info this_frame,
struct score_frame_cache this_cache 
)
static
static const gdb_byte* score7_breakpoint_from_pc ( struct gdbarch gdbarch,
CORE_ADDR pcptr,
int lenptr 
)
static
static inst_t* score7_fetch_inst ( struct gdbarch gdbarch,
CORE_ADDR  addr,
gdb_byte memblock 
)
static
static void score7_free_memblock ( gdb_byte memblock)
static

Definition at line 841 of file score-tdep.c.

References xfree().

Referenced by score7_analyze_prologue().

static void score7_linux_iterate_over_regset_sections ( struct gdbarch gdbarch,
iterate_over_regset_sections_cb cb,
void *  cb_data,
const struct regcache regcache 
)
static

Definition at line 1455 of file score-tdep.c.

References SCORE7_LINUX_SIZEOF_GREGSET.

Referenced by score_gdbarch_init().

static void score7_linux_supply_gregset ( const struct regset regset,
struct regcache regcache,
int  regnum,
const void *  buf,
size_t  size 
)
static
static gdb_byte* score7_malloc_and_get_memblock ( CORE_ADDR  addr,
CORE_ADDR  size 
)
static

Definition at line 814 of file score-tdep.c.

References _, error(), target_read_memory(), and xmalloc().

Referenced by score7_analyze_prologue().

static const char* score7_register_name ( struct gdbarch gdbarch,
int  regnum 
)
static

Definition at line 80 of file score-tdep.c.

References gdb_assert, regnum, and SCORE7_NUM_REGS.

Referenced by score_gdbarch_init().

static CORE_ADDR score7_skip_prologue ( struct gdbarch gdbarch,
CORE_ADDR  pc 
)
static

Definition at line 627 of file score-tdep.c.

References G_FLD, inst_t::len, SCORE16_INSTLEN, score7_fetch_inst(), SCORE_INSTLEN, and inst_t::v.

Referenced by score_gdbarch_init().

static int score7_stack_frame_destroyed_p ( struct gdbarch gdbarch,
CORE_ADDR  cur_pc 
)
static

Definition at line 743 of file score-tdep.c.

References G_FLD, score7_fetch_inst(), and inst_t::v.

Referenced by score_gdbarch_init().

static CORE_ADDR score_adjust_breakpoint_address ( struct gdbarch gdbarch,
CORE_ADDR  bpaddr 
)
static
static struct frame_id score_dummy_id ( struct gdbarch gdbarch,
struct frame_info this_frame 
)
static
static CORE_ADDR score_frame_align ( struct gdbarch gdbarch,
CORE_ADDR  addr 
)
static

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

References align_down().

Referenced by score_gdbarch_init().

static struct gdbarch* score_gdbarch_init ( struct gdbarch_info  info,
struct gdbarch_list arches 
)
static

Definition at line 1465 of file score-tdep.c.

References AT_ENTRY_POINT, gdbarch_info::bfd_arch_info, core_addr_lessthan(), dwarf2_append_unwinders(), dwarf2_frame_base_sniffer(), frame_base_append_sniffer(), frame_unwind_append_unwinder(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_list_lookup_by_info(), score3_breakpoint_from_pc(), SCORE3_NUM_REGS, score3_register_name(), score3_skip_prologue(), score3_stack_frame_destroyed_p(), score7_breakpoint_from_pc(), score7_linux_iterate_over_regset_sections(), SCORE7_NUM_REGS, score7_register_name(), score7_skip_prologue(), score7_stack_frame_destroyed_p(), score_adjust_breakpoint_address(), score_dummy_id(), score_frame_align(), SCORE_PC_REGNUM, score_print_insn(), score_prologue_frame_base_sniffer(), score_push_dummy_call(), score_register_type(), score_return_value(), SCORE_SP_REGNUM, score_unwind_pc(), score_unwind_sp(), set_gdbarch_adjust_breakpoint_address(), set_gdbarch_breakpoint_from_pc(), set_gdbarch_call_dummy_location(), set_gdbarch_double_bit(), set_gdbarch_dummy_id(), set_gdbarch_float_bit(), set_gdbarch_frame_align(), set_gdbarch_have_nonsteppable_watchpoint(), set_gdbarch_inner_than(), set_gdbarch_int_bit(), set_gdbarch_iterate_over_regset_sections(), set_gdbarch_long_double_bit(), set_gdbarch_num_regs(), set_gdbarch_pc_regnum(), set_gdbarch_print_insn(), 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_stack_frame_destroyed_p(), set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(), and target_mach.

Referenced by _initialize_score_tdep().

static struct score_frame_cache* score_make_prologue_cache ( struct frame_info this_frame,
void **  this_cache 
)
static
static int score_print_insn ( bfd_vma  memaddr,
struct disassemble_info *  info 
)
static

Definition at line 130 of file score-tdep.c.

Referenced by score_gdbarch_init().

static CORE_ADDR score_prologue_frame_base_address ( struct frame_info this_frame,
void **  this_cache 
)
static

Definition at line 1382 of file score-tdep.c.

References score_frame_cache::fp, and score_make_prologue_cache().

static const struct frame_base* score_prologue_frame_base_sniffer ( struct frame_info this_frame)
static

Definition at line 1399 of file score-tdep.c.

References score_prologue_frame_base.

Referenced by score_gdbarch_init().

static struct value* score_prologue_prev_register ( struct frame_info this_frame,
void **  this_cache,
int  regnum 
)
static
static void score_prologue_this_id ( struct frame_info this_frame,
void **  this_cache,
struct frame_id this_id 
)
static
static CORE_ADDR score_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 struct type* score_register_type ( struct gdbarch gdbarch,
int  regnum 
)
static
static enum return_value_convention score_return_value ( struct gdbarch gdbarch,
struct value function,
struct type type,
struct regcache regcache,
gdb_byte readbuf,
const gdb_byte writebuf 
)
static
static int score_type_needs_double_align ( struct type type)
static
static CORE_ADDR score_unwind_pc ( struct gdbarch gdbarch,
struct frame_info next_frame 
)
static

Definition at line 74 of file score-tdep.c.

References frame_unwind_register_unsigned(), and SCORE_PC_REGNUM.

Referenced by score_gdbarch_init().

static CORE_ADDR score_unwind_sp ( struct gdbarch gdbarch,
struct frame_info next_frame 
)
static

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

References frame_unwind_register_unsigned(), and SCORE_SP_REGNUM.

Referenced by score_gdbarch_init().

static void score_xfer_register ( struct regcache regcache,
int  regnum,
int  length,
enum bfd_endian  endian,
gdb_byte readbuf,
const gdb_byte writebuf,
int  buf_offset 
)
static

Variable Documentation

initialize_file_ftype _initialize_score_tdep
const struct regcache_map_entry score7_linux_gregmap[]
static
Initial value:
=
{
{ 7, REGCACHE_MAP_SKIP, 4 },
{ 32, 0, 4 },
{ 1, 55, 4 },
{ 1, 54, 4 },
{ 1, 53, 4 },
{ 1, 52, 4 },
{ 1, 51, 4 },
{ 1, 49, 4 },
{ 1, 38, 4 },
{ 1, 32, 4 },
{ 1, 34, 4 },
{ 1, 33, 4 },
{ 0 }
}

Definition at line 1406 of file score-tdep.c.

const struct regset score7_linux_gregset
static
Initial value:
=
{
}
void regcache_collect_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
Definition: regcache.c:1162
static const struct regcache_map_entry score7_linux_gregmap[]
Definition: score-tdep.c:1406
static void score7_linux_supply_gregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
Definition: score-tdep.c:1429

Definition at line 1445 of file score-tdep.c.

const struct frame_base score_prologue_frame_base
static
Initial value:
=
{
}
static CORE_ADDR score_prologue_frame_base_address(struct frame_info *this_frame, void **this_cache)
Definition: score-tdep.c:1382
static const struct frame_unwind score_prologue_unwind
Definition: score-tdep.c:1370

Definition at line 1390 of file score-tdep.c.

Referenced by score_prologue_frame_base_sniffer().

const struct frame_unwind score_prologue_unwind
static
Initial value:
=
{
NULL,
NULL
}
static struct value * score_prologue_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
Definition: score-tdep.c:1362
static void score_prologue_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
Definition: score-tdep.c:1353
int default_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
Definition: frame-unwind.c:170
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:180

Definition at line 1370 of file score-tdep.c.

int target_mach = bfd_mach_score7
static