http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51863

Tyler Hardin <th020394 at gmail dot com> changed:

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

--- Comment #3 from Tyler Hardin <th020394 at gmail dot com> 2012-01-15 
08:49:26 UTC ---
(In reply to comment #2)
> I think you should use:
>     asm("invlpg %0" :: "r"(pointer_to_page) : "memory");
> Instead.
invlpg only accepts memory operands. But, if I adapt your idea just a little,
it works:
    asm("invlpg [%0]" :: "r"(pointer_to_page) : "memory");

It would be nice if it would work without having to trick the compiler (telling
it I'm using a register but actually referencing memory), but it works now,
that's all I care about. Thanks.

> What GCC is doing is correct in that it outputs the byte/word/dword
> correctly for -masm=intel.
But why for -masm=intel and not for -masm=att (the default)?

Reply via email to