Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Feb 2003 17:07:00 -0500 (EST)
From:      Andrew Gallatin <gallatin@cs.duke.edu>
To:        Peter Jeremy <peter.jeremy@alcatel.com.au>
Cc:        alpha@FreeBSD.ORG
Subject:   Re: Open Watcom compiler
Message-ID:  <15945.29700.365499.788396@grasshopper.cs.duke.edu>
In-Reply-To: <20030211214435.GI1877@gsmx07.alcatel.com.au>
References:  <20030211003353.GA12187@athlon.pn.xcllnt.net> <15945.1278.292937.743702@grasshopper.cs.duke.edu> <20030211192217.GD2881@dhcp01.pn.xcllnt.net> <20030211214435.GI1877@gsmx07.alcatel.com.au>

next in thread | previous in thread | raw e-mail | index | archive | help

Peter Jeremy writes:
 > On 2003-Feb-11 11:22:17 -0800, Marcel Moolenaar <marcel@xcllnt.net> wrote:
 > >On Tue, Feb 11, 2003 at 09:13:18AM -0500, Andrew Gallatin wrote:
 > >> 
 > >>  > Am I right when I say that Compaq's compiler cannot be used to
 > >>  > compile the kernel?
 > >> 
 > >> Yes.  This is mainly due to lazyness on our part.  The Compaq compiler
 > >> does not support gcc asm syntanx, so making it compile the kernel
 > >> would largely be a matter of converting inline asm (as well as
 > >> stepping over other hurdles common to non-gnu compilers).
 > >
 > >Ok. This mostly applies to OW as well I guess. It's also not specific
 > >to alpha, so it would be nice if we could come up with a good way to
 > >replace and avoid inline assembly in general without negative side-
 > >effects like duplication, performance hits and the likes...
 > 
 > Note that Andrew said "convert" not "replace and avoid".  The Compaq
 > compiler _does_ support inline assembler, it just has to be explicitly
 > enabled and uses a different syntax.  asm() needs to be treated more
 > like a function call - the arguments are found in the standard
 > function arg registers (%aX) and it returns %v0.  I don't know if
 > CCC treats these as virtual registers that it can re-write to better
 > suit data flow or as hard-coded registers.
 > 
 > The gcc inline syntax is definitely more powerful but unless we have
 > inlines that return multiple values, we can probably write alternative
 > inlines in CCC syntax.  (Of course this will generate lots of compiler-
 > dependent #if/#else/#endif code).
 > 

If somebody is interested in doing the work, the ccc compiler contains
a reasonable explanation of how its asm syntax works in the file 
c_asm.h

Drew

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?15945.29700.365499.788396>