[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