Unfortunately, you are duplicated work. This CPU miner supports VIA padlock: https://github.com/jgarzik/cpuminer
The main client does not need any CPU mining tweaks. In fact, we discuss from time-to-time how to hide / disable / remove CPU mining from the main bitcoin client.
Ah, nice, google didn't find that. BTW looking over the code it seems to suffer the IRQ bug I mentioned. I think we have to loop over the xsha256 opcode, until (e)SI register is at the end of the input. In case an interrupt happens, the instruction will finish somewhere midway through the computation and needs to be restarted with the esi/edi/ecx register value state it left.
the sha256 instruction will automaticlly restart after an interrupt much like any rep instruction. I am quite sure it is correct as is