Port-vax archive

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

Re: New Vax - future directions :-)



> 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. :-)

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.

>> [...AND...]

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