No it doesn't. GCC copies inline assembly to the output verbatim (After doing things like constraint substitution). And GCC doesn't touch .S files, except for passing them through the preprocessor (Though the linker may perform relaxation later on some platforms).arabasso wrote:This really happens, when gcc tries to optimize inline assembly or files .S, "it more spoils" that optimizes the code.
If GCC is breaking your code, you are doing something wrong (OK, exception: Passing -ffast-math can cause some conformant floating point code to break. This is explicitly documented. You enable said optimization at your own risk; its not included in -O3)