Hi, I am compiling relatively simple C programs using "gcc -S -fomit-frame-pointer -mcpu=xscale" on a gumstix (ARM Xscale) processor. I noticed that the generated assembly code has additional stuff in, beyond what I would typically see in a standard ARM assembly program (e.g., one that was generated instead through the ARM Development Suite toolchain). For instance, I see the following comments in the GNU-generated assembly code. What do these signify? @ zero_extendqisi2 @ args =0, pretend =0 (what does pretend mean?) @ frame_needed = 0, uses_anonymous_args = 0 (what does uses_anonymous_args mean?) Secondly, I notice that without the "-O" option, saving registers to the stack happens almost on every alternate line of the generated assembly code. What is the purpose of doing this? Is there a way of turning this feature off, without resorting to the "-O" option? Finally, is there any documentation on what "-O" actually accomplishes for an ARM/Xscale processor? For instance, does it use the barrel shifter or conditional execution wherever possible? Does it optimize for space, for time, or for both? Any answers or pointers would be very much appreciated. Best, Priya Priya Narasimhan, +1-412-268-8801 http://www.cs.cmu.edu/~priya