GDB (xrefs)
Classes | Defines | Typedefs | Enumerations | Functions | Variables
/home/stan/gdb/src/gdb/cris-tdep.c File Reference
#include "defs.h"
#include "frame.h"
#include "frame-unwind.h"
#include "frame-base.h"
#include "trad-frame.h"
#include "dwarf2-frame.h"
#include "symtab.h"
#include "inferior.h"
#include "gdbtypes.h"
#include "gdbcore.h"
#include "gdbcmd.h"
#include "target.h"
#include "value.h"
#include "opcode/cris.h"
#include "osabi.h"
#include "arch-utils.h"
#include "regcache.h"
#include "gdb_assert.h"
#include "objfiles.h"
#include "solib.h"
#include "solib-svr4.h"
#include "gdb_string.h"
#include "dis-asm.h"
#include "cris-tdep.h"

Go to the source code of this file.

Classes

struct  cris_unwind_cache
struct  instruction_environment
struct  stack_item

Defines

#define SIGTRAMP_INSN0   0x9c5f /* movu.w 0xXX, $r9 */
#define SIGTRAMP_OFFSET0   0
#define SIGTRAMP_INSN1   0xe93d /* break 13 */
#define SIGTRAMP_OFFSET1   4
#define SIGTRAMP_LEN   (sizeof sigtramp_code)
#define CRISV10_ELF_NGREG   35
#define CRISV32_ELF_NGREG   32

Typedefs

typedef struct
instruction_environment 
inst_env_type
typedef unsigned char cris_elf_greg_t [4]
typedef cris_elf_greg_t cris_elf_gregset_t [CRISV10_ELF_NGREG]
typedef cris_elf_greg_t crisv32_elf_gregset_t [CRISV32_ELF_NGREG]

Enumerations

enum  cris_num_regs { NUM_FREGS = 0, NUM_GENREGS = 16, NUM_SPECREGS = 16, NUM_SUPPREGS = 16 }
enum  cris_regnums {
  CRIS_FP_REGNUM = 8, STR_REGNUM = 9, RET_REGNUM = 10, ARG1_REGNUM = 10,
  ARG2_REGNUM = 11, ARG3_REGNUM = 12, ARG4_REGNUM = 13, VR_REGNUM = 17,
  MOF_REGNUM = 23, SRP_REGNUM = 27, P0_REGNUM = 16, P4_REGNUM = 20,
  CCR_REGNUM = 21, P8_REGNUM = 24, IBR_REGNUM = 25, IRP_REGNUM = 26,
  BAR_REGNUM = 28, DCCR_REGNUM = 29, BRP_REGNUM = 30, USP_REGNUM = 31,
  ACR_REGNUM = 15, BZ_REGNUM = 16, PID_REGNUM = 18, SRS_REGNUM = 19,
  WZ_REGNUM = 20, EXS_REGNUM = 21, EDA_REGNUM = 22, DZ_REGNUM = 24,
  EBP_REGNUM = 25, ERP_REGNUM = 26, NRP_REGNUM = 28, CCS_REGNUM = 29,
  CRISV32USP_REGNUM = 30, SPC_REGNUM = 31, CRISV32PC_REGNUM = 32, S0_REGNUM = 33,
  S1_REGNUM = 34, S2_REGNUM = 35, S3_REGNUM = 36, S4_REGNUM = 37,
  S5_REGNUM = 38, S6_REGNUM = 39, S7_REGNUM = 40, S8_REGNUM = 41,
  S9_REGNUM = 42, S10_REGNUM = 43, S11_REGNUM = 44, S12_REGNUM = 45,
  S13_REGNUM = 46, S14_REGNUM = 47, S15_REGNUM = 48
}
enum  cris_instruction_sizes { INST_BYTE_SIZE = 0, INST_WORD_SIZE = 1, INST_DWORD_SIZE = 2 }
enum  cris_addressing_modes { REGISTER_MODE = 1, INDIRECT_MODE = 2, AUTOINC_MODE = 3 }
enum  cris_prefix_addressing_modes { PREFIX_INDEX_MODE = 2, PREFIX_ASSIGN_MODE = 3, PREFIX_OFFSET_MODE = 2 }
enum  cris_opcode_masks {
  BRANCH_SIGNED_SHORT_OFFSET_MASK = 0x1, SIGNED_EXTEND_BIT_MASK = 0x2, SIGNED_BYTE_MASK = 0x80, SIGNED_BYTE_EXTEND_MASK = 0xFFFFFF00,
  SIGNED_WORD_MASK = 0x8000, SIGNED_WORD_EXTEND_MASK = 0xFFFF0000, SIGNED_DWORD_MASK = 0x80000000, SIGNED_QUICK_VALUE_MASK = 0x20,
  SIGNED_QUICK_VALUE_EXTEND_MASK = 0xFFFFFFC0
}

