Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!shadooby!samsung!uunet!zephyr.ens.tek.com!orca!frip!andrew From: andrew@frip.WV.TEK.COM (Andrew Klossner) Newsgroups: comp.sys.m88k Subject: Re: Info about the 88open Consortium and standards Message-ID: <5352@orca.WV.TEK.COM> Date: 15 Nov 89 17:35:50 GMT References: <1948@psueea.UUCP> <1989Nov14.175806.23483@paris.ics.uci.edu> Sender: nobody@orca.WV.TEK.COM Reply-To: andrew@frip.wv.tek.com Organization: Tektronix, Wilsonville, Oregon Lines: 30 [] "(a) you are limited to passing at most 8 words worth of actual parameters in registers (which seems an unnecessary and artificial limit to me)" Yep. This covers 98%+ of procedure calls in real-world code. "(b) more significantly, there seems to have been a major departure from the common practice in the good ol' CICS days when callers could assume that almost all registers (except for the one which got the return value) were *preserved* across a "standard" call." Registers r14 and up are preserved. That's more registers than those good ol' CISC machines preserved. "It seems to me that (b) effectively ties the hands of many otherwise very sophisticated modern optimizers (with nice graph-coloring register allocators of course)." Not at all. If you have the global program view necessary to do graph-coloring (you are generating the code for all calls to the caller), then it's fairly obvious that you can generate any code you want, and need not conform to the standard interface. The OCS serves only to guide compilers/linkers in making procedure interfaces for callers that they do not control. -=- Andrew Klossner (uunet!tektronix!frip.WV.TEK!andrew) [UUCP] (andrew%frip.wv.tek.com@relay.cs.net) [ARPA]