<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2016-02-05 21:35 GMT+01:00 Serhiy Storchaka <span dir="ltr"><<a href="mailto:storchaka@gmail.com" target="_blank">storchaka@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">LGTM. I did have the same idea when added specialized 8-bit opcodes.<br>
<br>
Some optimization (like constant folding) it is worth to move yet one step earlier, to AST.<br></blockquote><div><br></div><div>In fact. In WPython I moved all constant folding to the ASDL.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Other idea - instead of EXTENDED_ARG have two sets of instructions: short 16-bit with 8-bit arg, and long 32-bit with 24-bit arg. For simplicity initially only long instructions are emitted (if it makes sense).</blockquote><div></div></div></div><div class="gmail_extra"><br></div><div class="gmail_extra">Don't do it with all instructions, but only with the jump ones, which are the only susceptible of such changes. In all other cases you already know the size of the argument, which will not change.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Regards,</div><div class="gmail_extra">Cesare</div></div>