Viewing a single comment thread. View all comments

gurenkagurenda t1_ix34gl0 wrote

Yeah, the original post is a great read, but this digest is so confused. What’s actually going on is that there’s a rarely used behavior in x86 dating back from the 8080. Rosetta 2 needs to support it for the rare cases, and it does so by having undocumented hardware emulation for the feature in the M1.

The clever bit is that the extension that does that emulation is undocumented, so once Rosetta 2 is deprecated, Apple Silicon can finally cast off this decades old backwards compatibility cruft.

Edit: to clarify, it’s actually two features, but the situation with each is virtually identical; some stuff you don’t care about gets calculated as a side effect of every add/subtract/compare.

51

irkli t1_ix5pl2n wrote

Ahhh ... A dim memory fog rises... Yeah as an assembly programmer (from minicomputer days through x286) there was an issue with the flags, x86 to x80, I can recall and won't look up.

PUSH PSW

Pushed the accumulator (A, 8 bits) and program status word (flags like carry, etc) at once and there were side effects too boring to recall. Ugh glad the good old days are gone who needs that shit!

5