Fix stack alignment code.
Fix stack alignment code.

Previously we didn't take into account the space used by callee save
registers, and didn't correctly handle local stack usage. Both of these
are only known once the function has been compiled, so we need to handle
them in the prologue.

This is also better because we'll more often not have to adjust the
stack before calls, since we're already aligned if we don't put anything
extra on the stack.

orodley/naive,orodley/naive,orodley/naive,orodley/naive