In quite many instruction descriptions it says:
if d == 15 then UNPREDICTABLE;
What does this mean?
Can the instruction really work in some unexpected way in each such case or what?
I guess if I use a bit-reversing instruction on PC I should expect that the address
the processor jumps is hard to follow, but as such it's not UNPREDICTABLE.
It would be UNPREDICTABLE, however, if the next instruction can be fetched from an address
where the bits are only partially reversed.
I'm wondering, because every second instruction (or maybe more) seems to have that
'warning' in the description.
Thanks. I didn't know about the glossary. There seemed to be some other terms, that I've been wondering about, explained.
UNPREDICTABLE means truly unpredictable - it can be even implemented as UNDEFINED.
This I had ro read several times:
UNPREDICTABLE behavior must not perform any function that cannot be performed at the current or a lower level of privilege using instructions that are not UNPREDICTABLE
UNPREDICTABLE behavior must not perform any function that cannot be
performed at the current or a lower level of privilege using instructions
that are not UNPREDICTABLE
Does that essentially say, that UNPREDICTABLE behaviour must not violate the privilege restrictions?
Like, an UNPREDICTABLE instruction executed in user mode must not be able to set the machine into
SVC-mode, and such.
Yes that is what it is saying in effect.