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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |INVALID
             Status|REOPENED                    |RESOLVED

--- Comment #22 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Segher Boessenkool from comment #21)
>         register float foo asm ("xmm0") = 0.99f;
> 
>         asm volatile("movl %0, %%r8d\n\t"
>                       "vmcall\n\t"
>                       :: "g" (foo));
> 
> The user said operands[0] should go in xmm0, but that hard reg is not
> valid for its constraint.

No, the user didn't say that.  The user said put foo into something that
matches the "g" constraint.  The compiler did.
As documented, the register in which the var lives will (and can) be only
satisfied if the constraint allows that register.

Reply via email to