GDB (xrefs)
Classes | Macros | Typedefs | Enumerations | Functions | Variables
/tmp/gdb-8.1/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 (const char *ignore_args, int from_tty, struct cmd_list_element *c)
 
static void set_cris_mode (const char *ignore_args, int from_tty, struct cmd_list_element *c)
 
static void set_cris_dwarf2_cfi (const 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 int cris_breakpoint_kind_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr)
 
static const gdb_bytecris_sw_breakpoint_from_kind (struct gdbarch *gdbarch, int kind, int *size)
 
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 regcache *regcache, inst_env_type *inst_env)
 
static std::vector< CORE_ADDRcris_software_single_step (struct regcache *regcache)
 
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 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
 

Macro Definition Documentation

◆ CRISV10_ELF_NGREG

#define CRISV10_ELF_NGREG   35

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

◆ CRISV32_ELF_NGREG

#define CRISV32_ELF_NGREG   32

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

◆ SIGTRAMP_INSN0

#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().

◆ SIGTRAMP_INSN1

#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().

◆ SIGTRAMP_LEN

#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().

◆ SIGTRAMP_OFFSET0

#define SIGTRAMP_OFFSET0   0

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

◆ SIGTRAMP_OFFSET1

#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

◆ cris_elf_greg_t

typedef unsigned char cris_elf_greg_t[4]

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

◆ cris_elf_gregset_t

typedef cris_elf_greg_t cris_elf_gregset_t[CRISV10_ELF_NGREG]

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

◆ crisv32_elf_gregset_t

typedef cris_elf_greg_t crisv32_elf_gregset_t[CRISV32_ELF_NGREG]

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

◆ inst_env_type

Enumeration Type Documentation

◆ cris_addressing_modes

Enumerator
REGISTER_MODE 
INDIRECT_MODE 
AUTOINC_MODE 

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

◆ cris_instruction_sizes

Enumerator
INST_BYTE_SIZE 
INST_WORD_SIZE 
INST_DWORD_SIZE 

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

◆ cris_num_regs

Enumerator
NUM_FREGS 
NUM_GENREGS 
NUM_SPECREGS 
NUM_SUPPREGS 

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

◆ cris_opcode_masks

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.

◆ cris_prefix_addressing_modes

Enumerator
PREFIX_INDEX_MODE 
PREFIX_ASSIGN_MODE 
PREFIX_OFFSET_MODE 

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

◆ cris_regnums

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

◆ _initialize_cris_tdep()

void _initialize_cris_tdep ( void  )

◆ abs_op()

static void abs_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ add_sub_cmp_and_or_move_action()

static void add_sub_cmp_and_or_move_action ( unsigned short  inst,
inst_env_type inst_env,
unsigned long  source1,
unsigned long  source2 
)
static

◆ addi_op()

static void addi_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ asr_op()

static void asr_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ asrq_op()

static void asrq_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ ax_ei_setf_op()

static void ax_ei_setf_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ bdap_prefix()

static void bdap_prefix ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ biap_prefix()

static void biap_prefix ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ break_op()

static void break_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ btst_nop_op()

static void btst_nop_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ check_assign()

static void check_assign ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ clearf_di_op()

static void clearf_di_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ constraint()

static int constraint ( unsigned int  insn,
const char *  inst_args,
inst_env_type inst_env 
)
static

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

References cris_spec_regs, name, and instruction_environment::prefix_found.

Referenced by find_cris_op().

◆ cris_breakpoint_kind_from_pc()

static int cris_breakpoint_kind_from_pc ( struct gdbarch gdbarch,
CORE_ADDR pcptr 
)
static

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

Referenced by cris_gdbarch_init().

◆ cris_cannot_fetch_register()

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

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

References cris_register_size(), and gdbarch_num_regs().

Referenced by cris_gdbarch_init().

◆ cris_cannot_store_register()

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

Definition at line 1518 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().

◆ cris_dummy_id()

static struct frame_id cris_dummy_id ( struct gdbarch gdbarch,
struct frame_info this_frame 
)
static

◆ cris_dump_tdep()

static void cris_dump_tdep ( struct gdbarch gdbarch,
struct ui_file file 
)
static

◆ cris_dwarf2_frame_init_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

◆ cris_dwarf2_reg_to_regnum()

