Date: Fri, 3 May 1996 18:35:12 +0200 (METDST) From: Alexander Lehmann To: Martynas Kunigelis Cc: DJGPP mailing list Subject: Re: register calling convention In-Reply-To: <199605031525.RAA20026@rs2.hrz.th-darmstadt.de> Message-Id: Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Hello all, On Fri, 3 May 1996, Martynas Kunigelis wrote: > > I would like to ask somebody with knowledge on this: does register calling > convention really *improve* the code speed??? I mean I spent a lot of time > trying to imlement it in DJGPP. I would dare to update the assembly parts > of DJGPP libc if we come to a conclusion that it is worth it. I'm not sure how the effect is on a 80x86 cpu, I have programmed a lot with m68k processors in the past (Atari ST), where register calling seems to improve the code quite a bit in some cases (there usually 3 data and 2 address registers are scratch registers and e.g. PureC uses these to pass the first parameters, which means that e.g. most libc functions do not pass parameters on the stack at all (except the ones with ..., of course)). However, due to less available registers and the cache memory used in newer processors, this may not have that much effect, in a way, the CPU cache acts as a register extension, since the bytes around the stack pointer fill always be in cache, I guess. In addition to the assembly parts, it probably also some of the functions supporting variable argument lists (e.g. printf) have to changed. Plus, it is necessary to have the appropriate header files included when accessing these functions with register calling, since otherwise parameters may get passed wrong. (Since most people probably use -Wall, at least on their own programs, this is will be warned about anyway). bye, Alexander -- Alexander Lehmann, | "On the Internet, alex AT hal DOT rhein-main DOT de (plain, MIME, NeXT) | nobody knows alexlehm AT rbg DOT informatik DOT th-darmstadt DOT de (plain) | you're a dog."