GDB (xrefs)
Classes | Defines | Typedefs | Enumerations | Functions | Variables
/home/stan/gdb/src/gdb/xtensa-tdep.c File Reference
#include "defs.h"
#include "frame.h"
#include "solib-svr4.h"
#include "symtab.h"
#include "symfile.h"
#include "objfiles.h"
#include "gdbtypes.h"
#include "gdbcore.h"
#include "value.h"
#include "dis-asm.h"
#include "inferior.h"
#include "floatformat.h"
#include "regcache.h"
#include "reggroups.h"
#include "regset.h"
#include "dummy-frame.h"
#include "dwarf2.h"
#include "dwarf2-frame.h"
#include "dwarf2loc.h"
#include "frame-base.h"
#include "frame-unwind.h"
#include "arch-utils.h"
#include "gdbarch.h"
#include "remote.h"
#include "serial.h"
#include "command.h"
#include "gdbcmd.h"
#include "gdb_assert.h"
#include "xtensa-isa.h"
#include "xtensa-tdep.h"
#include "xtensa-config.h"

Go to the source code of this file.

Classes

struct  xtensa_windowed_frame_cache
struct  xtensa_c0reg
struct  xtensa_call0_frame_cache
struct  xtensa_frame_cache

Defines

#define DEBUGWARN(args...)
#define DEBUGINFO(args...)
#define DEBUGTRACE(args...)
#define DEBUGVERB(args...)
#define SP_ALIGNMENT   16
#define ARGS_NUM_REGS   6
#define REGISTER_SIZE   4
#define PS_CALLINC_SHIFT   16
#define PS_CALLINC_MASK   0x00030000
#define CALLINC(ps)   (((ps) & PS_CALLINC_MASK) >> PS_CALLINC_SHIFT)
#define WINSIZE(ra)   (4 * (( (ra) >> 30) & 0x3))
#define TX_PS   0x20
#define ARG_NOF(gdbarch)
#define ARG_1ST(gdbarch)
#define XTENSA_IS_ENTRY(gdbarch, op1)
#define XTENSA_ENTRY_LENGTH   3
#define PS_WOE   (1<<18)
#define PS_EXC   (1<<4)
#define SAVE_REST_FLAGS
#define SAVE_REST_VALID
#define XTENSA_NUM_SAVED_AREGS   12
#define C0_MAXOPDS
#define C0_NREGS   16 /* Number of A-registers to track. */
#define C0_CLESV   12 /* Callee-saved registers are here and up. */
#define C0_SP   1 /* Register used as SP. */
#define C0_FP   15 /* Register used as FP. */
#define C0_RA   0 /* Register used as return address. */
#define C0_ARGS   2 /* Register used as first arg/retval. */
#define C0_NARGS   6 /* Number of A-regs for args/retvals. */
#define C0_CONST   -1 /* fr_reg value if register contains a constant. */
#define C0_INEXP   -2 /* fr_reg value if inexpressible as reg + offset. */
#define C0_NOSTK   -1 /* to_stk value if register has not been stored. */
#define XTENSA_ISA_BSZ   32 /* Instruction buffer size. */
#define XTENSA_ISA_BADPC   ((CORE_ADDR)0) /* Bad PC value. */
#define RETURN_FP   goto done
#define BIG_BREAKPOINT   { 0x00, 0x04, 0x00 }
#define LITTLE_BREAKPOINT   { 0x00, 0x40, 0x00 }
#define DENSITY_BIG_BREAKPOINT   { 0xd2, 0x0f }
#define DENSITY_LITTLE_BREAKPOINT   { 0x2d, 0xf0 }
#define RETURN_RET   goto done
#define XTENSA_MAX_WINDOW_INTERRUPT_HANDLER_LEN   200
#define XTENSA_DBREGN_SREG(n)   (0x0200+(n))

Typedefs

typedef struct
xtensa_windowed_frame_cache 
xtensa_windowed_frame_cache_t
typedef struct xtensa_c0reg xtensa_c0reg_t
typedef struct
xtensa_call0_frame_cache 
xtensa_call0_frame_cache_t
typedef struct xtensa_frame_cache xtensa_frame_cache_t

Enumerations