static int cris_dwarf2_reg_to_regnum ( struct gdbarch gdbarch,
int  reg 
)
static

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

References regnum.

Referenced by cris_gdbarch_init().

◆ cris_extract_return_value()

static void cris_extract_return_value ( struct type type,
struct regcache regcache,
gdb_byte valbuf 
)
static

◆ cris_frame_align()

static CORE_ADDR cris_frame_align ( struct gdbarch gdbarch,
CORE_ADDR  sp 
)
static

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

Referenced by cris_gdbarch_init().

◆ cris_frame_base_address()

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

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

References cris_unwind_cache::base, and cris_frame_unwind_cache().

◆ cris_frame_prev_register()

static struct value * cris_frame_prev_register ( struct frame_info this_frame,
void **  this_cache,
int  regnum 
)
static

◆ cris_frame_this_id()

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

◆ cris_frame_unwind_cache()

static struct cris_unwind_cache* cris_frame_unwind_cache ( struct frame_info this_frame,
void **  this_prologue_cache 
)
static

◆ cris_gdb_func()

static void cris_gdb_func ( struct gdbarch gdbarch,
enum cris_op_type  op_type,
unsigned short  inst,
inst_env_type inst_env 
)
static

◆ cris_gdbarch_init()

static struct gdbarch * cris_gdbarch_init ( struct gdbarch_info  info,
struct gdbarch_list arches 
)
static

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

References gdbarch_info::abfd, gdbarch_info::byte_order, core_addr_lessthan(), cris_breakpoint_kind_from_pc(), cris_cannot_fetch_register(), cris_cannot_store_register(), cris_dummy_id(), gdbarch_tdep::cris_dwarf2_cfi, cris_dwarf2_frame_init_reg(), cris_dwarf2_reg_to_regnum(), cris_frame_align(), cris_frame_base, cris_frame_unwind, 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_sigtramp_frame_unwind, cris_skip_prologue(), cris_software_single_step(), cris_sw_breakpoint_from_kind(), 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(), gdbarch_list::next, set_gdbarch_breakpoint_kind_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_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_sw_breakpoint_from_kind(), 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 XCNEW.

Referenced by _initialize_cris_tdep().

◆ cris_get_asr_shift_steps()

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().

◆ cris_get_bdap_quick_offset()

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().

◆ cris_get_branch_short_offset()

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().

◆ cris_get_clear_size()

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().

◆ cris_get_mode()

static int cris_get_mode ( unsigned short  insn)
static

◆ cris_get_opcode()

static int cris_get_opcode ( unsigned short  insn)
static

◆ cris_get_operand1()

static int cris_get_operand1 ( unsigned short  insn)
static

◆ cris_get_operand2()

static int cris_get_operand2 ( unsigned short  insn)
static

◆ cris_get_quick_value()

static int cris_get_quick_value ( unsigned short  insn)
static

◆ cris_get_signed_offset()

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().

◆ cris_get_size()

static int cris_get_size ( unsigned short  insn)
static

◆ cris_is_signed_extend_bit_on()

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().

◆ cris_is_xflag_bit_on()

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().

◆ cris_push_dummy_call()

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

◆ cris_push_dummy_code()

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 791 of file cris-tdep.c.

Referenced by cris_gdbarch_init().

◆ cris_register_name()

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

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

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

Referenced by cris_gdbarch_init().

◆ cris_register_size()

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

◆ cris_register_type()

static struct type* cris_register_type ( struct gdbarch gdbarch,
int  regno 
)
static

◆ cris_return_value()

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

◆ cris_rt_sigtramp_start()

static CORE_ADDR cris_rt_sigtramp_start ( struct frame_info this_frame)
static

◆ cris_scan_prologue()

static CORE_ADDR cris_scan_prologue ( CORE_ADDR  pc,
struct frame_info this_frame,
struct cris_unwind_cache info 
)
static

◆ cris_set_size_to_dword()

static void cris_set_size_to_dword ( unsigned short *  insn)
static

◆ cris_sigcontext_addr()

static CORE_ADDR cris_sigcontext_addr ( struct frame_info this_frame)
static

◆ cris_sigtramp_frame_prev_register()

static struct value* cris_sigtramp_frame_prev_register ( struct frame_info this_frame,
void **  this_cache,
int  regnum 
)
static

