Why does gcc produce an unnecessary `nop' instruction?

PRC panruochen@gmail.com
Fri Jan 25 22:55:00 GMT 2008


I look at the `objdump'ed assembly file again and I find that all functions
start at the address which is 8-byte aligned. 
Is there a particular good reason for 8-byte alignment, even if the target ARCH
is 32-bit rather than 64-bit and aligment is quite a little waste of storage and 
runtime memory?

>It's probably caused by requested alignment of the next function.
>Note that nop is just the value 0.
>
>To see whether gcc is actually generating the nop, use the
>--save-temps option when you compile, and look at the .s file.  If you
>don't see the nop there, it's coming from something other than gcc.
>
>Ian



More information about the Gcc-help mailing list