I am looking into the startup code in Glibc for x86-64, and I am curious about the below two places which I highlighted in the screenshot directly.
Code: https://github.com/bminor/glibc/blob/master/sysdeps/x86_64/start.S
- Why do we need to store the so-called "garbage" on stack?
- Why do we just simply reset the registers r8 and rcx instead of passing the function pointers of .init and .fini to them?
