GDB (xrefs)

Classes | Macros | Enumerations | Functions | Variables
/tmp/gdb-8.1/gdb/avr-tdep.c File Reference
`#include "defs.h"`
`#include "frame.h"`
`#include "frame-unwind.h"`
`#include "frame-base.h"`
`#include "trad-frame.h"`
`#include "gdbcmd.h"`
`#include "gdbcore.h"`
`#include "gdbtypes.h"`
`#include "inferior.h"`
`#include "symfile.h"`
`#include "arch-utils.h"`
`#include "regcache.h"`
`#include "dis-asm.h"`
`#include "objfiles.h"`
`#include <algorithm>`

Go to the source code of this file.

## Classes
struct | avr_unwind_cache
struct | gdbarch_tdep
struct | stack_item

## Macros
#define | AVR_TYPE_ADDRESS_CLASS_FLASH TYPE_ADDRESS_CLASS_1
#define | AVR_TYPE_INSTANCE_FLAG_ADDRESS_CLASS_FLASH TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1

## Enumerations
enum | { AVR_REG_W = 24, AVR_REG_X = 26, AVR_REG_Y = 28, AVR_FP_REGNUM = 28, AVR_REG_Z = 30, AVR_SREG_REGNUM = 32, AVR_SP_REGNUM = 33, AVR_PC_REGNUM = 34, AVR_NUM_REGS = 32 + 1 + 1 + 1, AVR_NUM_REG_BYTES = 32 + 1 + 2 + 4, AVR_PSEUDO_PC_REGNUM = 35, AVR_NUM_PSEUDO_REGS = 1, AVR_PC_REG_INDEX = 35, AVR_MAX_PROLOGUE_SIZE = 64, AVR_MAX_PUSHES = 18, AVR_LAST_PUSHED_REGNUM = 17, AVR_ARG1_REGNUM = 24, AVR_ARGN_REGNUM = 25, AVR_LAST_ARG_REGNUM = 8, AVR_RET1_REGNUM = 24, AVR_RETN_REGNUM = 25, AVR_IMEM_START = 0x00000000, AVR_SMEM_START = 0x00800000, AVR_MEM_MASK = 0x00f00000 }
enum | { AVR_PROLOGUE_NONE, AVR_PROLOGUE_NORMAL, AVR_PROLOGUE_CALL, AVR_PROLOGUE_MAIN, AVR_PROLOGUE_INTR, AVR_PROLOGUE_SIG }

## Functions
static const char * | avr_register_name (struct gdbarch *gdbarch, int regnum)
static struct type * | avr_register_type (struct gdbarch *gdbarch, int reg_nr)
static CORE_ADDR | avr_make_iaddr (CORE_ADDR x)
static CORE_ADDR | avr_convert_iaddr_to_raw (CORE_ADDR x)
static CORE_ADDR | avr_make_saddr (CORE_ADDR x)
static CORE_ADDR | avr_convert_saddr_to_raw (CORE_ADDR x)
static void | avr_address_to_pointer (struct gdbarch *gdbarch, struct type *type, gdb_byte *buf, CORE_ADDR addr)
static CORE_ADDR | avr_pointer_to_address (struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf)
static CORE_ADDR | avr_integer_to_address (struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf)
static CORE_ADDR | avr_read_pc (struct regcache *regcache)
static void | avr_write_pc (struct regcache *regcache, CORE_ADDR val)
static enum register_status | avr_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, int regnum, gdb_byte *buf)
static void | avr_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int regnum, const gdb_byte *buf)
static CORE_ADDR | avr_scan_prologue (struct gdbarch *gdbarch, CORE_ADDR pc_beg, CORE_ADDR pc_end, struct avr_unwind_cache *info)
static CORE_ADDR | avr_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
typedef | BP_MANIPULATION (avr_break_insn)
static struct avr_unwind_cache * | avr_frame_unwind_cache (struct frame_info *this_frame, void **this_prologue_cache)
static CORE_ADDR | avr_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
static CORE_ADDR | avr_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
static void | avr_frame_this_id (struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
static struct value * | avr_frame_prev_register (struct frame_info *this_frame, void **this_prologue_cache, int regnum)
static CORE_ADDR | avr_frame_base_address (struct frame_info *this_frame, void **this_cache)
static struct frame_id | avr_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
static struct stack_item * | push_stack_item (struct stack_item *prev, const bfd_byte *contents, int len)
static struct stack_item * | pop_stack_item (struct stack_item *si)
static CORE_ADDR | avr_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 int | avr_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int reg)
static int | avr_address_class_type_flags (int byte_size, int dwarf2_addr_class)
static const char * | avr_address_class_type_flags_to_name (struct gdbarch *gdbarch, int type_flags)
static int | avr_address_class_name_to_type_flags (struct gdbarch *gdbarch, const char *name, int *type_flags_ptr)
static struct gdbarch * | avr_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
static void | avr_io_reg_read_command (const char *args, int from_tty)
void | _initialize_avr_tdep (void)

