This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: ia64 eh, part 23
- To: gcc-patches at gcc dot gnu dot org
- Subject: Re: ia64 eh, part 23
- From: Richard Henderson <rth at redhat dot com>
- Date: Wed, 28 Mar 2001 04:24:41 -0800
- References: <20010328031957.A14911@redhat.com>
Apparently I broke ppc-eabisim. It sure looked like TARGET_TOC
was more correct than TARGET_AIX -- I guess not.
r~
* config/rs6000/rs6000.h (EPILOGUE_USES): Use TARGET_AIX,
not TARGET_TOC for special toc restore handling.
* config/rs6000/rs6000.md (eh_return): Likewise.
Index: rs6000.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/rs6000/rs6000.h,v
retrieving revision 1.106
diff -c -p -d -r1.106 rs6000.h
*** rs6000.h 2001/03/28 11:19:20 1.106
--- rs6000.h 2001/03/28 12:20:31
*************** typedef struct rs6000_args
*** 1573,1579 ****
#define EPILOGUE_USES(REGNO) \
((reload_completed && (REGNO) == LINK_REGISTER_REGNUM) \
|| (current_function_calls_eh_return \
! && TARGET_TOC \
&& (REGNO) == TOC_REGISTER))
/* This macro generates the assembly code for function exit,
--- 1573,1579 ----
#define EPILOGUE_USES(REGNO) \
((reload_completed && (REGNO) == LINK_REGISTER_REGNUM) \
|| (current_function_calls_eh_return \
! && TARGET_AIX \
&& (REGNO) == TOC_REGISTER))
/* This macro generates the assembly code for function exit,
Index: rs6000.md
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/rs6000/rs6000.md,v
retrieving revision 1.110
diff -c -p -d -r1.110 rs6000.md
*** rs6000.md 2001/03/28 11:19:20 1.110
--- rs6000.md 2001/03/28 12:20:31
*************** operands[2] = GEN_INT (INTVAL (operands[
*** 13388,13395 ****
""
"
{
! if (TARGET_TOC)
rs6000_emit_eh_toc_restore (operands[0]);
if (TARGET_32BIT)
emit_insn (gen_eh_set_lr_si (operands[1]));
else
--- 13388,13396 ----
""
"
{
! #if TARGET_AIX
rs6000_emit_eh_toc_restore (operands[0]);
+ #endif
if (TARGET_32BIT)
emit_insn (gen_eh_set_lr_si (operands[1]));
else