| Deutsch English Français Italiano |
|
<3631df2ad220d4ab6df0cd44e7f38f4e@www.novabbs.com> View for Bookmarking (what is this?) Look up another Usenet article |
Path: news.eternal-september.org!eternal-september.org!feeder3.eternal-september.org!i2pn.org!i2pn2.org!.POSTED!not-for-mail From: quadibloc <quadibloc@gmail.com> Newsgroups: comp.arch Subject: Re: Why I've Dropped In Date: Wed, 11 Jun 2025 19:37:03 +0000 Organization: novaBBS Message-ID: <3631df2ad220d4ab6df0cd44e7f38f4e@www.novabbs.com> References: <0c857b8347f07f3a0ca61c403d0a8711@www.novabbs.com> <dd6e28b90190e249289add75780b204a@www.novabbs.com> <ec821d1d64555055271e3b72f241d39b@www.novabbs.com> <8addb3f96901904511fc9350c43917ef@www.novabbs.com> <102b5qh$1q55a$2@dont-email.me> <48c03284118d9d68d6ecf3c11b64a76b@www.novabbs.com> <tkk2Q.1582911$%pKb.350221@fx14.iad> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: i2pn2.org; logging-data="96538"; mail-complaints-to="usenet@i2pn2.org"; posting-account="GSAUMsvIs05PgSAevbIzdWiOy1BcuThtiv166p5NnMk"; User-Agent: Rocksolid Light X-Spam-Checker-Version: SpamAssassin 4.0.0 X-Rslight-Posting-User: 7260c650ae4d5ba82d3b6b1eab0ac1b8653ff052 X-Rslight-Site: $2y$10$CiT.mC/pzWwaevpYCK1HeeM7G6qpSU/pCrdXmXWb6/nV1bb5Fo/1O On Wed, 11 Jun 2025 18:56:56 +0000, EricP wrote: > The problem is that there are 7 integer data types, > signed and unsigned (zero extended) 1, 2, 4 and 8 bytes, > and potentially 5 float, fp8, fp16, fp32, fp64, fp128. > There might also be special (non-ieee) float formats for AI support. > Plus one might also want some register pair operations > (eg load a complex fp32 value into a pair of fp registers, > store a pair of integer registers as a single (atomic) int128). Even I have refused to contend with all of this, at least for my basic 32-bit instruction set. Some exotic types that I do intend to support will just have to make do with 48-bit or longer instructions instead. But signed and unsigned integers aren't _quite_ the same as different types for load and store. I may have separate integer and floating registers, but I don't have separate signed and unsigned registers. Instead, I've followed the System/360. When it comes to load and store, for integers I have two additional operations - unsigned load and insert. But only for integers shorter than the register. Load sign extends. Unsigned Load zero extends. Insert leaves bits in the register preceding what is loaded untouched. Since arithmetic is two's complement, there is only one add instruction, and there is only one store instruction, for each length. If we were really dealing with different types, we would need additional instructions of those kinds as well. For floats, I deal with fp32, fp48, fp64, and fp128 only as the primary floating-point types. John Savard