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>