Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The main reason, M1/2 being incredibly fast. Is listed last.


I don’t think that’s the main reason. The article lists a few things that, I think the main reason is that they made several parts of the CPU behave identical to x86. The M1 and M2 chips:

- can be told to do total store ordering, just as x86 does

- have of a few status flags that x86 has, but regular arm doesn’t

- can be told to make the FPU behave exactly as the x86 FPU

It also helps that ARM has many more registers than x86. Because of that the emulator can map the x86 registers to ARM registers, and have registers to spare for use by the emulator.


None of those custom features are used in Linux/in VMs, and it's still fairly fast.


Perhaps if you’re comparing against Intel processors, but even on an Apple Silicon Mac, Rosetta 2 vs native versions of apps are no slouch.

20% overhead for a non-native executable is very commendable.


That isn't the main reason.

If Rosetta ran x86 code at 10% the speed of native nobody would be calling it fast.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: