This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: MS/CW-style inline assembly for GCC


Richard Earnshaw wrote:
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.

yup. My experience of this kind of thing has been 1) use C for the control structure 2) use single asm inserts 3) allow the compiler to do register allocation and scheduling

The huge gob of image code that was posted is absolutely _not_ the
way to go.

[FYI, I was writing triangle rendering code and a SIMD library on a SIMD
machine,  I started off writing a big gob of code that was unmaintainable
-- write only code! Breaking it up made it more maintainable and faster.]

nathan

--
Nathan Sidwell    ::   http://www.codesourcery.com   ::     CodeSourcery LLC
nathan@codesourcery.com    ::     http://www.planetfall.pwp.blueyonder.co.uk



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]