This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: ppc regression
- To: David Edelsohn <dje at watson dot ibm dot com>
- Subject: Re: ppc regression
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Mon, 21 Jun 1999 22:18:21 -0600
- cc: Franz Sirl <Franz dot Sirl-kernel at lauterbach dot com>, egcs-patches at egcs dot cygnus dot com
- Reply-To: law at cygnus dot com
In message <9906211814.AA50278@marc.watson.ibm.com>you write:
> I was testing the wrong operand in case 2.
>
I brought this fix over to the branch. I also installed this fix for a
regression exposed by libg++.
Basically the powerpc allows LO_SUM based addresses in DFmode. So we need to
handle them in find_addr_reg.
[ The PA doesn't allow auto-inc or LO_SUM addressing in DF/DImode moves.
* rs6000.md (find_addr_reg): Handle LO_SUM addresses.
Index: rs6000.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/rs6000/rs6000.c,v
retrieving revision 1.75
diff -c -3 -p -r1.75 rs6000.c
*** rs6000.c 1999/06/19 00:04:57 1.75
--- rs6000.c 1999/06/22 04:12:25
*************** struct rtx_def *
*** 5690,5695 ****
--- 5690,5698 ----
find_addr_reg (addr)
rtx addr;
{
+ if (GET_CODE (addr) == LO_SUM)
+ addr = XEXP (addr, 0);
+
while (GET_CODE (addr) == PLUS)
{
if (GET_CODE (XEXP (addr, 0)) == REG)