There's also a lot of specialized instructions like AES ones.
But the main thing that makes x86 CISC to me is not the actual instruction set, but the byte encoding, and the complexity there.
But the main thing that makes x86 CISC to me is not the actual instruction set, but the byte encoding, and the complexity there.
Edit: the very, very compressed TL;DR is that if you do only one memory load (or one memory load + store back into this exact location) per instruction, it scales fine. But the moment you start doing chained loads, with pre- and post-increments which are supposed to write back changed values into the memory and be visible, and you have several memory sources, and your memory model is actually "strong consistency", well, you're in a world of pain.