Sujet : Re: Why I've Dropped In
De : cr88192 (at) *nospam* gmail.com (BGB)
Groupes : comp.archDate : 13. Jun 2025, 23:52:13
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <102ia31$3npob$1@dont-email.me>
References : 1 2 3 4 5 6 7 8
User-Agent : Mozilla Thunderbird
On 6/12/2025 10:00 AM, quadibloc wrote:
On Wed, 11 Jun 2025 17:05:13 +0000, Thomas Koenig wrote:
What is the use case for having base and index register and a
16-bit displacement?
The IBM System/360 had a base and index register and a 12-bit
displacement.
Most microprocessors have a base register and a 16-bit displacement.
Serious overkill...
For [Rb+Disp] with a 32-bit encoding, 9 or 10 is sufficient, if scaled by the element size, 12 otherwise.
For a 64-bit encoding, 33 bits seems like a good magic number.
Granted... I have a few Disp16 cases, but there are hard-wired to use the Global Pointer as the base register, and mostly for global variables. Where Disp10 or Disp12 can only reach some of the globals, but Disp16 can reach most of them.
But, can also note that these only cover certain type, as pretty much nothing else is common enough to see much benefit or to justify the encoding space cost.
So this lets my architecture be a superset of both of them. Great
selling point, and thus I didn't think too hard about whether it is
"needed", because an architecture that instead tries to only provide
genuinely necessary capabilities...
now forces programmers, used to other systems that were more generous in
one way or another, to change their habits!
That would presumably spoil sales or ruin the popularity of the ISA.
No.
Maxing out on features, or making off-balance design choices, doesn't make things better.
Though, seemingly RV64 is doing well in terms of popularity, despite being fairly limited and "kinda sucking" in its basic form.
Which I write, as I try to get my compiler to use RV64G FPU registers and generate "slightly less horrible" FPU code for plain RV64G, but now stuff is just sorta broken, so I am on a bug hunt...
Also, half tempting to consider tweaking BGBCC's version of the RV64 ABI to be like:
X10..X17: Arguments 1-8
F10..F17: Arguments 9-16
To, mostly, eliminate the use of stack arguments.
Note: Still not going to go over to the "Hard Float" ABI... (as I see it, the HF ABI is a worse option for my uses).
John Savard