Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!lll-lcc!mordor!styx!ames!ucbcad!ucbvax!decvax!tektronix!uw-beaver!ubc-vision!alberta!bjorn From: bjorn@alberta.UUCP (Bjorn R. Bjornsson) Newsgroups: comp.arch,comp.sys.intel,comp.sys.m68k Subject: Re: byte order: be reasonable - do it my way... Message-ID: <183@pembina.alberta.UUCP> Date: Tue, 13-Jan-87 21:32:50 EST Article-I.D.: pembina.183 Posted: Tue Jan 13 21:32:50 1987 Date-Received: Wed, 14-Jan-87 23:31:43 EST References: <760@orcisi.UUCP> <1011@cuuxb.UUCP> <753@vaxb.calgary.UUCP> Organization: U. of Alberta, Edmonton, AB Lines: 39 Summary: Subset property of DEC data representation Xref: mnetor comp.arch:188 comp.sys.intel:101 comp.sys.m68k:110 In article <753@vaxb.calgary.UUCP>, radford@calgary.UUCP (Radford Neal) writes: > The two calls to 'proc' both deliver parameters for which *x is 'a' on a > little-endian machine, but they don't on a big-endian machine. The litte- > endian method thus allows a certain flexibility in typing that the > big-endian method doesn't. This is NOT just a notational matter. Yes, this is what I call a subset property. Of course Cohen because of his bias never bothered to document this in his supposed plea for peace. This property was exhibited by all the usual data types on a VAX until G and H format floating point came into general use. Cohen focused on the fact that PDP-11/VAX floating point data rep- resentations were not strictly little endian. He was right of course but I think that the subset property is worth mentioning. If you expect an F float by reference in a procedure, it's quite alright for the caller to pass you a D float, what gets lopped off is the least significant (substitute interesting for significant when talking about integers). This subset property is lost in a purely little endian machine, such as the *86 from Intel. What you get there is pure garbage if a caller isn't careful to pass what's expected. But then a language that provides a reasonable facsimile of IEEE floating point arithmetic on a VAX has to forego the subset property, sacrificing the equal width exponents of F and D, in favor of the greater exponent range of G format floating point for double precision implementation. So in the final analysis enter one more alternative into the holy war: The location invariant subset property. When my buss pass runs out, should I run out after it, should I pass, or just buzz? Bjorn R. Bjornsson alberta!bjorn