<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Forgot to adjust the comment. This
      version should be fine.<br>
      <br>
      <meta http-equiv="content-type" content="text/html;
        charset=ISO-8859-1">
      <a href="http://cr.openjdk.java.net/%7Eanoll/8026478/webrev.02/">http://cr.openjdk.java.net/~anoll/8026478/webrev.02/</a><br>
      <br>
      Albert<br>
      <br>
      On 15.10.2013 21:03, Vladimir Kozlov wrote:<br>
    </div>
    <blockquote cite="mid:525D9194.3070403@oracle.com" type="cite">Albert,
      <br>
      <br>
      contains_all_stubs name is incorrect. It should be
      contains_all_checks. Adapter code does not have stubs in it.
      <br>
      <br>
      I think the next check should be:
      <br>
      <br>
      bool contains_all_checks = (StubRoutines::code2() != NULL) ||
      !VerifyAdapterCalls;
      <br>
      <br>
      because code does not change when VerifyAdapterCalls is false.
      <br>
      Then you don't need to check VerifyAdapterCalls in next condition:
      <br>
      <br>
      +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ((VerifyAdapterCalls || VerifyAdapterSharing)
      &amp;&amp; !entry-&gt;contains_all_checks()) {
      <br>
      <br>
      And we need to regenerate adapter regardless VerifyAdapterSharing
      because, as you said, VerifyAdapterCalls potentially reports a
      false error if check for code2 is not generated.
      <br>
      <br>
      So the condition should be simple "if
      (!entry-&gt;contains_all_checks())".
      <br>
      <br>
      Could you leave next lines unchanged (use 2 lines for arguments)?:
      <br>
      !&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      buffer.insts()-&gt;initialize_shared_locs((relocInfo*)buffer_locs,
      <br>
      <br>
      sizeof(buffer_locs)/sizeof(relocInfo));
      <br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MacroAssembler _masm(&amp;buffer);
      <br>
      <br>
      Cleanup is fine.
      <br>
      <br>
      Thanks,
      <br>
      Vladimir
      <br>
      <br>
      On 10/15/13 4:14 AM, Albert Noll wrote:
      <br>
      <blockquote type="cite">Hi,
        <br>
        <br>
        could I have reviews for this small patch?
        <br>
        <br>
        Bug: <a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-8026478">https://bugs.openjdk.java.net/browse/JDK-8026478</a>
        <br>
        webrev: <a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~anoll/8026478/webrev.00/">http://cr.openjdk.java.net/~anoll/8026478/webrev.00/</a>
        <br>
        <a class="moz-txt-link-rfc2396E" href="http://cr.openjdk.java.net/%7Eanoll/8026478/webrev.00/">&lt;http://cr.openjdk.java.net/%7Eanoll/8026478/webrev.00/&gt;</a>
        <br>
        <br>
        Problem: This flag is broken. The reason is that adapters
        <br>
        (gen_i2c_adapter()) that are generated during VM startup do not
        include
        <br>
        the range for StubRoutines::code2() if -XX:+VerifyAdapterCalls
        is
        <br>
        specified. StubRoutines::code2() is only allocated later during
        startup;
        <br>
        consequently, code2() is NULL. As a result, the size of the
        generated
        <br>
        adapter as well as the code itself does not mactch.
        <br>
        <br>
        Solution: Defer check (VerifyAdapterSharing) until VM is
        initialzied.
        <br>
        Note that this patch also fixes potential issues with
        <br>
        -XX:+VerifyAdapterCalls, which is a dignostic flag. The patch
        also
        <br>
        removes some unused field of VerifyAdapterSharing.
        <br>
        <br>
        <br>
        Many thanks in advance,
        <br>
        Albert
        <br>
        **
        <br>
      </blockquote>
    </blockquote>
    <br>
  </body>
</html>