1
0
mirror of https://github.com/simh/simh.git synced 2026-04-27 20:38:04 +00:00

VAX, VAX780: Fixed dangling else in show_opnd (COVERITY)

This commit is contained in:
Bob Supnik
2017-03-14 04:16:53 -07:00
committed by Mark Pizzolato
parent ebfc76d03d
commit 5ec40f26c6

View File

@@ -1,6 +1,6 @@
/* vax_cpu.c: VAX CPU /* vax_cpu.c: VAX CPU
Copyright (c) 1998-2015, Robert M Supnik Copyright (c) 1998-2017, Robert M Supnik
Permission is hereby granted, free of charge, to any person obtaining a Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"), copy of this software and associated documentation files (the "Software"),
@@ -25,6 +25,8 @@
cpu VAX central processor cpu VAX central processor
13-Mar-17 RMS Fixed dangling else in show_opnd (COVERITY)
29-Dec-16 RMS Removed delay in invoking sim_idle (Mark Pizzolato)
29-Mar-15 RMS Moved in-exception test to model-specific machine checks 29-Mar-15 RMS Moved in-exception test to model-specific machine checks
20-Sep-11 MP Fixed idle conditions for various versions of Ultrix, 20-Sep-11 MP Fixed idle conditions for various versions of Ultrix,
Quasijarus-4.3BSD, NetBSD and OpenBSD. Quasijarus-4.3BSD, NetBSD and OpenBSD.
@@ -395,7 +397,6 @@ int32 cpu_get_vsw (int32 sw);
SIM_INLINE int32 get_istr (int32 lnt, int32 acc); SIM_INLINE int32 get_istr (int32 lnt, int32 acc);
int32 ReadOcta (int32 va, int32 *opnd, int32 j, int32 acc); int32 ReadOcta (int32 va, int32 *opnd, int32 j, int32 acc);
t_bool cpu_show_opnd (FILE *st, InstHistory *h, int32 line); t_bool cpu_show_opnd (FILE *st, InstHistory *h, int32 line);
t_stat cpu_idle_svc (UNIT *uptr);
void cpu_idle (void); void cpu_idle (void);
/* CPU data structures /* CPU data structures
@@ -407,7 +408,7 @@ void cpu_idle (void);
*/ */
UNIT cpu_unit = { UNIT cpu_unit = {
UDATA (&cpu_idle_svc, UNIT_FIX|UNIT_BINK, INITMEMSIZE) UDATA (NULL, UNIT_FIX|UNIT_BINK, INITMEMSIZE)
}; };
REG cpu_reg[] = { REG cpu_reg[] = {
@@ -3114,20 +3115,12 @@ opnd[j++] = Read (va + 12, L_LONG, acc);
return j; return j;
} }
/* Schedule idle before the next instruction */ /* Idle during the current instruction */
void cpu_idle (void) void cpu_idle (void)
{ {
sim_activate_abs (&cpu_unit, 0);
return;
}
/* Idle service */
t_stat cpu_idle_svc (UNIT *uptr)
{
sim_idle (TMR_CLK, TRUE); sim_idle (TMR_CLK, TRUE);
return SCPE_OK; return;
} }
/* Reset */ /* Reset */
@@ -3376,9 +3369,9 @@ for (i = 1, j = 0, more = FALSE; i <= numspec; i++) { /* loop thru specs */
disp = drom[h->opc][i]; /* specifier type */ disp = drom[h->opc][i]; /* specifier type */
if (disp == RG) /* fix specials */ if (disp == RG) /* fix specials */
disp = RQ; disp = RQ;
else if (disp >= BB) if (disp >= BB) /* ignore branches */
break; /* ignore branches */ break;
else switch (disp & (DR_LNMASK|DR_ACMASK)) { switch (disp & (DR_LNMASK|DR_ACMASK)) {
case RB: case RW: case RL: /* read */ case RB: case RW: case RL: /* read */
case AB: case AW: case AL: case AQ: case AO: /* address */ case AB: case AW: case AL: case AQ: case AO: /* address */
@@ -3425,7 +3418,6 @@ static struct os_idle os_tab[] = {
{ "OPENBSD", VAX_IDLE_QUAD }, { "OPENBSD", VAX_IDLE_QUAD },
{ "QUASIJARUS", VAX_IDLE_QUAD }, { "QUASIJARUS", VAX_IDLE_QUAD },
{ "32V", VAX_IDLE_QUAD }, { "32V", VAX_IDLE_QUAD },
{ "ALL", VAX_IDLE_VMS|VAX_IDLE_ULTOLD|VAX_IDLE_ULT|VAX_IDLE_QUAD },
{ NULL, 0 } { NULL, 0 }
}; };