Skip to contentSkip to conversation

Why Plan 9 C compilers don't have asm("")

DISCUSSION Rick Hohensee 1 participant 1 message Jul 9, 2001

lore
Share & tools
lore
#0 lore raw
Quoted 9 lines

Victor Yodaiken <[email protected]>

I think anywhere that you have inner loop or often used operations that are short assembler sequences, inline asm is a win - it's easy to show for example, that the Linux asm x86 macro semaphore down is three times as fast as
a called version. I wish, however
that GCC did not use a horrible overly complex lisplike syntax and that there was a way to inline functions written in .S files.

If you can loop faster in asm, and you surely can on x86/Gcc in many cases, that's a win, and probably quite a worthwhile one, but that's independant of inline in terms of "not a C call". I think that distinction may be prone to being overlooked. The longer your average loop, the less asm("") matters, i.e. the less of a proportional hit a C stack ceremony is. You can loop in asm and still not need asm(""), if you pay for the stack frame. Plan 9 has about 4 string functions that are hand-coded, but they are C-called, from what I can tell, and have been told.

Rick Hohensee
www.clienux.com