diff options
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/h8300/h8300.h | 9 |
2 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f245fa6..796b208 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2001-08-29 Kazu Hirata <kazu@hxi.com> + * h8300.h (RETURN_ADDR_RTX): New. + +2001-08-29 Kazu Hirata <kazu@hxi.com> + * h8300.md (movsi_h8300hs): Optimize loading of several special constants. diff --git a/gcc/config/h8300/h8300.h b/gcc/config/h8300/h8300.h index dc7a8ac..ea1d3e8 100644 --- a/gcc/config/h8300/h8300.h +++ b/gcc/config/h8300/h8300.h @@ -495,6 +495,15 @@ enum reg_class { #define STARTING_FRAME_OFFSET 0 +/* We do not know if the caller has a frame pointer, so we cannot go + beyond level 0. */ + +#define RETURN_ADDR_RTX(COUNT, FRAME) \ + ((COUNT) == 0 \ + ? gen_rtx_MEM (Pmode, \ + plus_constant (arg_pointer_rtx, -GET_MODE_SIZE (Pmode))) \ + : 0) + /* If we generate an insn to push BYTES bytes, this says how many the stack pointer really advances by. |