Don't clobber the frame pointer

Recently I diagnosed and fixed two frame pointer unwinding crashes in Go. The root causes were two flavors of the same problem: buggy assembly code clobbered a frame pointer. By "clobbered" I mean wrote over the value without saving & restoring it. One bug clobberd the frame pointer register. The other bug clobbered a frame pointer saved on the stack. This post explains the bugs, talks a bit about…