Functions

static CORE_ADDR cris_sigtramp_start (struct frame_info *this_frame)
static CORE_ADDR cris_rt_sigtramp_start (struct frame_info *this_frame)
static CORE_ADDR cris_sigcontext_addr (struct frame_info *this_frame)
static struct cris_unwind_cachecris_sigtramp_frame_unwind_cache (struct frame_info *this_frame, void **this_cache)
static void cris_sigtramp_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
static struct valuecris_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
static struct valuecris_sigtramp_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
static int cris_sigtramp_frame_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
static int crisv32_single_step_through_delay (struct gdbarch *gdbarch, struct frame_info *this_frame)
static int cris_get_operand2 (unsigned short insn)
static int cris_get_mode (unsigned short insn)
static int cris_get_opcode (unsigned short insn)
static int cris_get_size (unsigned short insn)
static int cris_get_operand1 (unsigned short insn)
static int cris_get_quick_value (unsigned short insn)
static int cris_get_bdap_quick_offset (unsigned short insn)
static int cris_get_branch_short_offset (unsigned short insn)
static int cris_get_asr_shift_steps (unsigned long value)
static int cris_get_clear_size (unsigned short insn)
static int cris_is_signed_extend_bit_on (unsigned short insn)
static int cris_is_xflag_bit_on (unsigned short insn)
static void cris_set_size_to_dword (unsigned short *insn)
static signed char cris_get_signed_offset (unsigned short insn)
static void cris_gdb_func (struct gdbarch *, enum cris_op_type, unsigned short, inst_env_type *)
static struct gdbarchcris_gdbarch_init (struct gdbarch_info, struct gdbarch_list *)
static void cris_dump_tdep (struct gdbarch *, struct ui_file *)
static void set_cris_version (char *ignore_args, int from_tty, struct cmd_list_element *c)
static void set_cris_mode (char *ignore_args, int from_tty, struct cmd_list_element *c)
static void set_cris_dwarf2_cfi (char *ignore_args, int from_tty, struct cmd_list_element *c)
static CORE_ADDR cris_scan_prologue (CORE_ADDR pc, struct frame_info *this_frame, struct cris_unwind_cache *info)
static CORE_ADDR crisv32_scan_prologue (CORE_ADDR pc, struct frame_info *this_frame, struct cris_unwind_cache *info)
static CORE_ADDR cris_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
static CORE_ADDR cris_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
static struct stack_itempush_stack_item (struct stack_item *prev, const gdb_byte *contents, int len)
static struct stack_itempop_stack_item (struct stack_item *si)
static struct cris_unwind_cachecris_frame_unwind_cache (struct frame_info *this_frame, void **this_prologue_cache)
static void cris_frame_this_id (struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
static struct frame_id cris_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
static CORE_ADDR cris_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp)
static CORE_ADDR cris_push_dummy_code (struct gdbarch *gdbarch, CORE_ADDR sp, CORE_ADDR funaddr, struct value **args, int nargs, struct type *value_type, CORE_ADDR *real_pc, CORE_ADDR *bp_addr, struct regcache *regcache)
static CORE_ADDR cris_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 cris_frame_base_address (struct frame_info *this_frame, void **this_cache)
static CORE_ADDR cris_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
static const unsigned char * cris_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr)
static int cris_spec_reg_applicable (struct gdbarch *gdbarch, struct cris_spec_reg spec_reg)
static int cris_register_size (struct gdbarch *gdbarch, int regno)
static int cris_cannot_fetch_register (struct gdbarch *gdbarch, int regno)
static int cris_cannot_store_register (struct gdbarch *gdbarch, int regno)
static int crisv32_cannot_fetch_register (struct gdbarch *gdbarch, int regno)
static int crisv32_cannot_store_register (struct gdbarch *gdbarch, int regno)
static struct typecris_register_type (struct gdbarch *gdbarch, int regno)
static struct typecrisv32_register_type (struct gdbarch *gdbarch, int regno)
static void cris_store_return_value (struct type *type, struct regcache *regcache, const gdb_byte *valbuf)
static const char * cris_special_register_name (struct gdbarch *gdbarch, int regno)
static const char * cris_register_name (struct gdbarch *gdbarch, int regno)
static const char * crisv32_register_name (struct gdbarch *gdbarch, int regno)
static int cris_dwarf2_reg_to_regnum (struct gdbarch *gdbarch, int reg)
static void cris_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum, struct dwarf2_frame_state_reg *reg, struct frame_info *this_frame)
static void cris_extract_return_value (struct type *type, struct regcache *regcache, gdb_byte *valbuf)
static enum return_value_convention cris_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
static int constraint (unsigned int insn, const char *inst_args, inst_env_type *inst_env)
static int number_of_bits (unsigned int value)
static int find_cris_op (unsigned short insn, inst_env_type *inst_env)
static int find_step_target (struct frame_info *frame, inst_env_type *inst_env)
static int cris_software_single_step (struct frame_info *frame)
static void quick_mode_bdap_prefix (unsigned short inst, inst_env_type *inst_env)
static void process_autoincrement (int size, unsigned short inst, inst_env_type *inst_env)
static unsigned long get_data_from_address (unsigned short *inst, CORE_ADDR address, enum bfd_endian byte_order)
static void bdap_prefix (unsigned short inst, inst_env_type *inst_env)
static void biap_prefix (unsigned short inst, inst_env_type *inst_env)
static void dip_prefix (unsigned short inst, inst_env_type *inst_env)
static void eight_bit_offset_branch_op (unsigned short inst, inst_env_type *inst_env)
static void sixteen_bit_offset_branch_op (unsigned short inst, inst_env_type *inst_env)
static void abs_op (unsigned short inst, inst_env_type *inst_env)
static void addi_op (unsigned short inst, inst_env_type *inst_env)
static void asr_op (unsigned short inst, inst_env_type *inst_env)
static void asrq_op (unsigned short inst, inst_env_type *inst_env)
static void ax_ei_setf_op (unsigned short inst, inst_env_type *inst_env)
static void check_assign (unsigned short inst, inst_env_type *inst_env)
static void two_operand_bound_op (unsigned short inst, inst_env_type *inst_env)
static void three_operand_bound_op (unsigned short inst, inst_env_type *inst_env)
static void btst_nop_op (unsigned short inst, inst_env_type *inst_env)
static void clearf_di_op (unsigned short inst, inst_env_type *inst_env)
static void reg_mode_clear_op (unsigned short inst, inst_env_type *inst_env)
static void reg_mode_test_op (unsigned short inst, inst_env_type *inst_env)
static void none_reg_mode_clear_test_op (unsigned short inst, inst_env_type *inst_env)
static void dstep_logshift_mstep_neg_not_op (unsigned short inst, inst_env_type *inst_env)
static void break_op (unsigned short inst, inst_env_type *inst_env)
static void scc_op (unsigned short inst, inst_env_type *inst_env)
static void reg_mode_jump_op (unsigned short inst, inst_env_type *inst_env)
static void none_reg_mode_jump_op (unsigned short inst, inst_env_type *inst_env)
static void move_to_preg_op (struct gdbarch *gdbarch, unsigned short inst, inst_env_type *inst_env)
static void none_reg_mode_move_from_preg_op (struct gdbarch *gdbarch, unsigned short inst, inst_env_type *inst_env)
static void reg_mode_move_from_preg_op (unsigned short inst, inst_env_type *inst_env)
static void move_mem_to_reg_movem_op (unsigned short inst, inst_env_type *inst_env)
static void move_reg_to_mem_movem_op (unsigned short inst, inst_env_type *inst_env)
static void not_implemented_op (unsigned short inst, inst_env_type *inst_env)
static void xor_op (unsigned short inst, inst_env_type *inst_env)
static void muls_op (unsigned short inst, inst_env_type *inst_env)
static void mulu_op (unsigned short inst, inst_env_type *inst_env)
static void add_sub_cmp_and_or_move_action (unsigned short inst, inst_env_type *inst_env, unsigned long source1, unsigned long source2)
static unsigned long do_sign_or_zero_extend (unsigned long value, unsigned short *inst)
static void reg_mode_add_sub_cmp_and_or_move_op (unsigned short inst, inst_env_type *inst_env)
static void handle_prefix_assign_mode_for_aritm_op (unsigned short inst, inst_env_type *inst_env)
static void three_operand_add_sub_cmp_and_or_op (unsigned short inst, inst_env_type *inst_env)
static void handle_prefix_index_mode_for_aritm_op (unsigned short inst, inst_env_type *inst_env)
static void handle_inc_and_index_mode_for_aritm_op (unsigned short inst, inst_env_type *inst_env)
static void none_reg_mode_add_sub_cmp_and_or_move_op (unsigned short inst, inst_env_type *inst_env)
static void quick_mode_add_sub_op (unsigned short inst, inst_env_type *inst_env)
static void quick_mode_and_cmp_move_or_op (unsigned short inst, inst_env_type *inst_env)
static int cris_delayed_get_disassembler (bfd_vma addr, struct disassemble_info *info)
static void cris_supply_gregset (struct regcache *regcache, cris_elf_gregset_t *gregsetp)
static void fetch_core_registers (struct regcache *regcache, char *core_reg_sect, unsigned core_reg_size, int which, CORE_ADDR reg_addr)
void _initialize_cris_tdep (void)

