return;
}
- proc_desc = frame->extra_info->proc_desc;
+ proc_desc = get_frame_extra_info (frame)->proc_desc;
if (proc_desc == NULL)
/* I'm not sure how/whether this can happen. Normally when we can't
find a proc_desc, we "synthesize" one using heuristic_proc_desc
/* Fill in the offsets for the registers which gen_mask says
were saved. */
- reg_position = frame->frame + PROC_REG_OFFSET (proc_desc);
+ reg_position = get_frame_base (frame) + PROC_REG_OFFSET (proc_desc);
mask = PROC_REG_MASK (proc_desc);
returnreg = PROC_PC_REG (proc_desc);
/* Fill in the offsets for the registers which float_mask says
were saved. */
- reg_position = frame->frame + PROC_FREG_OFFSET (proc_desc);
+ reg_position = get_frame_base (frame) + PROC_FREG_OFFSET (proc_desc);
mask = PROC_FREG_MASK (proc_desc);
for (ireg = 0; ireg <= 31; ++ireg)
{
if (get_frame_saved_regs (fi) == NULL)
alpha_find_saved_regs (fi);
- get_frame_saved_regs (fi)[SP_REGNUM] = fi->frame;
+ get_frame_saved_regs (fi)[SP_REGNUM] = get_frame_base (fi);
}
static CORE_ADDR
alpha_init_frame_pc_first (int fromleaf, struct frame_info *prev)
{
return (fromleaf ? SAVED_PC_AFTER_CALL (get_next_frame (prev))
- : get_next_frame (prev) ? FRAME_SAVED_PC (prev->next)
+ : get_next_frame (prev) ? FRAME_SAVED_PC (get_next_frame (prev))
: read_pc ());
}
static CORE_ADDR
read_next_frame_reg (struct frame_info *fi, int regno)
{
- for (; fi; fi = fi->next)
+ for (; fi; fi = get_next_frame (fi))
{
/* We have to get the saved sp from the sigcontext
if it is a signal handler frame. */
if (regno == SP_REGNUM && !(get_frame_type (fi) == SIGTRAMP_FRAME))
- return fi->frame;
+ return get_frame_base (fi);
else
{
if (get_frame_saved_regs (fi) == NULL)
static CORE_ADDR
alpha_frame_saved_pc (struct frame_info *frame)
{
- alpha_extra_func_info_t proc_desc = frame->extra_info->proc_desc;
+ alpha_extra_func_info_t proc_desc = get_frame_extra_info (frame)->proc_desc;
/* We have to get the saved pc from the sigcontext
if it is a signal handler frame. */
- int pcreg = (get_frame_type (frame) == SIGTRAMP_FRAME) ? PC_REGNUM
- : frame->extra_info->pc_reg;
+ int pcreg = ((get_frame_type (frame) == SIGTRAMP_FRAME)
+ ? PC_REGNUM
+ : get_frame_extra_info (frame)->pc_reg);
if (proc_desc && PROC_DESC_IS_DUMMY (proc_desc))
- return read_memory_integer (frame->frame - 8, 8);
+ return read_memory_integer (get_frame_base (frame) - 8, 8);
return read_next_frame_reg (frame, pcreg);
}
if (tmp != 0)
pc = tmp;
- proc_desc = find_proc_desc (pc, frame->next);
+ proc_desc = find_proc_desc (pc, get_next_frame (frame));
pcreg = proc_desc ? PROC_PC_REG (proc_desc) : ALPHA_RA_REGNUM;
if ((get_frame_type (frame) == SIGTRAMP_FRAME))
alpha_print_extra_frame_info (struct frame_info *fi)
{
if (fi
- && fi->extra_info
- && fi->extra_info->proc_desc
- && fi->extra_info->proc_desc->pdr.framereg < NUM_REGS)
+ && get_frame_extra_info (fi)
+ && get_frame_extra_info (fi)->proc_desc
+ && get_frame_extra_info (fi)->proc_desc->pdr.framereg < NUM_REGS)
printf_filtered (" frame pointer is at %s+%s\n",
- REGISTER_NAME (fi->extra_info->proc_desc->pdr.framereg),
- paddr_d (fi->extra_info->proc_desc->pdr.frameoffset));
+ REGISTER_NAME (get_frame_extra_info (fi)->proc_desc->pdr.framereg),
+ paddr_d (get_frame_extra_info (fi)->proc_desc->pdr.frameoffset));
}
static void
{
/* Use proc_desc calculated in frame_chain */
alpha_extra_func_info_t proc_desc =
- frame->next ? cached_proc_desc : find_proc_desc (get_frame_pc (frame), frame->next);
+ get_next_frame (frame)
+ ? cached_proc_desc
+ : find_proc_desc (get_frame_pc (frame), get_next_frame (frame));
- frame->extra_info = (struct frame_extra_info *)
- frame_obstack_alloc (sizeof (struct frame_extra_info));
+ frame_extra_info_zalloc (frame, sizeof (struct frame_extra_info));
/* NOTE: cagney/2003-01-03: No need to set saved_regs to NULL,
always NULL by default. */
/* frame->saved_regs = NULL; */
- frame->extra_info->localoff = 0;
- frame->extra_info->pc_reg = ALPHA_RA_REGNUM;
- frame->extra_info->proc_desc = proc_desc == &temp_proc_desc ? 0 : proc_desc;
+ get_frame_extra_info (frame)->localoff = 0;
+ get_frame_extra_info (frame)->pc_reg = ALPHA_RA_REGNUM;
+ get_frame_extra_info (frame)->proc_desc = proc_desc == &temp_proc_desc ? 0 : proc_desc;
if (proc_desc)
{
/* Get the locals offset and the saved pc register from the
procedure descriptor, they are valid even if we are in the
middle of the prologue. */
- frame->extra_info->localoff = PROC_LOCALOFF (proc_desc);
- frame->extra_info->pc_reg = PROC_PC_REG (proc_desc);
+ get_frame_extra_info (frame)->localoff = PROC_LOCALOFF (proc_desc);
+ get_frame_extra_info (frame)->pc_reg = PROC_PC_REG (proc_desc);
/* Fixup frame-pointer - only needed for top frame */
interrupted by a signal at it's very start. */
else if (get_frame_pc (frame) == PROC_LOW_ADDR (proc_desc)
&& !alpha_proc_desc_is_dyn_sigtramp (proc_desc))
- deprecated_update_frame_base_hack (frame, read_next_frame_reg (frame->next, SP_REGNUM));
+ deprecated_update_frame_base_hack (frame, read_next_frame_reg (get_next_frame (frame), SP_REGNUM));
else
- deprecated_update_frame_base_hack (frame, read_next_frame_reg (frame->next, PROC_FRAME_REG (proc_desc))
+ deprecated_update_frame_base_hack (frame, read_next_frame_reg (get_next_frame (frame), PROC_FRAME_REG (proc_desc))
+ PROC_FRAME_OFFSET (proc_desc));
if (proc_desc == &temp_proc_desc)
static CORE_ADDR
alpha_frame_locals_address (struct frame_info *fi)
{
- return (fi->frame - fi->extra_info->localoff);
+ return (get_frame_base (fi) - get_frame_extra_info (fi)->localoff);
}
static CORE_ADDR
alpha_frame_args_address (struct frame_info *fi)
{
- return (fi->frame - (ALPHA_NUM_ARG_REGS * 8));
+ return (get_frame_base (fi) - (ALPHA_NUM_ARG_REGS * 8));
}
/* ALPHA stack frames are almost impenetrable. When execution stops,
{
register int regnum;
struct frame_info *frame = get_current_frame ();
- CORE_ADDR new_sp = frame->frame;
+ CORE_ADDR new_sp = get_frame_base (frame);
- alpha_extra_func_info_t proc_desc = frame->extra_info->proc_desc;
+ alpha_extra_func_info_t proc_desc = get_frame_extra_info (frame)->proc_desc;
/* we need proc_desc to know how to restore the registers;
if it is NULL, construct (a temporary) one */
if (proc_desc == NULL)
- proc_desc = find_proc_desc (get_frame_pc (frame), frame->next);
+ proc_desc = find_proc_desc (get_frame_pc (frame), get_next_frame (frame));
/* Question: should we copy this proc_desc and save it in
frame->proc_desc? If we do, who will free it?
{
/* If it's an ECOFF file, assume it's OSF/1. */
if (bfd_get_flavour (info.abfd) == bfd_target_ecoff_flavour)
- osabi = GDB_OSABI_OSF1;
+ info.osabi = GDB_OSABI_OSF1;
}
/* Find a candidate among extant architectures. */