1
0
mirror of https://github.com/open-simh/simh.git synced 2026-01-27 20:48:12 +00:00

VAX, VAX780: Added idle test for VMS 5.0/5.1 (Mark Pizzolato)

This commit is contained in:
Bob Supnik
2020-05-29 06:00:46 -07:00
committed by Mark Pizzolato
parent be1df57fa2
commit 0d319b9eff

View File

@@ -1,6 +1,6 @@
/* vax_cpu.c: VAX CPU
Copyright (c) 1998-2019, Robert M Supnik
Copyright (c) 1998-2020, Robert M Supnik
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
@@ -25,6 +25,7 @@
cpu VAX central processor
20-May-20 RMS Added idle test for VMS 5.0/5.1 (Mark Pizzolato)
23-Apr-19 RMS Added hook for unpredictable indexed immediate .aw
14-Apr-19 RMS Added hook for non-standard MxPR CC's
31-Mar-17 RMS Fixed uninitialized variable on FPD path (COVERITY)
@@ -1580,13 +1581,16 @@ for ( ;; ) {
case TSTL:
CC_IIZZ_L (op0); /* set cc's */
if ((cc == CC_Z) && /* zero result and */
((((cpu_idle_mask & VAX_IDLE_ULTOLD) && /* running Old Ultrix or friends? */
((PC - fault_PC) == 6) && /* 6 byte instruction? */
(fault_PC & 0x80000000) && /* in system space? */
(((cpu_idle_mask & VAX_IDLE_VMS) && /* VMS 5.0 and 5.1 */
(PSL_GETIPL (PSL) == 0x3) && /* at IPL 3 */
(PSL_IS & PSL)) || /* on the interrupt stack */
((((cpu_idle_mask & VAX_IDLE_ULTOLD) && /* running Old Ultrix or friends? */
(PSL_GETIPL (PSL) == 0x1)) || /* at IPL 1? */
((cpu_idle_mask & VAX_IDLE_QUAD) && /* running Quasijarus or friends? */
(PSL_GETIPL (PSL) == 0x0))) && /* at IPL 0? */
(fault_PC & 0x80000000) && /* in system space? */
((PC - fault_PC) == 6) && /* 6 byte instruction? */
((fault_PC & 0x7fffffff) < 0x4000))) /* in low system space? */
((fault_PC & 0x7fffffff) < 0x4000)))) /* in low system space? */
cpu_idle(); /* idle loop */
break;