@@ -7639,16 +7639,22 @@ def ArmAgnosticDocs : Documentation {
76397639 let Category = DocCatArmSmeAttributes;
76407640 let Content = [{
76417641The ``__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.
76447646
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:
76477654
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.
76507656
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
76527658with ``__arm_in(S)``, ``__arm_out(S)``, ``__arm_inout(S)`` or
76537659``__arm_preserves(S)`` where state S describes state enabled by PSTATE.ZA,
76547660such as "za" or "zt0".
0 commit comments