Deutsch English Français Italiano |
<vbfh6t$tpfa$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Brett <ggtgp@yahoo.com> Newsgroups: comp.arch Subject: Re: is Vax adressing sane today Date: Fri, 6 Sep 2024 18:21:17 -0000 (UTC) Organization: A noiseless patient Spider Lines: 71 Message-ID: <vbfh6t$tpfa$1@dont-email.me> References: <vbd6b9$g147$1@dont-email.me> <080a7c04f21384e0a4f2c842183768bd@www.novabbs.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Date: Fri, 06 Sep 2024 20:21:18 +0200 (CEST) Injection-Info: dont-email.me; posting-host="d0bdee15b136cee82fc25d403b815fae"; logging-data="976362"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+NDXGIByazQ6/4/yMGoa+m" User-Agent: NewsTap/5.5 (iPad) Cancel-Lock: sha1:Wmw0yglE5GE85R+Zoi9NaOTX/I8= sha1:xEwalE0PwDScTpUXD0Ailx5AkXI= Bytes: 3771 MitchAlsup1 <mitchalsup@aol.com> wrote: > On Thu, 5 Sep 2024 21:03:37 +0000, Brett wrote: > >> >> >> Is Vax addressing sane today? >> >> I am not talking indirect addressing, that is stupid. >> >> It has been determined from trusted sources that add from memory and add >> to memory as used in x86 are sane, and not much of a problem. >> >> But Vax allows all three arguments to be in memory with different >> pointers. > > With modern compiler technology 88% of instructions need only 1 > constant--thus VAX provides too many, along with providing address > modes that require sequential decoding. > > Most ISAs do not provide "enough" constants, VAX provides too many. > Where "enough" covers:: > > SLA R9,#1,R17 // this is 1 instruction > DIV R9,#24,R17 // ibid > FDIV R8,#3.14159265358928,R17 In C++ game code there are places where you are loading from two structures and storing into a third structure. Three offsets are needed and used. Most commonly you need two offsets as you are building a new structure from the old one. The example being building the polygon display lists structures from your source structures which contain X,Y,Z and R,G,B,A and weights, and other info. The benchmarks you are using are out of date, using arrays instead of structures. Arrays are rare in game code, it’s all structures. Not Fortran arrays, C++ structure spaghetti. >> Is this sane, just a natural progression if you allow memory operands? > > Having watching this in real time:: in 1970 we needed more/better > constants, then PDP-11 came around and we liked it, then at the end > of the decade VAX cam along and we loved it, only later recognizing > that it had fallen for the second system syndrome--becoming overly > complicated without benefit--the address space was definitely needed > the address modes no so much. > >> Packing three offsets in an instruction that can be decoded reasonably >> is a whole other problem… > > Realistically, modern compilers have advanced to the point where > anything more than 1` constant per instruction is overkill-- > harder to build and delivering no more performance. > >> Heads and tails encoding could actually do this reasonably, and the code >> density would be actually be better than most competitors. Heads and >> tails is not that easy, but it’s not x86 difficult. > > Another encoding scheme is segmenting the OpCode into 2 components > 1) goes to the function unit to convey the kind of calculation > to be performed, > 2) goes to the forwarding logic to convey how to route bits into > calculation. > > Some might consider the concatenation of both to the be OpCode > but that obscures what to do with when to do it. >