◆ cris_sigtramp_frame_sniffer()

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().

◆ cris_sigtramp_frame_this_id()

static void cris_sigtramp_frame_this_id ( struct frame_info this_frame,
void **  this_cache,
struct frame_id this_id 
)
static

◆ cris_sigtramp_frame_unwind_cache()

static struct cris_unwind_cache* cris_sigtramp_frame_unwind_cache ( struct frame_info this_frame,
void **  this_cache 
)
static

◆ cris_sigtramp_start()

static CORE_ADDR cris_sigtramp_start ( struct frame_info this_frame)
static

◆ cris_skip_prologue()

static CORE_ADDR cris_skip_prologue ( struct gdbarch gdbarch,
CORE_ADDR  pc 
)
static

◆ cris_software_single_step()

static std::vector<CORE_ADDR> cris_software_single_step ( struct regcache regcache)
static

◆ cris_spec_reg_applicable()

static int cris_spec_reg_applicable ( struct gdbarch gdbarch,
struct cris_spec_reg  spec_reg 
)
static

◆ cris_special_register_name()

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

Definition at line 1673 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().

◆ cris_store_return_value()

static void cris_store_return_value ( struct type type,
struct regcache regcache,
const gdb_byte valbuf 
)
static

◆ cris_supply_gregset()

static void cris_supply_gregset ( struct regcache regcache,
cris_elf_gregset_t gregsetp 
)
static

◆ cris_sw_breakpoint_from_kind()

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

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

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

Referenced by cris_gdbarch_init().

◆ cris_unwind_pc()

static CORE_ADDR cris_unwind_pc ( struct gdbarch gdbarch,
struct frame_info next_frame 
)
static

◆ cris_unwind_sp()

static CORE_ADDR cris_unwind_sp ( struct gdbarch gdbarch,
struct frame_info next_frame 
)
static

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

References frame_unwind_register_unsigned(), and gdbarch_sp_regnum().

Referenced by cris_gdbarch_init().

◆ crisv32_cannot_fetch_register()

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

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

References cris_register_size(), and gdbarch_num_regs().

Referenced by cris_gdbarch_init().

◆ crisv32_cannot_store_register()

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

Definition at line 1559 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().

◆ crisv32_register_name()

static const char* crisv32_register_name ( struct gdbarch gdbarch,
int  regno 
)
static

◆ crisv32_register_type()

static struct type* crisv32_register_type ( struct gdbarch gdbarch,
int  regno 
)
static

◆ crisv32_scan_prologue()

static CORE_ADDR crisv32_scan_prologue ( CORE_ADDR  pc,
struct frame_info this_frame,
struct cris_unwind_cache info 
)
static

◆ crisv32_single_step_through_delay()

static int crisv32_single_step_through_delay ( struct gdbarch gdbarch,
struct frame_info this_frame 
)
static

◆ dip_prefix()

static void dip_prefix ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ do_sign_or_zero_extend()

static unsigned long do_sign_or_zero_extend ( unsigned long  value,
unsigned short *  inst 
)
static

◆ dstep_logshift_mstep_neg_not_op()

static void dstep_logshift_mstep_neg_not_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ eight_bit_offset_branch_op()

static void eight_bit_offset_branch_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ fetch_core_registers()

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 3832 of file cris-tdep.c.

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

◆ find_cris_op()

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

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

References constraint(), and number_of_bits().

Referenced by find_step_target().

◆ find_step_target()

static int find_step_target ( struct regcache regcache,
inst_env_type inst_env 
)
static

◆ get_data_from_address()

static unsigned long get_data_from_address ( unsigned short *  inst,
CORE_ADDR  address,
enum bfd_endian  byte_order 
)
static

◆ handle_inc_and_index_mode_for_aritm_op()

static void handle_inc_and_index_mode_for_aritm_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ handle_prefix_assign_mode_for_aritm_op()

static void handle_prefix_assign_mode_for_aritm_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ handle_prefix_index_mode_for_aritm_op()

static void handle_prefix_index_mode_for_aritm_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ move_mem_to_reg_movem_op()

static void move_mem_to_reg_movem_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ move_reg_to_mem_movem_op()

static void move_reg_to_mem_movem_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ move_to_preg_op()

static void move_to_preg_op ( struct gdbarch gdbarch,
unsigned short  inst,
inst_env_type inst_env 
)
static

