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