Path: utzoo!attcan!uunet!samsung!uakari.primate.wisc.edu!crdgw1!crdos1!davidsen From: davidsen@crdos1.crd.ge.COM (Wm E Davidsen Jr) Newsgroups: comp.arch Subject: Re: MIPS, Compaq and Microsoft in bed - NYT story Message-ID: <3188@crdos1.crd.ge.COM> Date: 11 Feb 91 16:50:46 GMT References: <29920@usc> <45758@mips.mips.COM> Reply-To: davidsen@crdos1.crd.ge.com (bill davidsen) Organization: GE Corp R&D Center, Schenectady NY Lines: 43 In article <45758@mips.mips.COM> cprice@mips.COM (Charlie Price) writes: | The important aspect of a 64-bit machine is that the user | program virtual address space can be larger than 32 bits. | If you want a nice flat big linear space to play with as you | like, then you have to have big addresses. | If you have big addresses, presumably you want to be able to | manipulate them easily and that means same-sized registers | and integer operations. What you are saying is that there are lots of poorly written non-portable programs around which do bizarre non-portable things with addresses, on the theory that because the {vax,sun,32k} has a linear address space starting with zero, that "all that ANSI crap about pointers doesn't mean much." (quote from one of my C students). Since all you can portable do in C is add or subtract ints and pointers, or subtract pointers, you don't need the rest of the arithmetic, except to do vastly unportable things. Portable programs don't AND or XOR stuff into pointers, nor assume that their high or low bits are available for flags. And honestly, other languages which have pointers are not usually used to perform these atrocities. Other languages seem to be able to convince programmers that a pointer is not an int. I really can't accept your idea that the size of an int must be the same as the size of an address. I seem to remember a DG machine in which the pointers were 48 bits, and several machines where the pointers are not in the format of ordinal values of consecutively numbered bytes. These machines exist and run, C and all the other usual languages. There is no particular technical reason not to have, say, 48 bit addressing, with 32 bit ints. There may be marketing reasons, but that's another issue completely. I agree that 64 bit ints are useful in solving certain problems, I just don't buy the argument that useful work can't be done if the size of int isn't the size of a pointer. -- bill davidsen (davidsen@crdos1.crd.GE.COM -or- uunet!crdgw1!crdos1!davidsen) "I'll come home in one of two ways, the big parade or in a body bag. I prefer the former but I'll take the latter" -Sgt Marco Rodrigez Brought to you by Super Global Mega Corp .com