x87 register clobber returns "unknown register name" error

Hadrien Grasland hadrien.grasland@gmail.com
Mon Jan 4 20:55:00 GMT 2016


Hi Bernd,

Thanks for the tip, and sorry for my late reply. I have been moving and 
lost internet connectivity for a while.

If the "st" clobber provides no details regarding which stack registers 
will be used, does it mean that the GCC register allocator has no way to 
know how many stack registers are needed and must invalidate all x87 
registers in order to take the safe route ?

In any case, if this is the proper syntax, the GCC manual should perhaps 
be modified, as in the last example of its section 6.44.3.5 "x86 
Floating-Point asm Operands" (bottom of 
https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html ) it suggests that 
st(x) can be used as a clobber.

Regards,
Hadrien

Le 11/12/2015 09:07, Bernd Edlinger a écrit :
> Hi Hadrien,
>
>>     asm volatile ("fstps (%1)" :
>>                   : // No output
>>                   "t" (input), "r" (output) :
>>                   "memory", "st(0)");
> st(0) may work in assembler, but in the clobber section you must write "st".
>
>
>
> Regards
> Bernd.



More information about the Gcc-help mailing list