Ich würde mir auch erst einmal den von gcc generierten Code ansehen. Z.B. mit objdump. Wie viele Zyklen braucht der und wie viele der selbstgeschriebene Assemblercode?
Die Aussage "zeitkritischen Code muss man in Assembler schreiben" galt vielleicht früher. Bei EmuTOS haben wir die Erfahrung gemacht, dass man -- manchmal mit etwas Überredung, wie von
@mfro formuliert -- auch ziemlich performanten Code in C schreiben kann.
PS: Da dieses Forum mich nicht reinlässt, wenn ich das Hotel-WLAN nutze, bin ich nur sporadisch hier online. Bitte m Nachsicht bei Rückfragen.