
29 September 1997 – Subject To Change
xxiii
•
An UNPREDICTABLE result may acquire an arbitrary value subject to a few
constraints. Such a result may be an arbitrary function of the input operands or of
any state information that is accessible to the process in its current access mode.
UNPREDICTABLE results may be unchanged from their previous values.
Operations that produce UNPREDICTABLE results may also produce excep-
tions.
•
An occurrence specified as UNPREDICTABLE may happen or not based on an
arbitrary choice function. The choice function is subject to the same constraints
as are UNPREDICTABLE results and, in particular, must not constitute a secu-
rity hole.
Specifically, UNPREDICTABLE results must not depend upon, or be a function
of the contents of memory locations or registers that are inaccessible to the cur-
rent process in the current access mode.
Also, operations that may produce UNPREDICTABLE results must not:
–
Write or modify the contents of memory locations or registers to which the
current process in the current access mode does not have access.
–
Halt or hang the system or any of its components.
For example, a security hole would exist if some UNPREDICTABLE result
depended on the value of a register in another process, on the contents of processor
temporary registers left behind by some previously running process, or on a
sequence of actions of different processes.
Undefined
•
Operations specified as UNDEFINED may vary from moment to moment,
implementation to implementation, and instruction to instruction within imple-
mentations. The operation may vary in effect from nothing, to stopping system
operation.
•
UNDEFINED operations may halt the processor or cause it to lose information.
However, UNDEFINED operations must not cause the processor to hang, that is,
reach an unhalted state from which there is no transition to a normal state in
which the machine executes instructions. Only privileged software (that is, soft-
ware running in kernel mode) may trigger UNDEFINED operations.