Port-vax archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Moving VAX into 21 century :-)



On Tue, 1 Oct 2019, Paul Koning wrote:

> > Moving out CALLS is a drastic decision. I considered CALLS personally as
> > a feature of VAX as we don't need to care too much about ABIs, CALLS
> > pretty much normalizes it among all users. The shortcoming of this is of
> > course some performance impact.. but I would be interested to see real
> > numbers (like kernel booting time) of redoing the work done by CALLS vs JSB.
> 
> I wonder if it would be possible to hand-code some tests comparing CALLS 
> with the equivalent JSB based call.  It wouldn't surprise me if the 
> difference were smaller than you might expect.  After all, CALLS (and 
> CALLG probably to a lesser extent) are everywhere, so VAX designers had 
> significant incentive to work on making those instructions go fast.

 Using CALLS (or CALLG) certainly helps getting code smaller and that does 
have positive performance implications as it reduces the cache footprint, 
which is always good.  Many RISC architectures struggle with long register 
save/restore sequences in function prologues and epilogues up to a point 
where various kinds of sequenced (i.e. not RISC really!) load- and 
store-multiple macro instructions have been added at one point in the 
evolution of some of those architectures.

 OTOH the use of the register save mask complicates things such as lazily 
resolved function calls in dynamic loading (the mechanism for which for 
the VAX/ELF implementation someone has mistakenly called PLT, even though 
the indirect GOT call design chosen corresponds precisely to MIPS SVR4 
lazy binding stubs, whereas with true PLT direct calls are used and 
control flows through PLT even once lazy resolution has already been made 
for a given call).

  Maciej


Home | Main Index | Thread Index | Old Index