Hmm, I was actually about to edit my comment to say that <i>you</i> are right because usually you'll store the old stack pointer as the new base pointer.<p>I guess the answer is that realigning at runtime costs a register, but most code has to pay that cost anyway.