Cleaning up save/restore semantics