This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: MS/CW-style inline assembly for GCC
On Fri, 2004-05-07 at 22:38, Paul Koning wrote:
> I think an asm statement with any semantics OTHER than "make this
> block of instructions appear in the binary exactly as written" is
> badly broken. (Yes, that's why the MIPS assembler is bogus --
> although there at least you can tell it ".set noreorder".)
>
I used to think that way myself, but these days I'm not so sure. Modern
processors perform abysmally if code is not correctly scheduled, and
there's no way that a programmer can tune their code for every variant
of a CPU on the market. Allowing the tools to reschedule the contents
of ASM blocks is potentially a major win.
It's true that there are cases where the ordering is subtly important,
but as you say, there are ways to avoid scheduling in those cases.
It's always dangerous to say "never"!
R.