<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">On 22.01.2021 18:44, Paul Gofman wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:937810cd-ca31-c2b2-4a97-7c5c44c76c43@codeweavers.com">
      <blockquote type="cite" style="color: #007cff;">
        <pre class="moz-quote-pre" wrap="">What seems to be more interesting is xsaveopt, which I think could
make a difference. That would, however, need xsave are to be at
constant address. I've been thinking about storing it next to TEB, but
we can't do that as long as winsock is called on signal stack, so I
left experimenting with it for the future.

</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">xsavec also performs an optimization (doesn't save the xstate in initial
state),</pre>
    </blockquote>
    <p><br>
    </p>
    <p>As I said, xsave already does that optimization, there is no need
      for xsavec for that.<br>
    </p>
    <p><br>
    </p>
    <blockquote type="cite"
      cite="mid:937810cd-ca31-c2b2-4a97-7c5c44c76c43@codeweavers.com">
      <pre class="moz-quote-pre" wrap=""> and I think it should not depend on the save address</pre>
    </blockquote>
    <p><br>
    </p>
    <p>Constant save address is for a different optimization: xsaveopt
      does not need to store parts that didn't change since the last
      xrstor. It means that it would save a lot of sores in applications
      rarely using AVX that xsave/xsavec can't optimize.</p>
    <p><br>
    </p>
    <p>Jacek<br>
    </p>
  </body>
</html>