## Variables
constexpr gdb_byte | avr_break_insn [] = { 0x98, 0x95 }
static const struct frame_unwind | avr_frame_unwind
static const struct frame_base | avr_frame_base

## Macro Definition Documentation

## ◆ AVR_TYPE_ADDRESS_CLASS_FLASH

#define AVR_TYPE_ADDRESS_CLASS_FLASH TYPE_ADDRESS_CLASS_1

Definition at line 79 of file avr-tdep.c.

Referenced by avr_address_to_pointer(), and avr_pointer_to_address().

## ◆ AVR_TYPE_INSTANCE_FLAG_ADDRESS_CLASS_FLASH

#define AVR_TYPE_INSTANCE_FLAG_ADDRESS_CLASS_FLASH TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1

Definition at line 80 of file avr-tdep.c.

Referenced by avr_address_class_name_to_type_flags(), avr_address_class_type_flags(), and avr_address_class_type_flags_to_name().

## Enumeration Type Documentation

## ◆ anonymous enum

anonymous enum

Enumerator
AVR_REG_W |
AVR_REG_X |
AVR_REG_Y |
AVR_FP_REGNUM |
AVR_REG_Z |
AVR_SREG_REGNUM |
AVR_SP_REGNUM |
AVR_PC_REGNUM |
AVR_NUM_REGS |
AVR_NUM_REG_BYTES |
AVR_PSEUDO_PC_REGNUM |
AVR_NUM_PSEUDO_REGS |
AVR_PC_REG_INDEX |
AVR_MAX_PROLOGUE_SIZE |
AVR_MAX_PUSHES |
AVR_LAST_PUSHED_REGNUM |
AVR_ARG1_REGNUM |
AVR_ARGN_REGNUM |
AVR_LAST_ARG_REGNUM |
AVR_RET1_REGNUM |
AVR_RETN_REGNUM |
AVR_IMEM_START |
AVR_SMEM_START |
AVR_MEM_MASK |

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

## ◆ anonymous enum

anonymous enum

Enumerator
AVR_PROLOGUE_NONE |
AVR_PROLOGUE_NORMAL |
AVR_PROLOGUE_CALL |
AVR_PROLOGUE_MAIN |
AVR_PROLOGUE_INTR |
AVR_PROLOGUE_SIG |

Definition at line 158 of file avr-tdep.c.

## Function Documentation

## ◆ _initialize_avr_tdep()

void _initialize_avr_tdep | ( | void |  | ) |

Definition at line 1620 of file avr-tdep.c.

References _, add_info(), avr_gdbarch_init(), avr_io_reg_read_command(), and register_gdbarch_init().

## ◆ avr_address_class_name_to_type_flags()

static int avr_address_class_name_to_type_flags | ( | struct gdbarch * | gdbarch,
|  | const char * | name,
|  | int * | type_flags_ptr
| ) |  |
| static

Definition at line 1400 of file avr-tdep.c.

References AVR_TYPE_INSTANCE_FLAG_ADDRESS_CLASS_FLASH, and name.

Referenced by avr_gdbarch_init().

## ◆ avr_address_class_type_flags()

static int avr_address_class_type_flags | ( | int | byte_size,
|  | int | dwarf2_addr_class
| ) |  |
| static

Definition at line 1371 of file avr-tdep.c.

References AVR_TYPE_INSTANCE_FLAG_ADDRESS_CLASS_FLASH.

Referenced by avr_gdbarch_init().

## ◆ avr_address_class_type_flags_to_name()

static const char* avr_address_class_type_flags_to_name | ( | struct gdbarch * | gdbarch,
|  | int | type_flags
| ) |  |
| static

Definition at line 1387 of file avr-tdep.c.

References AVR_TYPE_INSTANCE_FLAG_ADDRESS_CLASS_FLASH.

Referenced by avr_gdbarch_init().

## ◆ avr_address_to_pointer()

static void avr_address_to_pointer | ( | struct gdbarch * | gdbarch,
|  | struct type * | type,
|  | gdb_byte * | buf,
|  | CORE_ADDR | addr
| ) |  |
| static

