<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <p>Hi Jan,<br>
    </p>
    <div class="moz-cite-prefix">On 2/12/2024 11:42 PM, Srinath
      Parvathaneni wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:7d26c9ec-8816-4643-a5e8-8162803971d9@arm.com">Hi Jan,
      <br>
      <br>
      On 2/12/2024 7:39 AM, Jan Beulich wrote:
      <br>
      <blockquote type="cite">Srinath,
        <br>
        <br>
        may I ask against what specification this was written? There are
        two
        <br>
        aspects I can't bring in line with what DDI0596 from December
        has, i.e.
        <br>
        even newer than the patch (dating back to October):
        <br>
        <br>
        1) gcspopcx, gcspopx, and gcspushx supposedly all have an
        optional
        <br>
            register operand, which gas 2.42 doesn't accept.
        <br>
      </blockquote>
      <br>
      My understanding from the following specs is that the above
      mentioned
      <br>
      <br>
      instructions does not take any optional arguments and this is
      aligned with
      <br>
      <br>
      LLVM compiler behaviour.
      <br>
      <br>
<a class="moz-txt-link-freetext" href="https://developer.arm.com/documentation/ddi0601/2023-12/AArch64-Instructions/GCSPUSHX--Guarded-Control-Stack-Push-exception-return-record?lang=en">https://developer.arm.com/documentation/ddi0601/2023-12/AArch64-Instructions/GCSPUSHX--Guarded-Control-Stack-Push-exception-return-record?lang=en</a>
      <br>
      <br>
      However, I am unsure about the statement "The value in the
      register by <Xt> is ignored" in the
      <br>
      <br>
      specs and need further clarification. I will discuss this
      internally and get back to you with an update.
      <br>
    </blockquote>
    <pre class="bz_comment_text" id="comment_text_1" style="font-size: medium; font-family: monospace; white-space: pre-wrap; width: 50em; color: rgb(0, 0, 0); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">There is some confusion over the document for mentioned gcspushx, gcspopx and gcspopcx instructions.

The correct documentation for these instructions is here:
<a rel="ugc" href="https://developer.arm.com/documentation/ddi0601/2023-12/AArch64-Instructions/GCSPOPX--Guarded-Control-Stack-Pop-exception-return-record?lang=en" style="color: rgb(96, 112, 207);" class="moz-txt-link-freetext">https://developer.arm.com/documentation/ddi0601/2023-12/AArch64-Instructions/GCSPOPX--Guarded-Control-Stack-Pop-exception-return-record?lang=en</a>

As per above documentation, the mentioned instructions does not take optional argument and the current binutils implementation of these instructions is correct.</pre>
    <blockquote type="cite" cite="mid:7d26c9ec-8816-4643-a5e8-8162803971d9@arm.com">
      <blockquote type="cite">2) gcsstr and gcssttr supposedly have a
        memory-form 2nd operand, i.e.
        <br>
            a register name enclosed in square brackets. Gas 2.42
        expects a
        <br>
            plain register name instead.
        <br>
      </blockquote>
      <br>
      I agree this is a coding bug, I will create a bugzilla ticket and
      work on fixing this issue.
      <br>
    </blockquote>
    <p>I have committed the fix for this issue to master and
      binutils-2_42-branch.</p>
    <p>Regards,</p>
    <p>Srinath.<br>
    </p>
    <blockquote type="cite" cite="mid:7d26c9ec-8816-4643-a5e8-8162803971d9@arm.com">Thank You.
      <br>
      <br>
      Regards,
      <br>
      <br>
      Srinath
      <br>
      <br>
      <blockquote type="cite">Despite being newer it's of course
        possible that documentation is what
        <br>
        actually needs fixing. Can you please clarify which way it is?
        <br>
        <br>
        Thanks, Jan
        <br>
      </blockquote>
    </blockquote>
  </body>
</html>