[Info-vax] Hard links on VMS ODS5 disks
Chris Townley
news at cct-net.co.uk
Sat Jul 22 19:16:38 EDT 2023
On 22/07/2023 21:57, John Reagan wrote:
> On Saturday, July 22, 2023 at 10:26:27 AM UTC-4, Arne Vajhøj wrote:
>> On 7/20/2023 8:49 AM, Simon Clubley wrote:
>>> I get the impression that you have had to spend a lot of effort to
>>> duplicate low-level behaviour in a way that simply isn't a concern
>>> with other operating systems due to the need, especially, to support
>>> Macro-32 and ensure that code written at this low-level, and which
>>> uses the various idioms as a result, continues to work.
>> I believe Macro-32 is a relative simple compiler. And when they got
>> that then they can compile the existing Macro-32 code.
>>
> Well, I just spit my wine out reading that.
>
> Simple? Try to deal with condition codes. Try to deal with routines
> that jump between each other. Try to make the stack "look like a VAX"
> on platforms that say otherwise. :)
>
> There are three main parts of the Macro compiler.
> -The parser (written in Macro-32) is 99% target independent.
> - The flow analyzer (written in C) looks for all those condition codes,
> loops, etc. It has some knowledge about the calling standard (how
> many arguments in registers, etc.)
> - The code generator that maps internal Macro operators that feel
> like "instructions". Opcodes, mem-operands, reg-operands, etc.
> Each of those had to be recoded to pick the correct x86 instruction.
> For x86, we call the LLVM MC interface to emit x86 instructions.
> The way LLVM enumerates the x86 opcodes and registers is a
> little funky and needed some abstractions we didn't need on Alpha
> or Itanium.
>
>
>> I believe that VSI is mostly reusing existing Macro-32 code
>> and writing new code in C.
>>
> Actually there was a good chunk of Macro-32 that was rewritten into
> C. We redid much of the memory management code for example. It
> needed to change to deal with the more complex page table structures
> on x86, etc. Decided to rewrite into C.
>
>
>>
>> It means that changing from 32 bit pointers to 64 bit pointers is
>> way easier in C than in Macro-32.
>>
>> But based on what we know about the port, then VSI has not changed
>> the VMS kernel from 32 bit pointers to 64 bit pointers (aka moving
>> everything from S0 and S1 to S2).
>>
>
> Actually lots more stuff is now in S2 space and several internal pointers
> were lengthened from 32-bits to 64-bits.
I was expecting some sort of answer like this. Shame we are not on a
modern forum - that would have got a 'like; from me!
--
Chris
More information about the Info-vax
mailing list