Definition at line 304 of file avr-tdep.c.

References avr_convert_iaddr_to_raw(), avr_convert_saddr_to_raw(), AVR_TYPE_ADDRESS_CLASS_FLASH, gdbarch_byte_order(), store_unsigned_integer(), TYPE_CODE, TYPE_CODE_FUNC, TYPE_CODE_METHOD, TYPE_LENGTH, and TYPE_TARGET_TYPE.

Referenced by avr_gdbarch_init().

## ◆ avr_convert_iaddr_to_raw()

static CORE_ADDR avr_convert_iaddr_to_raw | ( | CORE_ADDR | x | ) |
| static

Definition at line 254 of file avr-tdep.c.

Referenced by avr_address_to_pointer(), avr_push_dummy_call(), and avr_write_pc().

## ◆ avr_convert_saddr_to_raw()

static CORE_ADDR avr_convert_saddr_to_raw | ( | CORE_ADDR | x | ) |
| static

Definition at line 272 of file avr-tdep.c.

Referenced by avr_address_to_pointer(), and avr_push_dummy_call().

## ◆ avr_dummy_id()

static struct frame_id avr_dummy_id | ( | struct gdbarch * | gdbarch,
|  | struct frame_info * | this_frame
| ) |  |
| static

Definition at line 1181 of file avr-tdep.c.

References avr_make_saddr(), AVR_SP_REGNUM, frame_info::base, frame_id_build(), get_frame_pc(), and get_frame_register_unsigned().

Referenced by avr_gdbarch_init().

## ◆ avr_dwarf_reg_to_regnum()

static int avr_dwarf_reg_to_regnum | ( | struct gdbarch * | gdbarch,
|  | int | reg
| ) |  |
| static

Definition at line 1356 of file avr-tdep.c.

References AVR_SP_REGNUM.

Referenced by avr_gdbarch_init().

## ◆ avr_frame_base_address()

static CORE_ADDR avr_frame_base_address | ( | struct frame_info * | this_frame,
|  | void ** | this_cache
| ) |  |
| static

Definition at line 1161 of file avr-tdep.c.

References avr_frame_unwind_cache(), and avr_unwind_cache::base.

## ◆ avr_frame_prev_register()

static struct value* avr_frame_prev_register | ( | struct frame_info * | this_frame,
|  | void ** | this_prologue_cache,
|  | int | regnum
| ) |  |
| static

Definition at line 1103 of file avr-tdep.c.

References trad_frame_saved_reg::addr, avr_frame_unwind_cache(), AVR_PC_REGNUM, AVR_PSEUDO_PC_REGNUM, gdbarch_tdep::call_length, frame_unwind_got_constant(), frame_unwind_got_optimized(), gdbarch_tdep(), get_frame_arch(), gdbarch_tdep::pc, read_memory(), regnum, avr_unwind_cache::saved_regs, trad_frame_addr_p(), and trad_frame_get_prev_register().

## ◆ avr_frame_this_id()

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

Definition at line 1078 of file avr-tdep.c.

References avr_frame_unwind_cache(), avr_unwind_cache::base, frame_id_build(), func, get_frame_func(), and avr_unwind_cache::prev_sp.

## ◆ avr_frame_unwind_cache()

static struct avr_unwind_cache* avr_frame_unwind_cache | ( | struct frame_info * | this_frame,
|  | void ** | this_prologue_cache
| ) |  |
| static

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

References trad_frame_saved_reg::addr, AVR_FP_REGNUM, avr_make_saddr(), AVR_PC_REGNUM, AVR_PROLOGUE_MAIN, AVR_PROLOGUE_NONE, avr_scan_prologue(), AVR_SP_REGNUM, avr_unwind_cache::base, gdbarch_tdep::call_length, FRAME_OBSTACK_ZALLOC, gdbarch_num_regs(), gdbarch_tdep(), get_frame_arch(), get_frame_func(), get_frame_pc(), get_frame_register_unsigned(), avr_unwind_cache::prev_sp, avr_unwind_cache::prologue_type, avr_unwind_cache::saved_regs, avr_unwind_cache::size, trad_frame_alloc_saved_regs(), and trad_frame_set_value().

Referenced by avr_frame_base_address(), avr_frame_prev_register(), and avr_frame_this_id().

## ◆ avr_gdbarch_init()

static struct gdbarch* avr_gdbarch_init | ( | struct gdbarch_info | info,
|  | struct gdbarch_list * | arches
| ) |  |
| static

