#C言語でfoo(int x)をfoo(int x, ...)に変えるのってABI上位互換になるんだったっけ? x86_64だと前者は引数がレジスタ渡しになるけど、後者はva_initする必要上スタック渡しになったりするんかな?
#x86_64だとalが消費されるので互換じゃなくなるみたいですね>vararg
#For calls that may call functions that use varargs or stdargs (prototype-less
calls or calls to functions containing ellipsis (. . . ) in the declaration) %al is used
as hidden argument to specify the number of vector registers used.
##逆にalさえ消費すれば(1引数余計に積めば)、libffiとかmoshでもvarargな関数をamd64で呼べるんだろうか。。
#(今でもlibffiにvarargが無いのかは知らないけど)