On 07/02/13 1:34 AM, Matt Thomas wrote:
On Feb 6, 2013, at 6:25 PM, Toby Thain wrote:Least-significant-bit instructions would have seemed useful at the time to implement a Pascal-ish *Boolean* (*not* a C "boolean" test - C hadn't dominated the semantics of everything yet).You are looking through a unix-tinted looking glass which is incorrect. Remember the VAX was designed to implement VMS and VMS uses the least significant bit to indicate success / failure on return status, and that is what the BLB[CS] instruction was designed for.
I'm specifically *not* looking through Unix tinted glasses (perhaps you missed the "not" in what I wrote) - Since as I said, such an instruction does not have the semantics of a C logical value (but could of course be generated by a C optimiser in other circumstances).
Without contradicting in any way your good point about convenient VMS APIs, the VAX instruction set and data types were certainly designed, also, with language translators/compilers in mind. ISA support for "single bit" operations does partly speak to that (as do, in more obvious ways, many other instructions).
--Toby