Definition at line 1416 of file avr-tdep.c.

References arch_pointer_type(), arch_type(), avr_address_class_name_to_type_flags(), avr_address_class_type_flags(), avr_address_class_type_flags_to_name(), avr_address_to_pointer(), avr_dummy_id(), avr_dwarf_reg_to_regnum(), avr_frame_base, avr_frame_unwind, avr_integer_to_address(), AVR_NUM_PSEUDO_REGS, AVR_NUM_REGS, AVR_PC_REGNUM, avr_pointer_to_address(), avr_pseudo_register_read(), avr_pseudo_register_write(), avr_push_dummy_call(), avr_read_pc(), avr_register_name(), avr_register_type(), avr_skip_prologue(), AVR_SP_REGNUM, avr_unwind_pc(), avr_unwind_sp(), avr_write_pc(), gdbarch_info::bfd_arch_info, gdbarch_tdep::call_length, core_addr_lessthan(), floatformats_ieee_single, frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_tdep::func_void_type, gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_list_lookup_by_info(), make_function_type(), gdbarch_list::next, gdbarch_tdep::pc_type, set_gdbarch_addr_bit(), set_gdbarch_address_class_name_to_type_flags(), set_gdbarch_address_class_type_flags(), set_gdbarch_address_class_type_flags_to_name(), set_gdbarch_address_to_pointer(), set_gdbarch_breakpoint_kind_from_pc(), set_gdbarch_double_bit(), set_gdbarch_double_format(), set_gdbarch_dummy_id(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_float_bit(), set_gdbarch_float_format(), set_gdbarch_inner_than(), set_gdbarch_int_bit(), set_gdbarch_integer_to_address(), set_gdbarch_long_bit(), set_gdbarch_long_double_bit(), set_gdbarch_long_double_format(), set_gdbarch_long_long_bit(), set_gdbarch_num_pseudo_regs(), set_gdbarch_num_regs(), set_gdbarch_pc_regnum(), set_gdbarch_pointer_to_address(), set_gdbarch_pseudo_register_read(), set_gdbarch_pseudo_register_write(), set_gdbarch_ptr_bit(), set_gdbarch_push_dummy_call(), set_gdbarch_read_pc(), set_gdbarch_register_name(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_short_bit(), set_gdbarch_skip_prologue(), set_gdbarch_sp_regnum(), set_gdbarch_sw_breakpoint_from_kind(), set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(), set_gdbarch_wchar_bit(), set_gdbarch_wchar_signed(), set_gdbarch_write_pc(), TARGET_CHAR_BIT, TYPE_CODE_VOID, gdbarch_tdep::void_type, and XCNEW.

Referenced by _initialize_avr_tdep().

## ◆ avr_integer_to_address()

static CORE_ADDR avr_integer_to_address | ( | struct gdbarch * | gdbarch,
|  | struct type * | type,
|  | const gdb_byte * | buf
| ) |  |
| static

Definition at line 361 of file avr-tdep.c.

References avr_make_saddr(), and unpack_long().

Referenced by avr_gdbarch_init().

## ◆ avr_io_reg_read_command()

static void avr_io_reg_read_command | ( | const char * | args,
|  | int | from_tty
| ) |  |
| static

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

References _, current_target, fprintf_unfiltered(), gdb_stderr, printf_filtered(), printf_unfiltered(), query(), reinitialize_more_filter(), TARGET_OBJECT_AVR, target_read_alloc(), and xfree().

Referenced by _initialize_avr_tdep().

## ◆ avr_make_iaddr()

static CORE_ADDR avr_make_iaddr | ( | CORE_ADDR | x | ) |
| static

Definition at line 243 of file avr-tdep.c.

References AVR_IMEM_START.

Referenced by avr_pointer_to_address(), avr_read_pc(), and avr_unwind_pc().

## ◆ avr_make_saddr()

static CORE_ADDR avr_make_saddr | ( | CORE_ADDR | x | ) |
| static

Definition at line 262 of file avr-tdep.c.

References AVR_SMEM_START.

Referenced by avr_dummy_id(), avr_frame_unwind_cache(), avr_integer_to_address(), avr_pointer_to_address(), and avr_unwind_sp().

## ◆ avr_pointer_to_address()

static CORE_ADDR avr_pointer_to_address | ( | struct gdbarch * | gdbarch,
|  | struct type * | type,
|  | const gdb_byte * | buf
| ) |  |
| static

Definition at line 334 of file avr-tdep.c.

References avr_make_iaddr(), avr_make_saddr(), AVR_TYPE_ADDRESS_CLASS_FLASH, extract_unsigned_integer(), gdbarch_byte_order(), TYPE_CODE, TYPE_CODE_FUNC, TYPE_CODE_METHOD, TYPE_CODE_SPACE, TYPE_LENGTH, and TYPE_TARGET_TYPE.

Referenced by avr_gdbarch_init().

## ◆ avr_pseudo_register_read()

static enum register_status avr_pseudo_register_read | ( | struct gdbarch * | gdbarch,
|  | struct regcache * | regcache,
|  | int | regnum,
|  | gdb_byte * | buf
| ) |  |
| static

Definition at line 385 of file avr-tdep.c.

References _, AVR_PC_REGNUM, AVR_PSEUDO_PC_REGNUM, gdbarch_byte_order(), internal_error(), REG_VALID, regcache_raw_read_unsigned(), regnum, status, and store_unsigned_integer().

Referenced by avr_gdbarch_init().

## ◆ avr_pseudo_register_write()

static void avr_pseudo_register_write | ( | struct gdbarch * | gdbarch,
|  | struct regcache * | regcache,
|  | int | regnum,
|  | const gdb_byte * | buf
| ) |  |
| static

Definition at line 406 of file avr-tdep.c.

References _, AVR_PC_REGNUM, AVR_PSEUDO_PC_REGNUM, extract_unsigned_integer(), gdbarch_byte_order(), internal_error(), regcache_raw_write_unsigned(), and regnum.

Referenced by avr_gdbarch_init().

## ◆ avr_push_dummy_call()

static CORE_ADDR avr_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

Definition at line 1262 of file avr-tdep.c.

References AVR_ARGN_REGNUM, avr_convert_iaddr_to_raw(), avr_convert_saddr_to_raw(), AVR_LAST_ARG_REGNUM, AVR_SP_REGNUM, gdbarch_tdep::call_length, check_typedef(), stack_item::data, gdbarch_tdep(), stack_item::len, pop_stack_item(), push_stack_item(), regcache_cooked_write_unsigned(), regnum, TYPE_LENGTH, value_contents(), value_type(), and write_memory().

Referenced by avr_gdbarch_init().

## ◆ avr_read_pc()

static CORE_ADDR avr_read_pc | ( | struct regcache * | regcache | ) |
| static

Definition at line 370 of file avr-tdep.c.

References avr_make_iaddr(), AVR_PC_REGNUM, and regcache_cooked_read_unsigned().

Referenced by avr_gdbarch_init().

## ◆ avr_register_name()

static const char* avr_register_name | ( | struct gdbarch * | gdbarch,
|  | int | regnum
| ) |  |
| static

Definition at line 208 of file avr-tdep.c.

References regnum.

Referenced by avr_gdbarch_init().

## ◆ avr_register_type()

static struct type* avr_register_type | ( | struct gdbarch * | gdbarch,
|  | int | reg_nr
| ) |  |
| static

Definition at line 229 of file avr-tdep.c.

References AVR_PC_REGNUM, AVR_PSEUDO_PC_REGNUM, AVR_SP_REGNUM, builtin_type::builtin_data_ptr, builtin_type(), builtin_type::builtin_uint32, builtin_type::builtin_uint8, gdbarch_tdep(), and gdbarch_tdep::pc_type.

Referenced by avr_gdbarch_init().

## ◆ avr_scan_prologue()

static CORE_ADDR avr_scan_prologue | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | pc_beg,
|  | CORE_ADDR | pc_end,
|  | struct avr_unwind_cache * | info
| ) |  |
| static

Definition at line 519 of file avr-tdep.c.

References _, trad_frame_saved_reg::addr, AVR_FP_REGNUM, AVR_LAST_PUSHED_REGNUM, AVR_MAX_PROLOGUE_SIZE, AVR_MAX_PUSHES, AVR_PROLOGUE_CALL, AVR_PROLOGUE_INTR, AVR_PROLOGUE_MAIN, AVR_PROLOGUE_NORMAL, AVR_PROLOGUE_SIG, AVR_SREG_REGNUM, avr_unwind_cache::base, BMSYMBOL_VALUE_ADDRESS, gdbarch_tdep::call_length, extract_unsigned_integer(), fprintf_unfiltered(), gdb_assert, gdb_stderr, gdbarch_byte_order(), gdbarch_tdep(), locals, lookup_minimal_symbol(), bound_minimal_symbol::minsym, avr_unwind_cache::prologue_type, read_memory(), avr_unwind_cache::saved_regs, and avr_unwind_cache::size.

Referenced by avr_frame_unwind_cache(), and avr_skip_prologue().

## ◆ avr_skip_prologue()

static CORE_ADDR avr_skip_prologue | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | pc
| ) |  |
| static