enum  xtensa_insn_kind {
  c0opc_illegal, c0opc_uninteresting, c0opc_flow, c0opc_entry,
  c0opc_break, c0opc_add, c0opc_addi, c0opc_and,
  c0opc_sub, c0opc_mov, c0opc_movi, c0opc_l32r,
  c0opc_s32i, c0opc_rwxsr, c0opc_l32e, c0opc_s32e,
  c0opc_rfwo, c0opc_rfwu, c0opc_NrOf
}
enum  xtensa_exception_handler_t { xtWindowOverflow, xtWindowUnderflow, xtNoExceptionHandler }

Functions

static int windowing_enabled (struct gdbarch *gdbarch, unsigned int ps)
static int arreg_number (struct gdbarch *gdbarch, int a_regnum, ULONGEST wb)
static int areg_number (struct gdbarch *gdbarch, int ar_regnum, unsigned int wb)
static unsigned long xtensa_read_register (int regnum)
static void xtensa_write_register (int regnum, ULONGEST value)
static int extract_call_winsize (struct gdbarch *gdbarch, CORE_ADDR pc)
static int xtensa_find_register_by_name (struct gdbarch *gdbarch, char *name)
static const char * xtensa_register_name (struct gdbarch *gdbarch, int regnum)
static struct typextensa_register_type (struct gdbarch *gdbarch, int regnum)
static int xtensa_reg_to_regnum (struct gdbarch *gdbarch, int regnum)
static void xtensa_register_write_masked (struct regcache *regcache, xtensa_register_t *reg, const gdb_byte *buffer)
static enum register_status xtensa_register_read_masked (struct regcache *regcache, xtensa_register_t *reg, gdb_byte *buffer)
static enum register_status xtensa_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, int regnum, gdb_byte *buffer)
static void xtensa_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int regnum, const gdb_byte *buffer)
static void xtensa_init_reggroups (void)
static void xtensa_add_reggroups (struct gdbarch *gdbarch)
static int xtensa_coprocessor_register_group (struct reggroup *group)
static int xtensa_register_reggroup_p (struct gdbarch *gdbarch, int regnum, struct reggroup *group)
static void xtensa_supply_gregset (const struct regset *regset, struct regcache *rc, int regnum, const void *gregs, size_t len)
static struct regsetxtensa_regset_from_core_section (struct gdbarch *core_arch, const char *sect_name, size_t sect_size)
static struct xtensa_frame_cachextensa_alloc_frame_cache (int windowed)
static CORE_ADDR xtensa_frame_align (struct gdbarch *gdbarch, CORE_ADDR address)
static CORE_ADDR xtensa_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
static struct frame_id xtensa_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
static int xtensa_window_interrupt_insn (struct gdbarch *gdbarch, CORE_ADDR pc)
static unsigned int xtensa_scan_prologue (struct gdbarch *gdbarch, CORE_ADDR current_pc)
static void call0_frame_cache (struct frame_info *this_frame, xtensa_frame_cache_t *cache, CORE_ADDR pc)
static void xtensa_window_interrupt_frame_cache (struct frame_info *this_frame, xtensa_frame_cache_t *cache, CORE_ADDR pc)
static struct xtensa_frame_cachextensa_frame_cache (struct frame_info *this_frame, void **this_cache)
static void warning_once (void)
static void xtensa_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
static struct valuextensa_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
static CORE_ADDR xtensa_frame_base_address (struct frame_info *this_frame, void **this_cache)
static void xtensa_extract_return_value (struct type *type, struct regcache *regcache, void *dst)
static void xtensa_store_return_value (struct type *type, struct regcache *regcache, const void *dst)
static enum return_value_convention xtensa_return_value (struct gdbarch *gdbarch, struct value *function, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
static CORE_ADDR xtensa_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 const unsigned char * xtensa_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr)
static int call0_ret (CORE_ADDR start_pc, CORE_ADDR finish_pc)
static int rwx_special_register (const char *opcname)
static xtensa_insn_kind call0_classify_opcode (xtensa_isa isa, xtensa_opcode opc)
static int call0_track_op (struct gdbarch *gdbarch, xtensa_c0reg_t dst[], xtensa_c0reg_t src[], xtensa_insn_kind opclass, int nods, unsigned odv[], CORE_ADDR pc, int spreg, xtensa_frame_cache_t *cache)
static CORE_ADDR call0_analyze_prologue (struct gdbarch *gdbarch, CORE_ADDR start, CORE_ADDR pc, int nregs, xtensa_frame_cache_t *cache)
static void execute_l32e (struct gdbarch *gdbarch, int at, int as, int offset, CORE_ADDR wb)
static void execute_s32e (struct gdbarch *gdbarch, int at, int as, int offset, CORE_ADDR wb)
static xtensa_exception_handler_t execute_code (struct gdbarch *gdbarch, CORE_ADDR current_pc, CORE_ADDR wb)
static CORE_ADDR xtensa_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc)
static void xtensa_verify_config (struct gdbarch *gdbarch)
static void xtensa_derive_tdep (struct gdbarch_tdep *tdep)
static struct gdbarchxtensa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
static void xtensa_dump_tdep (struct gdbarch *gdbarch, struct ui_file *file)
void _initialize_xtensa_tdep (void)

