@@ -7639,16 +7639,22 @@ def ArmAgnosticDocs : Documentation {
7639
7639
let Category = DocCatArmSmeAttributes;
7640
7640
let Content = [{
7641
7641
The ``__arm_agnostic`` keyword applies to prototyped function types and
7642
- specifies that the function is agnostic about the given state S and
7643
- returns with state S unchanged if state S exists.
7642
+ affects the function's calling convention for a given state S. This
7643
+ attribute allows the user to describe a function that preserves S, without
7644
+ requiring the function to share S with its callers and without the making
7645
+ the assumption that S exists.
7644
7646
7645
- The attribute takes string arguments to instruct the compiler which state
7646
- the function is agnostic about. The supported states for S are:
7647
+ If a function has the ``__arm_agnostic(S)`` attribute and calls a function
7648
+ without this attribute, then the function's object code will contain code
7649
+ to preserve state S. Otherwise, the function's object code will be the same
7650
+ as if it did not have the attribute.
7651
+
7652
+ The attribute takes string arguments to describe state S. The supported
7653
+ states are:
7647
7654
7648
- * ``"sme_za_state"`` for any state enabled by PSTATE.ZA (including the
7649
- bit itself)
7655
+ * ``"sme_za_state"`` for state enabled by PSTATE.ZA, such as ZA and ZT0.
7650
7656
7651
- The attributes ``__arm_agnostic("sme_za_state")`` cannot be used in conjunction
7657
+ The attribute ``__arm_agnostic("sme_za_state")`` cannot be used in conjunction
7652
7658
with ``__arm_in(S)``, ``__arm_out(S)``, ``__arm_inout(S)`` or
7653
7659
``__arm_preserves(S)`` where state S describes state enabled by PSTATE.ZA,
7654
7660
such as "za" or "zt0".
0 commit comments