GDB (xrefs)
|
#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 "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 |
Macros | |
#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 } |
Variables | |
static unsigned int | xtensa_debug_level = 0 |
static struct reggroup * | xtensa_ar_reggroup |
static struct reggroup * | xtensa_user_reggroup |
static struct reggroup * | xtensa_vectra_reggroup |
static struct reggroup * | xtensa_cp [XTENSA_MAX_COPROCESSOR] |
static struct regset | xtensa_gregset |
xtensa_isa | xtensa_default_isa |
static int | xtensa_session_once_reported = 1 |
static const struct frame_unwind | xtensa_unwind |
static const 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 ARG_1ST | ( | gdbarch | ) |
Definition at line 100 of file xtensa-tdep.c.
Referenced by xtensa_push_dummy_call().
#define ARG_NOF | ( | gdbarch | ) |
Definition at line 97 of file xtensa-tdep.c.
Referenced by xtensa_push_dummy_call().
#define ARGS_NUM_REGS 6 |
Definition at line 81 of file xtensa-tdep.c.
#define BIG_BREAKPOINT { 0x00, 0x04, 0x00 } |
Definition at line 1966 of file xtensa-tdep.c.
Referenced by xtensa_breakpoint_from_pc().
#define C0_ARGS 2 /* Register used as first arg/retval. */ |
Definition at line 949 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 945 of file xtensa-tdep.c.
Definition at line 959 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 947 of file xtensa-tdep.c.
Referenced by call0_frame_cache().
Definition at line 960 of file xtensa-tdep.c.
Referenced by call0_frame_cache(), call0_track_op(), and xtensa_alloc_frame_cache().
#define C0_MAXOPDS |
Definition at line 942 of file xtensa-tdep.c.
Referenced by call0_analyze_prologue().
#define C0_NARGS 6 /* Number of A-regs for args/retvals. */ |
Definition at line 950 of file xtensa-tdep.c.
Definition at line 961 of file xtensa-tdep.c.
Referenced by call0_frame_cache(), call0_track_op(), xtensa_alloc_frame_cache(), and xtensa_frame_prev_register().
Definition at line 944 of file xtensa-tdep.c.
Referenced by call0_frame_cache(), call0_track_op(), xtensa_alloc_frame_cache(), and xtensa_frame_prev_register().
#define C0_RA 0 /* Register used as return address. */ |
Definition at line 948 of file xtensa-tdep.c.
Referenced by call0_frame_cache().
#define C0_SP 1 /* Register used as SP. */ |
Definition at line 946 of file xtensa-tdep.c.
Referenced by call0_frame_cache().
#define CALLINC | ( | ps | ) | (((ps) & PS_CALLINC_MASK) >> PS_CALLINC_SHIFT) |
Definition at line 88 of file xtensa-tdep.c.
Referenced by xtensa_frame_cache().
#define DEBUGINFO | ( | args... | ) |
Definition at line 62 of file xtensa-tdep.c.
Referenced by xtensa_extract_return_value(), xtensa_push_dummy_call(), and xtensa_unwind_pc().
#define DEBUGTRACE | ( | args... | ) |
Definition at line 66 of file xtensa-tdep.c.
Referenced by call0_analyze_prologue(), call0_classify_opcode(), extract_call_winsize(), xtensa_alloc_frame_cache(), xtensa_breakpoint_from_pc(), xtensa_extract_return_value(), xtensa_gdbarch_init(), xtensa_iterate_over_regset_sections(), xtensa_pseudo_register_read(), xtensa_pseudo_register_write(), xtensa_push_dummy_call(), xtensa_register_read_masked(), xtensa_register_write_masked(), xtensa_return_value(), xtensa_skip_prologue(), xtensa_store_return_value(), xtensa_supply_gregset(), and xtensa_unwind_pc().
#define DEBUGVERB | ( | args... | ) |
Definition at line 70 of file xtensa-tdep.c.
Referenced by call0_analyze_prologue().
#define DEBUGWARN | ( | args... | ) |
Definition at line 58 of file xtensa-tdep.c.
#define DENSITY_BIG_BREAKPOINT { 0xd2, 0x0f } |
Definition at line 1968 of file xtensa-tdep.c.
Referenced by xtensa_breakpoint_from_pc().
#define DENSITY_LITTLE_BREAKPOINT { 0x2d, 0xf0 } |
Definition at line 1969 of file xtensa-tdep.c.
Referenced by xtensa_breakpoint_from_pc().
#define LITTLE_BREAKPOINT { 0x00, 0x40, 0x00 } |
Definition at line 1967 of file xtensa-tdep.c.
Referenced by xtensa_breakpoint_from_pc().
#define PS_CALLINC_MASK 0x00030000 |
Definition at line 87 of file xtensa-tdep.c.
Referenced by xtensa_frame_cache().
#define PS_CALLINC_SHIFT 16 |
Definition at line 86 of file xtensa-tdep.c.
Referenced by xtensa_frame_cache().
#define PS_EXC (1<<4) |
Definition at line 119 of file xtensa-tdep.c.
Referenced by windowing_enabled(), and xtensa_window_interrupt_frame_cache().
#define PS_WOE (1<<18) |
Definition at line 118 of file xtensa-tdep.c.
Referenced by windowing_enabled().
#define REGISTER_SIZE 4 |
Definition at line 82 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 76 of file xtensa-tdep.c.
Referenced by xtensa_dummy_id(), and xtensa_push_dummy_call().
#define TX_PS 0x20 |
Definition at line 94 of file xtensa-tdep.c.
Referenced by xtensa_frame_cache().
#define WINSIZE | ( | ra | ) | (4 * (( (ra) >> 30) & 0x3)) |
Definition at line 89 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 112 of file xtensa-tdep.c.
#define XTENSA_IS_ENTRY | ( | gdbarch, | |
op1 | |||
) |
Definition at line 108 of file xtensa-tdep.c.
Referenced by xtensa_frame_cache().
Definition at line 1131 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 1130 of file xtensa-tdep.c.
Referenced by call0_analyze_prologue(), call0_ret(), execute_code(), and xtensa_scan_prologue().
#define XTENSA_MAX_WINDOW_INTERRUPT_HANDLER_LEN 200 |
Definition at line 2777 of file xtensa-tdep.c.
Referenced by execute_code().
#define XTENSA_NUM_SAVED_AREGS 12 |
Definition at line 923 of file xtensa-tdep.c.
Referenced by xtensa_alloc_frame_cache(), xtensa_frame_prev_register(), and xtensa_window_interrupt_frame_cache().
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 |
Enumerator | |
---|---|
xtWindowOverflow | |
xtWindowUnderflow | |
xtNoExceptionHandler |
Definition at line 2779 of file xtensa-tdep.c.
enum xtensa_insn_kind |
Definition at line 2086 of file xtensa-tdep.c.
void _initialize_xtensa_tdep | ( | void | ) |
Definition at line 3289 of file xtensa-tdep.c.
References _, add_setshow_zuinteger_cmd(), class_maintenance, gdbarch_register(), setdebuglist, showdebuglist, xtensa_debug_level, xtensa_dump_tdep(), xtensa_gdbarch_init(), and xtensa_init_reggroups().
Definition at line 149 of file xtensa-tdep.c.
References gdbarch_tdep::ar_base, gdbarch_tdep(), and gdbarch_tdep::num_aregs.
Referenced by xtensa_frame_prev_register().
Definition at line 134 of file xtensa-tdep.c.
References gdbarch_tdep::a0_base, gdbarch_tdep::ar_base, gdbarch_tdep(), gdbarch_tdep::num_aregs, and WB_SHIFT.
Referenced by execute_code(), execute_l32e(), execute_s32e(), xtensa_extract_return_value(), xtensa_frame_cache(), xtensa_frame_prev_register(), xtensa_pseudo_register_read(), xtensa_pseudo_register_write(), xtensa_store_return_value(), and xtensa_window_interrupt_frame_cache().
|
static |
Definition at line 2371 of file xtensa-tdep.c.
References _, xtensa_frame_cache::c0, C0_MAXOPDS, xtensa_call0_frame_cache::c0_rt, c0opc_break, c0opc_entry, c0opc_flow, c0opc_illegal, c0opc_mov, c0opc_rwxsr, c0opc_uninteresting, xtensa_frame_cache::call0, call0_classify_opcode(), call0_track_op(), DEBUGTRACE, DEBUGVERB, symtab_and_line::end, error(), find_pc_line(), find_pc_partial_function(), gdb_assert, symtab_and_line::line, min, target_read_memory(), UINT_MAX, xtensa_default_isa, XTENSA_ISA_BADPC, and XTENSA_ISA_BSZ.
Referenced by call0_frame_cache(), and xtensa_skip_prologue().
|
static |
Definition at line 2131 of file xtensa-tdep.c.
References c0opc_add, c0opc_addi, c0opc_and, c0opc_break, c0opc_entry, c0opc_flow, c0opc_illegal, c0opc_l32e, c0opc_l32r, c0opc_mov, c0opc_movi, c0opc_rfwo, c0opc_rfwu, c0opc_rwxsr, c0opc_s32e, c0opc_s32i, c0opc_sub, c0opc_uninteresting, DEBUGTRACE, and rwx_special_register().
Referenced by call0_analyze_prologue(), and execute_code().
|
static |
Definition at line 2577 of file xtensa-tdep.c.
References gdbarch_tdep::a0_base, gdbarch::byte_order, xtensa_frame_cache::c0, C0_CONST, C0_FP, xtensa_call0_frame_cache::c0_fp, xtensa_call0_frame_cache::c0_fpalign, xtensa_call0_frame_cache::c0_frmsz, xtensa_call0_frame_cache::c0_hasfp, C0_INEXP, C0_NOSTK, C0_NREGS, xtensa_call0_frame_cache::c0_old_sp, C0_RA, xtensa_call0_frame_cache::c0_rt, C0_SP, xtensa_call0_frame_cache::c0_sp_ofs, call0_analyze_prologue(), find_pc_partial_function(), fp_regnum, xtensa_call0_frame_cache::fp_regnum, xtensa_c0reg::fr_ofs, xtensa_c0reg::fr_reg, gdbarch_byte_order(), gdbarch_tdep(), get_frame_arch(), get_frame_register_unsigned(), xtensa_frame_cache::pc, xtensa_frame_cache::prev_sp, xtensa_frame_cache::ra, read_memory_integer(), xtensa_c0reg::to_stk, UINT_MAX, warning_once(), and XTENSA_ISA_BADPC.
Referenced by xtensa_frame_cache().
Definition at line 2015 of file xtensa-tdep.c.
References gdb_assert, RETURN_RET, target_read_memory(), xtensa_default_isa, and XTENSA_ISA_BSZ.
Referenced by xtensa_skip_prologue().
|
static |
Definition at line 2204 of file xtensa-tdep.c.
References xtensa_frame_cache::c0, C0_CONST, xtensa_call0_frame_cache::c0_fpalign, C0_INEXP, C0_NOSTK, C0_NREGS, xtensa_call0_frame_cache::c0_old_sp, xtensa_call0_frame_cache::c0_sp_ofs, c0opc_add, c0opc_addi, c0opc_and, c0opc_l32e, c0opc_l32r, c0opc_mov, c0opc_movi, c0opc_rfwo, c0opc_rfwu, c0opc_s32e, c0opc_s32i, c0opc_sub, xtensa_c0reg::fr_ofs, xtensa_c0reg::fr_reg, gdb_assert, gdbarch_byte_order(), gdbarch_tdep(), gdbarch_tdep::litbase_regnum, read_memory_integer(), xtensa_c0reg::to_stk, and xtensa_read_register().
Referenced by call0_analyze_prologue().
|
static |
Definition at line 2789 of file xtensa-tdep.c.
References a0_saved, a0_was_saved, a11_saved, a11_was_saved, a7_saved, a7_was_saved, arreg_number(), c0opc_break, c0opc_entry, c0opc_flow, c0opc_illegal, c0opc_l32e, c0opc_rfwo, c0opc_rfwu, c0opc_s32e, call0_classify_opcode(), execute_l32e(), execute_s32e(), func, gdb_assert, int, offset, target_read_memory(), xtensa_default_isa, XTENSA_ISA_BSZ, XTENSA_MAX_WINDOW_INTERRUPT_HANDLER_LEN, xtensa_write_register(), xtNoExceptionHandler, xtWindowOverflow, and xtWindowUnderflow.
Referenced by xtensa_window_interrupt_frame_cache().
|
static |
Definition at line 2736 of file xtensa-tdep.c.
References a0_saved, a0_was_saved, a11_saved, a11_was_saved, a7_saved, a7_was_saved, arreg_number(), gdbarch_byte_order(), offset, read_memory_unsigned_integer(), xtensa_read_register(), and xtensa_write_register().
Referenced by execute_code().
|
static |
Definition at line 2765 of file xtensa-tdep.c.
References arreg_number(), gdbarch_byte_order(), offset, write_memory_unsigned_integer(), and xtensa_read_register().
Referenced by execute_code().
Definition at line 190 of file xtensa-tdep.c.
References DEBUGTRACE, extract_unsigned_integer(), gdbarch_byte_order(), and read_memory().
Referenced by xtensa_extract_return_value(), and xtensa_store_return_value().
Definition at line 2112 of file xtensa-tdep.c.
Referenced by call0_classify_opcode().
|
static |
Definition at line 1416 of file xtensa-tdep.c.
References _, warning(), and xtensa_session_once_reported.
Referenced by call0_frame_cache().
Definition at line 122 of file xtensa-tdep.c.
References CallAbiCall0Only, PS_EXC, and PS_WOE.
Referenced by xtensa_frame_cache().
|
static |
Definition at line 755 of file xtensa-tdep.c.
References all_reggroup, float_reggroup, general_reggroup, reggroup_add(), restore_reggroup, save_reggroup, system_reggroup, vector_reggroup, and XTENSA_MAX_COPROCESSOR.
Referenced by xtensa_gdbarch_init().
|
static |
Definition at line 1010 of file xtensa-tdep.c.
References xtensa_windowed_frame_cache::aregs, xtensa_frame_cache::base, xtensa_frame_cache::c0, xtensa_call0_frame_cache::c0_fp, xtensa_call0_frame_cache::c0_fpalign, xtensa_call0_frame_cache::c0_frmsz, xtensa_call0_frame_cache::c0_hasfp, C0_INEXP, C0_NOSTK, C0_NREGS, xtensa_call0_frame_cache::c0_old_sp, xtensa_call0_frame_cache::c0_rt, xtensa_call0_frame_cache::c0_sp_ofs, xtensa_frame_cache::call0, xtensa_windowed_frame_cache::callsize, DEBUGTRACE, xtensa_call0_frame_cache::fp_regnum, xtensa_c0reg::fr_ofs, xtensa_c0reg::fr_reg, FRAME_OBSTACK_ZALLOC, xtensa_frame_cache::pc, xtensa_frame_cache::prev_sp, xtensa_frame_cache::ps, xtensa_frame_cache::ra, xtensa_c0reg::to_stk, xtensa_windowed_frame_cache::wb, xtensa_frame_cache::wd, xtensa_windowed_frame_cache::ws, and XTENSA_NUM_SAVED_AREGS.
Referenced by xtensa_frame_cache(), and xtensa_skip_prologue().
|
static |
Definition at line 1972 of file xtensa-tdep.c.
References BIG_BREAKPOINT, DEBUGTRACE, DENSITY_BIG_BREAKPOINT, DENSITY_LITTLE_BREAKPOINT, gdbarch_byte_order(), and LITTLE_BREAKPOINT.
Referenced by xtensa_gdbarch_init().
Definition at line 778 of file xtensa-tdep.c.
References XTENSA_MAX_COPROCESSOR.
Referenced by xtensa_register_reggroup_p().
|
static |
Definition at line 3113 of file xtensa-tdep.c.
References gdbarch_tdep::a0_base, gdbarch_tdep::ar_base, xtensa_register_t::byte_size, gdbarch_tdep::cpenable_regnum, gdbarch_tdep::debugcause_regnum, gdbarch_tdep::exccause_regnum, gdbarch_tdep::excvaddr_regnum, xtensa_register_t::flags, gdbarch_tdep::interrupt2_regnum, gdbarch_tdep::interrupt_regnum, gdbarch_tdep::lbeg_regnum, gdbarch_tdep::lcount_regnum, gdbarch_tdep::lend_regnum, gdbarch_tdep::litbase_regnum, xtensa_register_t::mask, gdbarch_tdep::max_register_raw_size, gdbarch_tdep::max_register_virtual_size, gdbarch_tdep::num_nopriv_regs, gdbarch_tdep::num_pseudo_regs, gdbarch_tdep::num_regs, gdbarch_tdep::pc_regnum, gdbarch_tdep::ps_regnum, gdbarch_tdep::regmap, rmap, gdbarch_tdep::sar_regnum, xtensa_register_t::target_number, gdbarch_tdep::wb_regnum, gdbarch_tdep::ws_regnum, XTENSA_DBREGN_SREG, and XTENSA_REGISTER_FLAGS_PRIVILEGED.
Referenced by xtensa_gdbarch_init().
|
static |
Definition at line 1081 of file xtensa-tdep.c.
References frame_id_build(), get_frame_pc(), get_frame_register_unsigned(), and SP_ALIGNMENT.
Referenced by xtensa_gdbarch_init().
Definition at line 3280 of file xtensa-tdep.c.
Referenced by _initialize_xtensa_tdep().
|
static |
Definition at line 1562 of file xtensa-tdep.c.
References _, gdbarch_tdep::a0_base, arreg_number(), C0_ARGS, CallAbiCall0Only, DEBUGINFO, DEBUGTRACE, extract_call_winsize(), gdb_assert, gdbarch_byte_order(), gdbarch_pc_regnum(), gdbarch_tdep(), get_regcache_arch(), internal_error(), len, offset, regcache_raw_read(), regcache_raw_read_part(), regcache_raw_read_unsigned(), and TYPE_LENGTH.
Referenced by xtensa_return_value().
Definition at line 229 of file xtensa-tdep.c.
References gdbarch_num_pseudo_regs(), gdbarch_num_regs(), and regmap.
Referenced by xtensa_window_interrupt_frame_cache().
Definition at line 1056 of file xtensa-tdep.c.
Referenced by xtensa_gdbarch_init().
|
static |
Definition at line 1543 of file xtensa-tdep.c.
References xtensa_frame_cache::base, and xtensa_frame_cache().
|
static |
Definition at line 1263 of file xtensa-tdep.c.
References xtensa_windowed_frame_cache::aregs, arreg_number(), xtensa_frame_cache::base, gdbarch::byte_order, xtensa_frame_cache::c0, call0_frame_cache(), CALLINC, xtensa_windowed_frame_cache::callsize, fp_regnum, xtensa_call0_frame_cache::fp_regnum, gdbarch_byte_order(), gdbarch_pc_regnum(), gdbarch_ps_regnum(), get_frame_arch(), get_frame_func(), get_frame_register_unsigned(), gdbarch_tdep::num_aregs, xtensa_frame_cache::pc, xtensa_frame_cache::prev_sp, cleanup_check::ps, xtensa_frame_cache::ps, PS_CALLINC_MASK, PS_CALLINC_SHIFT, gdbarch::ps_regnum, xtensa_frame_cache::ra, read_memory_integer(), regnum, TX_PS, xtensa_windowed_frame_cache::wb, xtensa_frame_cache::wd, windowing_enabled(), WINSIZE, xtensa_windowed_frame_cache::ws, xtensa_alloc_frame_cache(), XTENSA_IS_ENTRY, xtensa_read_register(), xtensa_scan_prologue(), xtensa_window_interrupt_frame_cache(), and xtensa_window_interrupt_insn().
Referenced by xtensa_frame_base_address(), xtensa_frame_prev_register(), and xtensa_frame_this_id().
|
static |
Definition at line 1442 of file xtensa-tdep.c.
References gdbarch_tdep::ar_base, areg_number(), xtensa_windowed_frame_cache::aregs, arreg_number(), xtensa_frame_cache::c0, xtensa_call0_frame_cache::c0_fp, C0_NOSTK, C0_NREGS, xtensa_call0_frame_cache::c0_rt, xtensa_frame_cache::call0, xtensa_call0_frame_cache::fp_regnum, xtensa_c0reg::fr_ofs, frame_unwind_got_constant(), frame_unwind_got_memory(), frame_unwind_got_register(), gdbarch_pc_regnum(), gdbarch_ps_regnum(), gdbarch_tdep(), get_frame_arch(), xtensa_frame_cache::prev_sp, xtensa_frame_cache::ps, xtensa_frame_cache::ra, regnum, xtensa_c0reg::to_stk, xtensa_windowed_frame_cache::wb, xtensa_frame_cache::wd, xtensa_windowed_frame_cache::ws, xtensa_frame_cache(), and XTENSA_NUM_SAVED_AREGS.
|
static |
Definition at line 1428 of file xtensa-tdep.c.
References frame_id_build(), xtensa_frame_cache::pc, xtensa_frame_cache::prev_sp, and xtensa_frame_cache().
|
static |
Definition at line 3191 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_iterate_over_regset_sections(), 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_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_iterate_over_regset_sections(), 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_return_value(), xtensa_session_once_reported, xtensa_skip_prologue(), xtensa_tdep, xtensa_unwind_pc(), and xtensa_verify_config().
Referenced by _initialize_xtensa_tdep().
|
static |
Definition at line 738 of file xtensa-tdep.c.
References reggroup_new(), USER_REGGROUP, and XTENSA_MAX_COPROCESSOR.
Referenced by _initialize_xtensa_tdep().
|
static |
Definition at line 908 of file xtensa-tdep.c.
References DEBUGTRACE.
Referenced by xtensa_gdbarch_init().
|
static |
Definition at line 546 of file xtensa-tdep.c.
References _, arreg_number(), DEBUGTRACE, extract_unsigned_integer(), flags, gdbarch_byte_order(), gdbarch_num_pseudo_regs(), gdbarch_num_regs(), gdbarch_tdep(), internal_error(), MAX_REGISTER_SIZE, REG_VALID, regcache_raw_read(), gdbarch_tdep::regmap, regnum, status, gdbarch_tdep::target_flags, xtensa_register_t::type, warning(), xtensa_register_name(), xtensa_register_read_masked(), xtRegisterTypeMapped, xtRegisterTypeTieRegfile, xtRegisterTypeTieState, xtRegisterTypeUnknown, xtRegisterTypeUnmapped, xtTargetFlagsNonVisibleRegs, and xtTargetFlagsUseFetchStore.
Referenced by xtensa_gdbarch_init().
|
static |
Definition at line 642 of file xtensa-tdep.c.
References _, arreg_number(), DEBUGTRACE, extract_unsigned_integer(), flags, gdbarch_byte_order(), gdbarch_num_pseudo_regs(), gdbarch_num_regs(), gdbarch_tdep(), internal_error(), MAX_REGISTER_SIZE, regcache_raw_read(), regcache_raw_write(), gdbarch_tdep::regmap, regnum, gdbarch_tdep::target_flags, xtensa_register_t::type, warning(), xtensa_register_name(), xtensa_register_write_masked(), xtRegisterTypeMapped, xtRegisterTypeTieRegfile, xtRegisterTypeTieState, xtRegisterTypeUnknown, xtRegisterTypeUnmapped, xtTargetFlagsNonVisibleRegs, and xtTargetFlagsUseFetchStore.
Referenced by xtensa_gdbarch_init().
|
static |
Definition at line 1704 of file xtensa-tdep.c.
References align_down(), ARG_1ST, ARG_NOF, builtin_type::builtin_long, builtin_type(), gdbarch::byte_order, CallAbiCall0Only, check_typedef(), DEBUGINFO, DEBUGTRACE, extract_unsigned_integer(), fprintf_unfiltered(), gdb_stdlog, gdbarch_byte_order(), gdbarch_ps_regnum(), host_address_to_string(), gdb.printing::long, offset, cleanup_check::ps, read_memory(), regcache_cooked_write(), regcache_cooked_write_unsigned(), regcache_raw_read(), regcache_raw_read_unsigned(), REGISTER_SIZE, size, SP_ALIGNMENT, store_unsigned_integer(), TARGET_CHAR_BIT, TYPE_CODE, TYPE_CODE_BOOL, TYPE_CODE_CHAR, TYPE_CODE_ENUM, TYPE_CODE_FLT, TYPE_CODE_INT, TYPE_CODE_RANGE, TYPE_CODE_STRUCT, TYPE_LENGTH, value_cast(), value_contents(), value_type(), write_memory(), and xtensa_debug_level.
Referenced by xtensa_gdbarch_init().
|
static |
Definition at line 163 of file xtensa-tdep.c.
References get_current_regcache(), and regcache_raw_read_unsigned().
Referenced by call0_track_op(), execute_l32e(), execute_s32e(), xtensa_frame_cache(), and xtensa_window_interrupt_frame_cache().
Definition at line 344 of file xtensa-tdep.c.
References _, gdbarch_tdep::a0_base, gdbarch_num_pseudo_regs(), gdbarch_num_regs(), gdbarch_tdep(), internal_error(), gdbarch_tdep::regmap, regnum, and xtensa_register_t::target_number.
Referenced by xtensa_gdbarch_init().
Definition at line 245 of file xtensa-tdep.c.
References _, gdbarch_num_pseudo_regs(), gdbarch_num_regs(), gdbarch_tdep(), internal_error(), xtensa_register_t::name, gdbarch_tdep::regmap, and regnum.
Referenced by xtensa_gdbarch_init(), xtensa_pseudo_register_read(), and xtensa_pseudo_register_write().
|
static |
Definition at line 453 of file xtensa-tdep.c.
References _, xtensa_register_t::byte_size, DEBUGTRACE, error(), gdbarch_byte_order(), get_regcache_arch(), int, xtensa_register_t::mask, MAX_REGISTER_SIZE, xtensa_register_t::name, REG_VALID, regcache_cooked_read_unsigned(), size, and status.
Referenced by xtensa_pseudo_register_read().
|
static |
Definition at line 797 of file xtensa-tdep.c.
References all_reggroup, xtensa_register_t::flags, float_reggroup, gdbarch_num_regs(), gdbarch_tdep(), general_reggroup, xtensa_register_t::group, gdbarch_tdep::regmap, regnum, restore_reggroup, save_reggroup, SAVE_REST_FLAGS, SAVE_REST_VALID, system_reggroup, xtensa_register_t::type, vector_reggroup, xtensa_coprocessor_register_group(), xtRegisterGroupAddrReg, xtRegisterGroupCP0, xtRegisterGroupFloat, xtRegisterGroupGeneral, xtRegisterGroupState, xtRegisterGroupUser, xtRegisterGroupVectra, xtRegisterTypeUnknown, and xtRegisterTypeUnmapped.
Referenced by xtensa_gdbarch_init().
Definition at line 259 of file xtensa-tdep.c.
References _, gdbarch_tdep::a0_base, gdbarch_tdep::ar_base, arch_integer_type(), builtin_type::builtin_data_ptr, builtin_type::builtin_int, builtin_type(), builtin_type::builtin_uint128, builtin_type::builtin_uint16, builtin_type::builtin_uint32, builtin_type::builtin_uint64, builtin_type::builtin_uint8, xtensa_register_t::byte_size, xtensa_register_t::ctype, gdbarch_num_pseudo_regs(), gdbarch_num_regs(), gdbarch_pc_regnum(), gdbarch_tdep(), internal_error(), name, ctype_cache::next, gdbarch_tdep::num_aregs, gdbarch_tdep::regmap, regnum, ctype_cache::size, size, gdbarch_tdep::type_entries, ctype_cache::virtual_type, xfree(), xmalloc(), and xstrprintf().
Referenced by xtensa_gdbarch_init().
|
static |
Definition at line 369 of file xtensa-tdep.c.
References _, xtensa_register_t::byte_size, DEBUGTRACE, error(), gdbarch_byte_order(), get_regcache_arch(), arm-linux::m, xtensa_register_t::mask, MAX_REGISTER_SIZE, regcache_cooked_read_unsigned(), regcache_cooked_write_unsigned(), and size.
Referenced by xtensa_pseudo_register_write().
|
static |
Definition at line 1668 of file xtensa-tdep.c.
References DEBUGTRACE, gdb_assert, RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_LENGTH, xtensa_extract_return_value(), and xtensa_store_return_value().
Referenced by xtensa_gdbarch_init().
Definition at line 1134 of file xtensa-tdep.c.
References gdbarch_tdep::a0_base, find_pc_partial_function(), fp_regnum, gdb_assert, gdbarch_tdep(), RETURN_FP, target_read_memory(), xtensa_default_isa, and XTENSA_ISA_BSZ.
Referenced by xtensa_frame_cache(), and xtensa_window_interrupt_frame_cache().
Definition at line 3018 of file xtensa-tdep.c.
References call0_analyze_prologue(), call0_ret(), CallAbiCall0Only, DEBUGTRACE, symtab_and_line::end, find_pc_line(), find_pc_partial_function(), symtab_and_line::line, and xtensa_alloc_frame_cache().
Referenced by xtensa_gdbarch_init().
|
static |
Definition at line 1618 of file xtensa-tdep.c.
References _, gdbarch_tdep::a0_base, arreg_number(), C0_ARGS, CallAbiCall0Only, DEBUGTRACE, extract_call_winsize(), gdbarch_byte_order(), gdbarch_pc_regnum(), gdbarch_tdep(), get_regcache_arch(), internal_error(), len, offset, regcache_raw_read_unsigned(), regcache_raw_write(), regcache_raw_write_part(), and TYPE_LENGTH.
Referenced by xtensa_return_value().
|
static |
Definition at line 846 of file xtensa-tdep.c.
References xtensa_elf_gregset_t::ar, gdbarch_tdep::ar_base, DEBUGTRACE, gdbarch_pc_regnum(), gdbarch_ps_regnum(), gdbarch_tdep(), get_regcache_arch(), xtensa_elf_gregset_t::lbeg, xtensa_elf_gregset_t::lcount, xtensa_elf_gregset_t::lend, gdbarch_tdep::num_aregs, xtensa_elf_gregset_t::pc, xtensa_elf_gregset_t::ps, regcache_raw_supply(), xtensa_elf_gregset_t::sar, xtensa_elf_gregset_t::windowbase, and xtensa_elf_gregset_t::windowstart.
|
static |
Definition at line 1063 of file xtensa-tdep.c.
References DEBUGINFO, DEBUGTRACE, extract_typed_address(), frame_unwind_register(), gdbarch_pc_regnum(), host_address_to_string(), and xtensa_frame_cache::pc.
Referenced by xtensa_gdbarch_init().
|
static |
Definition at line 3063 of file xtensa-tdep.c.
References _, gdbarch_tdep::a0_base, gdbarch_tdep::ar_base, do_cleanups(), fprintf_unfiltered(), gdbarch_tdep(), internal_error(), gdbarch_tdep::isa_use_exceptions, gdbarch_tdep::isa_use_windowed_registers, cleanup_check::log(), make_cleanup(), make_cleanup_ui_file_delete(), mem_fileopen(), gdbarch_tdep::num_aregs, gdbarch_tdep::pc_regnum, gdbarch_tdep::ps_regnum, ui_file_xstrdup(), gdbarch_tdep::wb_regnum, gdbarch_tdep::ws_regnum, and xfree().
Referenced by xtensa_gdbarch_init().
|
static |
Definition at line 2923 of file xtensa-tdep.c.
References _, xtensa_windowed_frame_cache::aregs, arreg_number(), xtensa_frame_cache::base, xtensa_frame_cache::call0, xtensa_windowed_frame_cache::callsize, error(), execute_code(), gdbarch_ps_regnum(), get_frame_arch(), get_frame_func(), get_frame_register_unsigned(), if(), xtensa_frame_cache::pc, xtensa_frame_cache::prev_sp, cleanup_check::ps, xtensa_frame_cache::ps, PS_EXC, xtensa_frame_cache::ra, regnum, xtensa_windowed_frame_cache::wb, xtensa_frame_cache::wd, WINSIZE, xtensa_windowed_frame_cache::ws, xtensa_find_register_by_name(), XTENSA_NUM_SAVED_AREGS, xtensa_read_register(), xtensa_scan_prologue(), xtNoExceptionHandler, and xtWindowOverflow.
Referenced by xtensa_frame_cache().
Definition at line 1099 of file xtensa-tdep.c.
References code, gdbarch_byte_order(), and read_memory_integer().
Referenced by xtensa_frame_cache().
Definition at line 173 of file xtensa-tdep.c.
References get_current_regcache(), and regcache_raw_write_unsigned().
Referenced by execute_code(), and execute_l32e().
initialize_file_ftype _initialize_xtensa_tdep |
|
static |
Definition at line 2727 of file xtensa-tdep.c.
Referenced by execute_code(), and execute_l32e().
|
static |
Definition at line 2730 of file xtensa-tdep.c.
Referenced by execute_code(), and execute_l32e().
|
static |
Definition at line 2729 of file xtensa-tdep.c.
Referenced by execute_code(), and execute_l32e().
|
static |
Definition at line 2732 of file xtensa-tdep.c.
Referenced by execute_code(), and execute_l32e().
|
static |
Definition at line 2728 of file xtensa-tdep.c.
Referenced by execute_code(), and execute_l32e().
|
static |
Definition at line 2731 of file xtensa-tdep.c.
Referenced by execute_code(), and execute_l32e().
|
static |
Definition at line 732 of file xtensa-tdep.c.
|
static |
Definition at line 735 of file xtensa-tdep.c.
|
static |
Definition at line 56 of file xtensa-tdep.c.
Referenced by _initialize_xtensa_tdep(), and xtensa_push_dummy_call().
xtensa_isa xtensa_default_isa |
Referenced by call0_analyze_prologue(), call0_ret(), execute_code(), and xtensa_scan_prologue().
|
static |
Definition at line 1552 of file xtensa-tdep.c.
|
static |
Definition at line 898 of file xtensa-tdep.c.
|
static |
Definition at line 1410 of file xtensa-tdep.c.
Referenced by warning_once(), and xtensa_gdbarch_init().
struct gdbarch_tdep xtensa_tdep |
Referenced by xtensa_gdbarch_init().
|
static |
Definition at line 1532 of file xtensa-tdep.c.
|
static |
Definition at line 733 of file xtensa-tdep.c.
|
static |
Definition at line 734 of file xtensa-tdep.c.