Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!yetti!geac!daveb From: daveb@geac.UUCP (Brown) Newsgroups: comp.arch Subject: Re: *Why* do modern machines mostly hav Message-ID: <1155@geac.UUCP> Date: Mon, 17-Aug-87 08:06:03 EDT Article-I.D.: geac.1155 Posted: Mon Aug 17 08:06:03 1987 Date-Received: Tue, 18-Aug-87 01:43:09 EDT References: <2807@phri.UUCP> <101200004@datacube> <1332@killer.UUCP> <8974@beta.UUCP> <25740@sun.uucp> Reply-To: daveb@geac.UUCP (Dave Collier-Brown) Organization: The little blue rock next to that twinkly star. Lines: 19 In article <25740@sun.uucp> guy%gorodish@Sun.COM (Guy Harris) writes: >> This is also the classic C example of a normal (int, float, etc) pointer >> at 18-bits being shorter than a 'char *' at 36 bits. >In other words, an array of 10 "int *"s would require 5 words, not 10, and an >"int **" would require at least 19 bits... > ... I'd be surprised if this was the case in any DEC-10 or >DEC-20 C implementation. I'm not sure about the DEC-10, but the Honeywell 36-bit machines used the high half (the CAR) of the word as a pointer-to-word, and any bit/byte addressing info was in the high end of the lower half. The C (and late-model B!) compilers therefore had an addressing scheme that was guaranteed to fit in whole-words, even if the pointers were to bits... :-). -- David Collier-Brown. | Computer Science Geac Computers International Inc., | loses its memory 350 Steelcase Road,Markham, Ontario, | (if not its mind) CANADA, L3R 1B3 (416) 475-0525 x3279 | every 6 months.