Definition at line 874 of file avr-tdep.c.

References AVR_NUM_REGS, AVR_PROLOGUE_NONE, avr_scan_prologue(), find_pc_partial_function(), avr_unwind_cache::prologue_type, avr_unwind_cache::saved_regs, and skip_prologue_using_sal().

Referenced by avr_gdbarch_init().

## ◆ avr_unwind_pc()

static CORE_ADDR avr_unwind_pc | ( | struct gdbarch * | gdbarch,
|  | struct frame_info * | next_frame
| ) |  |
| static

Definition at line 1055 of file avr-tdep.c.

References avr_make_iaddr(), AVR_PC_REGNUM, frame_unwind_register_unsigned(), and gdbarch_tdep::pc.

Referenced by avr_gdbarch_init().

## ◆ avr_unwind_sp()

static CORE_ADDR avr_unwind_sp | ( | struct gdbarch * | gdbarch,
|  | struct frame_info * | next_frame
| ) |  |
| static

Definition at line 1065 of file avr-tdep.c.

References avr_make_saddr(), AVR_SP_REGNUM, frame_unwind_register_unsigned(), and gdbarch_tdep::sp.

Referenced by avr_gdbarch_init().

## ◆ avr_write_pc()

static void avr_write_pc | ( | struct regcache * | regcache,
|  | CORE_ADDR | val
| ) |  |
| static

