https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92597

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Using r constraint for long double doesn't make much sense, long double on ix86
is something that can be held in memory or i387 stack, but you don't want that
in GPRs.
"+m" works, so does "+g".
With "+m" it works because the constant is forced into memory and thus the
memory is naturally matching, "+g" is internally turned into "=g" and "0" and
so ends up matching too, but "+m,r" is internally turned into "=m,r" "m,0"
rather than
"=m,r" "0,0" and so the memory can be different and is in this case, the input
(i.e. %1) is .rodata memory with the constant and output (i.e. %0) is some
stack slot.

Reply via email to