* H. J. Lu:

> +@item zero_caller_saved_regs("@var{choice}")
> +@cindex @code{zero_caller_saved_regs} function attribute, x86
> +On x86 targets, the @code{zero_caller_saved_regs} attribute causes the
> +compiler to zero caller-saved integer registers at function return with
> +@var{choice}.  @samp{skip} doesn't zero caller-saved integer registers.
> +@samp{used} zeros caller-saved integer registers which are used in
> +function.  @samp{all} zeros all caller-saved integer registers.

Perhaps “according to @var{choice}:”.  And say that the default for the
attribute is controlled by @option{-mzero-caller-saved-regs}?

(Maybe “skip” should be none?)

I assume we can check for this use __has_attribute?  We would use this
in the implementation of explicit_bzero in glibc.

> diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
> index 7ef4e7a449b..796477452d5 100644
> --- a/gcc/doc/invoke.texi
> +++ b/gcc/doc/invoke.texi

> @@ -28459,6 +28459,16 @@ not be reachable in the large code model.
>  @opindex -mindirect-branch-register
>  Force indirect call and jump via register.

> +@item -mzero-caller-saved-regs=@var{choice}
> +@opindex -mzero-caller-saved-regs
> +Zero caller-saved integer registers at function return with @var{choice}.
> +The default is @samp{skip}, which doesn't zero caller-saved integer
> +registers.  @samp{used} zeros caller-saved integer registers which are
> +used in function.  @samp{all} zeros all caller-saved integer registers.
> +You can control this behavior for a specific function by using the
> +function attribute @code{zero_caller_saved_regs}.
> +@xref{Function Attributes}.

See above regarding “with @var{choice}”.

Thanks,
Florian

Reply via email to