Why does fs/exec.c subtract sizeof(void*) from the bottom of the stack?