arm | arm (thumb2) | mips | power pc | sh4 | sparc | x86 | x86-64 | |
---|---|---|---|---|---|---|---|---|
Chakra (Microsoft) | N/A (Microsoft says supprot, but their platform uses thumb2) | Yes (Windows RT / Windows Phone 8) | No | No | No | No | Yes | Yes |
JSC (Apple/WebKit) | Yes | Yes (Apple A6 - armv7s) | Yes | No (But Nintendo has port for WiiU) | Yes | No | Yes | Yes (Unix ABI only) |
SpiderMonkey (Mozilla) | Yes | No | Limited (JaegerMonkey only) | No (But TenFourFox team has port for JaegerMonkey) | No | Limited (JaegerMonkey only) | Yes | Yes |
V8 (Google) | Yes | No | Yes | No | Yes | No | Yes | Yes |
以下注意点。
- Chakraはarmサポートと言ってるけど、彼らのプラットフォームではARMv7 + thumb2のみ。おそらくそれ以前のCPUはアンサポート
- JSCはアセンブラ層のポートで行けるから様々なプラットフォームでJITが使える。ただしWin64 ABIはサポートしていない
- mipsとsh4は各CPUベンダが実装してる
- Windows RTとWindows Phone 8はThumb2を要求するけど、そもそもWindows Store AppやWindows Phone Appは、mmap/VirualAlloc系の特定ページを実行可能にするAPIを利用できないため、JITを実装することはできない
2012年の一番クレージーな実装はLow Level Interpreterってアイデア出してきたAppleだね。あんなアイデアが突然コミットされるんじゃ、OperaがJSC採用しないのもわかるよ。