<html>
    <head>
      <base href="https://bugs.webkit.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - FTL B3 should do binary snippets"
   href="https://bugs.webkit.org/show_bug.cgi?id=152668#c1">Comment # 1</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - FTL B3 should do binary snippets"
   href="https://bugs.webkit.org/show_bug.cgi?id=152668">bug 152668</a>
              from <span class="vcard"><a class="email" href="mailto:fpizlo&#64;apple.com" title="Filip Pizlo &lt;fpizlo&#64;apple.com&gt;"> <span class="fn">Filip Pizlo</span></a>
</span></b>
        <pre>My approach here will be to beef up B3 to the point where the FTL B3 binary snippet code generators don't have to do weird things with scratch registers and tag registers.

We can already use patchpoint constraints to force the tag registers to contain tag values.  We just would use ValueRep::reg(...).  This will actually do the Right Thing, since the tag values are already forced into registers.  So, this will probably just force B3 to use the JSC tag registers to hold the tag values.  Even if this doesn't quite happen and B3 emits some mov's to put the tag values into the tag registers, the ValueRep::reg() constraint will ensure that as far as the snippet knows, the tag registers will already have the tags and not anything else.

The scratch register is the only issue.  We currently have no way of requesting scratch registers from B3 patchpoints.  We should fix that!</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>