Also, everyone please stop eating up Apple's marketing bullshit and calling Rosetta 2 an "Ahead-of-Time Translator, Not An Emulator" as if it is some Fundamental Difference that Makes It Fast. It's a JIT emulator, with a cache, with opportunistic partial ahead of time warming.
-
-
The best Rosetta 2 can do here is just scan the executable ahead of time, and try to JIT everything it *guesses* it might need later ahead of time. It won't know until the app runs whether it guessed right. It's an emulator. A nice, well engineered emulator.
Show this thread -
(Alternately, if you subscribe to "emulators don't translate, they interpret", then qemu and Dolphin aren't emulators either)
Show this thread -
Wine Is Not an Emulator, but wine works under Rosetta 2, which is. Is Rosetta 2 statically translating Windows apps to macOS ARM? Obviously not :-) Is Rosetta 2 JITting Windows apps when run through Wine? Sure! Is it caching those translations? We don't know! Open question.
Show this thread
End of conversation
New conversation -
-
-
Wouldn't that depends on how the instruction set is defined? I'm pretty sure JVM AOTs exist. But so long as you have indirect branches that can go to things other than well-defined function starts, and only return to well-defined return points, well, good luck AOTing ROP :P
-
Yes, *if* the thing you're translating has been specifically designed with constraints and metadata to make it possible, then you can do it. That's, after all, what LLVM bitcode is. Also maybe you can truly AoT NaCL x86 binaries? Just a guess, that would be interesting.
- Show replies
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.