From 6831746400cd9b09dae53838c13c1351f9eb3d8d Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Mon, 20 Mar 2017 08:10:43 -0700 Subject: [PATCH] All VAX: Clarify Opcode Table decode values the opcode table first word consists of bits: <7> = FPD is legal for this opcode. <4:6> = number of specifiers for unimplemented opcodes (VAX subsets) <3> = unused <0:2> = number of specifiers The mask used to be 0x70. The convention is that x_M_y is a mask value , for a macro like: #define get_foo(x) (((x) >> x_V_foo) & x_M_foo) For a subset VAX (like the 3900), the unimplemented opcodes are those --- VAX/vax_defs.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/VAX/vax_defs.h b/VAX/vax_defs.h index 47a9aa18..af1e0988 100644 --- a/VAX/vax_defs.h +++ b/VAX/vax_defs.h @@ -379,9 +379,9 @@ extern jmp_buf save_env; #define DR_F 0x80 /* FPD ok flag */ #define DR_NSPMASK 0x07 /* #specifiers */ #define DR_V_USPMASK 4 -#define DR_M_USPMASK 0x07 /* #spec, sym_ */ -#define DR_GETNSP(x) ((x) & DR_NSPMASK) -#define DR_GETUSP(x) (((x) >> DR_V_USPMASK) & DR_M_USPMASK) +#define DR_M_USPMASK 0x7 /* #spec, sym_ */ +#define DR_GETNSP(x) ((x) & DR_NSPMASK) /* #specifiers */ +#define DR_GETUSP(x) (((x) >> DR_V_USPMASK) & DR_M_USPMASK) /* #specifiers for unimplemented instructions */ /* Extra bits in the opcode flag word of the Decode ROM array only for history results */