x86-64での可変長引数の扱いx86-64では整数・ポインタ・浮動小数点数の引数が一部レジスタで渡されるが、ふと可変長引数の場合はどうなるんだろうと思った。va_list[1];のような構造になっていて、va_start()で上記のメンバの値を適切にセットして、va_arg()で求められる型によってva_listを操作して値を取り出すようだ。レジスタで引数を渡しているのに、メモリ上にレジスタの値をダンプした上でこんな効率悪そうな処理をしないといけないのはもったいない...とつい思ってしまったが、Ruby動かすコストに比べたら全然たいしたことないよなあ。