Via came up with a nifty feature on their "Nehemiah" generation of the C3 CPU: the xstore instruction. If the 'rep' prefix is not present, the instruction stores 0/1/2/4/8 bytes of random data to a memory location. This xstore instruction forms the basis of this third patch, which adds support for the Via RNG to the newly-modular hw_random driver. Note that since xstore is a new instruction, GNU binutils does not support it. We must use gcc inline asm to hand-code the machine language instruction in hexidecimal. Eventually I will get around to patching GNU binutils to support xstore natively, but even then we won't want to force users to update their binutils to bleeding-edge-latest, I don't think... Review from x86 experts is especially appreciated here, as I am from an x86 expert myself.