Rosetta 2 includes both ahead-of-time translation and run-time emulation. It can run x64 jit software for example.
The jit is run-time translation still - not run-time emulation.
That is literally how performant emulators work.
At that level though, emulation/translation/simulation is blurred.
Somewhat, they're really not exclusive. You could say Rosetta is an x86 emulator that uses AOT binary translation and JIT compilation.
Can you provide a definition that specifies the difference? The end result is identical: being able to run software compiled for foreign ISA.
It doesn't emulate a whole CPU and has the simulated CPU run the code.
It translates instructions directly to the different ISA.
So why does Microsoft go the translation route instead of emulation?
Rosetta 2 is running on an Apple chip which they’ve designed to have an X86 strong memory model mode. Microsoft has to run on off the shelf ARMv8 chips.