diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1997-08-02 13:22:50 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1997-08-02 13:22:50 -0400 |
commit | e72f998d695bfdaa608ea49d8b0f6438b563e282 (patch) | |
tree | 4fc62817daea95e92d7d65dc1aecb1bd5e25f986 /gcc/config/clipper | |
parent | 5b838011fe8f31b03f2194d2d93cd1f8ea7300e1 (diff) | |
download | gcc-e72f998d695bfdaa608ea49d8b0f6438b563e282.zip gcc-e72f998d695bfdaa608ea49d8b0f6438b563e282.tar.gz gcc-e72f998d695bfdaa608ea49d8b0f6438b563e282.tar.bz2 |
(clipper_builtin_saveregs): If -fcheck-memory-usage, set rights of
saved registers.
From-SVN: r14621
Diffstat (limited to 'gcc/config/clipper')
-rw-r--r-- | gcc/config/clipper/clipper.c | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/gcc/config/clipper/clipper.c b/gcc/config/clipper/clipper.c index 9ee6f44..20da229 100644 --- a/gcc/config/clipper/clipper.c +++ b/gcc/config/clipper/clipper.c @@ -1,6 +1,5 @@ /* Subroutines for insn-output.c for Clipper - Copyright (C) 1987, 1988, 1991 Free Software Foundation, Inc. - + Copyright (C) 1987, 1988, 1991, 1997 Free Software Foundation, Inc. Contributed by Holger Teutsch (holger@hotbso.rhein-main.de) This file is part of GNU CC. @@ -438,10 +437,31 @@ clipper_builtin_saveregs (arglist) gen_rtx (CONST_INT, Pmode, 16))), scratch); + + if (flag_check_memory_usage) + { + emit_library_call (chkr_set_right_libfunc, 1, VOIDmode, 3, addr, + ptr_mode, GEN_INT (5 * GET_MODE_SIZE (SImode)), + TYPE_MODE (sizetype), + GEN_INT (MEMORY_USE_RW), QImode); + + emit_library_call (chkr_set_right_libfunc, 1, VOIDmode, 3, f0_addr, + ptr_mode, GEN_INT (GET_MODE_SIZE (DFmode)), + TYPE_MODE (sizetype), GEN_INT (MEMORY_USE_RW), QImode); + emit_library_call (chkr_set_right_libfunc, 1, VOIDmode, 3, f1_addr, + ptr_mode, GEN_INT (GET_MODE_SIZE (DFmode)), + TYPE_MODE (sizetype), GEN_INT (MEMORY_USE_RW), QImode); + emit_library_call (chkr_set_right_libfunc, 1, VOIDmode, 3, r0_addr, + ptr_mode, GEN_INT (GET_MODE_SIZE (SImode)), + TYPE_MODE (sizetype), GEN_INT (MEMORY_USE_RW), QImode); + emit_library_call (chkr_set_right_libfunc, 1, VOIDmode, 3, r1_addr, + ptr_mode, GEN_INT (GET_MODE_SIZE (SImode)), + TYPE_MODE (sizetype), GEN_INT (MEMORY_USE_RW), QImode); + } + /* Return the address of the va_list constructor, but don't put it in a register. This fails when not optimizing and produces worse code when optimizing. */ - return XEXP (block, 0); } |