top | item 46377419

(no title)

jezek2 | 2 months ago

You can do it with HW accelerated emulation like Apple did with M1 CPUs. They implemented x86 compatible behavior in HW so the emulation has very good performance.

Another approach was Transmeta where the target ISA was microcoded, therefore done in "software".

discuss

order

BlueToth|2 months ago

They said that they implemented x86 ISA memory handling instructions, that substantially sped up the emulation. I don't remember exactly which now, but they explained this all in a WWDC video about the emulation.

als0|2 months ago

Not instructions per se. Rosetta is a software based binary translator, and one of the most intensive parts about translating x86 to ARM is having to make sure all load/store instructions are strictly well ordered. To alleviate this pressure, Apple implemented the Total Store Ordering (TSO) feature in hardware, which makes sure that all ARM load and store instructions (transparently) follow the same memory ordering rules as x86.

izacus|2 months ago

Apple didn't implement x86 ISA in hardware, they have a few instructions that change memory behaviour to make emulation faster.