The stack frame also holds local variables. It's not just a return address. If your function requires 3 local variables then each call requires 3 stack slots.