On Thu, 24 Aug 2006, Paolo Bonzini wrote:
> Anyway, I was not meaning to *not* account for anything, but just to
> replace REG_OK_STRICT with checks on reload_in_progress and
> reload_completed.  I understand the semantics that you wanted for 'U'.
>
> The bug may be that in some cases, 'U' is checked for memory_address_p
> instead of strict_memory_address_p even after reload, in particular when
> it is recog.c that is constraining the operands.

If so, not more buggy than other targets that use REG_OK_STRICT
a bit more indirectly (like using REG_OK_FOR_BASE_P directly or
indirectly in their EXTRA_CONSTRAINT or GO_IF_LEGITIMATE_ADDRESS).

Some history I found on this change:
<URL:http://gcc.gnu.org/ml/gcc-patches/2001-12/msg02585.html>
<URL:http://gcc.gnu.org/ml/gcc-patches/2001-12/msg02501.html>.
Sorry I don't remember more, in particular not where I got the
idea to choose between strict_memory_address_p and
memory_address_p.  I had the flu at the time, so I might have
actually found it up myself. :-)

If the general replacement of REG_OK_STRICT is indeed
reload_in_progress || reload_completed, then the substitution
*should* of course be in principle be correct (as in: subject to
testing. ;)

brgds, H-P

Reply via email to