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