コンパイラは、 longadd() が 2つの long を引数に取ることを知っています。 で、引数は long にキャストされ、 引数は次のようにスタックにつまれます。
呼び出された longadd()も同様にスタックを解釈するのでうまくいくのです。