Variables

struct cris_spec_reg cris_spec_regs []
static unsigned int usr_cmd_cris_version
static int usr_cmd_cris_version_valid = 0
static const char cris_mode_normal [] = "normal"
static const char cris_mode_guru [] = "guru"
static const char *const cris_modes []
static const char * usr_cmd_cris_mode = cris_mode_normal
static int usr_cmd_cris_dwarf2_cfi = 1
static const unsigned short sigtramp_code []
static const unsigned short rt_sigtramp_code []
static struct frame_unwind cris_sigtramp_frame_unwind
static struct frame_unwind cris_frame_unwind
static struct frame_base cris_frame_base
static struct core_fns cris_elf_core_fns
initialize_file_ftype _initialize_cris_tdep

Define Documentation

#define CRISV10_ELF_NGREG   35

Definition at line 3821 of file cris-tdep.c.

#define CRISV32_ELF_NGREG   32

Definition at line 3824 of file cris-tdep.c.

#define SIGTRAMP_INSN0   0x9c5f /* movu.w 0xXX, $r9 */

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

Referenced by cris_rt_sigtramp_start(), and cris_sigtramp_start().

#define SIGTRAMP_INSN1   0xe93d /* break 13 */

Definition at line 174 of file cris-tdep.c.

Referenced by cris_rt_sigtramp_start(), and cris_sigtramp_start().

