This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: ia64 eh, part 23


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]