As for correctness, all of these registers are call-clobbered, and so their contents are being invalidated anyway. True. I'd forgotten about that.