#define SIGTRAMP_LEN   (sizeof sigtramp_code)

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

Referenced by cris_rt_sigtramp_start(), and cris_sigtramp_start().

#define SIGTRAMP_OFFSET0   0

Definition at line 173 of file cris-tdep.c.

#define SIGTRAMP_OFFSET1   4

Definition at line 175 of file cris-tdep.c.

Referenced by cris_rt_sigtramp_start(), and cris_sigtramp_start().


Typedef Documentation

typedef unsigned char cris_elf_greg_t[4]

Definition at line 3818 of file cris-tdep.c.

Definition at line 3822 of file cris-tdep.c.

Definition at line 3825 of file cris-tdep.c.


Enumeration Type Documentation

Enumerator:
REGISTER_MODE 
INDIRECT_MODE 
AUTOINC_MODE 

Definition at line 504 of file cris-tdep.c.

Enumerator:
INST_BYTE_SIZE 
INST_WORD_SIZE 
INST_DWORD_SIZE 

Definition at line 496 of file cris-tdep.c.

Enumerator:
NUM_FREGS 
NUM_GENREGS 
NUM_SPECREGS 
NUM_SUPPREGS 

Definition at line 51 of file cris-tdep.c.

Enumerator:
BRANCH_SIGNED_SHORT_OFFSET_MASK 
SIGNED_EXTEND_BIT_MASK 
SIGNED_BYTE_MASK 
SIGNED_BYTE_EXTEND_MASK 
SIGNED_WORD_MASK 
SIGNED_WORD_EXTEND_MASK 
SIGNED_DWORD_MASK 
SIGNED_QUICK_VALUE_MASK 
SIGNED_QUICK_VALUE_EXTEND_MASK 

Definition at line 522 of file cris-tdep.c.

Enumerator:
PREFIX_INDEX_MODE 
PREFIX_ASSIGN_MODE 
PREFIX_OFFSET_MODE 

Definition at line 512 of file cris-tdep.c.

Enumerator:
CRIS_FP_REGNUM 
STR_REGNUM 
RET_REGNUM 
ARG1_REGNUM 
ARG2_REGNUM 
ARG3_REGNUM 
ARG4_REGNUM 
VR_REGNUM 
MOF_REGNUM 
SRP_REGNUM 
P0_REGNUM 
P4_REGNUM 
CCR_REGNUM 
P8_REGNUM 
IBR_REGNUM 
IRP_REGNUM 
BAR_REGNUM 
DCCR_REGNUM 
BRP_REGNUM 
USP_REGNUM 
ACR_REGNUM 
BZ_REGNUM 
PID_REGNUM 
SRS_REGNUM 
WZ_REGNUM 
EXS_REGNUM 
EDA_REGNUM 
DZ_REGNUM 
EBP_REGNUM 
ERP_REGNUM 
NRP_REGNUM 
CCS_REGNUM 
CRISV32USP_REGNUM 
SPC_REGNUM 
CRISV32PC_REGNUM 
S0_REGNUM 
S1_REGNUM 
S2_REGNUM 
S3_REGNUM 
S4_REGNUM 
S5_REGNUM 
S6_REGNUM 
S7_REGNUM 
S8_REGNUM 
S9_REGNUM 
S10_REGNUM 
S11_REGNUM 
S12_REGNUM 
S13_REGNUM 
S14_REGNUM 
S15_REGNUM 

