gilles.chanteperdrix at laposte.net
Fri Oct 22 17:40:05 CEST 2004
Benjamin Collar wrote:
> I know that some folks are looking into this already--hopefully in the
> process making gcc3.3 a supported compiler?--but I just want to ask: can
> someone explain why the clobber list is coded as it is, and what is the
> significance of removing it?
If you remove from the clobber list a register which is really clobbered
by some inline assembly code, the compiler may assume that, at execution
time, the value of the register is not modified by the execution of the
inline assembly routine. Which means, a bug.
But a register which is in the output list does not need to be in the
clobber list, because the compiler already knows that your assembly
routine modifies this register.
And finally, a register which is in the input list can not be in the
clobber list. So, if you need to declare that this register is changed
by the inline assembly routine, you have to declare the same register
both in the input list and in the output list.
More information about the Rtai