Variables

static unsigned int xtensa_debug_level = 0
static struct reggroupxtensa_ar_reggroup
static struct reggroupxtensa_user_reggroup
static struct reggroupxtensa_vectra_reggroup
static struct reggroupxtensa_cp [XTENSA_MAX_COPROCESSOR]
static struct regset xtensa_gregset
xtensa_isa xtensa_default_isa
static int xtensa_session_once_reported = 1
static struct frame_unwind xtensa_unwind
static struct frame_base xtensa_frame_base
static CORE_ADDR a0_saved
static CORE_ADDR a7_saved
static CORE_ADDR a11_saved
static int a0_was_saved
static int a7_was_saved
static int a11_was_saved
struct gdbarch_tdep xtensa_tdep
initialize_file_ftype _initialize_xtensa_tdep

Define Documentation

#define ARG_1ST (   gdbarch)
Value:

Definition at line 102 of file xtensa-tdep.c.

Referenced by xtensa_push_dummy_call().

#define ARG_NOF (   gdbarch)
Value:

Definition at line 99 of file xtensa-tdep.c.

Referenced by xtensa_push_dummy_call().

#define ARGS_NUM_REGS   6

Definition at line 83 of file xtensa-tdep.c.

#define BIG_BREAKPOINT   { 0x00, 0x04, 0x00 }

Definition at line 1980 of file xtensa-tdep.c.

Referenced by xtensa_breakpoint_from_pc().

#define C0_ARGS   2 /* Register used as first arg/retval. */

Definition at line 963 of file xtensa-tdep.c.

Referenced by xtensa_extract_return_value(), and xtensa_store_return_value().

#define C0_CLESV   12 /* Callee-saved registers are here and up. */

Definition at line 959 of file xtensa-tdep.c.

#define C0_CONST   -1 /* fr_reg value if register contains a constant. */

Definition at line 973 of file xtensa-tdep.c.

Referenced by call0_frame_cache(), and call0_track_op().

#define C0_FP   15 /* Register used as FP. */

Definition at line 961 of file xtensa-tdep.c.

Referenced by call0_frame_cache().

#define C0_INEXP   -2 /* fr_reg value if inexpressible as reg + offset. */

Definition at line 974 of file xtensa-tdep.c.

Referenced by call0_frame_cache(), call0_track_op(), and xtensa_alloc_frame_cache().

#define C0_MAXOPDS
Value:
3       /* Maximum number of operands for prologue
                           analysis.  */

Definition at line 957 of file xtensa-tdep.c.

Referenced by call0_analyze_prologue().

#define C0_NARGS   6 /* Number of A-regs for args/retvals. */

Definition at line 964 of file xtensa-tdep.c.

#define C0_NOSTK   -1 /* to_stk value if register has not been stored. */
#define C0_NREGS   16 /* Number of A-registers to track. */
#define C0_RA   0 /* Register used as return address. */

Definition at line 962 of file xtensa-tdep.c.

Referenced by call0_frame_cache().

#define C0_SP   1 /* Register used as SP. */

Definition at line 960 of file xtensa-tdep.c.

Referenced by call0_frame_cache().

#define CALLINC (   ps)    (((ps) & PS_CALLINC_MASK) >> PS_CALLINC_SHIFT)

Definition at line 90 of file xtensa-tdep.c.

Referenced by xtensa_frame_cache().

#define DEBUGINFO (   args...)
Value:
if (xtensa_debug_level > 1) \
    fprintf_unfiltered (gdb_stdlog, "(info ) " args)

