4 ms·
I wonder if this ahead-of-time cross-compilation is a way of avoiding licensing issues? It seems like one cannot just make x86 CPU without Intel's agreement, b
by varispeed 6y ago
I wonder if this ahead-of-time cross-compilation is a way of avoiding licensing issues?
It seems like one cannot just make x86 CPU without Intel's agreement, but I couldn't find a source explaining this well. I also can't see why someone cannot do a clean room implementation of the instruction set. Some people wrote to me that it may be to do with patents on some instructions, but I wonder how valid such patents are if they describe an obvious way to do a certain thing (I have not seen the patents, so this is my speculation only).
- justincormack 6y agoI think its just that it works better for most applications, where you run them multiple times. JIT is going to be slower under emulation anyway. Also note that Rosetta uses the native libraries where available, so as soon as you call into say graphics libraries that is running native, not emulating. (I believe most of the relevant patents just expired; they don't emulate the vector instructions that are newer).
- deleted 6y ago[deleted]
- Tagbert 6y agoRosetta 2 is not emulating an Intel CPU. It recompiles the binary to ARM when you run the app for the first time. It also does on-the-fly compilation of JITed code, too. Actual emulation would be much slower.