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]

PATCH: AIX EH



I checked in this patch (a collaborative effort between Franz and
David) which (together with my patches) fixes most of the EH problems
on AIX.

--
Mark Mitchell                   mark@codesourcery.com
CodeSourcery, LLC               http://www.codesourcery.com

2001-02-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
            David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_return_addr): Use PIC 
	code for AIX, even without flag_pic.

Index: config/rs6000/rs6000.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.c,v
retrieving revision 1.162
diff -c -p -r1.162 rs6000.c
*** rs6000.c	2001/01/24 00:07:31	1.162
--- rs6000.c	2001/02/05 19:29:52
*************** rs6000_return_addr (count, frame)
*** 5057,5068 ****
    /* Currently we don't optimize very well between prolog and body code and
       for PIC code the code can be actually quite bad, so don't try to be
       too clever here.  */
!   if (count != 0 || flag_pic != 0)
      {
        cfun->machine->ra_needs_full_frame = 1;
        return
  	gen_rtx_MEM (Pmode,
! 	  memory_address (Pmode,
  			  plus_constant (copy_to_reg (gen_rtx_MEM (Pmode,
  								   memory_address (Pmode, frame))),
  					 RETURN_ADDRESS_OFFSET)));
--- 5057,5071 ----
    /* Currently we don't optimize very well between prolog and body code and
       for PIC code the code can be actually quite bad, so don't try to be
       too clever here.  */
!   if (count != 0
!       || flag_pic != 0
!       || DEFAULT_ABI == ABI_AIX
!       || DEFAULT_ABI == ABI_AIX_NODESC)
      {
        cfun->machine->ra_needs_full_frame = 1;
        return
  	gen_rtx_MEM (Pmode,
!           memory_address (Pmode,
  			  plus_constant (copy_to_reg (gen_rtx_MEM (Pmode,
  								   memory_address (Pmode, frame))),
  					 RETURN_ADDRESS_OFFSET)));

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