Path: csiph.com!xmission!news.snarked.org!border2.nntp.dca1.giganews.com!nntp.giganews.com!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: robin51@dodo.com.au Newsgroups: comp.compilers Subject: Re: C compiler pointer management on DSPs Date: Fri, 28 Feb 2020 10:26:48 +1100 Organization: Compilers Central Lines: 27 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <20-02-025@comp.compilers> References: <19-09-003@comp.compilers> <19-09-004@comp.compilers> <19-09-006@comp.compilers> <19-09-007@comp.compilers> <19-09-009@comp.compilers> <19-09-015@comp.compilers> <19-09-017@comp.compilers> <19-09-018@comp.compilers> <20-02-024@comp.compilers> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="46377"; mail-complaints-to="abuse@iecc.com" Keywords: architecture Posted-Date: 27 Feb 2020 22:03:25 EST X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com In-Reply-To: <20-02-024@comp.compilers> Xref: csiph.com comp.compilers:2463 On 2020-02-28 09:23, gah4@u.washington.edu wrote: > Machines not so well designed require masking off the appropriate > bits before operating with them, though many machines ignore high > bits on shift operations. (The 8086 allows shifts up to 255 bits.) Who can say that the CDC machines (7600; 70 series, etc) were not well designed? They were intended to be fast, and to carry out operations on words (of 60 bits). To be sure, it was necessary to mask bits (usually characters), but there was a simple instruction(s) to generate a mask of n bits (better than loading a word containing bits to be used as a mask). On the other hand, the IBM S/360 was designed from the beginning to handle bytes of 8 bits, half-words of 16 bits, and words of 32 bits. Instructions could load and store a byte into/from the low-order bits of a register, without affecting the other bits. Later models could load/store one or more bytes into/from a register without affecting the other bits. For more general work, masking operations were available in the 32-bit registers.