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:
parent
953683c115
commit
3f27267102
1 changed files with 3 additions and 3 deletions
|
@ -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 */
|
||||
|
|
Loading…
Add table
Reference in a new issue