Commit 46b68a37 by Jim Wilson

(expand_builtin, BUILT_IN_FRAME_ADDRESS case): Use new

macros SETUP_FRAME_ADDRESSES and RETURN_ADDR_IN_PREVIOUS_FRAME.

From-SVN: r3609
parent 953fe179
......@@ -6301,6 +6301,23 @@ expand_builtin (exp, target, subtarget, mode, ignore)
rtx tem = frame_pointer_rtx;
int i;
/* Some machines need special handling before we can access arbitrary
frames. For example, on the sparc, we must first flush all
register windows to the stack. */
#ifdef SETUP_FRAME_ADDRESSES
SETUP_FRAME_ADDRESSES ();
#endif
/* On the sparc, the return address is not in the frame, it is
in a register. There is no way to access it off of the current
frame pointer, but it can be accessed off the previous frame
pointer by reading the value from the register window save
area. */
#ifdef RETURN_ADDR_IN_PREVIOUS_FRAME
if (DECL_FUNCTION_CODE (fndecl) == BUILT_IN_RETURN_ADDRESS)
count--;
#endif
/* Scan back COUNT frames to the specified frame. */
for (i = 0; i < count; i++)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment