<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><span class="pl-en">Change</span></p>
    <p><span class="pl-en">  "adreq lr</span><span class="pl-s1">,</span><span
        class="pl-en"> X(ff_h264_idct_add_neon) </span><span
        class="pl-s1">+</span><span class="pl-en"> CONFIG_THUMB"</span></p>
    <p><span class="pl-en">Into:</span></p>
    <p>.eqv <span class="pl-en">ff_h264_idct_add_neon_without_func_type,
      </span><span class="pl-en">X(ff_h264_idct_add_neon)</span><br>
      <span class="pl-en"></span><span class="pl-en">adreq lr</span><span
        class="pl-s1">,</span><span class="pl-en">  </span><span
        class="pl-s1"><span class="pl-en">ff_h264_idct_add_neon_without_func_type
        </span>+</span><span class="pl-en"> CONFIG_THUMB</span></p>
    <p><span class="pl-en">might be a solution.  The idea is we use .eqv
        to remove the function attribute, so the assembler won't set LSB
        in any case.<br>
      </span></p>
    <br>
    <div class="moz-cite-prefix">On 04/08/17 12:39, Jiong Wang wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:70941b7c-03b6-6a18-ff66-138b3115fc5f@foss.arm.com">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      Hi,
      <p>  This issue is caused by a recent change in ARM assembler
        included since Binutils 2.29.</p>
      <p>  The details of that change can be found at <a
          class="moz-txt-link-freetext"
          href="https://sourceware.org/bugzilla/show_bug.cgi?id=21458"
          moz-do-not-send="true">https://sourceware.org/bugzilla/show_bug.cgi?id=21458</a><br>
      </p>
      <p>  The semantics of ADR has changed.  In general, the address
        generated by ADR will guarantee the LSB be set if it's a thumb
        function address.</p>
      <p>   I noticed h264idct_neon.S is using something like:</p>
      <p>     <span class="pl-en">adreq lr</span><span class="pl-s1">,</span><span
          class="pl-en"> X(ff_h264_idct_add_neon) </span><span
          class="pl-s1">+</span><span class="pl-en"> CONFIG_THUMB<br>
        </span></p>
      <p>   As ADR now will set the LSB automatically, you don't need
        CONFIG_THUMB any more.</p>
      <p>   I think h264idct_neon.S needs to be updated, and the
        modification should make sure it works with both old Binutils
        and the new one.</p>
      Regards,<br>
      Jiong<br>
      <br>
    </blockquote>
    <br>
  </body>
</html>