Today I released one of my many cpu emulator optmization ideas. Have a look:
Larry's Personal & Tech Ramblings
A while ago I realized you could do a similar trick for the paired registers in z80 and x86 (don't recall exactly which processor I was thinking of...): store the low register in the upper bits and the high register in the lower bits. When you need to treat it as a paired register, rotate it around to do the math. If you need them separate, just mask it off. I don't think I bothered to look to see if anyone was already doing that.