Alter prologue code a bit to be more correct.  First decrement sp.  Save callee saved registers using *sp* as the base register.  Then set up fp.  From there on out, use fp to reference variables in the stack frame.