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:
parent
54bec5c184
commit
283d2890fe
1 changed files with 2 additions and 2 deletions
|
@ -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:
|
||||
|
|
Loading…
Add table
Reference in a new issue