[Bug inline-asm/64733] MOV instruction error when inline assembly code is used in a C function
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Jan 22 19:50:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64733
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution|--- |FIXED
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to aji from comment #2)
> The issue is with this line of code:
> asm volatile("mov X1, #0x10000003");
>
> If I modify the mov instruction to take a variable input it works.
>
> val = 0x10000003;
> asm volatile("mov X1, %0":"=r"(val));
>
> Just want to understand why is this?
Please read the ARM ARM. 0x10000000 works as it can be used with movw while
0x10000003 there is no one instruction which works. If you want 0x10000003,
you need to use two instructions movz and movk.
There is no GCC bug here.
More information about the Gcc-bugs
mailing list