I need some help understanding why GCC is doing
main:
pushl %ebp
movl %esp, %ebp
andl $-16, %esp # ???
subl $48, %esp # ???
movl $8, 16(%esp)
movl $4, 20(%esp)
Why does it first subtract 16 and then subtract 48 again? Wouldn't it be easier to do subl $64, %esp
?