From 3165a1b3ab16733a5cf55d3ff2cb40af9ae410eb Mon Sep 17 00:00:00 2001 From: Bob Supnik Date: Mon, 20 Mar 2017 07:19:32 -0700 Subject: [PATCH] All VAX: Properly define Unimplemented Opcode specifier count mask 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 that are recognized on a full VAX but simply trap as reserved instructions (e.g., the H-floating instructions). This really only affected symbolic printing and decoding of these instructions. --- VAX/vax_defs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VAX/vax_defs.h b/VAX/vax_defs.h index 9e5bacf5..c8b9f7d5 100644 --- a/VAX/vax_defs.h +++ b/VAX/vax_defs.h @@ -377,7 +377,7 @@ #define DR_F 0x80 /* FPD ok flag */ #define DR_NSPMASK 0x07 /* #specifiers */ #define DR_V_USPMASK 4 -#define DR_M_USPMASK 0x70 /* #spec, sym_ */ +#define DR_M_USPMASK 0x7 /* #spec, sym_ */ #define DR_GETNSP(x) ((x) & DR_NSPMASK) #define DR_GETUSP(x) (((x) >> DR_V_USPMASK) & DR_M_USPMASK)