add stack save/restore