[Info-vax] How much of VMS is still in MACRO-32?
Michael Moroney
moroney at world.std.spaamtrap.com
Mon May 31 02:15:47 EDT 2021
On 5/30/2021 4:02 PM, John Dallman wrote:
> In article <s90gqj$1b30$1 at gioia.aioe.org>, arne 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.
>
"Macro-32" is a bit misleading. The Macro compiler accepts a weird
mishmash of (32 bit) VAX instructions as well as (64 bit) pseudo-Alpha
instructions, the EVAX_xxx ones. The registers are mostly the 64 bit
Alpha registers. VAX instructions all follow rules for setting the upper
32 register bits, but are not restricted to VAX registers (ADDL3
R22,R19,R28 is perfectly acceptable). Funky things happen when
referring to AP, FP etc.
In many cases changes from 32 bit to 64 bit are necessary. The PTEs John
mentioned are a fine example. In that case the 32 bit VAX MOVL
instructions need to be changed to 64 bit EVAX_xxx.
"It would be nice" to convert the MACRO-32 modules to something else as
they need modification, but things like deadlines make it so that
usually the smaller changes (like MOVL-->EVAX_xxx) is easier and faster.
More information about the Info-vax
mailing list