[Info-vax] Hard links on VMS ODS5 disks

Arne Vajhøj arne at vajhoej.dk
Sun Jul 23 19:31:41 EDT 2023


On 7/23/2023 6:03 PM, John Dallman wrote:
> In article <e9738d50-3a9d-489e-b59b-c472eadaf618n at googlegroups.com>,
> xyzzy1959 at gmail.com (John Reagan) wrote:
> 
>> The real ugly Macro-32 sources include LAD driver and the shadow
>> driver.
> 
> I've been reading the Macro compiler manual. I have never done any VAX
> assembler, but I've done a lot on other platforms, and reported a lot of
> compiler bugs on IA-64, x86-64, and ARM64.
> 
> It looks to me as if cross-compiling Macro-32 isn't so hard if you just
> want it to run, but making it run /fast/ on x86-64 was probably hard.
> There aren't quite enough registers to map the VAX registers 1:1 and
> putting them in memory makes for fun with calling conventions, caching
> and so on.

The Macro-32 compiler supposedly does some optimization.

<quote>
$ help macro /opt

MACRO

   /OPTIMIZE

         /OPTIMIZE[=(option[,...])]
         /NOOPTIMIZE

      Enables or disables optimization options. All options are enabled
      by default except VAXREGS.

      The options are:

      Option         Description

      [NO]PEEPHOLE   Peephole optimization
      [NO]SCHEDULE   Code scheduling
      [NO]ADDRESSES  Common base address loading
      [NO]REFERENCES Common data referencing
      ALL            All optimizations
</quote>

But difficult to check the difference between /OPT and /NOOPT,
because for some unknown reason /LIST/MACH does not list the
generated code.

Anyway I am not so sure that the optimization is critical. My thinking
is that a typical piece of Macro-32 probably goes back to the VAX 780
days, the code must have performed acceptable back then or it would
have been changed, the VUPS.COM's seems to return around 750 on x86-64
PC's, so even if the optimized Macro-32 run at only 20% of max speed,
then the code will be approx. 150 times faster than on a VAX 780, which
is probably more than fine.

Arne







More information about the Info-vax mailing list