<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div><div style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); ">NT/amd64 & likely all NT architectures except x86: The pdata gives function boundaries and the xdata provides information to restore nonvolatile registers, including rsp and return address. Locals may be enregistered across function calls in nonvolatile registers. </div><div style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); "><br></div><div style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); "><br></div><div style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); ">There is no linked list.</div>There is a reliable stack walker including restoring nonvolatile registers provided by ther operating system (RtlUnwind, RtlVirtualUnwind).</div><div><br></div><div><br> - Jay</div><div><br>On Jul 19, 2015, at 5:02 AM, Elmar Stellnberger <<a href="mailto:estellnb@elstel.org">estellnb@elstel.org</a>> wrote:<br><br></div><blockquote type="cite"><div>
  
    <meta content="text/html; charset=windows-1252" http-equiv="Content-Type">
  
  
    <br>
    <div class="moz-cite-prefix">Am 2015-07-19 um 12:19 schrieb Jay K:<br>
    </div>
    <blockquote cite="mid:COL130-W98F71B1447317E3FAF027E6860@phx.gbl" type="cite">
      <style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style>
      <div dir="ltr">
        <div>And all the other NT platforms are faster.</div>
      </div>
    </blockquote>
    <blockquote cite="mid:COL130-W98F71B1447317E3FAF027E6860@phx.gbl" type="cite">
      <div dir="ltr">
        <div>They don't link/unlink anything.</div>
        <div>They have metadata describing prologs.</div>
        <div>The runtime can use that to restore nonvolatile registers
          (including</div>
        <div>the stack) at any point.</div>
      </div>
    </blockquote>
    <br>
    including NT-AMD64 or not? - <br>
    but PowerPC, MIPS, Alpha, Itanium and ARM?<br>
    <br>
    interesting. What happens if I have a variable being kept in a
    register<br>
    like register int x? These registers would still need to be saved as
    <br>
    a prolog could never tell us (i.e. we would then again need a linked
    <br>
    list) ...<br>
    <br>
    ... and then if we have prologues we would not need to pin down<br>
    any word that could refer as a refany to the traced heap in our <br>
    locales area but only those which really do (The question is of<br>
    course what data is in these prologues and what data is not.).<br>
    <br>
    <br>
    <br>
  

</div></blockquote></body></html>