LinuxでIntel2gas -gを使ってcpp→s→asmでできたコードを見てるのですが

void func(int a=0)は

add esp, -8
push dword 0
push dword 0
call func3_Fii
add esp, 16

void func2(int a=0, int b=0)は

add esp, -4
push dword 0
push dword 0
push dword 0
call func3_Fii
add esp, 16

と引数に使うスタックを4つにする理由はなんなんですか?
もっとたくさんにしてもコンパイラは8、12・・・て固定しようとするんですけど・・・。