GDB (xrefs)
Classes | Macros | Typedefs | Enumerations | Functions | Variables
/tmp/gdb-7.10/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 "objfiles.h"
#include "solib.h"
#include "solib-svr4.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
 

Macros

#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

const 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 const struct frame_unwind cris_sigtramp_frame_unwind
 
static const struct frame_unwind cris_frame_unwind
 
static const struct frame_base cris_frame_base
 
static struct core_fns cris_elf_core_fns
 
initialize_file_ftype _initialize_cris_tdep
 

Macro Definition Documentation

#define CRISV10_ELF_NGREG   35

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

#define CRISV32_ELF_NGREG   32

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

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

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

Referenced by cris_rt_sigtramp_start(), and cris_sigtramp_start().

#define SIGTRAMP_INSN1   0xe93d /* break 13 */

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

Referenced by cris_rt_sigtramp_start(), and cris_sigtramp_start().

#define SIGTRAMP_LEN   (sizeof sigtramp_code)

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

Referenced by cris_rt_sigtramp_start(), and cris_sigtramp_start().

#define SIGTRAMP_OFFSET0   0

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

#define SIGTRAMP_OFFSET1   4

Definition at line 173 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 3816 of file cris-tdep.c.

typedef cris_elf_greg_t cris_elf_gregset_t[CRISV10_ELF_NGREG]

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

typedef cris_elf_greg_t crisv32_elf_gregset_t[CRISV32_ELF_NGREG]

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

Enumeration Type Documentation

Enumerator
REGISTER_MODE 
INDIRECT_MODE 
AUTOINC_MODE 

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

Enumerator
INST_BYTE_SIZE 
INST_WORD_SIZE 
INST_DWORD_SIZE 

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

Enumerator
NUM_FREGS 
NUM_GENREGS 
NUM_SPECREGS 
NUM_SUPPREGS 

Definition at line 49 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 520 of file cris-tdep.c.

Enumerator
PREFIX_INDEX_MODE 
PREFIX_ASSIGN_MODE 
PREFIX_OFFSET_MODE 

Definition at line 510 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 79 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 1875 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 1413 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 1517 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 1527 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 3803 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
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 1774 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 784 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 940 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
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
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

Definition at line 4001 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 591 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 579 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 585 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 597 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 622 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 603 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 609 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 792 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 1705 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
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

Definition at line 418 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 427 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
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 1431 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 1682 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 1398 of file cris-tdep.c.

References frame_unwind_register_unsigned(), and gdbarch_sp_regnum().

Referenced by cris_gdbarch_init().

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

Definition at line 1558 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 1568 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
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 3859 of file cris-tdep.c.

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

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

Definition at line 1965 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 3111 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 1949 of file cris-tdep.c.

Referenced by find_cris_op().

static struct stack_item* pop_stack_item ( struct stack_item si)
static

Definition at line 684 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

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

References stack_item::data, len, stack_item::len, 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 3988 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 3975 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

initialize_file_ftype _initialize_cris_tdep
struct core_fns cris_elf_core_fns
static
Initial value:
=
{
bfd_target_elf_flavour,
NULL
}
int default_check_format(bfd *abfd)
Definition: corelow.c:164
static void fetch_core_registers(struct regcache *regcache, char *core_reg_sect, unsigned core_reg_size, int which, CORE_ADDR reg_addr)
Definition: cris-tdep.c:3859
int default_core_sniffer(struct core_fns *our_fns, bfd *abfd)
Definition: corelow.c:115

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

const struct frame_base cris_frame_base
static
Initial value:
=
{
cris_frame_base_address
}
static CORE_ADDR cris_frame_base_address(struct frame_info *this_frame, void **this_cache)
Definition: cris-tdep.c:940
static const struct frame_unwind cris_frame_unwind
Definition: cris-tdep.c:929

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

const struct frame_unwind cris_frame_unwind
static
Initial value:
=
{
NULL,
}
static struct value * cris_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
Definition: cris-tdep.c:763
int default_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
Definition: frame-unwind.c:170
static void cris_frame_this_id(struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
Definition: cris-tdep.c:737
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:180

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

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

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

const char* const cris_modes[]
static
Initial value:
= {
0
}
static const char cris_mode_normal[]
Definition: cris-tdep.c:153
static const char cris_mode_guru[]
Definition: cris-tdep.c:154

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

Referenced by _initialize_cris_tdep().

const struct frame_unwind cris_sigtramp_frame_unwind
static
Initial value:
=
{
NULL,
}
static struct value * cris_sigtramp_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
Definition: cris-tdep.c:418
static void cris_sigtramp_frame_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
Definition: cris-tdep.c:405
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:180
static int cris_sigtramp_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
Definition: cris-tdep.c:427

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

const struct cris_spec_reg cris_spec_regs[]
const unsigned short rt_sigtramp_code[]
static
Initial value:
=
{
SIGTRAMP_INSN0, 0x00ad,
}
#define SIGTRAMP_INSN0
Definition: cris-tdep.c:170
#define SIGTRAMP_INSN1
Definition: cris-tdep.c:172

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

Referenced by cris_rt_sigtramp_start().

const unsigned short sigtramp_code[]
static
Initial value:
=
{
SIGTRAMP_INSN0, 0x0077,
}
#define SIGTRAMP_INSN0
Definition: cris-tdep.c:170
#define SIGTRAMP_INSN1
Definition: cris-tdep.c:172

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

Referenced by amd64_linux_sigtramp_start(), and cris_sigtramp_start().

int usr_cmd_cris_dwarf2_cfi = 1
static

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

Referenced by _initialize_cris_tdep(), and cris_gdbarch_init().

const char* usr_cmd_cris_mode = cris_mode_normal
static

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

Referenced by _initialize_cris_tdep(), and cris_gdbarch_init().

unsigned int usr_cmd_cris_version
static

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

Referenced by _initialize_cris_tdep(), and cris_gdbarch_init().

int usr_cmd_cris_version_valid = 0
static

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

Referenced by cris_gdbarch_init(), and set_cris_version().