Definition at line 81 of file cris-tdep.c.


Function Documentation

void _initialize_cris_tdep ( void  )
static void abs_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void add_sub_cmp_and_or_move_action ( unsigned short  inst,
inst_env_type inst_env,
unsigned long  source1,
unsigned long  source2 
) [static]
static void addi_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void asr_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void asrq_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void ax_ei_setf_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void bdap_prefix ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void biap_prefix ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void break_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void btst_nop_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void check_assign ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void clearf_di_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static int constraint ( unsigned int  insn,
const char *  inst_args,
inst_env_type inst_env 
) [static]

Definition at line 1877 of file cris-tdep.c.

References cris_spec_regs, name, and instruction_environment::prefix_found.

Referenced by find_cris_op().

static const unsigned char* cris_breakpoint_from_pc ( struct gdbarch gdbarch,
CORE_ADDR pcptr,
int lenptr 
) [static]

Definition at line 1415 of file cris-tdep.c.

References gdbarch_tdep::cris_mode, cris_mode_guru, and gdbarch_tdep().

Referenced by cris_gdbarch_init().

static int cris_cannot_fetch_register ( struct gdbarch gdbarch,
int  regno 
) [static]

Definition at line 1519 of file cris-tdep.c.

References cris_register_size(), and gdbarch_num_regs().

Referenced by cris_gdbarch_init().

static int cris_cannot_store_register ( struct gdbarch gdbarch,
int  regno 
) [static]

Definition at line 1529 of file cris-tdep.c.

References cris_register_size(), gdbarch_num_regs(), P0_REGNUM, P4_REGNUM, P8_REGNUM, and VR_REGNUM.

Referenced by cris_gdbarch_init().

static int cris_delayed_get_disassembler ( bfd_vma  addr,
struct disassemble_info *  info 
) [static]

Definition at line 3805 of file cris-tdep.c.

References exec_bfd, gdb_assert, and int.

Referenced by cris_gdbarch_init().

static struct frame_id cris_dummy_id ( struct gdbarch gdbarch,
struct frame_info this_frame 
) [static, read]
static void cris_dump_tdep ( struct gdbarch gdbarch,
struct ui_file file 
) [static]
static void cris_dwarf2_frame_init_reg ( struct gdbarch gdbarch,
int  regnum,
struct dwarf2_frame_state_reg reg,
struct frame_info this_frame 
) [static]
static int cris_dwarf2_reg_to_regnum ( struct gdbarch gdbarch,
int  reg 
) [static]

Definition at line 1776 of file cris-tdep.c.

References _, regnum, and warning().

Referenced by cris_gdbarch_init().

static void cris_extract_return_value ( struct type type,
struct regcache regcache,
gdb_byte valbuf 
) [static]
static CORE_ADDR cris_frame_align ( struct gdbarch gdbarch,
CORE_ADDR  sp 
) [static]

Definition at line 786 of file cris-tdep.c.

Referenced by cris_gdbarch_init().

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

Definition at line 942 of file cris-tdep.c.

References cris_unwind_cache::base, and cris_frame_unwind_cache().

static struct value * cris_frame_prev_register ( struct frame_info this_frame,
void **  this_cache,
int  regnum 
) [static, read]
static void cris_frame_this_id ( struct frame_info this_frame,
void **  this_prologue_cache,
struct frame_id this_id 
) [static]
static struct cris_unwind_cache* cris_frame_unwind_cache ( struct frame_info this_frame,
void **  this_prologue_cache 
) [static, read]
static void cris_gdb_func ( struct gdbarch gdbarch,
enum cris_op_type  op_type,
unsigned short  inst,
inst_env_type inst_env 
) [static]
static struct gdbarch * cris_gdbarch_init ( struct gdbarch_info  info,
struct gdbarch_list arches 
) [static, read]

Definition at line 4007 of file cris-tdep.c.

