From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jim Wilson To: Richard Henderson Cc: egcs@cygnus.com, gcc2@cygnus.com Subject: Re: double_reg_address_ok Date: Wed, 08 Apr 1998 02:13:00 -0000 Message-id: <199804072152.OAA26002@rtl.cygnus.com> References: <19980405034830.11235@dot.cygnus.com> X-SW-Source: 1998-04/msg00299.html There does not currently appear to be anything about the code that is predicated on double_reg_address_ok that seems to require that the result be offsettable. There are places in reload where it assumes that if an address has been reloaded already, then it must be offsettable. This avoids needing multiple possibly conflicting reloads for the same address. See the 'o' case in reload.c. See in particular the reg_equiv_address case. If we have an address using an unallocated pseudo, and that pseudo lives in a stack slot with such a large offset that it can't be accessed with a REG+CONST_INT addressing mode, and we need this address to be offsettable, then using a REG+REG addressing mode to access it will fail. Hence we can't allow reload to generate it. This is just an educated guess though, so I am not sure if it is right. And if it is right, there may be an easy way to work around it but that no one has tried yet. Jim