int f ( int x ) { int g ( int y ) { int h ( int z ) { return x + y + z; } return h (h (h (0))); } return g (g (0)); } |
statische Kette benutzen
h.37: pushl %ebp movl %esp,%ebp subl $24,%esp movl %ecx,-4(%ebp) movl -4(%ecx),%eax movl -4(%eax),%edx movl -8(%ecx),%eax movl (%eax),%eax addl (%edx),%eax addl 8(%ebp),%eax leave ret |
Kette verlängern
g.33: pushl %ebp movl %esp,%ebp subl $24,%esp movl %ecx,-4(%ebp) leal 8(%ebp),%eax movl %eax,-8(%ebp) addl $-12,%esp addl $-12,%esp addl $-12,%esp pushl $0 movl %ebp,%ecx call h.37 |