References _, gdbarch_info::abfd, gdbarch_info::byte_order, core_addr_lessthan(), cris_breakpoint_from_pc(), cris_cannot_fetch_register(), cris_cannot_store_register(), cris_delayed_get_disassembler(), cris_dummy_id(), gdbarch_tdep::cris_dwarf2_cfi, cris_dwarf2_frame_init_reg(), cris_dwarf2_reg_to_regnum(), cris_frame_align(), gdbarch_tdep::cris_mode, cris_mode_guru, cris_push_dummy_call(), cris_push_dummy_code(), cris_register_name(), cris_register_type(), cris_return_value(), cris_skip_prologue(), cris_software_single_step(), cris_unwind_pc(), cris_unwind_sp(), gdbarch_tdep::cris_version, crisv32_cannot_fetch_register(), crisv32_cannot_store_register(), crisv32_register_name(), crisv32_register_type(), crisv32_single_step_through_delay(), dwarf2_append_unwinders(), dwarf2_frame_set_init_reg(), frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), gdbarch_tdep(), internal_error(), gdbarch_list::next, set_gdbarch_breakpoint_from_pc(), set_gdbarch_cannot_fetch_register(), set_gdbarch_cannot_store_register(), set_gdbarch_double_bit(), set_gdbarch_dummy_id(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_frame_align(), set_gdbarch_have_nonsteppable_watchpoint(), set_gdbarch_inner_than(), set_gdbarch_long_double_bit(), set_gdbarch_num_regs(), set_gdbarch_pc_regnum(), set_gdbarch_print_insn(), set_gdbarch_push_dummy_call(), set_gdbarch_push_dummy_code(), set_gdbarch_register_name(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_single_step_through_delay(), set_gdbarch_skip_prologue(), set_gdbarch_software_single_step(), set_gdbarch_sp_regnum(), set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(), usr_cmd_cris_dwarf2_cfi, usr_cmd_cris_mode, usr_cmd_cris_version, usr_cmd_cris_version_valid, and xmalloc().

Referenced by _initialize_cris_tdep().

static int cris_get_asr_shift_steps ( unsigned long  value) [static]

Definition at line 593 of file cris-tdep.c.

Referenced by asr_op(), and asrq_op().

static int cris_get_bdap_quick_offset ( unsigned short  insn) [static]

Definition at line 581 of file cris-tdep.c.

Referenced by quick_mode_bdap_prefix().

static int cris_get_branch_short_offset ( unsigned short  insn) [static]

Definition at line 587 of file cris-tdep.c.

Referenced by eight_bit_offset_branch_op().

static int cris_get_clear_size ( unsigned short  insn) [static]

Definition at line 599 of file cris-tdep.c.

Referenced by reg_mode_clear_op().

static int cris_get_mode ( unsigned short  insn) [static]
static int cris_get_opcode ( unsigned short  insn) [static]
static int cris_get_operand1 ( unsigned short  insn) [static]
static int cris_get_operand2 ( unsigned short  insn) [static]
static int cris_get_quick_value ( unsigned short  insn) [static]
static signed char cris_get_signed_offset ( unsigned short  insn) [static]

Definition at line 624 of file cris-tdep.c.

Referenced by cris_scan_prologue().

static int cris_get_size ( unsigned short  insn) [static]
static int cris_is_signed_extend_bit_on ( unsigned short  insn) [static]

Definition at line 605 of file cris-tdep.c.

Referenced by do_sign_or_zero_extend().

static int cris_is_xflag_bit_on ( unsigned short  insn) [static]

Definition at line 611 of file cris-tdep.c.

Referenced by ax_ei_setf_op().

static CORE_ADDR cris_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 CORE_ADDR cris_push_dummy_code ( struct gdbarch gdbarch,
CORE_ADDR  sp,
CORE_ADDR  funaddr,
struct value **  args,
int  nargs,
struct type value_type,
CORE_ADDR real_pc,
CORE_ADDR bp_addr,
struct regcache regcache 
) [static]

Definition at line 794 of file cris-tdep.c.

Referenced by cris_gdbarch_init().

static const char* cris_register_name ( struct gdbarch gdbarch,
int  regno 
) [static]

Definition at line 1707 of file cris-tdep.c.

References cris_special_register_name(), gdbarch_num_regs(), and NUM_GENREGS.

Referenced by cris_gdbarch_init().

static int cris_register_size ( struct gdbarch gdbarch,
int  regno 
) [static]
static struct type* cris_register_type ( struct gdbarch gdbarch,
int  regno 
) [static, read]
static enum return_value_convention cris_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 cris_rt_sigtramp_start ( struct frame_info this_frame) [static]
static CORE_ADDR cris_scan_prologue ( CORE_ADDR  pc,
struct frame_info this_frame,
struct cris_unwind_cache info 
) [static]
static void cris_set_size_to_dword ( unsigned short *  insn) [static]
static CORE_ADDR cris_sigcontext_addr ( struct frame_info this_frame) [static]
static struct value* cris_sigtramp_frame_prev_register ( struct frame_info this_frame,
void **  this_cache,
int  regnum 
) [static, read]

Definition at line 420 of file cris-tdep.c.

References cris_frame_prev_register(), and cris_sigtramp_frame_unwind_cache().

static int cris_sigtramp_frame_sniffer ( const struct frame_unwind self,
struct frame_info this_frame,
void **  this_cache 
) [static]

Definition at line 429 of file cris-tdep.c.

References cris_rt_sigtramp_start(), and cris_sigtramp_start().

static void cris_sigtramp_frame_this_id ( struct frame_info this_frame,
void **  this_cache,
struct frame_id this_id 
) [static]
static struct cris_unwind_cache* cris_sigtramp_frame_unwind_cache ( struct frame_info this_frame,
void **  this_cache 
) [static, read]
static CORE_ADDR cris_sigtramp_start ( struct frame_info this_frame) [static]
static CORE_ADDR cris_skip_prologue ( struct gdbarch gdbarch,
CORE_ADDR  pc 
) [static]
static int cris_software_single_step ( struct frame_info frame) [static]
static int cris_spec_reg_applicable ( struct gdbarch gdbarch,
struct cris_spec_reg  spec_reg 
) [static]

Definition at line 1433 of file cris-tdep.c.

References gdbarch_tdep::cris_version, gdbarch_tdep(), and version.

Referenced by cris_register_size(), and cris_special_register_name().

static const char* cris_special_register_name ( struct gdbarch gdbarch,
int  regno 
) [static]

Definition at line 1684 of file cris-tdep.c.

References cris_spec_reg_applicable(), cris_spec_regs, and NUM_GENREGS.

Referenced by cris_register_name(), and crisv32_register_name().

static void cris_store_return_value ( struct type type,
struct regcache regcache,
const gdb_byte valbuf 
) [static]
static void cris_supply_gregset ( struct regcache regcache,
cris_elf_gregset_t gregsetp 
) [static]
static CORE_ADDR cris_unwind_pc ( struct gdbarch gdbarch,
struct frame_info next_frame 
) [static]
static CORE_ADDR cris_unwind_sp ( struct gdbarch gdbarch,
struct frame_info next_frame 
) [static]

Definition at line 1400 of file cris-tdep.c.

References frame_unwind_register_unsigned(), gdbarch_sp_regnum(), sp, and ULONGEST.

Referenced by cris_gdbarch_init().

static int crisv32_cannot_fetch_register ( struct gdbarch gdbarch,
int  regno 
) [static]

Definition at line 1560 of file cris-tdep.c.

References cris_register_size(), and gdbarch_num_regs().

Referenced by cris_gdbarch_init().

static int crisv32_cannot_store_register ( struct gdbarch gdbarch,
int  regno 
) [static]

Definition at line 1570 of file cris-tdep.c.

References BZ_REGNUM, cris_register_size(), DZ_REGNUM, gdbarch_num_regs(), VR_REGNUM, and WZ_REGNUM.

Referenced by cris_gdbarch_init().

static const char* crisv32_register_name ( struct gdbarch gdbarch,
int  regno 
) [static]
static struct type* crisv32_register_type ( struct gdbarch gdbarch,
int  regno 
) [static, read]
static CORE_ADDR crisv32_scan_prologue ( CORE_ADDR  pc,
struct frame_info this_frame,
struct cris_unwind_cache info 
) [static]
static int crisv32_single_step_through_delay ( struct gdbarch gdbarch,
struct frame_info this_frame 
) [static]
static void dip_prefix ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static unsigned long do_sign_or_zero_extend ( unsigned long  value,
unsigned short *  inst 
) [static]
static void dstep_logshift_mstep_neg_not_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void eight_bit_offset_branch_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void fetch_core_registers ( struct regcache regcache,
char *  core_reg_sect,
unsigned  core_reg_size,
int  which,
CORE_ADDR  reg_addr 
) [static]

Definition at line 3862 of file cris-tdep.c.

References _, cris_supply_gregset(), gdbarch_tdep::gregset, memcpy(), and warning().

static int find_cris_op ( unsigned short  insn,
inst_env_type inst_env 
) [static]

Definition at line 1967 of file cris-tdep.c.

References constraint(), and number_of_bits().

Referenced by find_step_target().

static int find_step_target ( struct frame_info frame,
inst_env_type inst_env 
) [static]
static unsigned long get_data_from_address ( unsigned short *  inst,
CORE_ADDR  address,
enum bfd_endian  byte_order 
) [static]
static void handle_inc_and_index_mode_for_aritm_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void handle_prefix_assign_mode_for_aritm_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void handle_prefix_index_mode_for_aritm_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void move_mem_to_reg_movem_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void move_reg_to_mem_movem_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void move_to_preg_op ( struct gdbarch gdbarch,
unsigned short  inst,
inst_env_type inst_env 
) [static]
static void muls_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void mulu_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void none_reg_mode_add_sub_cmp_and_or_move_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void none_reg_mode_clear_test_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void none_reg_mode_jump_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void none_reg_mode_move_from_preg_op ( struct gdbarch gdbarch,
unsigned short  inst,
inst_env_type inst_env 
) [static]
static void not_implemented_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]

Definition at line 3113 of file cris-tdep.c.

References instruction_environment::invalid.

Referenced by cris_gdb_func().

static int number_of_bits ( unsigned int  value) [static]

Definition at line 1951 of file cris-tdep.c.

Referenced by find_cris_op().

static struct stack_item* pop_stack_item ( struct stack_item si) [static, read]

Definition at line 686 of file cris-tdep.c.

References stack_item::data, stack_item::prev, and xfree().

Referenced by cris_push_dummy_call().

static void process_autoincrement ( int  size,
unsigned short  inst,
inst_env_type inst_env 
) [static]
static struct stack_item* push_stack_item ( struct stack_item prev,
const gdb_byte contents,
int  len 
) [static, read]

Definition at line 674 of file cris-tdep.c.

References stack_item::data, len, stack_item::len, memcpy(), stack_item::prev, and xmalloc().

Referenced by cris_push_dummy_call().

static void quick_mode_add_sub_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void quick_mode_and_cmp_move_or_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void quick_mode_bdap_prefix ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void reg_mode_add_sub_cmp_and_or_move_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void reg_mode_clear_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void reg_mode_jump_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void reg_mode_move_from_preg_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void reg_mode_test_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void scc_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void set_cris_dwarf2_cfi ( char *  ignore_args,
int  from_tty,
struct cmd_list_element c 
) [static]

Definition at line 3994 of file cris-tdep.c.

References _, gdbarch_info_init(), gdbarch_update_p(), and internal_error().

Referenced by _initialize_cris_tdep().

static void set_cris_mode ( char *  ignore_args,
int  from_tty,
struct cmd_list_element c 
) [static]

Definition at line 3981 of file cris-tdep.c.

References gdbarch_info_init(), gdbarch_update_p(), and internal_error().

Referenced by _initialize_cris_tdep().

static void set_cris_version ( char *  ignore_args,
int  from_tty,
struct cmd_list_element c 
) [static]
static void sixteen_bit_offset_branch_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void three_operand_add_sub_cmp_and_or_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void three_operand_bound_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void two_operand_bound_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]
static void xor_op ( unsigned short  inst,
inst_env_type inst_env 
) [static]

