diff options
author | Richard Henderson <rth@cygnus.com> | 1997-10-02 21:15:56 -0700 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1997-10-02 21:15:56 -0700 |
commit | e414ab293593810c63bc82cc81de90659cd035ae (patch) | |
tree | 8b0e84b5f50b7815e8e5fb5555b0e43bf39fca65 /gcc | |
parent | 808d0b1063b87cb5a2c54cea28d34679f40b5eb9 (diff) | |
download | gcc-e414ab293593810c63bc82cc81de90659cd035ae.zip gcc-e414ab293593810c63bc82cc81de90659cd035ae.tar.gz gcc-e414ab293593810c63bc82cc81de90659cd035ae.tar.bz2 |
Patch from Richard Henderson to make __builtin_return_address(0) work.
* i386.h (RETURN_ADDR_RTX): New definition that works for
__builtin_return_address(0) and -fomit-frame-pointer.
From-SVN: r15835
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.h | 6 |
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3b6d7ca..9ccaceb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Thu Oct 2 21:15:03 1997 Richard Henderson <rth@cygnus.com> + + * i386.h (RETURN_ADDR_RTX): New definition that works for + __builtin_return_address(0) and -fomit-frame-pointer. + Wed Oct 1 13:43:53 1997 Jim Wilson <wilson@cygnus.com> Bring over from FSF. diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index 340fb9b..24c1d8c 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -2370,6 +2370,12 @@ number as al, and ax. #define INCOMING_RETURN_ADDR_RTX \ gen_rtx (MEM, VOIDmode, gen_rtx (REG, VOIDmode, STACK_POINTER_REGNUM)) +/* After the prologue, RA is at -4(AP) in the current frame. */ +#define RETURN_ADDR_RTX(COUNT, FRAME) \ + ((COUNT) == 0 \ + ? gen_rtx (MEM, Pmode, gen_rtx (PLUS, Pmode, arg_pointer_rtx, GEN_INT(-4)))\ + : gen_rtx (MEM, Pmode, gen_rtx (PLUS, Pmode, (FRAME), GEN_INT(4)))) + /* PC is dbx register 8; let's use that column for RA. */ #define DWARF_FRAME_RETURN_COLUMN 8 |