On 29 Jan 2007, at 11:14, Nicholas Clark wrote:
You're forgetting the 2**24 variants of the NOOP instruction.
Beautiful symmetry :)
Although whether this is software is doubtful, and therefore the on-
topicness
here is doubtful too.
Oh, and I'm told that the fact that accessing the process mode bits
*isn't*
a protected instruction is mildly hateful, as without this, you
can't lie to
code about which CPU mode you're in. (If you can lie about the
mode, and all
instructions for the privileged mode are themselves protected, then
you
can run privilege code sandboxed in an unprivileged mode, and
decide just
what it really gets to do, without it having the faintest idea of
what's
going on.)
I didn't say it was flawless - just a really beautiful instruction
set :)
There were certainly bugs - like the fact that you couldn't reliably
restart a faulted LDM (load multiple) instruction that included the
base register in the list of registers to be loaded because you
couldn't tell whether that register had been overwritten at the time
of the fault. Made implementing virtual memory a bit of a pisser if I
remember correctly.
--
Andy Armstrong, hexten.net