Hacker News new | ask | show | jobs
by userbinator 3608 days ago
It's very rare that an instruction gets removed; the few instances that I can think of are XBTS/IBTS on the very first stepping of the 386, and the CMPXCHG on early 486s that occupied the same opcode briefly. Do any CPUs have this instruction?

It looks like the encoding of PCOMMIT (+66 0F AE/7) is basically the same as CLFLUSH except with a +66 prefix, so if a CPU doesn't know about PCOMMIT it'll probably try to execute it as a CLFLUSH with an ignored prefix.

But hopefully this "deprecated" information stays around, if for nothing other than "archaeological" purposes:

http://www.os2museum.com/wp/curious-instructions/

1 comments

Author here. The PCOMMIT encoding you mention produces an undefined opcode fault on all existing CPUs (written as #UD in the specs). Since no CPU has shipped supporting PCOMMIT, this gives us high confidence that no code containing PCOMMIT is currently in-use or it would be producing #UD faults. Since the need for PCOMMIT has gone away, that fact allowed us to remove the instruction before it created legacy code we'd be signed up to support forever.

I love your examples of other removals -- didn't know about those.