Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uflorida!haven!vrdxhq!bms-at!stuart From: stuart@bms-at.UUCP (Stuart Gathman) Newsgroups: comp.arch Subject: Re: Bandwidth and RISC vs. CISC Summary: Ideal HLL for CISC processors: GCC, Turbo C Message-ID: <159@bms-at.UUCP> Date: 1 May 89 16:46:04 GMT References: <38853@bbn.COM> <423@bnr-fos.UUCP> <288@ctycal.UUCP> <3990@ficc.uu.net> Organization: Business Management Systems, Inc., Fairfax, VA Lines: 21 The GCC asm() interface gives an excellent interface to special CISC instructions. One can code any arbitrary assembler code with register and address substitutions for C variables, specify input, output, and scratch registers, and put it in a macro to disguise it as a function call (or put it in an inline function). Portability is maintained by proper design of the function interface, machines that don't have a similar instruction can use a real function. Turbo C has an inline assembler capability with similar features. It is geared specifically to '86 code, however. Instead of specifying the register environment in the asm, the compiler knows which instructions affect which registers. Automatic register & address substitution for C variables is available here also. With this capability, the only difference between custom inline CISC instructions and standard operators is syntactic. Using C++ can help that also. -- Stuart D. Gathman <..!{vrdxhq|daitc}!bms-at!stuart>