Definition at line 378 of file avr-tdep.c.

References avr_convert_iaddr_to_raw(), AVR_PC_REGNUM, and regcache_cooked_write_unsigned().

Referenced by avr_gdbarch_init().

## ◆ BP_MANIPULATION()

typedef BP_MANIPULATION | ( | avr_break_insn |  | ) |

Definition at line 918 of file avr-tdep.c.

References gdb_assert_not_reached, regcache_cooked_read(), regcache_cooked_write(), RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_STRUCT, TYPE_CODE_UNION, and TYPE_LENGTH.

## ◆ pop_stack_item()

static struct stack_item * pop_stack_item | ( | struct stack_item * | si | ) |
| static

Definition at line 1213 of file avr-tdep.c.

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

Referenced by avr_push_dummy_call().

## ◆ push_stack_item()

static struct stack_item* push_stack_item | ( | struct stack_item * | prev,
|  | const bfd_byte * | contents,
|  | int | len
| ) |  |
| static

Definition at line 1200 of file avr-tdep.c.

References stack_item::data, stack_item::len, stack_item::prev, xmalloc(), and XNEW.

Referenced by avr_push_dummy_call().

## Variable Documentation

## ◆ avr_break_insn

constexpr gdb_byte avr_break_insn[] = { 0x98, 0x95 }

Definition at line 916 of file avr-tdep.c.

## ◆ avr_frame_base

const struct frame_base avr_frame_base
| static

Initial value:
= {
&avr_frame_unwind,
avr_frame_base_address,
avr_frame_base_address,
avr_frame_base_address
}
avr_frame_base_address
static CORE_ADDR avr_frame_base_address(struct frame_info *this_frame, void **this_cache)
Definition: avr-tdep.c:1161
avr_frame_unwind
static const struct frame_unwind avr_frame_unwind
Definition: avr-tdep.c:1151

Definition at line 1169 of file avr-tdep.c.

Referenced by avr_gdbarch_init().

## ◆ avr_frame_unwind

const struct frame_unwind avr_frame_unwind
| static

Initial value:
= {
NORMAL_FRAME,
default_frame_unwind_stop_reason,
avr_frame_this_id,
avr_frame_prev_register,
NULL,
default_frame_sniffer
}
avr_frame_prev_register
static struct value * avr_frame_prev_register(struct frame_info *this_frame, void **this_prologue_cache, int regnum)
Definition: avr-tdep.c:1103
NORMAL_FRAME
Definition: frame.h:244
default_frame_sniffer
int default_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
Definition: frame-unwind.c:174
avr_frame_this_id
static void avr_frame_this_id(struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
Definition: avr-tdep.c:1078
default_frame_unwind_stop_reason
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 1151 of file avr-tdep.c.

Referenced by avr_gdbarch_init().