aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/rs6000/rs6000.h2
-rw-r--r--gcc/config/rs6000/rs6000.md3
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 <rth@redhat.com>
+ * 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 <rth@redhat.com>
+
* 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