GDB (xrefs)

Classes | Macros | Functions | Variables
/tmp/gdb-8.1/gdb/m32r-tdep.c File Reference
`#include "defs.h"`
`#include "frame.h"`
`#include "frame-unwind.h"`
`#include "frame-base.h"`
`#include "symtab.h"`
`#include "gdbtypes.h"`
`#include "gdbcmd.h"`
`#include "gdbcore.h"`
`#include "value.h"`
`#include "inferior.h"`
`#include "symfile.h"`
`#include "objfiles.h"`
`#include "osabi.h"`
`#include "language.h"`
`#include "arch-utils.h"`
`#include "regcache.h"`
`#include "trad-frame.h"`
`#include "dis-asm.h"`
`#include "m32r-tdep.h"`
`#include <algorithm>`

Go to the source code of this file.

## Classes
struct | m32r_unwind_cache

## Macros
#define | M32R_ARG_REGISTER_SIZE 4
#define | DEFAULT_SEARCH_LIMIT 128

## Functions
static CORE_ADDR | m32r_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp)
static int | m32r_memory_insert_breakpoint (struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
static int | m32r_memory_remove_breakpoint (struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
static int | m32r_breakpoint_kind_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr)
static const gdb_byte * | m32r_sw_breakpoint_from_kind (struct gdbarch *gdbarch, int kind, int *size)
static const char * | m32r_register_name (struct gdbarch *gdbarch, int reg_nr)
static struct type * | m32r_register_type (struct gdbarch *gdbarch, int reg_nr)
static void | m32r_store_return_value (struct type *type, struct regcache *regcache, const gdb_byte *valbuf)
static int | decode_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc, CORE_ADDR scan_limit, CORE_ADDR *pl_endptr, unsigned long *framelength)
static CORE_ADDR | m32r_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
static struct m32r_unwind_cache * | m32r_frame_unwind_cache (struct frame_info *this_frame, void **this_prologue_cache)
static CORE_ADDR | m32r_read_pc (struct regcache *regcache)
static CORE_ADDR | m32r_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
static CORE_ADDR | m32r_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 | m32r_extract_return_value (struct type *type, struct regcache *regcache, gdb_byte *dst)
static enum return_value_convention | m32r_return_value (struct gdbarch *gdbarch, struct value *function, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
static CORE_ADDR | m32r_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
static void | m32r_frame_this_id (struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
static struct value * | m32r_frame_prev_register (struct frame_info *this_frame, void **this_prologue_cache, int regnum)
static CORE_ADDR | m32r_frame_base_address (struct frame_info *this_frame, void **this_cache)
static struct frame_id | m32r_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
static struct gdbarch * | m32r_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
void | _initialize_m32r_tdep (void)

## Variables
static const char * | m32r_register_names []
static const struct frame_unwind | m32r_frame_unwind
static const struct frame_base | m32r_frame_base
static gdbarch_init_ftype | m32r_gdbarch_init

## Macro Definition Documentation

## ◆ DEFAULT_SEARCH_LIMIT

#define DEFAULT_SEARCH_LIMIT 128

Definition at line 456 of file m32r-tdep.c.

Referenced by m32r_skip_prologue().

## ◆ M32R_ARG_REGISTER_SIZE

#define M32R_ARG_REGISTER_SIZE 4

Definition at line 43 of file m32r-tdep.c.

Referenced by m32r_push_dummy_call().

## Function Documentation

## ◆ _initialize_m32r_tdep()

void _initialize_m32r_tdep | ( | void |  | ) |

Definition at line 961 of file m32r-tdep.c.

References m32r_gdbarch_init, and register_gdbarch_init().

## ◆ decode_prologue()

static int decode_prologue | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | start_pc,
|  | CORE_ADDR | scan_limit,
|  | CORE_ADDR * | pl_endptr,
|  | unsigned long * | framelength
| ) |  |
| static

Definition at line 268 of file m32r-tdep.c.

References after_prologue(), gdbarch::byte_order, gdbarch_byte_order(), read_memory_unsigned_integer(), gdbarch::return_value, and safe_read_memory_integer().

Referenced by m32r_skip_prologue().

## ◆ m32r_breakpoint_kind_from_pc()

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

Definition at line 172 of file m32r-tdep.c.

Referenced by m32r_gdbarch_init().

## ◆ m32r_dummy_id()

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

Definition at line 888 of file m32r-tdep.c.

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

Referenced by m32r_gdbarch_init().

## ◆ m32r_extract_return_value()

static void m32r_extract_return_value | ( | struct type * | type,
|  | struct regcache * | regcache,
|  | gdb_byte * | dst
| ) |  |
| static

Definition at line 770 of file m32r-tdep.c.

References regcache::arch(), gdbarch::byte_order, gdbarch_byte_order(), regcache_cooked_read_unsigned(), RET1_REGNUM, store_unsigned_integer(), and TYPE_LENGTH.

Referenced by m32r_return_value().

## ◆ m32r_frame_align()

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

Definition at line 48 of file m32r-tdep.c.

Referenced by m32r_gdbarch_init().

## ◆ m32r_frame_base_address()

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

Definition at line 869 of file m32r-tdep.c.

References m32r_unwind_cache::base, and m32r_frame_unwind_cache().

## ◆ m32r_frame_prev_register()

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

Definition at line 851 of file m32r-tdep.c.

References m32r_frame_unwind_cache(), regnum, m32r_unwind_cache::saved_regs, and trad_frame_get_prev_register().

## ◆ m32r_frame_this_id()

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

Definition at line 821 of file m32r-tdep.c.

References m32r_unwind_cache::base, BMSYMBOL_VALUE_ADDRESS, frame_id_build(), func, get_frame_func(), lookup_minimal_symbol(), m32r_frame_unwind_cache(), bound_minimal_symbol::minsym, and m32r_unwind_cache::prev_sp.

## ◆ m32r_frame_unwind_cache()

static struct m32r_unwind_cache* m32r_frame_unwind_cache | ( | struct frame_info * | this_frame,
|  | void ** | this_prologue_cache
| ) |  |
| static

Definition at line 523 of file m32r-tdep.c.

References trad_frame_saved_reg::addr, m32r_unwind_cache::base, FRAME_OBSTACK_ZALLOC, gdbarch_num_regs(), get_frame_arch(), get_frame_func(), get_frame_memory_unsigned(), get_frame_pc(), get_frame_register_unsigned(), LR_REGNUM, M32R_FP_REGNUM, M32R_PC_REGNUM, M32R_SP_REGNUM, m32r_unwind_cache::prev_sp, m32r_unwind_cache::r13_offset, m32r_unwind_cache::saved_regs, m32r_unwind_cache::size, m32r_unwind_cache::sp_offset, trad_frame_addr_p(), trad_frame_alloc_saved_regs(), trad_frame_set_value(), and m32r_unwind_cache::uses_frame.

Referenced by m32r_frame_base_address(), m32r_frame_prev_register(), and m32r_frame_this_id().

## ◆ m32r_gdbarch_init()

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

Definition at line 898 of file m32r-tdep.c.

References core_addr_lessthan(), frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), m32r_breakpoint_kind_from_pc(), m32r_dummy_id(), m32r_frame_align(), m32r_frame_base, m32r_frame_unwind, m32r_memory_insert_breakpoint(), m32r_memory_remove_breakpoint(), M32R_NUM_REGS, M32R_PC_REGNUM, m32r_push_dummy_call(), m32r_read_pc(), m32r_register_name(), m32r_register_type(), m32r_return_value(), m32r_skip_prologue(), M32R_SP_REGNUM, m32r_sw_breakpoint_from_kind(), m32r_unwind_pc(), m32r_unwind_sp(), set_gdbarch_breakpoint_kind_from_pc(), set_gdbarch_dummy_id(), set_gdbarch_frame_align(), set_gdbarch_inner_than(), set_gdbarch_memory_insert_breakpoint(), set_gdbarch_memory_remove_breakpoint(), set_gdbarch_num_regs(), set_gdbarch_overlay_update(), set_gdbarch_pc_regnum(), set_gdbarch_push_dummy_call(), set_gdbarch_read_pc(), set_gdbarch_register_name(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_skip_prologue(), set_gdbarch_sp_regnum(), set_gdbarch_sw_breakpoint_from_kind(), set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(), set_gdbarch_wchar_bit(), set_gdbarch_wchar_signed(), simple_overlay_update(), and XCNEW.

## ◆ m32r_memory_insert_breakpoint()

static int m32r_memory_insert_breakpoint | ( | struct gdbarch * | gdbarch,
|  | struct bp_target_info * | bp_tgt
| ) |  |
| static

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

References gdbarch_byte_order(), bp_target_info::placed_address, bp_target_info::reqstd_address, bp_target_info::shadow_contents, bp_target_info::shadow_len, target_read_memory(), and target_write_memory().

Referenced by m32r_gdbarch_init().

## ◆ m32r_memory_remove_breakpoint()

static int m32r_memory_remove_breakpoint | ( | struct gdbarch * | gdbarch,
|  | struct bp_target_info * | bp_tgt
| ) |  |
| static

Definition at line 139 of file m32r-tdep.c.

References gdbarch_byte_order(), bp_target_info::placed_address, bp_target_info::shadow_contents, and target_write_raw_memory().

Referenced by m32r_gdbarch_init().

## ◆ m32r_push_dummy_call()

static CORE_ADDR m32r_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 668 of file m32r-tdep.c.

References ARG1_REGNUM, ARGN_REGNUM, extract_unsigned_integer(), gdbarch_byte_order(), LR_REGNUM, M32R_ARG_REGISTER_SIZE, M32R_SP_REGNUM, memset(), regcache_cooked_write_unsigned(), register_size(), store_unsigned_integer(), type, TYPE_CODE, TYPE_CODE_PTR, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_LENGTH, value_address(), value_contents(), value_type(), and write_memory().

Referenced by m32r_gdbarch_init().

## ◆ m32r_read_pc()

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

Definition at line 653 of file m32r-tdep.c.

References M32R_PC_REGNUM, and regcache_cooked_read_unsigned().

Referenced by m32r_gdbarch_init().

## ◆ m32r_register_name()

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

Definition at line 214 of file m32r-tdep.c.

References M32R_NUM_REGS, and m32r_register_names.

Referenced by m32r_gdbarch_init().

## ◆ m32r_register_type()

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

Definition at line 228 of file m32r-tdep.c.

References builtin_type::builtin_data_ptr, builtin_type::builtin_func_ptr, builtin_type::builtin_int32, builtin_type(), M32R_FP_REGNUM, M32R_PC_REGNUM, and M32R_SP_REGNUM.

Referenced by m32r_gdbarch_init().

## ◆ m32r_return_value()

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

Definition at line 793 of file m32r-tdep.c.

References m32r_extract_return_value(), m32r_store_return_value(), RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, and TYPE_LENGTH.

Referenced by m32r_gdbarch_init().

## ◆ m32r_skip_prologue()

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

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

References gdbarch::byte_order, decode_prologue(), DEFAULT_SEARCH_LIMIT, symtab_and_line::end, find_pc_line(), find_pc_partial_function(), gdbarch_byte_order(), symtab_and_line::line, symtab_and_line::pc, and safe_read_memory_integer().

Referenced by m32r_gdbarch_init().

## ◆ m32r_store_return_value()

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

Definition at line 245 of file m32r-tdep.c.

References regcache::arch(), gdbarch::byte_order, extract_unsigned_integer(), gdbarch_byte_order(), regcache_cooked_write_unsigned(), RET1_REGNUM, and TYPE_LENGTH.

Referenced by m32r_return_value().

## ◆ m32r_sw_breakpoint_from_kind()

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

Definition at line 183 of file m32r-tdep.c.

References gdbarch_byte_order(), and size.

Referenced by m32r_gdbarch_init().

## ◆ m32r_unwind_pc()

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

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

References frame_unwind_register_unsigned(), and M32R_PC_REGNUM.

Referenced by m32r_gdbarch_init().

## ◆ m32r_unwind_sp()

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

Definition at line 661 of file m32r-tdep.c.

References frame_unwind_register_unsigned(), and M32R_SP_REGNUM.

Referenced by m32r_gdbarch_init().

## Variable Documentation

## ◆ m32r_frame_base

const struct frame_base m32r_frame_base
| static

Initial value:
= {
&m32r_frame_unwind,
m32r_frame_base_address,
m32r_frame_base_address,
m32r_frame_base_address
}
m32r_frame_unwind
static const struct frame_unwind m32r_frame_unwind
Definition: m32r-tdep.c:859
m32r_frame_base_address
static CORE_ADDR m32r_frame_base_address(struct frame_info *this_frame, void **this_cache)
Definition: m32r-tdep.c:869

Definition at line 876 of file m32r-tdep.c.

Referenced by m32r_gdbarch_init().

## ◆ m32r_frame_unwind

const struct frame_unwind m32r_frame_unwind
| static

Initial value:
= {
NORMAL_FRAME,
default_frame_unwind_stop_reason,
m32r_frame_this_id,
m32r_frame_prev_register,
NULL,
default_frame_sniffer
}
NORMAL_FRAME
Definition: frame.h:244
m32r_frame_prev_register
static struct value * m32r_frame_prev_register(struct frame_info *this_frame, void **this_prologue_cache, int regnum)
Definition: m32r-tdep.c:851
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
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
m32r_frame_this_id
static void m32r_frame_this_id(struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
Definition: m32r-tdep.c:821

Definition at line 859 of file m32r-tdep.c.

Referenced by m32r_gdbarch_init().

## ◆ m32r_gdbarch_init

gdbarch_init_ftype m32r_gdbarch_init
| static

Definition at line 895 of file m32r-tdep.c.

Referenced by _initialize_m32r_tdep().

## ◆ m32r_register_names

const char* m32r_register_names[]
| static

Initial value:
= {
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
"r8", "r9", "r10", "r11", "r12", "fp", "lr", "sp",
"psw", "cbr", "spi", "spu", "bpc", "pc", "accl", "acch",
"evb"
}

Definition at line 206 of file m32r-tdep.c.

Referenced by m32r_register_name().