Port-vax archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: New Vax - future directions :-)

Den 2021-07-05 kl. 22:52, skrev Mouse:
Yep, the distance, but not as a displacement.  Having a struct larger
than 2G?  Quite uncommon.
That's not the only use of displacement addressing mode.  I've seen it
used to refer to a run-time offset from a link-time constant address,
so that (for example)

	extern char foo[];
	    j = foo[i]

(with i in R0 and j in R1) turns into something like

	MOVB	foo(R0), R1

The major reason I'd want a 64-bit displacement at the moment is
orthogonality.  I see no immediate practical use for it, but I am not
at all sure there won't be one.  And the VAX is all about orthogonality
anyway. :-)
Well, there are lot of things that are not orthogonal anyway (ASHB? ADWCW?) so it ends up only being a stylistic thing, not a real problem.

However, at first blush, we don't have even one spare addressing mode,
much less the two I'd want, for that.

But, on looking over the list...I'd forgotten about the short-literal
modes.  Could VAX64 maybe steal two of the short-literal modes for
64-bit displacements?  I don't know the statistics for constants, but I
do suspect that the difference between 32 short-literal values and 64
short-literal values is well into the "diminishing returns" range.
Those are quite much used, and I would expect up to 63 even more in a 64-bit environment.

-- Ragge

In general, I think we're in furious agreement here.  But...

Well, c = a & b; is the most common, can cannot be reduced...
Can it not?  In my experience, in most such cases at least one of the
operands is a compile-time constant.

/~\ The ASCII				  Mouse
\ / Ribbon Campaign
  X  Against HTML		mouse%rodents-montreal.org@localhost
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B

Home | Main Index | Thread Index | Old Index