Definition at line 64 of file xtensa-tdep.c.

Referenced by xtensa_extract_return_value(), xtensa_push_dummy_call(), and xtensa_unwind_pc().

#define DEBUGTRACE (   args...)
#define DEBUGVERB (   args...)
Value:
if (xtensa_debug_level > 3) \
    fprintf_unfiltered (gdb_stdlog, "(verb ) " args)

Definition at line 72 of file xtensa-tdep.c.

Referenced by call0_analyze_prologue().

#define DEBUGWARN (   args...)
Value:
if (xtensa_debug_level > 0) \
    fprintf_unfiltered (gdb_stdlog, "(warn ) " args)

Definition at line 60 of file xtensa-tdep.c.

#define DENSITY_BIG_BREAKPOINT   { 0xd2, 0x0f }

Definition at line 1982 of file xtensa-tdep.c.

Referenced by xtensa_breakpoint_from_pc().

#define DENSITY_LITTLE_BREAKPOINT   { 0x2d, 0xf0 }

Definition at line 1983 of file xtensa-tdep.c.

Referenced by xtensa_breakpoint_from_pc().

#define LITTLE_BREAKPOINT   { 0x00, 0x40, 0x00 }

Definition at line 1981 of file xtensa-tdep.c.

Referenced by xtensa_breakpoint_from_pc().

#define PS_CALLINC_MASK   0x00030000

Definition at line 89 of file xtensa-tdep.c.

Referenced by xtensa_frame_cache().

#define PS_CALLINC_SHIFT   16

Definition at line 88 of file xtensa-tdep.c.

Referenced by xtensa_frame_cache().

#define PS_EXC   (1<<4)

Definition at line 121 of file xtensa-tdep.c.

Referenced by windowing_enabled(), and xtensa_window_interrupt_frame_cache().

#define PS_WOE   (1<<18)

Definition at line 120 of file xtensa-tdep.c.

Referenced by windowing_enabled().

#define REGISTER_SIZE   4

Definition at line 84 of file xtensa-tdep.c.

Referenced by xtensa_push_dummy_call().

#define RETURN_FP   goto done

Referenced by xtensa_scan_prologue().

#define RETURN_RET   goto done

Referenced by call0_ret().

#define SAVE_REST_FLAGS
#define SAVE_REST_VALID
#define SP_ALIGNMENT   16

Definition at line 78 of file xtensa-tdep.c.

Referenced by xtensa_dummy_id(), and xtensa_push_dummy_call().

#define TX_PS   0x20

Definition at line 96 of file xtensa-tdep.c.

Referenced by xtensa_frame_cache().

#define WINSIZE (   ra)    (4 * (( (ra) >> 30) & 0x3))

Definition at line 91 of file xtensa-tdep.c.

Referenced by xtensa_frame_cache(), and xtensa_window_interrupt_frame_cache().

#define XTENSA_DBREGN_SREG (   n)    (0x0200+(n))

Referenced by xtensa_derive_tdep().

#define XTENSA_ENTRY_LENGTH   3

Definition at line 114 of file xtensa-tdep.c.

#define XTENSA_IS_ENTRY (   gdbarch,
  op1 
)
Value:
((gdbarch_byte_order (gdbarch) == BFD_ENDIAN_BIG) \
   ? ((op1) == 0x6c) : ((op1) == 0x36))

Definition at line 110 of file xtensa-tdep.c.

Referenced by xtensa_frame_cache().

#define XTENSA_ISA_BADPC   ((CORE_ADDR)0) /* Bad PC value. */

Definition at line 1145 of file xtensa-tdep.c.

Referenced by call0_analyze_prologue(), and call0_frame_cache().

#define XTENSA_ISA_BSZ   32 /* Instruction buffer size. */

Definition at line 2791 of file xtensa-tdep.c.

Referenced by execute_code().

#define XTENSA_NUM_SAVED_AREGS   12

Typedef Documentation

typedef struct xtensa_c0reg xtensa_c0reg_t

Enumeration Type Documentation

Enumerator:
xtWindowOverflow 
xtWindowUnderflow 
xtNoExceptionHandler 

Definition at line 2793 of file xtensa-tdep.c.

