Remix.run Logo
adgjlsfhk1 4 days ago

pure decoder width isn't enough to tell you everything. X86 has some commonly used ridiculously compact instructions (e.g. lea) that would turn into 2-3 instructions on most other architectures.

ajross 4 days ago | parent | next [-]

The whole ModRM addressing encoding (to which LEA is basically a front end) is actually really compact, and compilers have gotten frightently good at exploiting it. Just look at the disassembly for some non-trivial code sometime and see what it's doing.

monocasa 3 days ago | parent | prev | next [-]

Additionally, stuff llike rmw instructions are really like at least three, maybe four or five risc instructions.

ack_complete 3 days ago | parent | prev | next [-]

Yes, but so does ARM. ld1 {v0.16b,v1.16b,v2.16b,v3.16b},x0,#64 loads 4 x 128-bit vector registers and post-increments a pointer register.

kimixa 4 days ago | parent | prev [-]

Also the op cache - if it hits that the decoder is completely skipped.