VAX: Change BBC and BBS instructions to not be include the idle/halt testing

The MicroVAX II boot ROM has code uses one of these instructions with the
data being referenced somewhere in Qbus space.  This is not supposed to be
done according to the architecture specifications, but it must have worked on
real hardware.  In any case, as a consequence of this reference to I/O space,
these otherwise non-data modifying instructions can have side effects or
reference data which may change even in an instruction looping on itself.
Given that potential, such use isn't an infinite loop which would otherwise
inspire a drop back to scp.
This commit is contained in:
Mark Pizzolato 2015-12-10 15:54:25 -08:00
parent 54bec5c184
commit 283d2890fe

View file

@ -2422,7 +2422,7 @@ for ( ;; ) {
case BBS:
if (op_bb_n (opnd, acc)) { /* br if bit set */
BRANCHB (brdisp);
BRANCHB_ALWAYS (brdisp);
if (((PSL & PSL_IS) != 0) && /* on IS? */
(PSL_GETIPL (PSL) == 0x3) && /* at IPL 3? */
((cpu_idle_mask & VAX_IDLE_VMS) != 0)) /* running VMS? */
@ -2432,7 +2432,7 @@ for ( ;; ) {
case BBC:
if (!op_bb_n (opnd, acc)) /* br if bit clr */
BRANCHB (brdisp);
BRANCHB_ALWAYS (brdisp);
break;
case BBSS: case BBSSI: