GDB (xrefs)
|
#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 "gdb_string.h"
#include "value.h"
#include "inferior.h"
#include "dis-asm.h"
#include "symfile.h"
#include "objfiles.h"
#include "language.h"
#include "arch-utils.h"
#include "regcache.h"
#include "remote.h"
#include "floatformat.h"
#include "sim-regno.h"
#include "disasm.h"
#include "trad-frame.h"
#include "reggroups.h"
#include "elf-bfd.h"
#include "elf/mep.h"
#include "prologue-value.h"
#include "cgen/bitset.h"
#include "infcall.h"
#include "gdb_assert.h"
#include "opcodes/mep-desc.h"
#include "opcodes/mep-opc.h"
Go to the source code of this file.
Classes | |
struct | gdbarch_tdep |
struct | mep_csr_register |
struct | mep_prologue |
Defines | |
#define | IN_SET(set, n) (MEP_FIRST_ ## set ## _REGNUM <= (n) && (n) <= MEP_LAST_ ## set ## _REGNUM) |
#define | IS_GPR_REGNUM(n) (IN_SET (GPR, (n))) |
#define | IS_RAW_CSR_REGNUM(n) (IN_SET (RAW_CSR, (n))) |
#define | IS_RAW_CR_REGNUM(n) (IN_SET (RAW_CR, (n))) |
#define | IS_RAW_CCR_REGNUM(n) (IN_SET (RAW_CCR, (n))) |
#define | IS_CSR_REGNUM(n) (IN_SET (CSR, (n))) |
#define | IS_CR32_REGNUM(n) (IN_SET (CR32, (n))) |
#define | IS_FP_CR32_REGNUM(n) (IN_SET (FP_CR32, (n))) |
#define | IS_CR64_REGNUM(n) (IN_SET (CR64, (n))) |
#define | IS_FP_CR64_REGNUM(n) (IN_SET (FP_CR64, (n))) |
#define | IS_CR_REGNUM(n) |
#define | IS_CCR_REGNUM(n) (IN_SET (CCR, (n))) |
#define | IS_RAW_REGNUM(n) (IN_SET (RAW, (n))) |
#define | IS_PSEUDO_REGNUM(n) (IN_SET (PSEUDO, (n))) |
#define | NUM_REGS_IN_SET(set) (MEP_LAST_ ## set ## _REGNUM - MEP_FIRST_ ## set ## _REGNUM + 1) |
#define | MEP_GPR_SIZE (4) /* Size of a MeP general-purpose register. */ |
#define | MEP_PSW_SIZE (4) /* Size of the PSW register. */ |
#define | MEP_LP_SIZE (4) /* Size of the LP register. */ |
#define | CSR(name) MEP_RAW_ ## name ## _REGNUM, MEP_ ## name ## _REGNUM |
#define | SEXT(n, len) ((((int) (n)) ^ (1 << ((len) - 1))) - (1 << ((len) - 1))) |
#define | FIELD(i, pos, len) (((i) >> (pos)) & ((1 << (len)) - 1)) |
#define | SFIELD(i, pos, len) (SEXT (FIELD ((i), (pos), (len)), (len))) |
#define | IS_SW(i) (((i) & 0xf00f0000) == 0xc00a0000) |
#define | IS_SB(i) (((i) & 0xf00f0000) == 0xc0080000) |
#define | IS_SH(i) (((i) & 0xf00f0000) == 0xc0090000) |
#define | SWBH_32_BASE(i) (FIELD (i, 20, 4)) |
#define | SWBH_32_SOURCE(i) (FIELD (i, 24, 4)) |
#define | SWBH_32_OFFSET(i) (SFIELD (i, 0, 16)) |
#define | IS_SW_IMMD(i) (((i) & 0xf0830000) == 0x40020000) |
#define | SW_IMMD_SOURCE(i) (FIELD (i, 24, 4)) |
#define | SW_IMMD_OFFSET(i) (FIELD (i, 18, 5) << 2) |
#define | IS_SW_REG(i) (((i) & 0xf00f0000) == 0x000a0000) |
#define | SW_REG_SOURCE(i) (FIELD (i, 24, 4)) |
#define | SW_REG_BASE(i) (FIELD (i, 20, 4)) |
#define | IS_ADD3_16_REG(i) (((i) & 0xf0000000) == 0x90000000) |
#define | ADD3_16_REG_SRC1(i) (FIELD (i, 20, 4)) /* n */ |
#define | ADD3_16_REG_SRC2(i) (FIELD (i, 24, 4)) /* m */ |
#define | IS_ADD3_32(i) (((i) & 0xf00f0000) == 0xc0000000) |
#define | ADD3_32_TARGET(i) (FIELD (i, 24, 4)) |
#define | ADD3_32_SOURCE(i) (FIELD (i, 20, 4)) |
#define | ADD3_32_OFFSET(i) (SFIELD (i, 0, 16)) |
#define | IS_ADD3_16(i) (((i) & 0xf0830000) == 0x40000000) |
#define | ADD3_16_TARGET(i) (FIELD (i, 24, 4)) |
#define | ADD3_16_OFFSET(i) (FIELD (i, 18, 5) << 2) |
#define | IS_ADD(i) (((i) & 0xf0030000) == 0x60000000) |
#define | ADD_TARGET(i) (FIELD (i, 24, 4)) |
#define | ADD_OFFSET(i) (SFIELD (i, 18, 6)) |
#define | IS_LDC(i) (((i) & 0xf00e0000) == 0x700a0000) |
#define | LDC_IMM(i) ((FIELD (i, 16, 1) << 4) | FIELD (i, 20, 4)) |
#define | LDC_TARGET(i) (FIELD (i, 24, 4)) |
#define | IS_LW(i) (((i) & 0xf00f0000) == 0xc00e0000) |
#define | LW_TARGET(i) (FIELD (i, 24, 4)) |
#define | LW_BASE(i) (FIELD (i, 20, 4)) |
#define | LW_OFFSET(i) (SFIELD (i, 0, 16)) |
#define | IS_MOV(i) (((i) & 0xf00f0000) == 0x00000000) |
#define | MOV_TARGET(i) (FIELD (i, 24, 4)) |
#define | MOV_SOURCE(i) (FIELD (i, 20, 4)) |
#define | IS_BRA(i) (((i) & 0xf0010000) == 0xb0000000) |
#define | BRA_DISP(i) (SFIELD (i, 17, 11) << 1) |
Enumerations | |
enum | { MEP_OPT_DIV = 1 << 25, MEP_OPT_MUL = 1 << 24, MEP_OPT_BIT = 1 << 23, MEP_OPT_SAT = 1 << 22, MEP_OPT_CLP = 1 << 21, MEP_OPT_MIN = 1 << 20, MEP_OPT_AVE = 1 << 19, MEP_OPT_ABS = 1 << 18, MEP_OPT_LDZ = 1 << 16, MEP_OPT_VL64 = 1 << 6, MEP_OPT_VL32 = 1 << 5, MEP_OPT_COP = 1 << 4, MEP_OPT_DSP = 1 << 2, MEP_OPT_UCI = 1 << 1, MEP_OPT_DBG = 1 << 0 } |
enum | { MEP_FIRST_RAW_REGNUM = 0, MEP_FIRST_GPR_REGNUM = 0, MEP_R0_REGNUM = 0, MEP_R1_REGNUM = 1, MEP_R2_REGNUM = 2, MEP_R3_REGNUM = 3, MEP_R4_REGNUM = 4, MEP_R5_REGNUM = 5, MEP_R6_REGNUM = 6, MEP_R7_REGNUM = 7, MEP_R8_REGNUM = 8, MEP_R9_REGNUM = 9, MEP_R10_REGNUM = 10, MEP_R11_REGNUM = 11, MEP_R12_REGNUM = 12, MEP_FP_REGNUM = MEP_R8_REGNUM, MEP_R13_REGNUM = 13, MEP_TP_REGNUM = MEP_R13_REGNUM, MEP_R14_REGNUM = 14, MEP_GP_REGNUM = MEP_R14_REGNUM, MEP_R15_REGNUM = 15, MEP_SP_REGNUM = MEP_R15_REGNUM, MEP_LAST_GPR_REGNUM = MEP_R15_REGNUM, MEP_FIRST_RAW_CSR_REGNUM = 16, MEP_RAW_PC_REGNUM = 16, MEP_RAW_LP_REGNUM = 17, MEP_RAW_SAR_REGNUM = 18, MEP_RAW_CSR3_REGNUM = 19, MEP_RAW_RPB_REGNUM = 20, MEP_RAW_RPE_REGNUM = 21, MEP_RAW_RPC_REGNUM = 22, MEP_RAW_HI_REGNUM = 23, MEP_RAW_LO_REGNUM = 24, MEP_RAW_CSR9_REGNUM = 25, MEP_RAW_CSR10_REGNUM = 26, MEP_RAW_CSR11_REGNUM = 27, MEP_RAW_MB0_REGNUM = 28, MEP_RAW_ME0_REGNUM = 29, MEP_RAW_MB1_REGNUM = 30, MEP_RAW_ME1_REGNUM = 31, MEP_RAW_PSW_REGNUM = 32, MEP_RAW_ID_REGNUM = 33, MEP_RAW_TMP_REGNUM = 34, MEP_RAW_EPC_REGNUM = 35, MEP_RAW_EXC_REGNUM = 36, MEP_RAW_CFG_REGNUM = 37, MEP_RAW_CSR22_REGNUM = 38, MEP_RAW_NPC_REGNUM = 39, MEP_RAW_DBG_REGNUM = 40, MEP_RAW_DEPC_REGNUM = 41, MEP_RAW_OPT_REGNUM = 42, MEP_RAW_RCFG_REGNUM = 43, MEP_RAW_CCFG_REGNUM = 44, MEP_RAW_CSR29_REGNUM = 45, MEP_RAW_CSR30_REGNUM = 46, MEP_RAW_CSR31_REGNUM = 47, MEP_LAST_RAW_CSR_REGNUM = MEP_RAW_CSR31_REGNUM, MEP_FIRST_RAW_CR_REGNUM = 48, MEP_LAST_RAW_CR_REGNUM = MEP_FIRST_RAW_CR_REGNUM + 31, MEP_FIRST_RAW_CCR_REGNUM = 80, MEP_LAST_RAW_CCR_REGNUM = MEP_FIRST_RAW_CCR_REGNUM + 63, MEP_MODULE_REGNUM, MEP_LAST_RAW_REGNUM = MEP_MODULE_REGNUM, MEP_NUM_RAW_REGS = MEP_LAST_RAW_REGNUM + 1, MEP_FIRST_PSEUDO_REGNUM = MEP_NUM_RAW_REGS, MEP_FIRST_CSR_REGNUM = MEP_FIRST_PSEUDO_REGNUM, MEP_PC_REGNUM = MEP_FIRST_CSR_REGNUM, MEP_LP_REGNUM, MEP_SAR_REGNUM, MEP_CSR3_REGNUM, MEP_RPB_REGNUM, MEP_RPE_REGNUM, MEP_RPC_REGNUM, MEP_HI_REGNUM, MEP_LO_REGNUM, MEP_CSR9_REGNUM, MEP_CSR10_REGNUM, MEP_CSR11_REGNUM, MEP_MB0_REGNUM, MEP_ME0_REGNUM, MEP_MB1_REGNUM, MEP_ME1_REGNUM, MEP_PSW_REGNUM, MEP_ID_REGNUM, MEP_TMP_REGNUM, MEP_EPC_REGNUM, MEP_EXC_REGNUM, MEP_CFG_REGNUM, MEP_CSR22_REGNUM, MEP_NPC_REGNUM, MEP_DBG_REGNUM, MEP_DEPC_REGNUM, MEP_OPT_REGNUM, MEP_RCFG_REGNUM, MEP_CCFG_REGNUM, MEP_CSR29_REGNUM, MEP_CSR30_REGNUM, MEP_CSR31_REGNUM, MEP_LAST_CSR_REGNUM = MEP_CSR31_REGNUM, MEP_FIRST_CR32_REGNUM, MEP_LAST_CR32_REGNUM = MEP_FIRST_CR32_REGNUM + 31, MEP_FIRST_FP_CR32_REGNUM, MEP_LAST_FP_CR32_REGNUM = MEP_FIRST_FP_CR32_REGNUM + 31, MEP_FIRST_CR64_REGNUM, MEP_LAST_CR64_REGNUM = MEP_FIRST_CR64_REGNUM + 31, MEP_FIRST_FP_CR64_REGNUM, MEP_LAST_FP_CR64_REGNUM = MEP_FIRST_FP_CR64_REGNUM + 31, MEP_FIRST_CCR_REGNUM, MEP_LAST_CCR_REGNUM = MEP_FIRST_CCR_REGNUM + 63, MEP_LAST_PSEUDO_REGNUM = MEP_LAST_CCR_REGNUM, MEP_NUM_PSEUDO_REGS = (MEP_LAST_PSEUDO_REGNUM - MEP_LAST_RAW_REGNUM), MEP_NUM_REGS = MEP_NUM_RAW_REGS + MEP_NUM_PSEUDO_REGS } |
Functions | |
static const CGEN_HW_ENTRY * | find_hw_entry_by_prefix_and_isa (CGEN_CPU_DESC desc, const char *prefix, CGEN_BITSET *copro_isa_mask, CGEN_BITSET *generic_isa_mask) |
static const CGEN_HW_ENTRY * | find_hw_entry_by_type (CGEN_CPU_DESC desc, CGEN_HW_TYPE type) |
static const CGEN_HW_ENTRY * | me_module_register_set (CONFIG_ATTR me_module, const char *prefix, CGEN_HW_TYPE generic_type) |
static CGEN_KEYWORD * | register_set_keyword_table (const CGEN_HW_ENTRY *hw) |
static char * | register_name_from_keyword (CGEN_KEYWORD *keyword_table, int regnum) |
static unsigned int | opt_from_option_mask (unsigned int option_mask) |
static unsigned int | me_module_opt (CONFIG_ATTR me_module) |
static int | me_module_cop_data_bus_width (CONFIG_ATTR me_module) |
static int | me_module_big_endian (CONFIG_ATTR me_module) |
static const char * | me_module_name (CONFIG_ATTR me_module) |
static void | mep_init_pseudoregister_maps (void) |
static int | mep_debug_reg_to_regnum (struct gdbarch *gdbarch, int debug_reg) |
static int | mep_pseudo_cr_size (int pseudo) |
static int | mep_pseudo_cr_is_float (int pseudo) |
static int | mep_pseudo_cr_index (int pseudo) |
static CONFIG_ATTR | current_me_module (void) |
static unsigned int | current_options (void) |
static int | current_cop_data_bus_width (void) |
static CGEN_KEYWORD * | current_cr_names (void) |
static int | current_cr_is_float (void) |
static CGEN_KEYWORD * | current_ccr_names (void) |
static const char * | mep_register_name (struct gdbarch *gdbarch, int regnr) |
static int | mep_register_reggroup_p (struct gdbarch *gdbarch, int regnum, struct reggroup *group) |
static struct type * | mep_register_type (struct gdbarch *gdbarch, int reg_nr) |
static CORE_ADDR | mep_read_pc (struct regcache *regcache) |
static enum register_status | mep_pseudo_cr32_read (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, void *buf) |
static enum register_status | mep_pseudo_cr64_read (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, void *buf) |
static enum register_status | mep_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, gdb_byte *buf) |
static void | mep_pseudo_csr_write (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, const void *buf) |
static void | mep_pseudo_cr32_write (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, const void *buf) |
static void | mep_pseudo_cr64_write (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, const void *buf) |
static void | mep_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, const gdb_byte *buf) |
static int | mep_gdb_print_insn (bfd_vma pc, disassemble_info *info) |
static int | mep_pc_in_vliw_section (CORE_ADDR pc) |
static CORE_ADDR | mep_get_insn (struct gdbarch *gdbarch, CORE_ADDR pc, unsigned long *insn) |
static int | is_arg_reg (pv_t value) |
static int | is_arg_spill (struct gdbarch *gdbarch, pv_t value, pv_t addr, struct pv_area *stack) |
static void | check_for_saved (void *result_untyped, pv_t addr, CORE_ADDR size, pv_t value) |
static void | mep_analyze_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc, CORE_ADDR limit_pc, struct mep_prologue *result) |
static CORE_ADDR | mep_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc) |
static const unsigned char * | mep_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr) |
static struct mep_prologue * | mep_analyze_frame_prologue (struct frame_info *this_frame, void **this_prologue_cache) |
static CORE_ADDR | mep_frame_base (struct frame_info *this_frame, void **this_prologue_cache) |
static void | mep_frame_this_id (struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id) |
static struct value * | mep_frame_prev_register (struct frame_info *this_frame, void **this_prologue_cache, int regnum) |
static CORE_ADDR | mep_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame) |
static CORE_ADDR | mep_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame) |
static int | mep_use_struct_convention (struct type *type) |
static void | mep_extract_return_value (struct gdbarch *arch, struct type *type, struct regcache *regcache, gdb_byte *valbuf) |
static void | mep_store_return_value (struct gdbarch *arch, struct type *type, struct regcache *regcache, const gdb_byte *valbuf) |
static enum return_value_convention | mep_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf) |
static CORE_ADDR | mep_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp) |
static CORE_ADDR | push_large_arguments (CORE_ADDR sp, int argc, struct value **argv, CORE_ADDR copy[]) |
static CORE_ADDR | mep_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int argc, struct value **argv, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr) |
static struct frame_id | mep_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame) |
static struct gdbarch * | mep_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) |
void | _initialize_mep_tdep (void) |
Variables | |
struct mep_csr_register | mep_csr_registers [] |
static int | mep_raw_to_pseudo [MEP_NUM_REGS] |
static int | mep_pseudo_to_raw [MEP_NUM_REGS] |
static struct reggroup * | mep_csr_reggroup |
static struct reggroup * | mep_cr_reggroup |
static struct reggroup * | mep_ccr_reggroup |
static struct frame_unwind | mep_frame_unwind |
initialize_file_ftype | _initialize_mep_tdep |
#define ADD3_16_OFFSET | ( | i | ) | (FIELD (i, 18, 5) << 2) |
Definition at line 1558 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define ADD3_16_REG_SRC1 | ( | i | ) | (FIELD (i, 20, 4)) /* n */ |
Definition at line 1546 of file mep-tdep.c.
#define ADD3_16_REG_SRC2 | ( | i | ) | (FIELD (i, 24, 4)) /* m */ |
Definition at line 1547 of file mep-tdep.c.
#define ADD3_16_TARGET | ( | i | ) | (FIELD (i, 24, 4)) |
Definition at line 1557 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define ADD3_32_OFFSET | ( | i | ) | (SFIELD (i, 0, 16)) |
Definition at line 1553 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define ADD3_32_SOURCE | ( | i | ) | (FIELD (i, 20, 4)) |
Definition at line 1552 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define ADD3_32_TARGET | ( | i | ) | (FIELD (i, 24, 4)) |
Definition at line 1551 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define ADD_OFFSET | ( | i | ) | (SFIELD (i, 18, 6)) |
Definition at line 1563 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define ADD_TARGET | ( | i | ) | (FIELD (i, 24, 4)) |
Definition at line 1562 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
Definition at line 1584 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
Definition at line 667 of file mep-tdep.c.
Referenced by mep_init_pseudoregister_maps().
Definition at line 1506 of file mep-tdep.c.
#define IN_SET | ( | set, | |
n | |||
) | (MEP_FIRST_ ## set ## _REGNUM <= (n) && (n) <= MEP_LAST_ ## set ## _REGNUM) |
Definition at line 617 of file mep-tdep.c.
#define IS_ADD | ( | i | ) | (((i) & 0xf0030000) == 0x60000000) |
Definition at line 1561 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define IS_ADD3_16 | ( | i | ) | (((i) & 0xf0830000) == 0x40000000) |
Definition at line 1556 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define IS_ADD3_16_REG | ( | i | ) | (((i) & 0xf0000000) == 0x90000000) |
Definition at line 1545 of file mep-tdep.c.
#define IS_ADD3_32 | ( | i | ) | (((i) & 0xf00f0000) == 0xc0000000) |
Definition at line 1550 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define IS_BRA | ( | i | ) | (((i) & 0xf0010000) == 0xb0000000) |
Definition at line 1583 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define IS_CCR_REGNUM | ( | n | ) | (IN_SET (CCR, (n))) |
Definition at line 632 of file mep-tdep.c.
Referenced by mep_pseudo_register_read(), mep_pseudo_register_write(), mep_register_name(), and mep_register_reggroup_p().
#define IS_CR32_REGNUM | ( | n | ) | (IN_SET (CR32, (n))) |
Definition at line 626 of file mep-tdep.c.
Referenced by mep_pseudo_cr_index(), mep_pseudo_cr_size(), mep_pseudo_register_read(), and mep_pseudo_register_write().
#define IS_CR64_REGNUM | ( | n | ) | (IN_SET (CR64, (n))) |
Definition at line 628 of file mep-tdep.c.
Referenced by mep_pseudo_cr_index(), mep_pseudo_cr_size(), mep_pseudo_register_read(), and mep_pseudo_register_write().
#define IS_CR_REGNUM | ( | n | ) |
(IS_CR32_REGNUM (n) || IS_FP_CR32_REGNUM (n) \ || IS_CR64_REGNUM (n) || IS_FP_CR64_REGNUM (n))
Definition at line 630 of file mep-tdep.c.
Referenced by mep_register_name(), mep_register_reggroup_p(), and mep_register_type().
#define IS_CSR_REGNUM | ( | n | ) | (IN_SET (CSR, (n))) |
Definition at line 625 of file mep-tdep.c.
Referenced by mep_pseudo_register_read(), mep_pseudo_register_write(), mep_register_name(), and mep_register_reggroup_p().
#define IS_FP_CR32_REGNUM | ( | n | ) | (IN_SET (FP_CR32, (n))) |
Definition at line 627 of file mep-tdep.c.
Referenced by mep_pseudo_cr_index(), mep_pseudo_cr_is_float(), mep_pseudo_cr_size(), mep_pseudo_register_read(), and mep_pseudo_register_write().
#define IS_FP_CR64_REGNUM | ( | n | ) | (IN_SET (FP_CR64, (n))) |
Definition at line 629 of file mep-tdep.c.
Referenced by mep_pseudo_cr_index(), mep_pseudo_cr_is_float(), mep_pseudo_cr_size(), mep_pseudo_register_read(), and mep_pseudo_register_write().
#define IS_GPR_REGNUM | ( | n | ) | (IN_SET (GPR, (n))) |
Definition at line 620 of file mep-tdep.c.
Referenced by mep_register_name(), and mep_register_reggroup_p().
#define IS_LDC | ( | i | ) | (((i) & 0xf00e0000) == 0x700a0000) |
Definition at line 1567 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define IS_LW | ( | i | ) | (((i) & 0xf00f0000) == 0xc00e0000) |
Definition at line 1572 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define IS_MOV | ( | i | ) | (((i) & 0xf00f0000) == 0x00000000) |
Definition at line 1578 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define IS_PSEUDO_REGNUM | ( | n | ) | (IN_SET (PSEUDO, (n))) |
Definition at line 635 of file mep-tdep.c.
#define IS_RAW_CCR_REGNUM | ( | n | ) | (IN_SET (RAW_CCR, (n))) |
Definition at line 623 of file mep-tdep.c.
#define IS_RAW_CR_REGNUM | ( | n | ) | (IN_SET (RAW_CR, (n))) |
Definition at line 622 of file mep-tdep.c.
Referenced by mep_register_type().
#define IS_RAW_CSR_REGNUM | ( | n | ) | (IN_SET (RAW_CSR, (n))) |
Definition at line 621 of file mep-tdep.c.
#define IS_RAW_REGNUM | ( | n | ) | (IN_SET (RAW, (n))) |
Definition at line 634 of file mep-tdep.c.
#define IS_SB | ( | i | ) | (((i) & 0xf00f0000) == 0xc0080000) |
Definition at line 1527 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define IS_SH | ( | i | ) | (((i) & 0xf00f0000) == 0xc0090000) |
Definition at line 1529 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define IS_SW | ( | i | ) | (((i) & 0xf00f0000) == 0xc00a0000) |
Definition at line 1525 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define IS_SW_IMMD | ( | i | ) | (((i) & 0xf0830000) == 0x40020000) |
Definition at line 1535 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define IS_SW_REG | ( | i | ) | (((i) & 0xf00f0000) == 0x000a0000) |
Definition at line 1540 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
Definition at line 1568 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define LDC_TARGET | ( | i | ) | (FIELD (i, 24, 4)) |
Definition at line 1569 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
Definition at line 1574 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
Definition at line 1575 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
Definition at line 1573 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define MEP_GPR_SIZE (4) /* Size of a MeP general-purpose register. */ |
Definition at line 640 of file mep-tdep.c.
Referenced by mep_extract_return_value(), mep_push_dummy_call(), mep_store_return_value(), mep_use_struct_convention(), and push_large_arguments().
#define MEP_LP_SIZE (4) /* Size of the LP register. */ |
Definition at line 642 of file mep-tdep.c.
#define MEP_PSW_SIZE (4) /* Size of the PSW register. */ |
Definition at line 641 of file mep-tdep.c.
#define MOV_SOURCE | ( | i | ) | (FIELD (i, 20, 4)) |
Definition at line 1580 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define MOV_TARGET | ( | i | ) | (FIELD (i, 24, 4)) |
Definition at line 1579 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define NUM_REGS_IN_SET | ( | set | ) | (MEP_LAST_ ## set ## _REGNUM - MEP_FIRST_ ## set ## _REGNUM + 1) |
Definition at line 637 of file mep-tdep.c.
Referenced by mep_init_pseudoregister_maps().
Definition at line 1503 of file mep-tdep.c.
Definition at line 1509 of file mep-tdep.c.
#define SW_IMMD_OFFSET | ( | i | ) | (FIELD (i, 18, 5) << 2) |
Definition at line 1537 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define SW_IMMD_SOURCE | ( | i | ) | (FIELD (i, 24, 4)) |
Definition at line 1536 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define SW_REG_BASE | ( | i | ) | (FIELD (i, 20, 4)) |
Definition at line 1542 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define SW_REG_SOURCE | ( | i | ) | (FIELD (i, 24, 4)) |
Definition at line 1541 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define SWBH_32_BASE | ( | i | ) | (FIELD (i, 20, 4)) |
Definition at line 1530 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define SWBH_32_OFFSET | ( | i | ) | (SFIELD (i, 0, 16)) |
Definition at line 1532 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
#define SWBH_32_SOURCE | ( | i | ) | (FIELD (i, 24, 4)) |
Definition at line 1531 of file mep-tdep.c.
Referenced by mep_analyze_prologue().
anonymous enum |
MEP_OPT_DIV | |
MEP_OPT_MUL | |
MEP_OPT_BIT | |
MEP_OPT_SAT | |
MEP_OPT_CLP | |
MEP_OPT_MIN | |
MEP_OPT_AVE | |
MEP_OPT_ABS | |
MEP_OPT_LDZ | |
MEP_OPT_VL64 | |
MEP_OPT_VL32 | |
MEP_OPT_COP | |
MEP_OPT_DSP | |
MEP_OPT_UCI | |
MEP_OPT_DBG |
Definition at line 336 of file mep-tdep.c.
anonymous enum |
Definition at line 466 of file mep-tdep.c.
void _initialize_mep_tdep | ( | void | ) |
Definition at line 2516 of file mep-tdep.c.
References mep_gdbarch_init(), mep_init_pseudoregister_maps(), reggroup_new(), register_gdbarch_init(), and USER_REGGROUP.
static void check_for_saved | ( | void * | result_untyped, |
pv_t | addr, | ||
CORE_ADDR | size, | ||
pv_t | value | ||
) | [static] |
Definition at line 1660 of file mep-tdep.c.
References mep_prologue::gdbarch, prologue_value::k, prologue_value::kind, MEP_SP_REGNUM, pv_is_register(), prologue_value::reg, mep_prologue::reg_offset, and register_size().
Referenced by mep_analyze_prologue().
static CGEN_KEYWORD* current_ccr_names | ( | void | ) | [static] |
Definition at line 920 of file mep-tdep.c.
References current_me_module(), me_module_register_set(), and register_set_keyword_table().
Referenced by mep_register_name().
static int current_cop_data_bus_width | ( | void | ) | [static] |
Definition at line 887 of file mep-tdep.c.
References current_me_module(), and me_module_cop_data_bus_width().
Referenced by mep_register_name().
static int current_cr_is_float | ( | void | ) | [static] |
Definition at line 908 of file mep-tdep.c.
References current_me_module(), and me_module_register_set().
Referenced by mep_register_name().
static CGEN_KEYWORD* current_cr_names | ( | void | ) | [static] |
Definition at line 896 of file mep-tdep.c.
References current_me_module(), me_module_register_set(), and register_set_keyword_table().
Referenced by mep_register_name().
static CONFIG_ATTR current_me_module | ( | void | ) | [static] |
Definition at line 847 of file mep-tdep.c.
References gdbarch_tdep(), get_current_regcache(), gdbarch_tdep::me_module, MEP_MODULE_REGNUM, regcache_cooked_read_unsigned(), target_gdbarch(), target_has_registers, and ULONGEST.
Referenced by current_ccr_names(), current_cop_data_bus_width(), current_cr_is_float(), current_cr_names(), and current_options().
static unsigned int current_options | ( | void | ) | [static] |
Definition at line 870 of file mep-tdep.c.
References current_me_module(), get_current_regcache(), me_module_opt(), MEP_OPT_REGNUM, regcache_cooked_read_unsigned(), target_has_registers, and ULONGEST.
Referenced by mep_get_insn(), and mep_register_name().
static const CGEN_HW_ENTRY* find_hw_entry_by_prefix_and_isa | ( | CGEN_CPU_DESC | desc, |
const char * | prefix, | ||
CGEN_BITSET * | copro_isa_mask, | ||
CGEN_BITSET * | generic_isa_mask | ||
) | [static] |
Definition at line 160 of file mep-tdep.c.
Referenced by me_module_register_set().
static const CGEN_HW_ENTRY* find_hw_entry_by_type | ( | CGEN_CPU_DESC | desc, |
CGEN_HW_TYPE | type | ||
) | [static] |
Definition at line 190 of file mep-tdep.c.
Referenced by me_module_register_set().
static int is_arg_reg | ( | pv_t | value | ) | [static] |
Definition at line 1627 of file mep-tdep.c.
References prologue_value::k, prologue_value::kind, MEP_R1_REGNUM, MEP_R4_REGNUM, and prologue_value::reg.
Referenced by is_arg_spill(), and mep_analyze_prologue().
static int is_arg_spill | ( | struct gdbarch * | gdbarch, |
pv_t | value, | ||
pv_t | addr, | ||
struct pv_area * | stack | ||
) | [static] |
Definition at line 1644 of file mep-tdep.c.
References is_arg_reg(), MEP_SP_REGNUM, pv_area_find_reg(), pv_is_register(), and prologue_value::reg.
Referenced by mep_analyze_prologue().
static int me_module_big_endian | ( | CONFIG_ATTR | me_module | ) | [static] |
Definition at line 416 of file mep-tdep.c.
Referenced by mep_gdbarch_init().
static int me_module_cop_data_bus_width | ( | CONFIG_ATTR | me_module | ) | [static] |
Definition at line 404 of file mep-tdep.c.
Referenced by current_cop_data_bus_width().
static const char* me_module_name | ( | CONFIG_ATTR | me_module | ) | [static] |
static unsigned int me_module_opt | ( | CONFIG_ATTR | me_module | ) | [static] |
Definition at line 395 of file mep-tdep.c.
References opt_from_option_mask().
Referenced by current_options().
static const CGEN_HW_ENTRY* me_module_register_set | ( | CONFIG_ATTR | me_module, |
const char * | prefix, | ||
CGEN_HW_TYPE | generic_type | ||
) | [static] |
Definition at line 212 of file mep-tdep.c.
References gdbarch_tdep::cpu_desc, find_hw_entry_by_prefix_and_isa(), find_hw_entry_by_type(), gdbarch_tdep(), and target_gdbarch().
Referenced by current_ccr_names(), current_cr_is_float(), and current_cr_names().
static struct mep_prologue* mep_analyze_frame_prologue | ( | struct frame_info * | this_frame, |
void ** | this_prologue_cache | ||
) | [static, read] |
Definition at line 1937 of file mep-tdep.c.
References FRAME_OBSTACK_ZALLOC, get_frame_arch(), get_frame_func(), get_frame_pc(), and mep_analyze_prologue().
Referenced by mep_frame_base(), and mep_frame_prev_register().
static void mep_analyze_prologue | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | start_pc, | ||
CORE_ADDR | limit_pc, | ||
struct mep_prologue * | result | ||
) | [static] |
Definition at line 1675 of file mep-tdep.c.
References ADD3_16_OFFSET, ADD3_16_TARGET, ADD3_32_OFFSET, ADD3_32_SOURCE, ADD3_32_TARGET, ADD_OFFSET, ADD_TARGET, BRA_DISP, check_for_saved(), do_cleanups(), mep_prologue::frame_ptr_offset, mep_prologue::frame_size, gdb_assert, mep_prologue::gdbarch, gdbarch_addr_bit(), mep_prologue::has_frame_ptr, IS_ADD, IS_ADD3_16, IS_ADD3_32, is_arg_reg(), is_arg_spill(), IS_BRA, IS_LDC, IS_LW, IS_MOV, IS_SB, IS_SH, IS_SW, IS_SW_IMMD, IS_SW_REG, prologue_value::k, LDC_IMM, LDC_TARGET, LW_BASE, LW_OFFSET, LW_TARGET, make_cleanup_free_pv_area(), make_pv_area(), memset(), MEP_FIRST_CSR_REGNUM, MEP_FP_REGNUM, mep_get_insn(), MEP_NUM_REGS, MEP_SP_REGNUM, MOV_SOURCE, MOV_TARGET, offset, pv_add_constant(), pv_area_fetch(), pv_area_scan(), pv_area_store(), pv_area_store_would_trash(), pv_is_identical(), pv_is_register(), pv_is_register_k(), pv_register(), mep_prologue::reg_offset, size, SW_IMMD_OFFSET, SW_IMMD_SOURCE, SW_REG_BASE, SW_REG_SOURCE, SWBH_32_BASE, SWBH_32_OFFSET, and SWBH_32_SOURCE.
Referenced by mep_analyze_frame_prologue(), and mep_skip_prologue().
static const unsigned char* mep_breakpoint_from_pc | ( | struct gdbarch * | gdbarch, |
CORE_ADDR * | pcptr, | ||
int * | lenptr | ||
) | [static] |
Definition at line 1924 of file mep-tdep.c.
Referenced by mep_gdbarch_init().
static int mep_debug_reg_to_regnum | ( | struct gdbarch * | gdbarch, |
int | debug_reg | ||
) | [static] |
Definition at line 787 of file mep-tdep.c.
Referenced by mep_gdbarch_init().
static struct frame_id mep_dummy_id | ( | struct gdbarch * | gdbarch, |
struct frame_info * | this_frame | ||
) | [static, read] |
Definition at line 2374 of file mep-tdep.c.
References frame_id_build(), get_frame_pc(), get_frame_register_unsigned(), MEP_SP_REGNUM, and sp.
Referenced by mep_gdbarch_init().
static void mep_extract_return_value | ( | struct gdbarch * | arch, |
struct type * | type, | ||
struct regcache * | regcache, | ||
gdb_byte * | valbuf | ||
) | [static] |
Definition at line 2125 of file mep-tdep.c.
References gdb_assert, gdbarch_byte_order(), MEP_GPR_SIZE, MEP_R0_REGNUM, offset, regcache_cooked_read_part(), and TYPE_LENGTH.
Referenced by mep_return_value().
static CORE_ADDR mep_frame_align | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | sp | ||
) | [static] |
Definition at line 2231 of file mep-tdep.c.
Referenced by mep_gdbarch_init().
static CORE_ADDR mep_frame_base | ( | struct frame_info * | this_frame, |
void ** | this_prologue_cache | ||
) | [static] |
Definition at line 1966 of file mep-tdep.c.
References mep_prologue::frame_ptr_offset, mep_prologue::frame_size, get_frame_register_unsigned(), mep_prologue::has_frame_ptr, mep_analyze_frame_prologue(), MEP_FP_REGNUM, MEP_SP_REGNUM, p, and sp.
Referenced by mep_frame_prev_register(), and mep_frame_this_id().
static struct value* mep_frame_prev_register | ( | struct frame_info * | this_frame, |
void ** | this_prologue_cache, | ||
int | regnum | ||
) | [static, read] |
Definition at line 2004 of file mep-tdep.c.
References frame_unwind_got_constant(), frame_unwind_got_memory(), frame_unwind_got_register(), get_frame_register_value(), mep_analyze_frame_prologue(), mep_frame_base(), MEP_LP_REGNUM, MEP_PC_REGNUM, MEP_PSW_REGNUM, MEP_SP_REGNUM, p, mep_prologue::reg_offset, release_value(), value_as_long(), and value_free().
static void mep_frame_this_id | ( | struct frame_info * | this_frame, |
void ** | this_prologue_cache, | ||
struct frame_id * | this_id | ||
) | [static] |
Definition at line 1994 of file mep-tdep.c.
References frame_id_build(), get_frame_func(), and mep_frame_base().
static int mep_gdb_print_insn | ( | bfd_vma | pc, |
disassemble_info * | info | ||
) | [static] |
Definition at line 1273 of file mep-tdep.c.
References find_pc_section(), and obj_section::the_bfd_section.
Referenced by mep_gdbarch_init().
static struct gdbarch* mep_gdbarch_init | ( | struct gdbarch_info | info, |
struct gdbarch_list * | arches | ||
) | [static, read] |
Definition at line 2386 of file mep-tdep.c.
References _, gdbarch_info::abfd, all_reggroup, gdbarch_info::bfd_arch_info, gdbarch_info::byte_order, core_addr_lessthan(), gdbarch_tdep::cpu_desc, gdbarch_tdep::e_flags, fputc_unfiltered(), frame_unwind_append_unwinder(), gdb_stderr, gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_list_lookup_by_info(), general_reggroup, gdbarch_tdep::me_module, me_module_big_endian(), me_module_name(), mep_breakpoint_from_pc(), mep_debug_reg_to_regnum(), mep_dummy_id(), mep_frame_align(), mep_gdb_print_insn(), MEP_NUM_PSEUDO_REGS, MEP_NUM_RAW_REGS, MEP_PC_REGNUM, mep_pseudo_register_read(), mep_pseudo_register_write(), mep_push_dummy_call(), mep_read_pc(), mep_register_name(), mep_register_reggroup_p(), mep_register_type(), mep_return_value(), mep_skip_prologue(), MEP_SP_REGNUM, mep_unwind_pc(), mep_unwind_sp(), gdbarch_list::next, reggroup_add(), restore_reggroup, save_reggroup, set_gdbarch_breakpoint_from_pc(), set_gdbarch_decr_pc_after_break(), set_gdbarch_dummy_id(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_frame_align(), set_gdbarch_frame_args_skip(), set_gdbarch_inner_than(), set_gdbarch_num_pseudo_regs(), set_gdbarch_num_regs(), set_gdbarch_pc_regnum(), set_gdbarch_print_insn(), set_gdbarch_pseudo_register_read(), set_gdbarch_pseudo_register_write(), set_gdbarch_push_dummy_call(), set_gdbarch_read_pc(), set_gdbarch_register_name(), set_gdbarch_register_reggroup_p(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_skip_prologue(), set_gdbarch_sp_regnum(), set_gdbarch_stab_reg_to_regnum(), set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(), warning(), and xmalloc().
Referenced by _initialize_mep_tdep().
static CORE_ADDR mep_get_insn | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc, | ||
unsigned long * | insn | ||
) | [static] |
Definition at line 1420 of file mep-tdep.c.
References current_options(), extract_unsigned_integer(), gdb_assert_not_reached, gdbarch_byte_order(), MEP_OPT_VL32, MEP_OPT_VL64, mep_pc_in_vliw_section(), and read_memory().
Referenced by mep_analyze_prologue().
static void mep_init_pseudoregister_maps | ( | void | ) | [static] |
Definition at line 715 of file mep-tdep.c.
References CSR, gdb_assert, MEP_FIRST_CCR_REGNUM, MEP_FIRST_CR32_REGNUM, MEP_FIRST_CR64_REGNUM, MEP_FIRST_CSR_REGNUM, MEP_FIRST_FP_CR32_REGNUM, MEP_FIRST_FP_CR64_REGNUM, MEP_FIRST_RAW_CCR_REGNUM, MEP_FIRST_RAW_CR_REGNUM, MEP_FIRST_RAW_CSR_REGNUM, MEP_NUM_REGS, NUM_REGS_IN_SET, mep_csr_register::pseudo, and mep_csr_register::raw.
Referenced by _initialize_mep_tdep().
static int mep_pc_in_vliw_section | ( | CORE_ADDR | pc | ) | [static] |
Definition at line 1346 of file mep-tdep.c.
References find_pc_section(), and obj_section::the_bfd_section.
Referenced by mep_get_insn().
static enum register_status mep_pseudo_cr32_read | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | cookednum, | ||
void * | buf | ||
) | [static] |
Definition at line 1129 of file mep-tdep.c.
References extract_unsigned_integer(), gdb_assert, gdbarch_byte_order(), REG_VALID, regcache_raw_read(), register_type(), exsummary::status, store_unsigned_integer(), and TYPE_LENGTH.
Referenced by mep_pseudo_register_read().
static void mep_pseudo_cr32_write | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | cookednum, | ||
const void * | buf | ||
) | [static] |
Definition at line 1216 of file mep-tdep.c.
References extract_unsigned_integer(), gdb_assert, gdbarch_byte_order(), regcache_raw_write(), register_type(), store_unsigned_integer(), and TYPE_LENGTH.
Referenced by mep_pseudo_register_write().
static enum register_status mep_pseudo_cr64_read | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | cookednum, | ||
void * | buf | ||
) | [static] |
Definition at line 1155 of file mep-tdep.c.
References regcache_raw_read().
Referenced by mep_pseudo_register_read().
static void mep_pseudo_cr64_write | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | cookednum, | ||
const void * | buf | ||
) | [static] |
Definition at line 1237 of file mep-tdep.c.
References regcache_raw_write().
Referenced by mep_pseudo_register_write().
static int mep_pseudo_cr_index | ( | int | pseudo | ) | [static] |
Definition at line 824 of file mep-tdep.c.
References gdb_assert_not_reached, IS_CR32_REGNUM, IS_CR64_REGNUM, IS_FP_CR32_REGNUM, IS_FP_CR64_REGNUM, MEP_FIRST_CR32_REGNUM, MEP_FIRST_CR64_REGNUM, MEP_FIRST_FP_CR32_REGNUM, and MEP_FIRST_FP_CR64_REGNUM.
Referenced by mep_register_name().
static int mep_pseudo_cr_is_float | ( | int | pseudo | ) | [static] |
Definition at line 814 of file mep-tdep.c.
References IS_FP_CR32_REGNUM, and IS_FP_CR64_REGNUM.
Referenced by mep_register_name(), and mep_register_type().
static int mep_pseudo_cr_size | ( | int | pseudo | ) | [static] |
Definition at line 797 of file mep-tdep.c.
References gdb_assert_not_reached, IS_CR32_REGNUM, IS_CR64_REGNUM, IS_FP_CR32_REGNUM, and IS_FP_CR64_REGNUM.
Referenced by mep_register_name(), and mep_register_type().
static void mep_pseudo_csr_write | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | cookednum, | ||
const void * | buf | ||
) | [static] |
Definition at line 1185 of file mep-tdep.c.
References extract_unsigned_integer(), gdbarch_byte_order(), MEP_FIRST_CSR_REGNUM, mep_csr_register::raw, regcache_raw_read_unsigned(), regcache_raw_write_unsigned(), register_size(), size, ULONGEST, and mep_csr_register::writeable_bits.
Referenced by mep_pseudo_register_write().
static enum register_status mep_pseudo_register_read | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | cookednum, | ||
gdb_byte * | buf | ||
) | [static] |
Definition at line 1165 of file mep-tdep.c.
References gdb_assert_not_reached, IS_CCR_REGNUM, IS_CR32_REGNUM, IS_CR64_REGNUM, IS_CSR_REGNUM, IS_FP_CR32_REGNUM, IS_FP_CR64_REGNUM, mep_pseudo_cr32_read(), mep_pseudo_cr64_read(), and regcache_raw_read().
Referenced by mep_gdbarch_init().
static void mep_pseudo_register_write | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | cookednum, | ||
const gdb_byte * | buf | ||
) | [static] |
Definition at line 1247 of file mep-tdep.c.
References gdb_assert_not_reached, IS_CCR_REGNUM, IS_CR32_REGNUM, IS_CR64_REGNUM, IS_CSR_REGNUM, IS_FP_CR32_REGNUM, IS_FP_CR64_REGNUM, mep_pseudo_cr32_write(), mep_pseudo_cr64_write(), mep_pseudo_csr_write(), and regcache_raw_write().
Referenced by mep_gdbarch_init().
static CORE_ADDR mep_push_dummy_call | ( | struct gdbarch * | gdbarch, |
struct value * | function, | ||
struct regcache * | regcache, | ||
CORE_ADDR | bp_addr, | ||
int | argc, | ||
struct value ** | argv, | ||
CORE_ADDR | sp, | ||
int | struct_return, | ||
CORE_ADDR | struct_addr | ||
) | [static] |
Definition at line 2292 of file mep-tdep.c.
References extract_unsigned_integer(), find_function_addr(), gdb_assert, gdbarch_byte_order(), MEP_GPR_SIZE, MEP_LP_REGNUM, MEP_R1_REGNUM, MEP_R4_REGNUM, MEP_SP_REGNUM, push_large_arguments(), regcache_cooked_write_unsigned(), store_unsigned_integer(), TYPE_LENGTH, ULONGEST, value_contents(), value_type(), and write_memory().
Referenced by mep_gdbarch_init().
static CORE_ADDR mep_read_pc | ( | struct regcache * | regcache | ) | [static] |
Definition at line 1121 of file mep-tdep.c.
References MEP_PC_REGNUM, regcache_cooked_read_unsigned(), and ULONGEST.
Referenced by mep_gdbarch_init().
static const char* mep_register_name | ( | struct gdbarch * | gdbarch, |
int | regnr | ||
) | [static] |
Definition at line 930 of file mep-tdep.c.
References current_ccr_names(), current_cop_data_bus_width(), current_cr_is_float(), current_cr_names(), current_options(), gdbarch_tdep(), IS_CCR_REGNUM, IS_CR_REGNUM, IS_CSR_REGNUM, IS_GPR_REGNUM, MEP_FIRST_CCR_REGNUM, MEP_FIRST_CSR_REGNUM, MEP_HI_REGNUM, MEP_LO_REGNUM, MEP_OPT_COP, MEP_OPT_DIV, MEP_OPT_MUL, mep_pseudo_cr_index(), mep_pseudo_cr_is_float(), mep_pseudo_cr_size(), MEP_R0_REGNUM, and register_name_from_keyword().
Referenced by mep_gdbarch_init(), and mep_register_reggroup_p().
static int mep_register_reggroup_p | ( | struct gdbarch * | gdbarch, |
int | regnum, | ||
struct reggroup * | group | ||
) | [static] |
Definition at line 1028 of file mep-tdep.c.
References all_reggroup, general_reggroup, IS_CCR_REGNUM, IS_CR_REGNUM, IS_CSR_REGNUM, IS_GPR_REGNUM, mep_register_name(), name, restore_reggroup, and save_reggroup.
Referenced by mep_gdbarch_init().
static struct type* mep_register_type | ( | struct gdbarch * | gdbarch, |
int | reg_nr | ||
) | [static, read] |
Definition at line 1079 of file mep-tdep.c.
References builtin_type::builtin_double, builtin_type::builtin_float, builtin_type(), builtin_type::builtin_uint32, builtin_type::builtin_uint64, gdb_assert_not_reached, IS_CR_REGNUM, IS_RAW_CR_REGNUM, mep_pseudo_cr_is_float(), mep_pseudo_cr_size(), and size.
Referenced by mep_gdbarch_init().
static enum return_value_convention mep_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 2190 of file mep-tdep.c.
References _, error(), mep_extract_return_value(), MEP_R0_REGNUM, mep_store_return_value(), mep_use_struct_convention(), read_memory(), regcache_raw_read_unsigned(), RETURN_VALUE_ABI_RETURNS_ADDRESS, RETURN_VALUE_REGISTER_CONVENTION, TYPE_LENGTH, and ULONGEST.
Referenced by mep_gdbarch_init().
static CORE_ADDR mep_skip_prologue | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc | ||
) | [static] |
Definition at line 1905 of file mep-tdep.c.
References find_pc_partial_function(), mep_analyze_prologue(), name, p, and mep_prologue::prologue_end.
Referenced by mep_gdbarch_init().
static void mep_store_return_value | ( | struct gdbarch * | arch, |
struct type * | type, | ||
struct regcache * | regcache, | ||
const gdb_byte * | valbuf | ||
) | [static] |
Definition at line 2154 of file mep-tdep.c.
References _, error(), gdbarch_byte_order(), MEP_GPR_SIZE, MEP_R0_REGNUM, offset, regcache_cooked_write_part(), and TYPE_LENGTH.
Referenced by mep_return_value().
static CORE_ADDR mep_unwind_pc | ( | struct gdbarch * | gdbarch, |
struct frame_info * | next_frame | ||
) | [static] |
Definition at line 2099 of file mep-tdep.c.
References frame_unwind_register_unsigned(), and MEP_PC_REGNUM.
Referenced by mep_gdbarch_init().
static CORE_ADDR mep_unwind_sp | ( | struct gdbarch * | gdbarch, |
struct frame_info * | next_frame | ||
) | [static] |
Definition at line 2107 of file mep-tdep.c.
References frame_unwind_register_unsigned(), and MEP_SP_REGNUM.
Referenced by mep_gdbarch_init().
static int mep_use_struct_convention | ( | struct type * | type | ) | [static] |
Definition at line 2118 of file mep-tdep.c.
References MEP_GPR_SIZE, and TYPE_LENGTH.
Referenced by mep_return_value().
static unsigned int opt_from_option_mask | ( | unsigned int | option_mask | ) | [static] |
Definition at line 359 of file mep-tdep.c.
References bits, MEP_OPT_ABS, MEP_OPT_AVE, MEP_OPT_CLP, MEP_OPT_COP, MEP_OPT_DBG, MEP_OPT_DIV, MEP_OPT_DSP, MEP_OPT_LDZ, MEP_OPT_MIN, MEP_OPT_MUL, MEP_OPT_SAT, and MEP_OPT_UCI.
Referenced by me_module_opt().
static CORE_ADDR push_large_arguments | ( | CORE_ADDR | sp, |
int | argc, | ||
struct value ** | argv, | ||
CORE_ADDR | copy[] | ||
) | [static] |
Definition at line 2268 of file mep-tdep.c.
References MEP_GPR_SIZE, TYPE_LENGTH, value_contents(), value_type(), and write_memory().
Referenced by mep_push_dummy_call().
static char* register_name_from_keyword | ( | CGEN_KEYWORD * | keyword_table, |
int | regnum | ||
) | [static] |
static CGEN_KEYWORD* register_set_keyword_table | ( | const CGEN_HW_ENTRY * | hw | ) | [static] |
Definition at line 294 of file mep-tdep.c.
References gdb_assert.
Referenced by current_ccr_names(), and current_cr_names().
Referenced by initialize_all_files().
struct reggroup* mep_ccr_reggroup [static] |
Definition at line 1024 of file mep-tdep.c.
struct reggroup* mep_cr_reggroup [static] |
Definition at line 1023 of file mep-tdep.c.
struct reggroup* mep_csr_reggroup [static] |
Definition at line 1022 of file mep-tdep.c.
struct mep_csr_register mep_csr_registers[] |
Definition at line 668 of file mep-tdep.c.
struct frame_unwind mep_frame_unwind [static] |
{ NORMAL_FRAME, default_frame_unwind_stop_reason, mep_frame_this_id, mep_frame_prev_register, NULL, default_frame_sniffer }
Definition at line 2087 of file mep-tdep.c.
int mep_pseudo_to_raw[MEP_NUM_REGS] [static] |
Definition at line 712 of file mep-tdep.c.
int mep_raw_to_pseudo[MEP_NUM_REGS] [static] |
Definition at line 707 of file mep-tdep.c.