Variable Documentation

struct core_fns cris_elf_core_fns [static]
Initial value:

Definition at line 3890 of file cris-tdep.c.

struct frame_base cris_frame_base [static]
Initial value:

Definition at line 949 of file cris-tdep.c.

const char cris_mode_guru[] = "guru" [static]
const char cris_mode_normal[] = "normal" [static]

Definition at line 155 of file cris-tdep.c.

const char* const cris_modes[] [static]
Initial value:

Definition at line 157 of file cris-tdep.c.

Referenced by _initialize_cris_tdep().

struct cris_spec_reg cris_spec_regs[]
const unsigned short rt_sigtramp_code[] [static]
Initial value:

Definition at line 187 of file cris-tdep.c.

Referenced by cris_rt_sigtramp_start().

const unsigned short sigtramp_code[] [static]
Initial value:

Definition at line 177 of file cris-tdep.c.

Referenced by amd64_linux_sigtramp_start(), and cris_sigtramp_start().

Definition at line 168 of file cris-tdep.c.

Referenced by _initialize_cris_tdep(), and cris_gdbarch_init().

Definition at line 165 of file cris-tdep.c.

Referenced by _initialize_cris_tdep(), and cris_gdbarch_init().

unsigned int usr_cmd_cris_version [static]

Definition at line 150 of file cris-tdep.c.

Referenced by _initialize_cris_tdep(), and cris_gdbarch_init().

Definition at line 153 of file cris-tdep.c.

Referenced by cris_gdbarch_init(), and set_cris_version().

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines