logoalt Hacker News

defmacr0today at 8:10 AM2 repliesview on HN

I would be surprised if modern CPUs didn't decode "xor eax, eax" into a set of micro-ops that simply moves from an externally invisible dedicated 0 register. These days the x86 ISA is more of an API contract than an actual representation of what the hardware internals do.


Replies

defrosttoday at 8:35 AM

From TFA:

  The predominance of these idioms as a way to zero out a register led Intel to add special xor r, r-detection and sub r, r-detection in the instruction decoding front-end and rename the destination to an internal zero register, bypassing the execution of the instruction entirely. You can imagine that the instruction, in some sense, “takes zero cycles to execute”.
show 1 reply
brigadetoday at 8:17 AM

Zero micro ops to be precise, that’s handled entirely at the register rename stage with no data movement.