Port-vax archive

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

Re: VAX RPB (Restart Parameter Block)

>> As for which bit is used, the blbc instruction always uses the
>> least-significant bit; if you need to test some other bit, you need
>> to use a different instruction (such as bbc, or cmpv plus an
>> ordinary conditional branch).
> That's crazy, isn't it?

No more so than instructions like DIVP or REMQUE.

> Never seen such an instruction on another architecture that just is
> testing the least significant bit.  Maybe that's useful for some
> shift operations, but I think there are better commands for this.

Take it up with thirty-something-years-ago DEC. :-)  I like the VAX,
but I don't pretend it's perfect, and I'm not going to play apologist
for the quirks of its instruction set.

I will say, though, that I find BLBC and BLBS useful often enough that
I don't think giving each one its own 1/253rd of the single-byte opcode
space was a bad choice...especially in view of all the other things
they did as much for.  There are a lot of single-byte instructions that
are probably used seldom enough, both in terms of "fraction of code
space" and "fraction of execution count", that they would likely have
better been put in two-byte opcode space.  (LDPCTX, SVPCTX, PROBER,
PROBEW, EDITPC, and all of the POLY* instructions come to mind; HALT
would qualify too, except that making 0x00 unexecutable by userland
brings enough value I don't mind in that case.)  Even as it is, there
are by my eyeball count five single-opcode instructions left

> So the mystery of that "enable bit" is cleared now.

Good.  That kind of resolution is always satisfying.

/~\ The ASCII                             Mouse
\ / Ribbon Campaign
 X  Against HTML                mouse%rodents-montreal.org@localhost
/ \ Email!           7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B

Home | Main Index | Thread Index | Old Index