<html>
    <head>
      <base href="https://bugs.webkit.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - DFG OSR exit value recovery may recover values beyond the bounds of the stack pointer."
   href="https://bugs.webkit.org/show_bug.cgi?id=176558">176558</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>DFG OSR exit value recovery may recover values beyond the bounds of the stack pointer.
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>WebKit
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>WebKit Nightly Build
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Unspecified
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Unspecified
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>Normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P2
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>JavaScriptCore
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>webkit-unassigned@lists.webkit.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>mark.lam@apple.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>This means that the recovered values may be trashed by interrupts.  I discovered this when working on <a class="bz_bug_link 
          bz_status_ASSIGNED "
   title="ASSIGNED - Use JIT probes for DFG OSR exit."
   href="show_bug.cgi?id=175144">https://bugs.webkit.org/show_bug.cgi?id=175144</a>, using the validation patch (<a href="https://bugs.webkit.org/attachment.cgi?id=319676">https://bugs.webkit.org/attachment.cgi?id=319676</a>) that compares the recovered stack and registers using the jit based OSR exits vs the probe based OSR exits.  The recovered values beyond the sp manifested as differences in my test (which is what drew my attention to them).  This feels like either:
1. the sp was not set correctly, or
2. we have no need to recovering those values.

However, I modified the test code to write 0xbadbeef0 into the recovered stack values that reside beyond sp, and found that this did not result in any crash or test failure (on Octane's pdfjs).  That suggests that those values are not needed.

Regardless, we should investigate why this is happening.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>