Commit f09d4c33 by Richard Kenner

(RETURN_ADDR_RTX): Remove call to copy_to_reg.

(RETURN_ADDR_RTX): Remove call to copy_to_reg.  Offset to return
address is 4 when !TARGET_64BIT and v4_call_p, 8 otherwise.

From-SVN: r10419
parent 2bbf216f
...@@ -1246,17 +1246,21 @@ typedef struct rs6000_args ...@@ -1246,17 +1246,21 @@ typedef struct rs6000_args
taken care of one additional fetch will be necessary in RETURN_ADDR_RTX. taken care of one additional fetch will be necessary in RETURN_ADDR_RTX.
(mrs) */ (mrs) */
/* #define RETURN_ADDR_IN_PREVIOUS_FRAME */ /* #define RETURN_ADDR_IN_PREVIOUS_FRAME */
/* Number of bytes into the frame return addresses can be found. */
#define RETURN_ADDRESS_OFFSET (v4_call_p ? (TARGET_64BIT ? 8 : 4) : 8)
/* The current return address is in link register (65). The return address /* The current return address is in link register (65). The return address
of anything farther back is accessed normally at an offset of 8 from the of anything farther back is accessed normally at an offset of 8 from the
frame pointer. */ frame pointer. */
#define RETURN_ADDR_RTX(count, frame) \ #define RETURN_ADDR_RTX(count, frame) \
((count == -1) \ ((count == -1) \
? gen_rtx (REG, Pmode, 65) \ ? gen_rtx (REG, Pmode, 65) \
: copy_to_reg (gen_rtx (MEM, Pmode, \ : gen_rtx (MEM, Pmode, \
memory_address (Pmode, \ memory_address (Pmode, \
plus_constant (copy_to_reg (gen_rtx (MEM, Pmode, \ plus_constant (copy_to_reg (gen_rtx (MEM, Pmode, \
memory_address (Pmode, frame))), \ memory_address (Pmode, frame))), \
8))))) RETURN_ADDRESS_OFFSET))))
/* Definitions for register eliminations. /* Definitions for register eliminations.
......
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