Enumerator:
c0opc_illegal 
c0opc_uninteresting 
c0opc_flow 
c0opc_entry 
c0opc_break 
c0opc_add 
c0opc_addi 
c0opc_and 
c0opc_sub 
c0opc_mov 
c0opc_movi 
c0opc_l32r 
c0opc_s32i 
c0opc_rwxsr 
c0opc_l32e 
c0opc_s32e 
c0opc_rfwo 
c0opc_rfwu 
c0opc_NrOf 

Definition at line 2100 of file xtensa-tdep.c.


Function Documentation

void _initialize_xtensa_tdep ( void  )
static int areg_number ( struct gdbarch gdbarch,
int  ar_regnum,
unsigned int  wb 
) [static]

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

References gdbarch_tdep::ar_base, gdbarch_tdep(), and gdbarch_tdep::num_aregs.

Referenced by xtensa_frame_prev_register().

static int arreg_number ( struct gdbarch gdbarch,
int  a_regnum,
ULONGEST  wb 
) [static]
static CORE_ADDR call0_analyze_prologue ( struct gdbarch gdbarch,
CORE_ADDR  start,
CORE_ADDR  pc,
int  nregs,
xtensa_frame_cache_t cache 
) [static]
static xtensa_insn_kind call0_classify_opcode ( xtensa_isa  isa,
xtensa_opcode  opc 
) [static]
static void call0_frame_cache ( struct frame_info this_frame,
xtensa_frame_cache_t cache,
CORE_ADDR  pc 
) [static]
static int call0_ret ( CORE_ADDR  start_pc,
CORE_ADDR  finish_pc 
) [static]
static int call0_track_op ( struct gdbarch gdbarch,
xtensa_c0reg_t  dst[],
xtensa_c0reg_t  src[],
xtensa_insn_kind  opclass,
int  nods,
unsigned  odv[],
CORE_ADDR  pc,
int  spreg,
xtensa_frame_cache_t cache 
) [static]
static xtensa_exception_handler_t execute_code ( struct gdbarch gdbarch,
CORE_ADDR  current_pc,
CORE_ADDR  wb 
) [static]
static void execute_l32e ( struct gdbarch gdbarch,
int  at,
int  as,
int  offset,
CORE_ADDR  wb 
) [static]
static void execute_s32e ( struct gdbarch gdbarch,
int  at,
int  as,
int  offset,
CORE_ADDR  wb 
) [static]
static int extract_call_winsize ( struct gdbarch gdbarch,
CORE_ADDR  pc 
) [static]
static int rwx_special_register ( const char *  opcname) [static]

Definition at line 2126 of file xtensa-tdep.c.

Referenced by call0_classify_opcode().

static void warning_once ( void  ) [static]

Definition at line 1430 of file xtensa-tdep.c.

References _, warning(), and xtensa_session_once_reported.

Referenced by call0_frame_cache().

static int windowing_enabled ( struct gdbarch gdbarch,
unsigned int  ps 
) [static]

Definition at line 124 of file xtensa-tdep.c.

References CallAbiCall0Only, PS_EXC, and PS_WOE.

Referenced by xtensa_frame_cache().

static void xtensa_add_reggroups ( struct gdbarch gdbarch) [static]
static struct xtensa_frame_cache* xtensa_alloc_frame_cache ( int  windowed) [static, read]
static const unsigned char* xtensa_breakpoint_from_pc ( struct gdbarch gdbarch,
CORE_ADDR pcptr,
int lenptr 
) [static]
static int xtensa_coprocessor_register_group ( struct reggroup group) [static]

Definition at line 788 of file xtensa-tdep.c.

References XTENSA_MAX_COPROCESSOR.

Referenced by xtensa_register_reggroup_p().

static void xtensa_derive_tdep ( struct gdbarch_tdep tdep) [static]
static struct frame_id xtensa_dummy_id ( struct gdbarch gdbarch,
struct frame_info this_frame 
) [static, read]
static void xtensa_dump_tdep ( struct gdbarch gdbarch,
struct ui_file file 
) [static]

Definition at line 3294 of file xtensa-tdep.c.

References _, and error().

Referenced by _initialize_xtensa_tdep().

static void xtensa_extract_return_value ( struct type type,
struct regcache regcache,
void *  dst 
) [static]
static int xtensa_find_register_by_name ( struct gdbarch gdbarch,
char *  name 
) [static]

Definition at line 231 of file xtensa-tdep.c.

References gdbarch_num_pseudo_regs(), gdbarch_num_regs(), and regmap.

