Message-Id: Date: Mon, 25 Mar 1996 10:12:42 +1200 From: Bill Currie To: djgpp AT delorie DOT com Subject: Re: Optimization causes error? On 23/3/96 9:54 pm, Fabian Nunez did thus say >>> > > > This happens because the -O3 option goes berserk, inlining everything > it can. Unfortunately the inline asm does not touch the labels you > provide, so if you call your asm routine more than once in your code > there is more than one copy of your asm routine in the asm file generated > (compile with -S to see it). The solution is to simply write your asm > function in a different source file to the one it is used in (maybe > asmstuff.cc). In this way the compiler cannot inline your asm (since it > ends up in a different .o file) and your problem is solved. > > (maybe this should be in the FAQ, it's kindof an annoying feature of GCC) Alternatively, use local labels, ie asm( " 1: decl %ecx jnz 1b" ); use b for backwards references and f for forward references. Bill