<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">This seems interesting, I have a few questions:<br>
<br>
<br>
Has the ISA been finalized yet or is it still a work in progress?  Will<br>
there be a fixed number of registers?<br></blockquote><div><br></div><div>The design document has a high-level idea of the ISA, or rather of the AST we're thinking of going with:</div></div></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div class="gmail_extra"><div class="gmail_quote"><div><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_WebAssembly_design_blob_master_AstSemantics.md&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=Mfk2qtn1LTDThVkh6-oGglNfMADXfJdty4_bhmuhMHA&m=S9hnPp55f4qL9EabvHYUsADUjczw-30KSHz8_mivnMo&s=4Tnim0NE4rbTVlQUeRF70KZXe_27QVa3WsfpU7XQ7zA&e=">https://github.com/WebAssembly/design/blob/master/AstSemantics.md</a></div></div></div></blockquote><div class="gmail_extra"><div class="gmail_quote"><div>The final encoding isn't decided on, we're still missing experiments to figure out precise details.</div><div><br></div><div>We foresee having an infinite number of locals per function, but we plan to pre-color them so that locals whose lifetimes don't interfere can be merged. We can get clever and do this in an interesting order.</div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
How will the ISA be transformed to machine code?<br></blockquote><div><br></div><div>That's implementation dependent. Initially, a polyfill to JavaScript because that's what exists today. We'll also implement a reference interpreter to validate the spec. Each browser can do what it wants to have fast and secure native support.</div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Why do you want to develop a full backend as opposed to a simple LLVM<br>
IR translation pass that converts IR directly to WebAssembly?<br></blockquote><div><br></div><div>Because that's proven to have unfortunate shortcomings in both PNaCl and Emscripten. Doing a true backend has significant advantages including in amount of code needed, and in what e.g. ISel can do for us for legalization and clever instruction selection.</div></div></div></div>