diff options
author | Doug Evans <dje@gnu.org> | 1993-09-24 19:36:23 +0000 |
---|---|---|
committer | Doug Evans <dje@gnu.org> | 1993-09-24 19:36:23 +0000 |
commit | 3ba7165675e75dadfec748d6d9abede2e403e2d7 (patch) | |
tree | 349e5b190e37988bd3e15ccdba7200f747d54703 /gcc/rtl.h | |
parent | fe089a905abbbde679e6d643959a57e06f914f63 (diff) | |
download | gcc-3ba7165675e75dadfec748d6d9abede2e403e2d7.tar.gz |
rtl.h: (HARD_FRAME_POINTER_REGNUM): New macro.
* rtl.h: (HARD_FRAME_POINTER_REGNUM): New macro.
(hard_frame_pointer_rtx): New variable
From-SVN: r5449
Diffstat (limited to 'gcc/rtl.h')
-rw-r--r-- | gcc/rtl.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/rtl.h b/gcc/rtl.h index c65afba9f73..fa91347b000 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -826,6 +826,7 @@ extern rtx const_tiny_rtx[3][(int) MAX_MACHINE_MODE]; go through these unique rtx objects. */ extern rtx stack_pointer_rtx; extern rtx frame_pointer_rtx; +extern rtx hard_frame_pointer_rtx; extern rtx arg_pointer_rtx; extern rtx pic_offset_table_rtx; extern rtx struct_value_rtx; @@ -833,6 +834,16 @@ extern rtx struct_value_incoming_rtx; extern rtx static_chain_rtx; extern rtx static_chain_incoming_rtx; +/* If HARD_FRAME_POINTER_REGNUM is defined, then a special dummy reg + is used to represent the frame pointer. This is because the + hard frame pointer and the automatic variables are separated by an amount + that cannot be determined until after register allocation. We can assume + that in this case ELIMINABLE_REGS will be defined, one action of which + will be to eliminate FRAME_POINTER_REGNUM into HARD_FRAME_POINTER_REGNUM. */ +#ifndef HARD_FRAME_POINTER_REGNUM +#define HARD_FRAME_POINTER_REGNUM FRAME_POINTER_REGNUM +#endif + /* Virtual registers are used during RTL generation to refer to locations into the stack frame when the actual location isn't known until RTL generation is complete. The routine instantiate_virtual_regs replaces these with |