From 3f27267102d522fa5a49f6184e863551959da2c9 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Tue, 21 Jun 2016 16:32:50 -0700 Subject: [PATCH] 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. --- VAX/vax_cpu1.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/VAX/vax_cpu1.c b/VAX/vax_cpu1.c index bd68441b..87161efc 100644 --- a/VAX/vax_cpu1.c +++ b/VAX/vax_cpu1.c @@ -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 */