This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

x86_64


Are there any good resources for learning about gcc's x86_64 assembly output? When I run `gcc -S a.c` for a simple test C program like the one below, I can completely understand the resulting go.s on a 32-bit x86, but as soon as I run that on a 64-bit machine, I'm lost. I know what the instructions are (i.e. I know how to use the AMD manuals), but I'd like to learn about gcc's assembly output: the exact new calling conventions (registers seem to be more liberally used over the stack now even without opt), all these .LFB/.LCFI/.LFE/.Lframe/.LSCIE/.LSFDE/.LASFDE/... labels, and so on. Thanks in advance for any guidance.

void foo(int a, int b, int c) { char xs[5]; char ys[10]; }
int main() { foo(1,2,3); return 0; }

--
Yang Zhang
http://www.mit.edu/~y_z/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]