GDB (xrefs)
|
#include "defs.h"
#include "inferior.h"
#include "gdbcore.h"
#include "arch-utils.h"
#include "floatformat.h"
#include "gdbtypes.h"
#include "regcache.h"
#include "reggroups.h"
#include "frame.h"
#include "frame-base.h"
#include "frame-unwind.h"
#include "doublest.h"
#include "value.h"
#include "gdb_assert.h"
#include "objfiles.h"
#include "elf/common.h"
#include "elf-bfd.h"
#include "dis-asm.h"
#include "infcall.h"
#include "osabi.h"
#include "ia64-tdep.h"
#include "cp-abi.h"
Go to the source code of this file.
#define BUNDLE_LEN 16 |
Definition at line 109 of file ia64-tdep.c.
Referenced by fetch_instruction(), ia64_breakpoint_from_pc(), ia64_memory_insert_breakpoint(), and ia64_memory_remove_breakpoint().
#define IA64_BREAKPOINT 0x00003333300LL |
Definition at line 635 of file ia64-tdep.c.
Referenced by ia64_memory_insert_breakpoint(), and ia64_memory_remove_breakpoint().
#define imm9 | ( | _instr_ | ) |
( ((((_instr_) & 0x01000000000LL) ? -1 : 0) << 8) \ | (((_instr_) & 0x00008000000LL) >> 20) \ | (((_instr_) & 0x00000001fc0LL) >> 6))
Definition at line 1326 of file ia64-tdep.c.
Referenced by examine_prologue().
#define IS_NaT_COLLECTION_ADDR | ( | addr | ) | ((((addr) >> 3) & 0x3f) == 0x3f) |
Definition at line 912 of file ia64-tdep.c.
Referenced by examine_prologue(), and rse_address_add().
#define isScratch | ( | _regnum_ | ) |
((_regnum_) == 2 || (_regnum_) == 3 \ || (8 <= (_regnum_) && (_regnum_) <= 11) \ || (14 <= (_regnum_) && (_regnum_) <= 31))
Definition at line 1323 of file ia64-tdep.c.
Referenced by examine_prologue().
#define NUM_IA64_RAW_REGS 462 |
Definition at line 127 of file ia64-tdep.c.
Referenced by ia64_alloc_frame_cache(), ia64_gdbarch_init(), and ia64_register_reggroup_p().
#define SLOT_MULTIPLIER 1 |
Definition at line 105 of file ia64-tdep.c.
Referenced by fetch_instruction(), ia64_breakpoint_from_pc(), ia64_memory_insert_breakpoint(), ia64_memory_remove_breakpoint(), ia64_print_insn(), ia64_read_pc(), and ia64_write_pc().
typedef enum instruction_type instruction_type |
enum instruction_type |
Definition at line 78 of file ia64-tdep.c.
enum pseudo_regs |
FIRST_PSEUDO_REGNUM | |
VBOF_REGNUM | |
V32_REGNUM | |
V127_REGNUM | |
VP0_REGNUM | |
VP16_REGNUM | |
VP63_REGNUM | |
LAST_PSEUDO_REGNUM |
Definition at line 137 of file ia64-tdep.c.
void _initialize_ia64_tdep | ( | void | ) |
Definition at line 4058 of file ia64-tdep.c.
References gdbarch_register(), and ia64_gdbarch_init.
static CORE_ADDR examine_prologue | ( | CORE_ADDR | pc, |
CORE_ADDR | lim_pc, | ||
struct frame_info * | this_frame, | ||
struct ia64_frame_cache * | cache | ||
) | [static] |
Definition at line 1360 of file ia64-tdep.c.
References ia64_frame_cache::after_prologue, B, ia64_frame_cache::bsp, gdbarch::byte_order, ia64_frame_cache::cfm, extract_unsigned_integer(), fetch_instruction(), ia64_frame_cache::fp_reg, ia64_frame_cache::frameless, gdbarch_byte_order(), get_frame_arch(), get_frame_register(), I, IA64_CFM_REGNUM, IA64_FR0_REGNUM, IA64_GR0_REGNUM, IA64_GR32_REGNUM, IA64_PR_REGNUM, IA64_UNAT_REGNUM, IA64_VFP_REGNUM, IA64_VRAP_REGNUM, imm9, int, IS_NaT_COLLECTION_ADDR, isScratch, M, MAX_REGISTER_SIZE, ia64_frame_cache::mem_stack_frame_size, memset(), ia64_frame_cache::pc, ia64_frame_cache::prev_cfm, read_memory_integer(), refine_prologue_limit(), rse_address_add(), ia64_frame_cache::saved_regs, ia64_frame_cache::saved_sp, ia64_frame_cache::sof, ia64_frame_cache::sol, ia64_frame_cache::sor, and sp_regnum.
Referenced by ia64_frame_cache(), and ia64_skip_prologue().
static long long extract_bit_field | ( | const gdb_byte * | bundle, |
int | from, | ||
int | len | ||
) | [static] |
Definition at line 373 of file ia64-tdep.c.
References len, gdb::printing::long, and to.
Referenced by fetch_instruction(), ia64_breakpoint_from_pc(), ia64_frame_prev_register(), ia64_memory_insert_breakpoint(), ia64_memory_remove_breakpoint(), and slotN_contents().
static CORE_ADDR fetch_instruction | ( | CORE_ADDR | addr, |
instruction_type * | it, | ||
long long * | instr | ||
) | [static] |
Definition at line 512 of file ia64-tdep.c.
References _, BUNDLE_LEN, extract_bit_field(), int, L, SLOT_MULTIPLIER, slotN_contents(), target_read_memory(), template_encoding_table, and warning().
Referenced by examine_prologue().
static CORE_ADDR find_extant_func_descr | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | faddr | ||
) | [static] |
Definition at line 3536 of file ia64-tdep.c.
References ALL_OBJFILE_OSECTIONS, extract_signed_integer(), find_pc_section(), gdbarch_byte_order(), LONGEST, obj_section_addr, obj_section_endaddr, obj_section::objfile, objfile::sections_end, exsummary::status, target_read_memory(), and obj_section::the_bfd_section.
Referenced by find_func_descr().
static CORE_ADDR find_func_descr | ( | struct regcache * | regcache, |
CORE_ADDR | faddr, | ||
CORE_ADDR * | fdaptr | ||
) | [static] |
Definition at line 3588 of file ia64-tdep.c.
References find_extant_func_descr(), gdbarch_byte_order(), get_regcache_arch(), ia64_find_global_pointer(), IA64_GR1_REGNUM, regcache_cooked_read_unsigned(), store_unsigned_integer(), ULONGEST, and write_memory().
Referenced by ia64_push_dummy_call().
static int floatformat_valid | ( | const struct floatformat * | fmt, |
const void * | from | ||
) | [static] |
Definition at line 286 of file ia64-tdep.c.
static struct ia64_frame_cache* ia64_alloc_frame_cache | ( | void | ) | [static, read] |
Definition at line 1334 of file ia64-tdep.c.
References ia64_frame_cache::base, ia64_frame_cache::bsp, ia64_frame_cache::cfm, ia64_frame_cache::fp_reg, FRAME_OBSTACK_ZALLOC, ia64_frame_cache::frameless, NUM_IA64_RAW_REGS, ia64_frame_cache::pc, ia64_frame_cache::prev_cfm, ia64_frame_cache::saved_regs, ia64_frame_cache::sof, ia64_frame_cache::sol, and ia64_frame_cache::sor.
Referenced by ia64_frame_cache(), and ia64_sigtramp_frame_cache().
static void ia64_allocate_new_rse_frame | ( | struct regcache * | regcache, |
ULONGEST | bsp, | ||
int | sof | ||
) | [static] |
Definition at line 3674 of file ia64-tdep.c.
References IA64_BSP_REGNUM, IA64_CFM_REGNUM, IA64_PFS_REGNUM, regcache_cooked_read_unsigned(), regcache_cooked_write_unsigned(), rse_address_add(), and ULONGEST.
static const gdb_byte* ia64_breakpoint_from_pc | ( | struct gdbarch * | gdbarch, |
CORE_ADDR * | pcptr, | ||
int * | lenptr | ||
) | [static] |
Definition at line 825 of file ia64-tdep.c.
References _, BUNDLE_LEN, do_cleanups(), error(), extract_bit_field(), gdb_assert, int, L, make_show_memory_breakpoints_cleanup(), replace_slotN_contents(), SLOT_MULTIPLIER, slotN_contents(), target_read_memory(), template_encoding_table, and X.
static CORE_ADDR ia64_convert_from_func_ptr_addr | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | addr, | ||
struct target_ops * | targ | ||
) | [static] |
Definition at line 3623 of file ia64-tdep.c.
References extract_unsigned_integer(), find_pc_section(), gdbarch_byte_order(), is_vtable_name(), lookup_minimal_symbol_by_pc(), read_memory_unsigned_integer(), SYMBOL_LINKAGE_NAME, target_read_memory(), and obj_section::the_bfd_section.
Referenced by ia64_gdbarch_init().
static int ia64_convert_register_p | ( | struct gdbarch * | gdbarch, |
int | regno, | ||
struct type * | type | ||
) | [static] |
Definition at line 1215 of file ia64-tdep.c.
References ia64_ext_type(), IA64_FR0_REGNUM, and IA64_FR127_REGNUM.
Referenced by ia64_gdbarch_init().
static struct frame_id ia64_dummy_id | ( | struct gdbarch * | gdbarch, |
struct frame_info * | this_frame | ||
) | [static, read] |
Definition at line 3903 of file ia64-tdep.c.
References extract_unsigned_integer(), fprintf_unfiltered(), frame_id_build_special(), gdb_stdlog, gdbarch_byte_order(), gdbarch_debug, get_frame_pc(), get_frame_register(), IA64_BSP_REGNUM, paddress(), sp, and sp_regnum.
Referenced by ia64_gdbarch_init().
static int ia64_dwarf_reg_to_regnum | ( | struct gdbarch * | gdbarch, |
int | reg | ||
) | [static] |
Definition at line 361 of file ia64-tdep.c.
References IA64_GR127_REGNUM, IA64_GR32_REGNUM, and V32_REGNUM.
Referenced by ia64_gdbarch_init().
static struct type* ia64_ext_type | ( | struct gdbarch * | gdbarch | ) | [static, read] |
Definition at line 310 of file ia64-tdep.c.
References arch_float_type(), floatformats_ia64_ext, gdbarch_tdep(), and gdbarch_tdep::ia64_ext_type.
Referenced by ia64_convert_register_p(), ia64_extract_return_value(), ia64_push_dummy_call(), ia64_register_to_value(), ia64_register_type(), ia64_store_return_value(), and ia64_value_to_register().
static void ia64_extract_return_value | ( | struct type * | type, |
struct regcache * | regcache, | ||
gdb_byte * | valbuf | ||
) | [static] |
Definition at line 3222 of file ia64-tdep.c.
References convert_typed_floating(), from, gdbarch_byte_order(), get_regcache_arch(), ia64_ext_type(), IA64_FR8_REGNUM, IA64_GR8_REGNUM, ia64_struct_type_p(), is_float_or_hfa_type(), arm-linux::m, MAX_REGISTER_SIZE, memcpy(), offset, regcache_cooked_read(), regcache_cooked_read_unsigned(), register_type(), store_unsigned_integer(), TYPE_LENGTH, and ULONGEST.
Referenced by ia64_return_value().
static CORE_ADDR ia64_find_global_pointer | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | faddr | ||
) | [static] |
Definition at line 3520 of file ia64-tdep.c.
References gdbarch_tdep::find_global_pointer_from_solib, gdbarch_tdep(), and ia64_find_global_pointer_from_dynamic_section().
Referenced by find_func_descr(), and ia64_push_dummy_call().
static CORE_ADDR ia64_find_global_pointer_from_dynamic_section | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | faddr | ||
) | [static] |
Definition at line 3455 of file ia64-tdep.c.
References ALL_OBJFILE_OSECTIONS, extract_signed_integer(), extract_unsigned_integer(), find_pc_section(), gdbarch_byte_order(), LONGEST, obj_section_addr, obj_section_endaddr, obj_section::objfile, objfile::sections_end, exsummary::status, target_read_memory(), and obj_section::the_bfd_section.
Referenced by ia64_find_global_pointer().
static CORE_ADDR ia64_frame_align | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | sp | ||
) | [static] |
Definition at line 3666 of file ia64-tdep.c.
Referenced by ia64_gdbarch_init().
static CORE_ADDR ia64_frame_base_address | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [static] |
Definition at line 2372 of file ia64-tdep.c.
References ia64_frame_cache::base, and ia64_frame_cache().
static struct ia64_frame_cache* ia64_frame_cache | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [static, read] |
Definition at line 1848 of file ia64-tdep.c.
References ia64_frame_cache::base, ia64_frame_cache::bsp, gdbarch::byte_order, ia64_frame_cache::cfm, examine_prologue(), extract_unsigned_integer(), gdbarch_byte_order(), get_frame_arch(), get_frame_func(), get_frame_pc(), get_frame_register(), ia64_alloc_frame_cache(), IA64_BSP_REGNUM, IA64_CFM_REGNUM, IA64_PSR_REGNUM, ia64_frame_cache::mem_stack_frame_size, ia64_frame_cache::pc, ia64_frame_cache::saved_sp, ia64_frame_cache::sof, ia64_frame_cache::sol, ia64_frame_cache::sor, and sp_regnum.
Referenced by ia64_frame_base_address(), ia64_frame_prev_register(), and ia64_frame_this_id().
static struct value* ia64_frame_prev_register | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
int | regnum | ||
) | [static, read] |
Definition at line 1915 of file ia64-tdep.c.
References _, ia64_frame_cache::base, ia64_frame_cache::bsp, gdbarch::byte_order, ia64_frame_cache::cfm, error(), extract_bit_field(), extract_unsigned_integer(), frame_unwind_got_constant(), frame_unwind_got_memory(), frame_unwind_got_register(), ia64_frame_cache::frameless, gdb_assert, gdbarch_byte_order(), gdbarch_sp_regnum(), get_frame_arch(), get_frame_register(), IA64_BR0_REGNUM, IA64_BSP_REGNUM, IA64_CFM_REGNUM, IA64_FR127_REGNUM, IA64_FR32_REGNUM, ia64_frame_cache(), IA64_GR0_REGNUM, IA64_GR127_REGNUM, IA64_GR32_REGNUM, IA64_IP_REGNUM, IA64_NAT0_REGNUM, IA64_NAT127_REGNUM, IA64_NAT31_REGNUM, IA64_NAT32_REGNUM, IA64_PFS_REGNUM, IA64_PR_REGNUM, IA64_PSR_REGNUM, IA64_RNAT_REGNUM, IA64_UNAT_REGNUM, IA64_VFP_REGNUM, IA64_VRAP_REGNUM, ia64_frame_cache::prev_cfm, read_memory(), read_memory_integer(), register_size(), regnum, rse_address_add(), ia64_frame_cache::saved_regs, ia64_frame_cache::sof, target_has_registers, ULONGEST, V127_REGNUM, V32_REGNUM, value_contents_all(), VP0_REGNUM, VP16_REGNUM, and VP63_REGNUM.
static void ia64_frame_this_id | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
struct frame_id * | this_id | ||
) | [static] |
Definition at line 1894 of file ia64-tdep.c.
References ia64_frame_cache::base, ia64_frame_cache::bsp, frame_id::code_addr, fprintf_unfiltered(), frame_id_build_special(), gdb_stdlog, gdbarch_debug, get_frame_arch(), host_address_to_string(), ia64_frame_cache(), paddress(), ia64_frame_cache::pc, and frame_id::stack_addr.
static struct gdbarch* ia64_gdbarch_init | ( | struct gdbarch_info | info, |
struct gdbarch_list * | arches | ||
) | [static, read] |
Definition at line 3956 of file ia64-tdep.c.
References core_addr_lessthan(), FIRST_PSEUDO_REGNUM, floatformats_i387_ext, frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), ia64_breakpoint_from_pc, ia64_convert_from_func_ptr_addr(), ia64_convert_register_p(), ia64_dummy_id(), ia64_dwarf_reg_to_regnum(), IA64_FR0_REGNUM, ia64_frame_align(), ia64_infcall_ops, ia64_memory_insert_breakpoint(), ia64_memory_remove_breakpoint(), ia64_print_insn(), ia64_pseudo_register_read(), ia64_pseudo_register_write(), ia64_push_dummy_call(), ia64_read_pc(), ia64_register_name, ia64_register_reggroup_p(), ia64_register_to_value(), ia64_register_type, ia64_return_value(), ia64_size_of_register_frame(), ia64_skip_prologue, ia64_unwind_pc(), ia64_value_to_register(), ia64_write_pc(), gdbarch_tdep::infcall_ops, LAST_PSEUDO_REGNUM, libunwind_frame_set_descr(), NUM_IA64_RAW_REGS, set_gdbarch_breakpoint_from_pc(), set_gdbarch_convert_from_func_ptr_addr(), set_gdbarch_convert_register_p(), set_gdbarch_double_bit(), set_gdbarch_dummy_id(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_float_bit(), set_gdbarch_fp0_regnum(), set_gdbarch_frame_align(), set_gdbarch_inner_than(), set_gdbarch_int_bit(), set_gdbarch_long_bit(), set_gdbarch_long_double_bit(), set_gdbarch_long_double_format(), set_gdbarch_long_long_bit(), set_gdbarch_memory_insert_breakpoint(), set_gdbarch_memory_remove_breakpoint(), set_gdbarch_num_pseudo_regs(), set_gdbarch_num_regs(), set_gdbarch_print_insn(), 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_reggroup_p(), set_gdbarch_register_to_value(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_short_bit(), set_gdbarch_skip_prologue(), set_gdbarch_sp_regnum(), set_gdbarch_unwind_pc(), set_gdbarch_value_to_register(), set_gdbarch_vtable_function_descriptors(), set_gdbarch_write_pc(), gdbarch_tdep::size_of_register_frame, sp_regnum, and xzalloc().
static int ia64_memory_insert_breakpoint | ( | struct gdbarch * | gdbarch, |
struct bp_target_info * | bp_tgt | ||
) | [static] |
Definition at line 638 of file ia64-tdep.c.
References _, BUNDLE_LEN, do_cleanups(), error(), extract_bit_field(), gdb_assert, IA64_BREAKPOINT, int, internal_error(), L, make_show_memory_breakpoints_cleanup(), memcpy(), paddress(), bp_target_info::placed_address, bp_target_info::placed_size, replace_slotN_contents(), bp_target_info::shadow_contents, bp_target_info::shadow_len, SLOT_MULTIPLIER, slotN_contents(), target_read_memory(), target_write_memory(), template_encoding_table, and X.
Referenced by ia64_gdbarch_init().
static int ia64_memory_remove_breakpoint | ( | struct gdbarch * | gdbarch, |
struct bp_target_info * | bp_tgt | ||
) | [static] |
Definition at line 735 of file ia64-tdep.c.
References _, BUNDLE_LEN, do_cleanups(), extract_bit_field(), gdb_assert, IA64_BREAKPOINT, L, make_show_memory_breakpoints_cleanup(), memcpy(), paddress(), bp_target_info::placed_address, bp_target_info::placed_size, replace_slotN_contents(), bp_target_info::shadow_contents, bp_target_info::shadow_len, SLOT_MULTIPLIER, slotN_contents(), target_read_memory(), target_write_raw_memory(), template_encoding_table, warning(), and X.
Referenced by ia64_gdbarch_init().
static int ia64_print_insn | ( | bfd_vma | memaddr, |
struct disassemble_info * | info | ||
) | [static] |
Definition at line 3941 of file ia64-tdep.c.
References SLOT_MULTIPLIER.
Referenced by ia64_gdbarch_init().
static enum register_status ia64_pseudo_register_read | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | regnum, | ||
gdb_byte * | buf | ||
) | [static] |
Definition at line 935 of file ia64-tdep.c.
References gdbarch_byte_order(), IA64_BSP_REGNUM, IA64_CFM_REGNUM, IA64_NAT0_REGNUM, IA64_NAT127_REGNUM, IA64_NAT31_REGNUM, IA64_NAT32_REGNUM, IA64_PR_REGNUM, IA64_RNAT_REGNUM, IA64_UNAT_REGNUM, libunwind_get_reg_special(), libunwind_is_initialized(), memset(), read_memory_integer(), REG_VALID, regcache_cooked_read_unsigned(), register_size(), rse_address_add(), exsummary::status, store_unsigned_integer(), ULONGEST, V127_REGNUM, V32_REGNUM, VBOF_REGNUM, VP0_REGNUM, VP16_REGNUM, and VP63_REGNUM.
Referenced by ia64_gdbarch_init().
static void ia64_pseudo_register_write | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | regnum, | ||
const gdb_byte * | buf | ||
) | [static] |
Definition at line 1090 of file ia64-tdep.c.
References extract_unsigned_integer(), gdbarch_byte_order(), IA64_BSP_REGNUM, IA64_CFM_REGNUM, IA64_NAT0_REGNUM, IA64_NAT127_REGNUM, IA64_NAT31_REGNUM, IA64_NAT32_REGNUM, IA64_PR_REGNUM, IA64_RNAT_REGNUM, IA64_UNAT_REGNUM, read_memory_integer(), regcache_cooked_read_unsigned(), regcache_cooked_write_unsigned(), register_size(), rse_address_add(), store_unsigned_integer(), ULONGEST, V127_REGNUM, V32_REGNUM, VP0_REGNUM, VP16_REGNUM, VP63_REGNUM, and write_memory().
Referenced by ia64_gdbarch_init().
static CORE_ADDR ia64_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 3712 of file ia64-tdep.c.
References ia64_infcall_ops::allocate_new_rse_frame, check_typedef(), convert_typed_floating(), extract_unsigned_integer(), find_func_descr(), find_function_addr(), gdbarch_byte_order(), gdbarch_tdep(), IA64_BR0_REGNUM, IA64_BSP_REGNUM, ia64_ext_type(), ia64_find_global_pointer(), IA64_FR16_REGNUM, IA64_FR8_REGNUM, IA64_GR1_REGNUM, IA64_GR8_REGNUM, ia64_struct_type_p(), gdbarch_tdep::infcall_ops, is_float_or_hfa_type(), len, MAX_REGISTER_SIZE, memcpy(), memset(), regcache_cooked_read_unsigned(), regcache_cooked_write(), regcache_cooked_write_unsigned(), ia64_infcall_ops::set_function_addr, slot_alignment_is_next_even(), sp_regnum, ia64_infcall_ops::store_argument_in_slot, store_unsigned_integer(), to, type, TYPE_CODE, TYPE_CODE_FUNC, TYPE_CODE_PTR, TYPE_LENGTH, TYPE_TARGET_TYPE, ULONGEST, value_contents(), value_type(), and write_memory().
Referenced by ia64_gdbarch_init().
static CORE_ADDR ia64_read_pc | ( | struct regcache * | regcache | ) | [static] |
Definition at line 884 of file ia64-tdep.c.
References IA64_IP_REGNUM, IA64_PSR_REGNUM, regcache_cooked_read_unsigned(), SLOT_MULTIPLIER, and ULONGEST.
Referenced by ia64_gdbarch_init().
static const char* ia64_register_name | ( | struct gdbarch * | gdbarch, |
int | reg | ||
) | [static] |
Definition at line 346 of file ia64-tdep.c.
References ia64_register_names.
static int ia64_register_reggroup_p | ( | struct gdbarch * | gdbarch, |
int | regnum, | ||
struct reggroup * | group | ||
) | [static] |
Definition at line 323 of file ia64-tdep.c.
References all_reggroup, float_reggroup, general_reggroup, NUM_IA64_RAW_REGS, register_type(), restore_reggroup, save_reggroup, TYPE_CODE, TYPE_CODE_FLT, TYPE_VECTOR, and vector_reggroup.
Referenced by ia64_gdbarch_init().
static int ia64_register_to_value | ( | struct frame_info * | frame, |
int | regnum, | ||
struct type * | valtype, | ||
gdb_byte * | out, | ||
int * | optimizedp, | ||
int * | unavailablep | ||
) | [static] |
Definition at line 1222 of file ia64-tdep.c.
References convert_typed_floating(), get_frame_arch(), get_frame_register_bytes(), ia64_ext_type(), MAX_REGISTER_SIZE, and register_size().
Referenced by ia64_gdbarch_init().
struct type* ia64_register_type | ( | struct gdbarch * | arch, |
int | reg | ||
) | [read] |
Definition at line 352 of file ia64-tdep.c.
References builtin_type::builtin_long, builtin_type(), ia64_ext_type(), IA64_FR0_REGNUM, and IA64_FR127_REGNUM.
static enum return_value_convention ia64_return_value | ( | struct gdbarch * | gdbarch, |
struct value * | function, | ||
struct type * | valtype, | ||
struct regcache * | regcache, | ||
gdb_byte * | readbuf, | ||
const gdb_byte * | writebuf | ||
) | [static] |
Definition at line 3337 of file ia64-tdep.c.
References gdb_assert, ia64_extract_return_value(), ia64_store_return_value(), ia64_use_struct_convention(), RETURN_VALUE_REGISTER_CONVENTION, and RETURN_VALUE_STRUCT_CONVENTION.
Referenced by ia64_gdbarch_init().
static void ia64_set_function_addr | ( | struct regcache * | regcache, |
CORE_ADDR | func_addr | ||
) | [static] |
Definition at line 3706 of file ia64-tdep.c.
static struct ia64_frame_cache* ia64_sigtramp_frame_cache | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [static, read] |
Definition at line 2236 of file ia64-tdep.c.
References ia64_frame_cache::base, ia64_frame_cache::bsp, gdbarch::byte_order, ia64_frame_cache::cfm, extract_unsigned_integer(), gdbarch_byte_order(), get_frame_arch(), get_frame_register(), ia64_alloc_frame_cache(), IA64_BSP_REGNUM, IA64_CFM_REGNUM, ia64_sigtramp_frame_init_saved_regs(), ia64_frame_cache::sof, and sp_regnum.
Referenced by ia64_sigtramp_frame_prev_register(), and ia64_sigtramp_frame_this_id().
static void ia64_sigtramp_frame_init_saved_regs | ( | struct frame_info * | this_frame, |
struct ia64_frame_cache * | cache | ||
) | [static] |
Definition at line 2182 of file ia64-tdep.c.
References ia64_frame_cache::base, gdbarch_tdep(), get_frame_arch(), IA64_BR0_REGNUM, IA64_BR7_REGNUM, IA64_BSP_REGNUM, IA64_CCV_REGNUM, IA64_CFM_REGNUM, IA64_FPSR_REGNUM, IA64_FR2_REGNUM, IA64_FR31_REGNUM, IA64_GR1_REGNUM, IA64_GR31_REGNUM, IA64_IP_REGNUM, IA64_LC_REGNUM, IA64_PFS_REGNUM, IA64_PSR_REGNUM, IA64_RNAT_REGNUM, IA64_UNAT_REGNUM, IA64_VRAP_REGNUM, ia64_frame_cache::saved_regs, and gdbarch_tdep::sigcontext_register_address.
Referenced by ia64_sigtramp_frame_cache().
static struct value* ia64_sigtramp_frame_prev_register | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
int | regnum | ||
) | [static, read] |
Definition at line 2288 of file ia64-tdep.c.
References _, gdbarch::byte_order, error(), extract_unsigned_integer(), frame_unwind_got_constant(), frame_unwind_got_memory(), gdb_assert, gdbarch_byte_order(), get_frame_arch(), IA64_GR127_REGNUM, IA64_GR32_REGNUM, IA64_IP_REGNUM, ia64_sigtramp_frame_cache(), IA64_VRAP_REGNUM, MAX_REGISTER_SIZE, ia64_frame_cache::pc, read_memory(), register_size(), regnum, ia64_frame_cache::saved_regs, target_has_registers, V127_REGNUM, and V32_REGNUM.
static int ia64_sigtramp_frame_sniffer | ( | const struct frame_unwind * | self, |
struct frame_info * | this_frame, | ||
void ** | this_cache | ||
) | [static] |
Definition at line 2343 of file ia64-tdep.c.
References gdbarch_tdep(), get_frame_arch(), get_frame_pc(), gdbarch_tdep::pc, and gdbarch_tdep::pc_in_sigtramp.
static void ia64_sigtramp_frame_this_id | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
struct frame_id * | this_id | ||
) | [static] |
Definition at line 2267 of file ia64-tdep.c.
References ia64_frame_cache::base, ia64_frame_cache::bsp, frame_id::code_addr, fprintf_unfiltered(), frame_id_build_special(), gdb_stdlog, gdbarch_debug, get_frame_arch(), get_frame_pc(), host_address_to_string(), ia64_sigtramp_frame_cache(), paddress(), and frame_id::stack_addr.
static int ia64_size_of_register_frame | ( | struct frame_info * | this_frame, |
ULONGEST | cfm | ||
) | [static] |
Definition at line 3950 of file ia64-tdep.c.
Referenced by ia64_gdbarch_init().
CORE_ADDR ia64_skip_prologue | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc | ||
) |
Definition at line 1831 of file ia64-tdep.c.
References ia64_frame_cache::after_prologue, ia64_frame_cache::base, ia64_frame_cache::bsp, ia64_frame_cache::cfm, and examine_prologue().
static void ia64_store_argument_in_slot | ( | struct regcache * | regcache, |
CORE_ADDR | bsp, | ||
int | slotnum, | ||
gdb_byte * | buf | ||
) | [static] |
Definition at line 3697 of file ia64-tdep.c.
References rse_address_add(), and write_memory().
static void ia64_store_return_value | ( | struct type * | type, |
struct regcache * | regcache, | ||
const gdb_byte * | valbuf | ||
) | [static] |
Definition at line 3287 of file ia64-tdep.c.
References convert_typed_floating(), get_regcache_arch(), ia64_ext_type(), IA64_FR8_REGNUM, IA64_GR8_REGNUM, is_float_or_hfa_type(), arm-linux::m, MAX_REGISTER_SIZE, memcpy(), offset, regcache_cooked_write(), regcache_cooked_write_unsigned(), register_type(), to, TYPE_LENGTH, and ULONGEST.
Referenced by ia64_return_value().
static int ia64_struct_type_p | ( | const struct type * | type | ) | [static] |
Definition at line 3215 of file ia64-tdep.c.
References TYPE_CODE, TYPE_CODE_STRUCT, and TYPE_CODE_UNION.
Referenced by ia64_extract_return_value(), and ia64_push_dummy_call().
static CORE_ADDR ia64_unwind_pc | ( | struct gdbarch * | gdbarch, |
struct frame_info * | next_frame | ||
) | [static] |
Definition at line 3925 of file ia64-tdep.c.
References extract_unsigned_integer(), frame_unwind_register(), gdbarch_byte_order(), IA64_IP_REGNUM, and IA64_PSR_REGNUM.
Referenced by ia64_gdbarch_init().
static int ia64_use_struct_convention | ( | struct type * | type | ) | [static] |
Definition at line 3187 of file ia64-tdep.c.
References is_float_or_hfa_type(), TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_STRUCT, TYPE_CODE_UNION, and TYPE_LENGTH.
Referenced by ia64_return_value().
static void ia64_value_to_register | ( | struct frame_info * | frame, |
int | regnum, | ||
struct type * | valtype, | ||
const gdb_byte * | in | ||
) | [static] |
Definition at line 1241 of file ia64-tdep.c.
References convert_typed_floating(), get_frame_arch(), ia64_ext_type(), MAX_REGISTER_SIZE, and put_frame_register().
Referenced by ia64_gdbarch_init().
void ia64_write_pc | ( | struct regcache * | regcache, |
CORE_ADDR | new_pc | ||
) |
Definition at line 897 of file ia64-tdep.c.
References IA64_IP_REGNUM, IA64_PSR_REGNUM, int, regcache_cooked_read_unsigned(), regcache_cooked_write_unsigned(), SLOT_MULTIPLIER, and ULONGEST.
Referenced by ia64_gdbarch_init(), ia64_hpux_move_pc_to_next_bundle(), and ia64_linux_write_pc().
static struct type * is_float_or_hfa_type | ( | struct type * | t | ) | [static, read] |
Definition at line 3402 of file ia64-tdep.c.
References is_float_or_hfa_type_recurse().
Referenced by ia64_extract_return_value(), ia64_push_dummy_call(), ia64_store_return_value(), and ia64_use_struct_convention().
static int is_float_or_hfa_type_recurse | ( | struct type * | t, |
struct type ** | etp | ||
) | [static] |
Definition at line 3362 of file ia64-tdep.c.
References check_typedef(), TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_FLT, TYPE_CODE_STRUCT, TYPE_FIELD_TYPE, TYPE_LENGTH, TYPE_NFIELDS, and TYPE_TARGET_TYPE.
Referenced by is_float_or_hfa_type().
static CORE_ADDR refine_prologue_limit | ( | CORE_ADDR | pc, |
CORE_ADDR | lim_pc, | ||
int * | trust_limit | ||
) | [static] |
Definition at line 1269 of file ia64-tdep.c.
References symtab_and_line::end, find_pc_line(), find_pc_partial_function(), get_pc_function_start(), symtab_and_line::line, max_skip_non_prologue_insns, symtab_and_line::pc, and symtab_and_line::symtab.
Referenced by examine_prologue().
static void replace_bit_field | ( | gdb_byte * | bundle, |
long long | val, | ||
int | from, | ||
int | len | ||
) | [static] |
Definition at line 409 of file ia64-tdep.c.
Referenced by replace_slotN_contents().
static void replace_slotN_contents | ( | gdb_byte * | bundle, |
long long | instr, | ||
int | slotnum | ||
) | [static] |
Definition at line 467 of file ia64-tdep.c.
References replace_bit_field().
Referenced by ia64_breakpoint_from_pc(), ia64_memory_insert_breakpoint(), and ia64_memory_remove_breakpoint().
static CORE_ADDR rse_address_add | ( | CORE_ADDR | addr, |
int | nslots | ||
) | [static] |
Definition at line 917 of file ia64-tdep.c.
References IS_NaT_COLLECTION_ADDR.
Referenced by examine_prologue(), ia64_allocate_new_rse_frame(), ia64_frame_prev_register(), ia64_pseudo_register_read(), ia64_pseudo_register_write(), and ia64_store_argument_in_slot().
static int slot_alignment_is_next_even | ( | struct type * | t | ) | [static] |
Definition at line 3416 of file ia64-tdep.c.
References check_typedef(), TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_FLT, TYPE_CODE_INT, TYPE_CODE_STRUCT, TYPE_FIELD_TYPE, TYPE_LENGTH, TYPE_NFIELDS, and TYPE_TARGET_TYPE.
Referenced by ia64_push_dummy_call().
static long long slotN_contents | ( | gdb_byte * | bundle, |
int | slotnum | ||
) | [static] |
Definition at line 459 of file ia64-tdep.c.
References extract_bit_field().
Referenced by fetch_instruction(), ia64_breakpoint_from_pc(), ia64_memory_insert_breakpoint(), and ia64_memory_remove_breakpoint().
struct floatformat floatformat_ia64_ext_big [static] |
{ floatformat_big, 82, 46, 47, 17, 65535, 0x1ffff, 64, 64, floatformat_intbit_yes, "floatformat_ia64_ext_big", floatformat_valid }
Definition at line 297 of file ia64-tdep.c.
struct floatformat floatformat_ia64_ext_little [static] |
{ floatformat_little, 82, 0, 1, 17, 65535, 0x1ffff, 18, 64, floatformat_intbit_yes, "floatformat_ia64_ext_little", floatformat_valid, NULL }
Definition at line 291 of file ia64-tdep.c.
struct floatformat* floatformats_ia64_ext[2] [static] |
Definition at line 303 of file ia64-tdep.c.
Referenced by ia64_ext_type().
int fp_regnum = IA64_VFP_REGNUM [static] |
Definition at line 130 of file ia64-tdep.c.
Definition at line 121 of file ia64-tdep.c.
Referenced by ia64_gdbarch_init().
struct frame_base ia64_frame_base [static] |
{ &ia64_frame_unwind, ia64_frame_base_address, ia64_frame_base_address, ia64_frame_base_address }
Definition at line 2379 of file ia64-tdep.c.
struct frame_unwind ia64_frame_unwind [static] |
{ NORMAL_FRAME, default_frame_unwind_stop_reason, &ia64_frame_this_id, &ia64_frame_prev_register, NULL, default_frame_sniffer }
Definition at line 2169 of file ia64-tdep.c.
gdbarch_init_ftype ia64_gdbarch_init [static] |
Definition at line 117 of file ia64-tdep.c.
Referenced by _initialize_ia64_tdep().
struct ia64_infcall_ops ia64_infcall_ops [static] |
Definition at line 3895 of file ia64-tdep.c.
Referenced by ia64_gdbarch_init().
Definition at line 119 of file ia64-tdep.c.
Referenced by ia64_gdbarch_init().
char* ia64_register_names[] [static] |
Definition at line 146 of file ia64-tdep.c.
Referenced by ia64_register_name().
Definition at line 120 of file ia64-tdep.c.
Referenced by ia64_gdbarch_init().
struct frame_unwind ia64_sigtramp_frame_unwind [static] |
{ SIGTRAMP_FRAME, default_frame_unwind_stop_reason, ia64_sigtramp_frame_this_id, ia64_sigtramp_frame_prev_register, NULL, ia64_sigtramp_frame_sniffer }
Definition at line 2359 of file ia64-tdep.c.
Definition at line 122 of file ia64-tdep.c.
Referenced by ia64_gdbarch_init().
int lr_regnum = IA64_VRAP_REGNUM [static] |
Definition at line 131 of file ia64-tdep.c.
int max_skip_non_prologue_insns = 40 [static] |
Definition at line 1253 of file ia64-tdep.c.
Referenced by refine_prologue_limit().
int sp_regnum = IA64_GR12_REGNUM [static] |
Definition at line 129 of file ia64-tdep.c.
enum instruction_type template_encoding_table[32][3] [static] |
Definition at line 472 of file ia64-tdep.c.
Referenced by fetch_instruction(), ia64_breakpoint_from_pc(), ia64_memory_insert_breakpoint(), and ia64_memory_remove_breakpoint().