GDB (xrefs)
|
#include "defs.h"
#include "gdbcore.h"
#include "gdb_string.h"
#include "regcache.h"
#include "mn10300-tdep.h"
#include "gdb_assert.h"
#include "bfd.h"
#include "elf-bfd.h"
#include "osabi.h"
#include "regset.h"
#include "solib-svr4.h"
#include "frame.h"
#include "trad-frame.h"
#include "tramp-frame.h"
#include "linux-tdep.h"
#include <stdlib.h>
Go to the source code of this file.
#define AM33_SIGCONTEXT_A0 16 |
Definition at line 592 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_A1 20 |
Definition at line 593 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_A2 24 |
Definition at line 594 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_A3 28 |
Definition at line 595 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_D0 0 |
Definition at line 588 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_D1 4 |
Definition at line 589 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_D2 8 |
Definition at line 590 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_D3 12 |
Definition at line 591 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_E0 32 |
Definition at line 596 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_E1 36 |
Definition at line 597 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_E2 40 |
Definition at line 598 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_E3 44 |
Definition at line 599 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_E4 48 |
Definition at line 600 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_E5 52 |
Definition at line 601 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_E6 56 |
Definition at line 602 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_E7 60 |
Definition at line 603 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_EPSW 96 |
Definition at line 612 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_FPUCONTEXT 104 |
Definition at line 614 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_LAR 64 |
Definition at line 604 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_LIR 68 |
Definition at line 605 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_MCRH 84 |
Definition at line 609 of file mn10300-linux-tdep.c.
#define AM33_SIGCONTEXT_MCRL 80 |
Definition at line 608 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_MCVF 76 |
Definition at line 607 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_MDR 72 |
Definition at line 606 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_MDRQ 88 |
Definition at line 610 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_PC 100 |
Definition at line 613 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define AM33_SIGCONTEXT_SP 92 |
Definition at line 611 of file mn10300-linux-tdep.c.
Referenced by am33_linux_sigframe_cache_init().
#define MN10300_ELF_GREGSET_T_REG_INDEX_A0 21 |
Definition at line 74 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_A1 20 |
Definition at line 73 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_A2 1 |
Definition at line 54 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_A3 0 |
Definition at line 53 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_D0 23 |
Definition at line 76 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_D1 22 |
Definition at line 75 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_D2 3 |
Definition at line 56 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_D3 2 |
Definition at line 55 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_E0 9 |
Definition at line 62 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_E1 8 |
Definition at line 61 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_E2 15 |
Definition at line 68 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_E3 14 |
Definition at line 67 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_E4 13 |
Definition at line 66 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_E5 12 |
Definition at line 65 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_E6 11 |
Definition at line 64 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_E7 10 |
Definition at line 63 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_EPSW 25 |
Definition at line 78 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_LAR 17 |
Definition at line 70 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_LIR 18 |
Definition at line 71 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_MCRH 6 |
Definition at line 59 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_MCRL 5 |
Definition at line 58 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_MCVF 4 |
Definition at line 57 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_MDR 19 |
Definition at line 72 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_MDRQ 7 |
Definition at line 60 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_ORIG_D0 24 |
Definition at line 77 of file mn10300-linux-tdep.c.
#define MN10300_ELF_GREGSET_T_REG_INDEX_PC 26 |
Definition at line 79 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_GREGSET_T_REG_INDEX_SP 16 |
Definition at line 69 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
#define MN10300_ELF_NFPREG 32 |
Definition at line 40 of file mn10300-linux-tdep.c.
Referenced by am33_collect_fpregset_method(), and am33_supply_fpregset_method().
#define MN10300_ELF_NGREG 28 |
Definition at line 39 of file mn10300-linux-tdep.c.
Referenced by am33_collect_gregset_method(), and am33_supply_gregset_method().
typedef gdb_byte mn10300_elf_fpreg_t[4] |
Definition at line 45 of file mn10300-linux-tdep.c.
typedef gdb_byte mn10300_elf_greg_t[4] |
Definition at line 42 of file mn10300-linux-tdep.c.
Definition at line 43 of file mn10300-linux-tdep.c.
void _initialize_mn10300_linux_tdep | ( | void | ) |
Definition at line 731 of file mn10300-linux-tdep.c.
References _initialize_mn10300_linux_tdep, am33_linux_init_osabi(), GDB_OSABI_LINUX, and gdbarch_register_osabi().
static void am33_collect_fpregset_method | ( | const struct regset * | regset, |
const struct regcache * | regcache, | ||
int | regnum, | ||
void * | fpregs, | ||
size_t | len | ||
) | [static] |
Definition at line 426 of file mn10300-linux-tdep.c.
References E_FPCR_REGNUM, E_FS0_REGNUM, mn10300_elf_fpregset_t::fpcr, mn10300_elf_fpregset_t::fpregs, gdb_assert, MN10300_ELF_NFPREG, and regcache_raw_collect().
Referenced by am33_regset_from_core_section().
static void am33_collect_gregset_method | ( | const struct regset * | regset, |
const struct regcache * | regcache, | ||
int | regnum, | ||
void * | gregs, | ||
size_t | len | ||
) | [static] |
Definition at line 278 of file mn10300-linux-tdep.c.
References E_A0_REGNUM, E_A1_REGNUM, E_A2_REGNUM, E_A3_REGNUM, E_D0_REGNUM, E_D1_REGNUM, E_D2_REGNUM, E_D3_REGNUM, E_E0_REGNUM, E_E10_REGNUM, E_E1_REGNUM, E_E2_REGNUM, E_E3_REGNUM, E_E4_REGNUM, E_E5_REGNUM, E_E6_REGNUM, E_E7_REGNUM, E_E8_REGNUM, E_E9_REGNUM, E_FPCR_REGNUM, E_LAR_REGNUM, E_LIR_REGNUM, E_MCRH_REGNUM, E_MCRL_REGNUM, E_MCVF_REGNUM, E_MDR_REGNUM, E_MDRQ_REGNUM, E_PC_REGNUM, E_PSW_REGNUM, E_SP_REGNUM, gdb_assert, MN10300_ELF_GREGSET_T_REG_INDEX_A0, MN10300_ELF_GREGSET_T_REG_INDEX_A1, MN10300_ELF_GREGSET_T_REG_INDEX_A2, MN10300_ELF_GREGSET_T_REG_INDEX_A3, MN10300_ELF_GREGSET_T_REG_INDEX_D0, MN10300_ELF_GREGSET_T_REG_INDEX_D1, MN10300_ELF_GREGSET_T_REG_INDEX_D2, MN10300_ELF_GREGSET_T_REG_INDEX_D3, MN10300_ELF_GREGSET_T_REG_INDEX_E0, MN10300_ELF_GREGSET_T_REG_INDEX_E1, MN10300_ELF_GREGSET_T_REG_INDEX_E2, MN10300_ELF_GREGSET_T_REG_INDEX_E3, MN10300_ELF_GREGSET_T_REG_INDEX_E4, MN10300_ELF_GREGSET_T_REG_INDEX_E5, MN10300_ELF_GREGSET_T_REG_INDEX_E6, MN10300_ELF_GREGSET_T_REG_INDEX_E7, MN10300_ELF_GREGSET_T_REG_INDEX_EPSW, MN10300_ELF_GREGSET_T_REG_INDEX_LAR, MN10300_ELF_GREGSET_T_REG_INDEX_LIR, MN10300_ELF_GREGSET_T_REG_INDEX_MCRH, MN10300_ELF_GREGSET_T_REG_INDEX_MCRL, MN10300_ELF_GREGSET_T_REG_INDEX_MCVF, MN10300_ELF_GREGSET_T_REG_INDEX_MDR, MN10300_ELF_GREGSET_T_REG_INDEX_MDRQ, MN10300_ELF_GREGSET_T_REG_INDEX_PC, MN10300_ELF_GREGSET_T_REG_INDEX_SP, MN10300_ELF_NGREG, and regcache_raw_collect().
Referenced by am33_regset_from_core_section().
static void am33_linux_init_osabi | ( | struct gdbarch_info | info, |
struct gdbarch * | gdbarch | ||
) | [static] |
Definition at line 714 of file mn10300-linux-tdep.c.
References am33_regset_from_core_section(), linux_init_abi(), set_gdbarch_regset_from_core_section(), set_solib_svr4_fetch_link_map_offsets(), svr4_ilp32_fetch_link_map_offsets(), and tramp_frame_prepend_unwinder().
Referenced by _initialize_mn10300_linux_tdep().
static void am33_linux_sigframe_cache_init | ( | const struct tramp_frame * | self, |
struct frame_info * | this_frame, | ||
struct trad_frame_cache * | this_cache, | ||
CORE_ADDR | func | ||
) | [static] |
Definition at line 618 of file mn10300-linux-tdep.c.
References AM33_SIGCONTEXT_A0, AM33_SIGCONTEXT_A1, AM33_SIGCONTEXT_A2, AM33_SIGCONTEXT_A3, AM33_SIGCONTEXT_D0, AM33_SIGCONTEXT_D1, AM33_SIGCONTEXT_D2, AM33_SIGCONTEXT_D3, AM33_SIGCONTEXT_E0, AM33_SIGCONTEXT_E1, AM33_SIGCONTEXT_E2, AM33_SIGCONTEXT_E3, AM33_SIGCONTEXT_E4, AM33_SIGCONTEXT_E5, AM33_SIGCONTEXT_E6, AM33_SIGCONTEXT_E7, AM33_SIGCONTEXT_EPSW, AM33_SIGCONTEXT_FPUCONTEXT, AM33_SIGCONTEXT_LAR, AM33_SIGCONTEXT_LIR, AM33_SIGCONTEXT_MCRL, AM33_SIGCONTEXT_MCVF, AM33_SIGCONTEXT_MDR, AM33_SIGCONTEXT_MDRQ, AM33_SIGCONTEXT_PC, AM33_SIGCONTEXT_SP, E_A0_REGNUM, E_A1_REGNUM, E_A2_REGNUM, E_A3_REGNUM, E_D0_REGNUM, E_D1_REGNUM, E_D2_REGNUM, E_D3_REGNUM, E_E0_REGNUM, E_E1_REGNUM, E_E2_REGNUM, E_E3_REGNUM, E_E4_REGNUM, E_E5_REGNUM, E_E6_REGNUM, E_E7_REGNUM, E_FPCR_REGNUM, E_FS0_REGNUM, E_LAR_REGNUM, E_LIR_REGNUM, E_MCRL_REGNUM, E_MCVF_REGNUM, E_MDR_REGNUM, E_MDRQ_REGNUM, E_PC_REGNUM, E_PSW_REGNUM, E_SP_REGNUM, frame_id_build(), get_frame_memory_unsigned(), get_frame_register_unsigned(), trad_frame_set_id(), and trad_frame_set_reg_addr().
static struct regset* am33_regset_from_core_section | ( | struct gdbarch * | gdbarch, |
const char * | sect_name, | ||
size_t | sect_size | ||
) | [static, read] |
Definition at line 457 of file mn10300-linux-tdep.c.
References am33_collect_fpregset_method(), am33_collect_gregset_method(), am33_supply_fpregset_method(), am33_supply_gregset_method(), and regset_alloc().
Referenced by am33_linux_init_osabi().
static void am33_supply_fpregset_method | ( | const struct regset * | regset, |
struct regcache * | regcache, | ||
int | regnum, | ||
const void * | fpregs, | ||
size_t | len | ||
) | [static] |
Definition at line 246 of file mn10300-linux-tdep.c.
References E_FPCR_REGNUM, E_FS0_REGNUM, mn10300_elf_fpregset_t::fpcr, mn10300_elf_fpregset_t::fpregs, gdb_assert, MN10300_ELF_NFPREG, and regcache_raw_supply().
Referenced by am33_regset_from_core_section().
static void am33_supply_gregset_method | ( | const struct regset * | regset, |
struct regcache * | regcache, | ||
int | regnum, | ||
const void * | gregs, | ||
size_t | len | ||
) | [static] |
Definition at line 89 of file mn10300-linux-tdep.c.
References E_A0_REGNUM, E_A1_REGNUM, E_A2_REGNUM, E_A3_REGNUM, E_D0_REGNUM, E_D1_REGNUM, E_D2_REGNUM, E_D3_REGNUM, E_E0_REGNUM, E_E10_REGNUM, E_E1_REGNUM, E_E2_REGNUM, E_E3_REGNUM, E_E4_REGNUM, E_E5_REGNUM, E_E6_REGNUM, E_E7_REGNUM, E_E8_REGNUM, E_E9_REGNUM, E_FPCR_REGNUM, E_LAR_REGNUM, E_LIR_REGNUM, E_MCRH_REGNUM, E_MCRL_REGNUM, E_MCVF_REGNUM, E_MDR_REGNUM, E_MDRQ_REGNUM, E_PC_REGNUM, E_PSW_REGNUM, E_SP_REGNUM, gdb_assert, MAX_REGISTER_SIZE, memset(), MN10300_ELF_GREGSET_T_REG_INDEX_A0, MN10300_ELF_GREGSET_T_REG_INDEX_A1, MN10300_ELF_GREGSET_T_REG_INDEX_A2, MN10300_ELF_GREGSET_T_REG_INDEX_A3, MN10300_ELF_GREGSET_T_REG_INDEX_D0, MN10300_ELF_GREGSET_T_REG_INDEX_D1, MN10300_ELF_GREGSET_T_REG_INDEX_D2, MN10300_ELF_GREGSET_T_REG_INDEX_D3, MN10300_ELF_GREGSET_T_REG_INDEX_E0, MN10300_ELF_GREGSET_T_REG_INDEX_E1, MN10300_ELF_GREGSET_T_REG_INDEX_E2, MN10300_ELF_GREGSET_T_REG_INDEX_E3, MN10300_ELF_GREGSET_T_REG_INDEX_E4, MN10300_ELF_GREGSET_T_REG_INDEX_E5, MN10300_ELF_GREGSET_T_REG_INDEX_E6, MN10300_ELF_GREGSET_T_REG_INDEX_E7, MN10300_ELF_GREGSET_T_REG_INDEX_EPSW, MN10300_ELF_GREGSET_T_REG_INDEX_LAR, MN10300_ELF_GREGSET_T_REG_INDEX_LIR, MN10300_ELF_GREGSET_T_REG_INDEX_MCRH, MN10300_ELF_GREGSET_T_REG_INDEX_MCRL, MN10300_ELF_GREGSET_T_REG_INDEX_MCVF, MN10300_ELF_GREGSET_T_REG_INDEX_MDR, MN10300_ELF_GREGSET_T_REG_INDEX_MDRQ, MN10300_ELF_GREGSET_T_REG_INDEX_PC, MN10300_ELF_GREGSET_T_REG_INDEX_SP, MN10300_ELF_NGREG, and regcache_raw_supply().
Referenced by am33_regset_from_core_section().
Referenced by _initialize_mn10300_linux_tdep(), and initialize_all_files().
struct tramp_frame am33_linux_rt_sigframe [static] |
{ SIGTRAMP_FRAME, 1, { { 0x2c, -1 }, { 0xad, -1 }, { 0x00, -1 }, { 0xf0, -1 }, { 0xe0, -1 }, { TRAMP_SENTINEL_INSN, -1 } }, am33_linux_sigframe_cache_init }
Definition at line 496 of file mn10300-linux-tdep.c.
struct tramp_frame am33_linux_sigframe [static] |
{ SIGTRAMP_FRAME, 1, { { 0x2c, -1 }, { 0x77, -1 }, { 0x00, -1 }, { 0xf0, -1 }, { 0xe0, -1 }, { TRAMP_SENTINEL_INSN, -1 } }, am33_linux_sigframe_cache_init }
Definition at line 480 of file mn10300-linux-tdep.c.