It passes it off to the hardware (CPU) which runs the instructions.
It passes it off to the hardware (CPU) which runs the instructions.
See also: Jazelle DBX.
Hell, on modern x86 processors, many “native” instructions are actually a series of micro-ops for a mostly undocumented and mostly poorly understood microcode architecture that differs from the natively documented instruction set.
It’s turtles all the way down.
I don’t know how I feel about micro-ops being executed in hardware - I mostly agree, but also, microcode updates exist…
https://github.com/google/security-research/blob/master/pocs...
Tavis spells it out there pretty quickly:
“ The simplest instructions (add, sub, mov, etc) are all implemented in hardware. The more complicated instructions like rdrand, fpatan and cmpxchg are microcoded. You can think of them as a bit like calling into a library of functions written in that RISC-like code.”