On Mon, Oct 12, 2015 at 04:09:34PM -0700, David Wohlferd wrote:
> I was hoping to modify the text to say that local register variables can
> "only" be used to call Extended asm. This would greatly simplify this
> section.
But it is not true: they can be used anywhere any variable can be used.
Only in asm operands is it guaranteed that they end up in certain regs
though.
> -This option does not guarantee that GCC generates code that has
> -this variable in the register you specify at all times. You may not
> -code an explicit reference to this register in the assembler
> -instruction template part of an @code{asm} statement and assume it
> -always refers to this variable.
> -However, using the variable as an input or output operand to the @code{asm}
> -guarantees that the specified register is used for that operand.
> -@xref{Extended Asm}, for more information.
... as this correctly said.
> +Defining a register variable does not reserve the register; it
> +remains available for other uses in places where flow control determines
> +the variable's value is not live. For this reason, the following uses
This is misleading -- people will try to keep the variable "live" so it
stays in the wanted reg. Which is not something guaranteed to work either.
Segher