Interested parties can also look at how the Tamarin VM implements those bitwise opcodes natively.<p><a href="http://www.mozilla.org/projects/tamarin/" rel="nofollow">http://www.mozilla.org/projects/tamarin/</a><p>Flash opcodes into Nanojit IR:<p><a href="http://hg.mozilla.org/tamarin-central/raw-file/4eb9f961a087/nanojit/LIR.h" rel="nofollow">http://hg.mozilla.org/tamarin-central/raw-file/4eb9f961a087/...</a><p>Nanojit IR to native x86 translation tables?<p><a href="http://hg.mozilla.org/tamarin-central/raw-file/4eb9f961a087/nanojit/Nativei386.h" rel="nofollow">http://hg.mozilla.org/tamarin-central/raw-file/4eb9f961a087/...</a>
I don't do flash, but I was under the impression that there's some kind of compilation going on and ActionScript isn't just interpreted. How on earth does a modern compiler not optimise<p><pre><code> a / 64
</code></pre>
to<p><pre><code> a >> 6
</code></pre>
? I could understand it in a dynamically typed language, where a, and therefore the result, could be non-integer, but ActionScript seems to have static type declarations for variables.