4 ms·
> Actually, some people do [write asm.js code by hand] Who?
by Sephr 11y ago
> Actually, some people do [write asm.js code by hand]
Who?
- TazeTSchnitzel 11y agoPeople wanting high performance. For example, Grant Galitz's IodineGBA had some portions in asm.js https://github.com/taisel/IodineGBA https://github.com/taisel/IodineGBA
- Sephr 11y agoNo, it doesn't. Where in IodineGBA do you see any hand-written asm.js code? Here's are some quotes from the author of that very library: "asm.js requires a style of coding only compilers can output. A person writing actual asm.js code by hand would need to be insane as asm.js code required style of coding is horribly disorganized"[1] "Unfortunately asm.js requires one giant array to put things on. No one in their right mind codes like that by hand."[2] 1: https://github.com/taisel/IodineGBA/issues/16#issuecomment-26540283 https://github.com/taisel/IodineGBA/issues/16#issuecomment-2... 2: https://github.com/taisel/IodineGBA/issues/16#issuecomment-26540283 https://github.com/taisel/IodineGBA/issues/16#issuecomment-2...
- TazeTSchnitzel 11y agoThat's from 2013. There have been more recent discussions.
- s-macke 11y agoI did for my emulator jor1k. Take a look: https://github.com/s-macke/jor1k/blob/master/js/worker/or1k/fastcpu.js https://github.com/s-macke/jor1k/blob/master/js/worker/or1k/... Handwritten asm.js code. Around 10 hours or porting time.
- Sephr 11y agoThat's quite an impressive implementation! I didn't realize hand-written asm.js could be that readable.
- s-macke 11y agoYes, more or less. Every operation must be written, that the type is obvious for the compiler. And you have one array, the heap with some special index rules. For example: (r[((ins >> 9) & 0x7C)>>2]|0 The >>2 and |0 is necessary.