Referenced by xtensa_window_interrupt_frame_cache().

static CORE_ADDR xtensa_frame_align ( struct gdbarch gdbarch,
CORE_ADDR  address 
) [static]

Definition at line 1070 of file xtensa-tdep.c.

Referenced by xtensa_gdbarch_init().

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

Definition at line 1557 of file xtensa-tdep.c.

References xtensa_frame_cache::base, and xtensa_frame_cache().

static struct xtensa_frame_cache* xtensa_frame_cache ( struct frame_info this_frame,
void **  this_cache 
) [static, read]
static struct value* xtensa_frame_prev_register ( struct frame_info this_frame,
void **  this_cache,
int  regnum 
) [static, read]
static void xtensa_frame_this_id ( struct frame_info this_frame,
void **  this_cache,
struct frame_id this_id 
) [static]
static struct gdbarch* xtensa_gdbarch_init ( struct gdbarch_info  info,
struct gdbarch_list arches 
) [static, read]

Definition at line 3205 of file xtensa-tdep.c.

References gdbarch_tdep::a0_base, gdbarch_info::byte_order, core_addr_lessthan(), DEBUGTRACE, dwarf2_append_unwinders(), frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_alloc(), gdbarch_tdep::num_pseudo_regs, gdbarch_tdep::num_regs, gdbarch_tdep::pc_regnum, gdbarch_tdep::ps_regnum, set_gdbarch_believe_pcc_promotion(), set_gdbarch_breakpoint_from_pc(), set_gdbarch_decr_pc_after_break(), set_gdbarch_dummy_id(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_frame_align(), set_gdbarch_frame_args_skip(), set_gdbarch_have_nonsteppable_watchpoint(), set_gdbarch_inner_than(), set_gdbarch_num_pseudo_regs(), set_gdbarch_num_regs(), set_gdbarch_pc_regnum(), set_gdbarch_print_insn(), set_gdbarch_ps_regnum(), set_gdbarch_pseudo_register_read(), set_gdbarch_pseudo_register_write(), set_gdbarch_push_dummy_call(), set_gdbarch_register_name(), set_gdbarch_register_reggroup_p(), set_gdbarch_register_type(), set_gdbarch_regset_from_core_section(), set_gdbarch_return_value(), set_gdbarch_skip_prologue(), set_gdbarch_sp_regnum(), set_gdbarch_stab_reg_to_regnum(), set_gdbarch_unwind_pc(), set_solib_svr4_fetch_link_map_offsets(), svr4_ilp32_fetch_link_map_offsets(), xtensa_add_reggroups(), xtensa_breakpoint_from_pc(), xtensa_derive_tdep(), xtensa_dummy_id(), xtensa_frame_align(), xtensa_pseudo_register_read(), xtensa_pseudo_register_write(), xtensa_push_dummy_call(), xtensa_reg_to_regnum(), xtensa_register_name(), xtensa_register_reggroup_p(), xtensa_register_type(), xtensa_regset_from_core_section(), xtensa_return_value(), xtensa_session_once_reported, xtensa_skip_prologue(), xtensa_tdep, xtensa_unwind_pc(), and xtensa_verify_config().

Referenced by _initialize_xtensa_tdep().

static void xtensa_init_reggroups ( void  ) [static]

Definition at line 748 of file xtensa-tdep.c.

References reggroup_new(), USER_REGGROUP, and XTENSA_MAX_COPROCESSOR.

Referenced by _initialize_xtensa_tdep().

static enum register_status xtensa_pseudo_register_read ( struct gdbarch gdbarch,
struct regcache regcache,
int  regnum,
gdb_byte buffer 
) [static]
static void xtensa_pseudo_register_write ( struct gdbarch gdbarch,
struct regcache regcache,
int  regnum,
const gdb_byte buffer 
) [static]
static CORE_ADDR xtensa_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 unsigned long xtensa_read_register ( int  regnum) [static]
static int xtensa_reg_to_regnum ( struct gdbarch gdbarch,
int  regnum 
) [static]
static const char* xtensa_register_name ( struct gdbarch gdbarch,
int  regnum 
) [static]
static enum register_status xtensa_register_read_masked ( struct regcache regcache,
xtensa_register_t reg,
gdb_byte buffer 
) [static]
static int xtensa_register_reggroup_p ( struct gdbarch gdbarch,
int  regnum,
struct reggroup group 
) [static]
static struct type* xtensa_register_type ( struct gdbarch gdbarch,
int  regnum 
) [static, read]
static void xtensa_register_write_masked ( struct regcache regcache,
xtensa_register_t reg,
const gdb_byte buffer 
) [static]
static struct regset* xtensa_regset_from_core_section ( struct gdbarch core_arch,
const char *  sect_name,
size_t  sect_size 
) [static, read]

Definition at line 919 of file xtensa-tdep.c.

References DEBUGTRACE, and xtensa_gregset.

Referenced by xtensa_gdbarch_init().

static enum return_value_convention xtensa_return_value ( struct gdbarch gdbarch,
struct value function,
struct type valtype,
struct regcache regcache,
gdb_byte readbuf,
const gdb_byte writebuf 
) [static]
static unsigned int xtensa_scan_prologue ( struct gdbarch gdbarch,
CORE_ADDR  current_pc 
) [static]
static CORE_ADDR xtensa_skip_prologue ( struct gdbarch gdbarch,
CORE_ADDR  start_pc 
) [static]
static void xtensa_store_return_value ( struct type type,
struct regcache regcache,
const void *  dst 
) [static]
static void xtensa_supply_gregset ( const struct regset regset,
struct regcache rc,
int  regnum,
const void *  gregs,
size_t  len 
) [static]
static CORE_ADDR xtensa_unwind_pc ( struct gdbarch gdbarch,
struct frame_info next_frame 
) [static]
static void xtensa_verify_config ( struct gdbarch gdbarch) [static]
static void xtensa_window_interrupt_frame_cache ( struct frame_info this_frame,
xtensa_frame_cache_t cache,
CORE_ADDR  pc 
) [static]
static int xtensa_window_interrupt_insn ( struct gdbarch gdbarch,
CORE_ADDR  pc 
) [static]

Definition at line 1113 of file xtensa-tdep.c.

References code, gdbarch_byte_order(), and read_memory_integer().

Referenced by xtensa_frame_cache().

static void xtensa_write_register ( int  regnum,
ULONGEST  value 
) [static]

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

References get_current_regcache(), and regcache_raw_write_unsigned().

Referenced by execute_code(), and execute_l32e().


Variable Documentation

CORE_ADDR a0_saved [static]

Definition at line 2741 of file xtensa-tdep.c.

Referenced by execute_code(), and execute_l32e().

int a0_was_saved [static]

Definition at line 2744 of file xtensa-tdep.c.

Referenced by execute_code(), and execute_l32e().

CORE_ADDR a11_saved [static]

Definition at line 2743 of file xtensa-tdep.c.

Referenced by execute_code(), and execute_l32e().

int a11_was_saved [static]

Definition at line 2746 of file xtensa-tdep.c.

Referenced by execute_code(), and execute_l32e().

CORE_ADDR a7_saved [static]

Definition at line 2742 of file xtensa-tdep.c.

Referenced by execute_code(), and execute_l32e().

int a7_was_saved [static]

Definition at line 2745 of file xtensa-tdep.c.

Referenced by execute_code(), and execute_l32e().

struct reggroup* xtensa_ar_reggroup [static]

Definition at line 742 of file xtensa-tdep.c.

Definition at line 745 of file xtensa-tdep.c.

unsigned int xtensa_debug_level = 0 [static]

Definition at line 58 of file xtensa-tdep.c.

Referenced by _initialize_xtensa_tdep(), and xtensa_push_dummy_call().

xtensa_isa xtensa_default_isa
struct frame_base xtensa_frame_base [static]
Initial value:

Definition at line 1566 of file xtensa-tdep.c.

struct regset xtensa_gregset [static]
Initial value:

Definition at line 908 of file xtensa-tdep.c.

Referenced by xtensa_regset_from_core_section().

Definition at line 1424 of file xtensa-tdep.c.

Referenced by warning_once(), and xtensa_gdbarch_init().

Referenced by xtensa_gdbarch_init().

struct frame_unwind xtensa_unwind [static]
struct reggroup* xtensa_user_reggroup [static]

Definition at line 743 of file xtensa-tdep.c.

struct reggroup* xtensa_vectra_reggroup [static]

Definition at line 744 of file xtensa-tdep.c.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines