I think there's some talking at cross purposes going on here, but there are
valid points on both sides.
It's certainly true that Unix assemblers have traditionally been very bare
bones with a standardized syntax. That's 'cuz we Unix geeks like to write
everything, including the kernel, in C, and our C compilers have traditionally
been designed to retarget to other platforms easily. So having very different
assembly formats for different platforms simply gets in the way of compiler
writers (and the rest of the tool chain, for that matter), without helping
system programmers very much.
Device drivers are frequently written entirely in C, even to the level of
frobbing device registers. Hell, even programmed I/O is often written in C.
I've done it, and gotten 90-95% of hand coded assembler performance (even
though my code had to do a bit more). That's not to denigrate Richard, merely
to point out that that's where we're coming from.
On the flip side, a lot of device drivers for PC hardware (in particular) has
been developed in x86 assembler using the Intel assembler. It's certainly
reasonable that these folks don't want to have to reinvent the wheel, and the
fact that I wrote a programmed I/O routine in C doesn't mean that everyone
else either wants to or can do so without losing gobs of performance.
It also seems pointless for everyone to write their own macro preprocessor and
translator from Intel to Unix syntax. Nor does it make much obvious sense to
write a whole new assembler from the ground up. Has anyone written a
translator between Intel format (including the macro processor) and gas
format?
-- Robert Krawitz <rlk@tiac.net> http://www.tiac.net/users/rlk/Tall Clubs International -- http://www.tall.org/ or 1-888-IM-TALL-2 Member of the League for Programming Freedom -- mail lpf@uunet.uu.net
"Linux doesn't dictate how I work, I dictate how Linux works." --Eric Crampton
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/