Cedric Roux-4 wrote: > > Jeffi Edward.J wrote: > > > > Hi, > > > > I have a doubt in embedded assembly code supported by GCC. > > > > Assume I have an inline function with some assembler statements > embedded > > using asm(). > > > > inline void fun() > > { > > asm("mfmsr %r3\n\t" > > "loop:\n\t" > > ... > > ... > > "bne loop\n\t" > > ...); > > } > > > > > > If I call the inline function from two functions within same > compilation > > unit, > > the label "loop" is present in both the functions. Since the label > has scope > > throughtout > > the compilation unit, the assembler gives redefinition error for > "loop". > > > > Is there any option to supply to compiler so that GCC generates > unique label > > for "loop" > > across funcion? Or is it a limitation in GCC? or is it unusual to > write asm > > statements > > inside inline function? > > > > Please clarify this. > > > > Thanks and regards, > > Jeffi > > > > use 0, 1, ... (local labels) > like in: > asm("mfmsr %r3\n\t" > "0:\n\t" > ... > ... > "bne 0b\n\t" > ...); > > See: http://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html > > Cédric. > > I checked and it solves the problem. Thanks a lot :) -- View this message in context: http://old.nabble.com/Assembler-statements-inside-inline-funntion-tp26789877p26791407.html Sent from the gcc - Help mailing list archive at Nabble.com.