◆ muls_op()

static void muls_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ mulu_op()

static void mulu_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ none_reg_mode_add_sub_cmp_and_or_move_op()

static void none_reg_mode_add_sub_cmp_and_or_move_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ none_reg_mode_clear_test_op()

static void none_reg_mode_clear_test_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ none_reg_mode_jump_op()

static void none_reg_mode_jump_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ none_reg_mode_move_from_preg_op()

static void none_reg_mode_move_from_preg_op ( struct gdbarch gdbarch,
unsigned short  inst,
inst_env_type inst_env 
)
static

◆ not_implemented_op()

static void not_implemented_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

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

References instruction_environment::invalid.

Referenced by cris_gdb_func().

◆ number_of_bits()

static int number_of_bits ( unsigned int  value)
static

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

Referenced by find_cris_op().

◆ pop_stack_item()

static struct stack_item* pop_stack_item ( struct stack_item si)
static

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

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

Referenced by cris_push_dummy_call().

◆ process_autoincrement()

static void process_autoincrement ( int  size,
unsigned short  inst,
inst_env_type inst_env 
)
static

◆ push_stack_item()

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, stack_item::len, stack_item::prev, xmalloc(), and XNEW.

Referenced by cris_push_dummy_call().

◆ quick_mode_add_sub_op()

static void quick_mode_add_sub_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ quick_mode_and_cmp_move_or_op()

static void quick_mode_and_cmp_move_or_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ quick_mode_bdap_prefix()

static void quick_mode_bdap_prefix ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ reg_mode_add_sub_cmp_and_or_move_op()

static void reg_mode_add_sub_cmp_and_or_move_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ reg_mode_clear_op()

static void reg_mode_clear_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ reg_mode_jump_op()

static void reg_mode_jump_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ reg_mode_move_from_preg_op()

static void reg_mode_move_from_preg_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ reg_mode_test_op()

static void reg_mode_test_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ scc_op()

static void scc_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ set_cris_dwarf2_cfi()

static void set_cris_dwarf2_cfi ( const char *  ignore_args,
int  from_tty,
struct cmd_list_element c 
)
static

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

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

Referenced by _initialize_cris_tdep().

◆ set_cris_mode()

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

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

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

Referenced by _initialize_cris_tdep().

◆ set_cris_version()

static void set_cris_version ( const char *  ignore_args,
int  from_tty,
struct cmd_list_element c 
)
static

◆ sixteen_bit_offset_branch_op()

static void sixteen_bit_offset_branch_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ three_operand_add_sub_cmp_and_or_op()

static void three_operand_add_sub_cmp_and_or_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ three_operand_bound_op()

static void three_operand_bound_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ two_operand_bound_op()

static void two_operand_bound_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

◆ xor_op()

static void xor_op ( unsigned short  inst,
inst_env_type inst_env 
)
static

Variable Documentation

◆ cris_elf_core_fns

struct core_fns cris_elf_core_fns
static
Initial value:
=
{
bfd_target_elf_flavour,
NULL
}
int default_check_format(bfd *abfd)
Definition: corelow.c:162
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:3832
int default_core_sniffer(struct core_fns *our_fns, bfd *abfd)
Definition: corelow.c:113

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

Referenced by _initialize_cris_tdep().

◆ cris_frame_base

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

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

Referenced by cris_gdbarch_init().

◆ cris_frame_unwind

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:762
int default_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
Definition: frame-unwind.c:174
static void cris_frame_this_id(struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
Definition: cris-tdep.c:736
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:184

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

Referenced by cris_gdbarch_init().

◆ cris_mode_guru

const char cris_mode_guru[] = "guru"
static

◆ cris_mode_normal

const char cris_mode_normal[] = "normal"
static

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

◆ cris_modes

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().

◆ cris_sigtramp_frame_unwind

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:184
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.

Referenced by cris_gdbarch_init().

◆ cris_spec_regs

const struct cris_spec_reg cris_spec_regs[]

◆ rt_sigtramp_code

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().

◆ sigtramp_code

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().

◆ usr_cmd_cris_dwarf2_cfi

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().

◆ usr_cmd_cris_mode

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().

◆ usr_cmd_cris_version

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().

◆ usr_cmd_cris_version_valid

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().