Bug 885186 - Optimize x86/x64 register moves using xchg, xor swap, and push/pop. r=jandem