[Info-vax] BASIC and AST routines
Simon Clubley
clubley at remove_me.eisner.decus.org-Earth.UFP
Wed Nov 24 13:26:44 EST 2021
On 2021-11-24, Dave Froble <davef at tsoft-inc.com> wrote:
> On 11/24/2021 8:31 AM, Simon Clubley wrote:
>>
>> Fine. So why are these architecture-specific registers passed to what
>> is essentially a callback function in a normal application program
>> and why do those registers need to be visible from that same callback
>> function ?
>>
>
> Steve Hoffman answered that question way back up-thread. I'll leave it as an
> exercise for you to go back and take a look.
>
Thank you David, I have found that posting.
So basically, I was right that the VMS abstraction layers are horribly
broken when it comes to ASTs even though the reason is a bit different
(and worse) than what I was expecting.
In other operating systems that have this functionality, this is either
handled by the compiler generating the appropriate code sequences after
the function is tagged by the programmer or is handled directly by the
underlying OS ABI _before_ calling the routine.
In either case, the saved registers are private to the OS ABI or compiler
and are _not_ visible to the user code.
But to directly push values into the call frame for the routine (and hence
directly visible to the routine) so they can be restored afterwards is just
horrible, horrible, horrible. I have never seen another OS handle this
problem in such an ugly way.
Simon.
--
Simon Clubley, clubley at remove_me.eisner.decus.org-Earth.UFP
Walking destinations on a map are further away than they appear.
More information about the Info-vax
mailing list