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

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

void _initialize_xtensa_tdep (void)

Variables

xtensa_isa xtensa_default_isa
struct gdbarch_tdep xtensa_tdep
initialize_file_ftype _initialize_xtensa_tdep

Define Documentation

#define ARG_1ST (   gdbarch)
Value:
(gdbarch_tdep (gdbarch)->call_abi  == CallAbiCall0Only \
   ? (gdbarch_tdep (gdbarch)->a0_base + C0_ARGS) \
   : (gdbarch_tdep (gdbarch)->a0_base + 6))

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

#define ARG_NOF (   gdbarch)
Value:

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

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

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

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

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

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

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

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

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

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

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

#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. */

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

#define C0_NREGS   16 /* Number of A-registers to track. */

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

#define C0_RA   0 /* Register used as return address. */

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

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

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

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

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

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

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

#define DEBUGTRACE (   args...)
Value:
if (xtensa_debug_level > 2) \
    fprintf_unfiltered (gdb_stdlog, "(trace) " args)

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

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

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

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

#define DENSITY_LITTLE_BREAKPOINT   { 0x2d, 0xf0 }

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

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

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

#define PS_CALLINC_MASK   0x00030000

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

#define PS_CALLINC_SHIFT   16

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

#define PS_EXC   (1<<4)

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

#define PS_WOE   (1<<18)

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

#define REGISTER_SIZE   4

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

#define RETURN_FP   goto done
#define RETURN_RET   goto done
#define SAVE_REST_FLAGS
#define SAVE_REST_VALID
#define SP_ALIGNMENT   16

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

#define TX_PS   0x20

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

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

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

#define XTENSA_DBREGN_SREG (   n)    (0x0200+(n))
#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.

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

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

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

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

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

#define XTENSA_NUM_SAVED_AREGS   12

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


Typedef Documentation

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
typedef struct xtensa_windowed_frame_cache xtensa_windowed_frame_cache_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  )

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


Variable Documentation

xtensa_isa xtensa_default_isa
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines