<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 - jsc-tailcall: JavaScript functions should restore the stack pointer after a call"
   href="https://bugs.webkit.org/show_bug.cgi?id=146846">146846</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>jsc-tailcall: JavaScript functions should restore the stack pointer after a call
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr>

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

        <tr>
          <th>Version</th>
          <td>528+ (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&#64;lists.webkit.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>basile_clement&#64;apple.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>fpizlo&#64;apple.com, ggaren&#64;apple.com, mark.lam&#64;apple.com, msaboff&#64;apple.com
          </td>
        </tr>

        <tr>
          <th>Blocks</th>
          <td>146477
          </td>
        </tr></table>
      <p>
        <div>
        <pre>The LLint and baseline JIT are already doing this, we statically know the stack size in the DFG, and we can get it from the LLVM stackmap in FTL code - so this should be an easy change.

Once <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - jsc-tailcall: LLint, Baseline JIT and DFG should respect the platform's callee-save register conventions"
   href="show_bug.cgi?id=146845">https://bugs.webkit.org/show_bug.cgi?id=146845</a> is taken care of as well, this will allow us to:

 1) Get rid of the arity fixup return thunk (since the caller now knows where the stack pointer should be as an offset of its base pointer)

 2) Actually implement tail calls since they can shrink or extend the stack in unpredictable ways.</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>