From 3553b09d2c9d90400e29a67c59cc2986c8109392 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Wed, 28 Mar 2001 04:22:48 -0800 Subject: [PATCH] rs6000.h (EPILOGUE_USES): Use TARGET_AIX, not TARGET_TOC for special toc restore handling. * config/rs6000/rs6000.h (EPILOGUE_USES): Use TARGET_AIX, not TARGET_TOC for special toc restore handling. * config/rs6000/rs6000.md (eh_return): Likewise. From-SVN: r40930 --- gcc/ChangeLog | 6 ++++++ gcc/config/rs6000/rs6000.h | 2 +- gcc/config/rs6000/rs6000.md | 3 ++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6b66ea6..f57accb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2001-03-28 Richard Henderson + * config/rs6000/rs6000.h (EPILOGUE_USES): Use TARGET_AIX, + not TARGET_TOC for special toc restore handling. + * config/rs6000/rs6000.md (eh_return): Likewise. + +2001-03-28 Richard Henderson + * config/sparc/sparc.c (eligible_for_epilogue_delay): False if current_function_calls_eh_return. (output_function_epilogue): Handle eh_return. diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index a520b57..f0f65f5 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -1573,7 +1573,7 @@ typedef struct rs6000_args #define EPILOGUE_USES(REGNO) \ ((reload_completed && (REGNO) == LINK_REGISTER_REGNUM) \ || (current_function_calls_eh_return \ - && TARGET_TOC \ + && TARGET_AIX \ && (REGNO) == TOC_REGISTER)) /* This macro generates the assembly code for function exit, diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index e92cbc8..833e640 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -13388,8 +13388,9 @@ operands[2] = GEN_INT (INTVAL (operands[1]) >> 32); "" " { - if (TARGET_TOC) +#if TARGET_AIX rs6000_emit_eh_toc_restore (operands[0]); +#endif if (TARGET_32BIT) emit_insn (gen_eh_set_lr_si (operands[1])); else -- 2.7.4