And switch to a register order that consistently prefers callee-save to caller-save. phire suggested putting rdi/rsi first, even though they're caller-save, to save code space; this is more conservative and I can do that later.