diff mbox series

doc: Document AArch64-specific asm operand modifiers

Message ID ZXsus9Kdy98iXxaZ@arm.com
State New
Headers show
Series doc: Document AArch64-specific asm operand modifiers | expand

Commit Message

Alex Coplan Dec. 14, 2023, 4:34 p.m. UTC
Hi,

As it stands, GCC doesn't document any public AArch64-specific operand
modifiers for use in inline asm.  This patch fixes that by documenting
an initial set of public AArch64-specific operand modifiers.

Tested with make html and checking the output looks OK in a browser.

OK for trunk?

Thanks,
Alex

gcc/ChangeLog:

	* doc/extend.texi: Document AArch64 Operand Modifiers.

Comments

Richard Sandiford Dec. 14, 2023, 4:45 p.m. UTC | #1
Alex Coplan <alex.coplan@arm.com> writes:
> Hi,
>
> As it stands, GCC doesn't document any public AArch64-specific operand
> modifiers for use in inline asm.  This patch fixes that by documenting
> an initial set of public AArch64-specific operand modifiers.
>
> Tested with make html and checking the output looks OK in a browser.
>
> OK for trunk?
>
> Thanks,
> Alex
>
> gcc/ChangeLog:
>
> 	* doc/extend.texi: Document AArch64 Operand Modifiers.

OK.  And thanks for doing this.  The previous line of "only documented
AArch64 modifiers are supported in asms" and "no AArch64 modifiers
are documented" just wasn't defensible, especially given that many of
the modifiers in the patch are necessary for even basic usage.

Richard

> diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
> index e8b5e771f7a..6ade36759ee 100644
> --- a/gcc/doc/extend.texi
> +++ b/gcc/doc/extend.texi
> @@ -11723,6 +11723,31 @@ operand as if it were a memory reference.
>  @tab @code{%l0}
>  @end multitable
>  
> +@anchor{aarch64Operandmodifiers}
> +@subsubsection AArch64 Operand Modifiers
> +
> +The following table shows the modifiers supported by AArch64 and their effects:
> +
> +@multitable @columnfractions .10 .90
> +@headitem Modifier @tab Description
> +@item @code{w} @tab Print a 32-bit general-purpose register name or, given a
> +constant zero operand, the 32-bit zero register (@code{wzr}).
> +@item @code{x} @tab Print a 64-bit general-purpose register name or, given a
> +constant zero operand, the 64-bit zero register (@code{xzr}).
> +@item @code{b} @tab Print an FP/SIMD register name with a @code{b} (byte, 8-bit)
> +prefix.
> +@item @code{h} @tab Print an FP/SIMD register name with an @code{h} (halfword,
> +16-bit) prefix.
> +@item @code{s} @tab Print an FP/SIMD register name with an @code{s} (single
> +word, 32-bit) prefix.
> +@item @code{d} @tab Print an FP/SIMD register name with a @code{d} (doubleword,
> +64-bit) prefix.
> +@item @code{q} @tab Print an FP/SIMD register name with a @code{q} (quadword,
> +128-bit) prefix.
> +@item @code{Z} @tab Print an FP/SIMD register name as an SVE register (i.e. with
> +a @code{z} prefix).  This is a no-op for SVE register operands.
> +@end multitable
> +
>  @anchor{x86Operandmodifiers}
>  @subsubsection x86 Operand Modifiers
>
diff mbox series

Patch

diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index e8b5e771f7a..6ade36759ee 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -11723,6 +11723,31 @@  operand as if it were a memory reference.
 @tab @code{%l0}
 @end multitable
 
+@anchor{aarch64Operandmodifiers}
+@subsubsection AArch64 Operand Modifiers
+
+The following table shows the modifiers supported by AArch64 and their effects:
+
+@multitable @columnfractions .10 .90
+@headitem Modifier @tab Description
+@item @code{w} @tab Print a 32-bit general-purpose register name or, given a
+constant zero operand, the 32-bit zero register (@code{wzr}).
+@item @code{x} @tab Print a 64-bit general-purpose register name or, given a
+constant zero operand, the 64-bit zero register (@code{xzr}).
+@item @code{b} @tab Print an FP/SIMD register name with a @code{b} (byte, 8-bit)
+prefix.
+@item @code{h} @tab Print an FP/SIMD register name with an @code{h} (halfword,
+16-bit) prefix.
+@item @code{s} @tab Print an FP/SIMD register name with an @code{s} (single
+word, 32-bit) prefix.
+@item @code{d} @tab Print an FP/SIMD register name with a @code{d} (doubleword,
+64-bit) prefix.
+@item @code{q} @tab Print an FP/SIMD register name with a @code{q} (quadword,
+128-bit) prefix.
+@item @code{Z} @tab Print an FP/SIMD register name as an SVE register (i.e. with
+a @code{z} prefix).  This is a no-op for SVE register operands.
+@end multitable
+
 @anchor{x86Operandmodifiers}
 @subsubsection x86 Operand Modifiers