#include "defs.h"
#include "frame.h"
#include "inferior.h"
-#include "obstack.h"
#include "target.h"
#include "value.h"
#include "bfd.h"
/* Use the PC in the frame if it's provided to look up the
start of this function. */
- pc = (fi ? fi->pc : pc);
+ pc = (fi ? get_frame_pc (fi) : pc);
/* Find the start of this function. */
status = find_pc_partial_function (pc, &name, &func_addr, &func_end);
been deallocated.
fi->frame is bogus, we need to fix it. */
- if (fi && fi->pc + 1 == func_end)
+ if (fi && get_frame_pc (fi) + 1 == func_end)
{
- status = target_read_memory (fi->pc, buf, 1);
+ status = target_read_memory (get_frame_pc (fi), buf, 1);
if (status != 0)
{
if (fi->next == NULL)
- fi->frame = read_sp ();
- return fi->pc;
+ deprecated_update_frame_base_hack (fi, read_sp ());
+ return get_frame_pc (fi);
}
if (buf[0] == 0xfe)
{
if (fi->next == NULL)
- fi->frame = read_sp ();
- return fi->pc;
+ deprecated_update_frame_base_hack (fi, read_sp ());
+ return get_frame_pc (fi);
}
}
/* Similarly if we're stopped on the first insn of a prologue as our
frame hasn't been allocated yet. */
- if (fi && fi->pc == func_addr)
+ if (fi && get_frame_pc (fi) == func_addr)
{
if (fi->next == NULL)
- fi->frame = read_sp ();
- return fi->pc;
+ deprecated_update_frame_base_hack (fi, read_sp ());
+ return get_frame_pc (fi);
}
/* Figure out where to stop scanning. */
- stop = fi ? fi->pc : func_end;
+ stop = fi ? get_frame_pc (fi) : func_end;
/* Don't walk off the end of the function. */
stop = stop > func_end ? func_end : stop;
if (status != 0)
{
if (fi && fi->next == NULL && fi->status & MY_FRAME_IN_SP)
- fi->frame = read_sp ();
+ deprecated_update_frame_base_hack (fi, read_sp ());
return addr;
}
/* We still haven't allocated our local stack. Handle this
as if we stopped on the first or last insn of a function. */
if (fi && fi->next == NULL)
- fi->frame = read_sp ();
+ deprecated_update_frame_base_hack (fi, read_sp ());
return addr;
}
if (status != 0)
{
if (fi && fi->next == NULL)
- fi->frame = read_sp ();
+ deprecated_update_frame_base_hack (fi, read_sp ());
return addr;
}
if (buf[0] == 0xf2 && buf[1] == 0x7e)
else
{
if (fi && fi->next == NULL)
- fi->frame = read_sp ();
+ deprecated_update_frame_base_hack (fi, read_sp ());
return addr;
}
}
if (status != 0)
{
if (fi && fi->next == NULL && (fi->status & MY_FRAME_IN_SP))
- fi->frame = read_sp ();
+ deprecated_update_frame_base_hack (fi, read_sp ());
return addr;
}
if (buf[0] == 0xd3)
if (addr >= stop)
{
if (fi && fi->next == NULL && (fi->status & MY_FRAME_IN_SP))
- fi->frame = read_sp () - stack_size;
+ deprecated_update_frame_base_hack (fi, read_sp () - stack_size);
return addr;
}
}
if (status != 0)
{
if (fi && fi->next == NULL && (fi->status & MY_FRAME_IN_SP))
- fi->frame = read_sp ();
+ deprecated_update_frame_base_hack (fi, read_sp ());
return addr;
}
stack_size = extract_signed_integer (buf, 2);
if (addr >= stop)
{
if (fi && fi->next == NULL && (fi->status & MY_FRAME_IN_SP))
- fi->frame = read_sp () - stack_size;
+ deprecated_update_frame_base_hack (fi, read_sp () - stack_size);
return addr;
}
}
if (status != 0)
{
if (fi && fi->next == NULL && (fi->status & MY_FRAME_IN_SP))
- fi->frame = read_sp ();
+ deprecated_update_frame_base_hack (fi, read_sp ());
return addr;
}
stack_size = extract_signed_integer (buf, 3);
if (addr >= stop)
{
if (fi && fi->next == NULL && (fi->status & MY_FRAME_IN_SP))
- fi->frame = read_sp () - stack_size;
+ deprecated_update_frame_base_hack (fi, read_sp () - stack_size);
return addr;
}
}
if (status != 0)
{
if (fi && fi->next == NULL && (fi->status & MY_FRAME_IN_SP))
- fi->frame = read_sp ();
+ deprecated_update_frame_base_hack (fi, read_sp ());
return addr;
}
if (status == 0)
{
if (fi && fi->next == NULL && (fi->status & MY_FRAME_IN_SP))
- fi->frame = read_sp ();
+ deprecated_update_frame_base_hack (fi, read_sp ());
return addr;
}
if (fi && fi->next == NULL)
{
fi->stack_size -= 16;
- fi->frame = read_sp () - fi->stack_size;
+ deprecated_update_frame_base_hack (fi, read_sp () - fi->stack_size);
}
return addr;
}
if (status != 0)
{
if (fi && fi->next == NULL && (fi->status & MY_FRAME_IN_SP))
- fi->frame = read_sp ();
+ deprecated_update_frame_base_hack (fi, read_sp ());
return addr;
}
if (status == 0)
{
if (fi && fi->next == NULL && (fi->status & MY_FRAME_IN_SP))
- fi->frame = read_sp ();
+ deprecated_update_frame_base_hack (fi, read_sp ());
return addr;
}
if (fi && fi->next == NULL && (fi->status & MY_FRAME_IN_SP))
{
fi->stack_size -= 16;
- fi->frame = read_sp () - fi->stack_size;
+ deprecated_update_frame_base_hack (fi, read_sp () - fi->stack_size);
}
return addr;
}
/* Update fi->frame if necessary. */
if (fi && fi->next == NULL)
- fi->frame = read_sp () - fi->stack_size;
+ deprecated_update_frame_base_hack (fi, read_sp () - fi->stack_size);
/* After the out of line prologue, there may be another
stack adjustment for the outgoing arguments.
/* Now that we know the size of the outgoing arguments, fix
fi->frame again if this is the innermost frame. */
if (fi && fi->next == NULL)
- fi->frame -= outgoing_args_size;
+ deprecated_update_frame_base_hack (fi, fi->frame - outgoing_args_size);
/* Note the register save information and update the stack
size for this frame too. */
need to fix fi->frame so that backtracing, find_frame_saved_regs,
etc work correctly. */
if (fi && fi->next == NULL && (fi->status & MY_FRAME_IN_SP) != 0)
- fi->frame = read_sp () - fi->stack_size;
+ deprecated_update_frame_base_hack (fi, read_sp () - fi->stack_size);
/* And last we have the register saves. These are relatively
simple because they're physically done off the stack pointer,
So we set up a dummy frame and call mn10200_analyze_prologue to
find stuff for us. */
- dummy_frame.pc = FRAME_SAVED_PC (fi);
- dummy_frame.frame = fi->frame;
+ deprecated_update_frame_pc_hack (&dummy_frame, FRAME_SAVED_PC (fi));
+ deprecated_update_frame_base_hack (&dummy_frame, fi->frame);
memset (dummy_frame.fsr.regs, '\000', sizeof dummy_frame.fsr.regs);
dummy_frame.status = 0;
dummy_frame.stack_size = 0;
{
int regnum;
- if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame))
+ if (DEPRECATED_PC_IN_CALL_DUMMY (get_frame_pc (frame), frame->frame, frame->frame))
generic_pop_dummy_frame ();
else
{
}
/* Actually cut back the stack. */
- write_register (SP_REGNUM, FRAME_FP (frame));
+ write_register (SP_REGNUM, get_frame_base (frame));
/* Don't we need to set the PC?!? XXX FIXME. */
}
registers. Most of the work is done in mn10200_analyze_prologue().
Note that when we are called for the last frame (currently active frame),
- that fi->pc and fi->frame will already be setup. However, fi->frame will
+ that get_frame_pc (fi) and fi->frame will already be setup. However, fi->frame will
be valid only if this routine uses FP. For previous frames, fi-frame will
always be correct. mn10200_analyze_prologue will fix fi->frame if
it's not valid.
mn10200_init_extra_frame_info (struct frame_info *fi)
{
if (fi->next)
- fi->pc = FRAME_SAVED_PC (fi->next);
+ deprecated_update_frame_pc_hack (fi, FRAME_SAVED_PC (fi->next));
memset (fi->fsr.regs, '\000', sizeof fi->fsr.regs);
fi->status = 0;