http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48727
--- Comment #5 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> 2011-07-07 13:04:18 UTC --- > --- Comment #4 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2011-07-06 > 19:15:49 UTC --- >> This also fails on 32-bit Solaris/SPARC with Sun as, which has: >> >> sethi %hi(_ZN1S5xyzzyEv), %g1 >> jmp %g1 + %lo(_ZN1S5xyzzyEv) >> sethi %hi(_ZN1S5xyzzyEv), %g1 >> jmp %g1 + %lo(_ZN1S5xyzzyEv) >> >> On the other hand, both 64-bit with Sun as and 32-bit with gas have >> >> call _ZN1S5xyzzyEv, 0 >> call _ZN1S5xyzzyEv, 0 > > This is OK, these are the 2 forms of a direct tail call on the SPARC: > sethi/jmp > or call, depending on the capability of the assembler (HAVE_AS_RELAX_OPTION). Then it's probably best to only look for (jmp|call)[^\n]*xyzzy on SPARC, and ignore the sethi, so the count still matches? Or, perhaps safer: (sethi[^\n]*xyzzy[^\n]*\n)?[^\n]*(jmp|call)[^\n]*xyzzy Rainer