All VAX: Fix value check on SIIR.

Only the low 4 bits of the value are interesting and the value 0 in not
valid.  Never generate a Reserved Operand Fault. EVKAE detected this
problem.
This commit is contained in:
Mark Pizzolato 2016-06-21 16:32:50 -07:00
parent 953683c115
commit 3f27267102

View file

@ -1507,9 +1507,9 @@ switch (prn) { /* case on reg # */
break;
case MT_SIRR: /* SIRR */
if ((val > 0xF) || (val == 0))
RSVD_OPND_FAULT;
SISR = SISR | (1 << val); /* set bit in SISR */
val = val & 0xF; /* consider only 4b */
if (val != 0) /* if not zero */
SISR = SISR | (1 << val); /* set bit in SISR */
break;
case MT_SISR: /* SISR */