* i386-tdep.c (i386_frame_chain): New function.
* config/i386/tm-i386.h (FRAME_CHAIN): Redefine in terms of i386_frame_chain. (i386_frame_chain): New prototype.
This commit is contained in:
parent
d4424adaef
commit
c833a37e77
|
@ -1,3 +1,10 @@
|
|||
2001-04-16 Mark Kettenis <kettenis@gnu.org>
|
||||
|
||||
* i386-tdep.c (i386_frame_chain): New function.
|
||||
* config/i386/tm-i386.h (FRAME_CHAIN): Redefine in terms of
|
||||
i386_frame_chain.
|
||||
(i386_frame_chain): New prototype.
|
||||
|
||||
2001-04-14 J.T. Conklin <jtc@redback.com>
|
||||
|
||||
* target.h (target_ops): Removed to_core_file_to_sym_file vector
|
||||
|
|
|
@ -323,17 +323,12 @@ extern CORE_ADDR i386_extract_struct_value_address (char *regbuf);
|
|||
from the sigcontext structure which is pushed by the kernel on the
|
||||
user stack, along with a pointer to it. */
|
||||
|
||||
/* FRAME_CHAIN takes a frame's nominal address and produces the frame's
|
||||
chain-pointer.
|
||||
In the case of the i386, the frame's nominal address
|
||||
is the address of a 4-byte word containing the calling frame's address. */
|
||||
/* Return the chain-pointer for FRAME. In the case of the i386, the
|
||||
frame's nominal address is the address of a 4-byte word containing
|
||||
the calling frame's address. */
|
||||
|
||||
#define FRAME_CHAIN(thisframe) \
|
||||
((thisframe)->signal_handler_caller \
|
||||
? (thisframe)->frame \
|
||||
: (!inside_entry_file ((thisframe)->pc) \
|
||||
? read_memory_unsigned_integer ((thisframe)->frame, 4) \
|
||||
: 0))
|
||||
#define FRAME_CHAIN(frame) i386_frame_chain ((frame))
|
||||
extern CORE_ADDR i386_frame_chain (struct frame_info *frame);
|
||||
|
||||
/* A macro that tells us whether the function invocation represented
|
||||
by FI does not have a frame on the stack associated with it. If it
|
||||
|
|
|
@ -349,6 +349,22 @@ i386_get_frame_setup (CORE_ADDR pc)
|
|||
return (-1);
|
||||
}
|
||||
|
||||
/* Return the chain-pointer for FRAME. In the case of the i386, the
|
||||
frame's nominal address is the address of a 4-byte word containing
|
||||
the calling frame's address. */
|
||||
|
||||
CORE_ADDR
|
||||
i386_frame_chain (struct frame_info *frame)
|
||||
{
|
||||
if (frame->signal_handler_caller)
|
||||
return frame->frame;
|
||||
|
||||
if (! inside_entry_file (frame->pc))
|
||||
return read_memory_unsigned_integer (frame->frame, 4);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Return number of args passed to a frame.
|
||||
Can return -1, meaning no way to tell. */
|
||||
|
||||
|
|
Loading…
Reference in New Issue