Hans-Peter Nilsson wrote:
Some ports, notably MMIX, are using different definitions of
EXTRA_CONSTRAINT depending on REG_OK_STRICT. This can be a bug, because
the same instruction may be considered invalid in reload.c and valid by
recog.c.
When I wrote that code, accounting for REG_OK_STRICT was not a
bug, but TRT. (I'm about two months behind on mailing list
reading, so I guess things may have changed as things tend to
do.)
No, this is just a branch so don't worry.
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.
My opinion is that regtesting and checking that the same
assembly is emitted before and after the patch would be
sufficient testing... It's definitely not safe without. ;)
Okay.
Paolo