[Info-vax] How much of VMS is still in MACRO-32?
John Reagan
xyzzy1959 at gmail.com
Sun May 30 22:40:33 EDT 2021
On Sunday, May 30, 2021 at 4:04:00 PM UTC-4, John Dallman wrote:
> In article <s90gqj$1b30$1... at gioia.aioe.org>, ar... at vajhoej.dk (Arne Vajhøj)
> wrote:
> > Whatever changes necessary to support 64 bit was done 30 years ago
> > for Alpha.
> For the current 64-bit APIs, sure, but there are APIs that only take
> 32-bit addresses. Once I began to get to grips with the MACRO-32
> compilers, it became plausible that one reason why there aren't 64-bit
> versions of all APIs is that the interfaces are implemented in MACRO-32.
>
> John
All the Macro compilers (Alpha, Itanium, and x86) have 64-bit builtins beyond the
VAX instruction set. However, changing a field or argument involves touching every
single instruction that involves it as the size is part of the instruction.
As an example, PTEs on Alpha and Itanium have their interesting fields in the first
32-bits so they've been easily managed with Macro-32 code. On x86, there are flags
and fields in the upper 32-bits of the quadword. A MOVL #<1 at 53>,(R0) doesn't do
what you'd hoped it would
Widening arguments can be a little tricky, but all those string descriptors, itemlists, and
RMS data structures have 32-bit pointers in them. Yes, there are some 64-bit flavors
of itemlists and descriptors and even some RMS data structures (but even RAB64 didn't
widen ALL of the pointers) but switching involves touching lots of code again.
More information about the Info-vax
mailing list