[PATCH] x86: Add {imm8}/{imm16}/{imm32} pseudo prefixes

H.J. Lu hjl.tools@gmail.com
Sun Mar 23 14:44:26 GMT 2025


Instruction templates with only sign-extended 8-bit immediate operand
also have a second template with 8-bit, 16-bit, 32-bit, 64-bit immediate
operand under a different opcode.  Add {imm8}, {imm16} and {imm32} pseudo
prefixes as a hint to control immediate size.  Don't match the first
template if {imm16} or {imm32} are used.

gas/

	PR gas/32811
	* config/tc-i386.c (pseudo_prefixes): Add avoid_imm8s_encoding.
	(operand_size_match): Return false for templates with only sign-
	extended 8-bit immediate operand if {imm16} or {imm32} are used.
	(parse_insn): Handle Prefix_Imm8, Prefix_Imm16 and Prefix_Imm32.
	* doc/c-i386.texi: Document {imm8}, {imm16} and {imm32}.
	* testsuite/gas/i386/pseudos.s: Add tests for {imm8}, {imm16}
	and {imm32}.
	* testsuite/gas/i386/x86-64-pseudos.s: Likewise.
	* testsuite/gas/i386/pseudos.d: Updated.
	* testsuite/gas/i386/x86-64-pseudos.d: Likewise.

opcodes/

	PR gas/32811
	* opcodes/i386-opc.h (Prefix_Imm8): New.
	(Prefix_Imm16): Likewise.
	(Prefix_Imm32): Likewise.
	* i386-opc.tbl: Add {imm8}, {imm16} and {imm32} pseudo prefixes.
	* i386-mnem.h: Regenerated.
	* i386-tbl.h: Likewise.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>

Fix

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
---
 gas/config/tc-i386.c                    |  26 ++
 gas/doc/c-i386.texi                     |   9 +
 gas/testsuite/gas/i386/pseudos.d        |  15 +
 gas/testsuite/gas/i386/pseudos.s        |  18 ++
 gas/testsuite/gas/i386/x86-64-pseudos.d |  30 ++
 gas/testsuite/gas/i386/x86-64-pseudos.s |  32 ++
 opcodes/i386-mnem.h                     |  31 +-
 opcodes/i386-opc.h                      |   3 +
 opcodes/i386-opc.tbl                    |   3 +-
 opcodes/i386-tbl.h                      | 380 +++++++++++++-----------
 10 files changed, 356 insertions(+), 191 deletions(-)

diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 3879001ee9e..d0bf2600051 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -513,6 +513,9 @@ static struct pseudo_prefixes {
     disp_encoding_32bit
   } disp_encoding;
 
+  /* Avoid sign-extended 8bit immediate in encoding.  */
+  bool avoid_imm8s_encoding;
+
   /* Prefer the REX byte in encoding.  */
   bool rex_encoding;
 
@@ -2589,6 +2592,19 @@ operand_size_match (const insn_template *t)
   /* Check memory and accumulator operand size.  */
   for (j = 0; j < i.operands; j++)
     {
+      /* Instruction templates with only sign-extended 8-bit immediate
+	 operand also have a second template with 8-bit, 16-bit, 32-bit,
+	 64-bit immediate operand under a different opcode.  Don't match
+	 the first template if sign-extended 8-bit immediate operand
+	 should be avoided.  */
+      if (pp.avoid_imm8s_encoding
+	  && !t->operand_types[j].bitfield.imm8
+	  && t->operand_types[j].bitfield.imm8s)
+	{
+	  match = 0;
+	  break;
+	}
+
       if (i.types[j].bitfield.class != Reg
 	  && i.types[j].bitfield.class != RegSIMD
 	  && t->opcode_modifier.operandconstraint == ANY_SIZE)
@@ -7766,6 +7782,16 @@ parse_insn (const char *line, char *mnemonic, enum parse_mode mode)
 		  /* {nooptimize} */
 		  pp.no_optimize = true;
 		  break;
+		case Prefix_Imm8:
+		  /* {imm8} */
+		  pp.avoid_imm8s_encoding = false;
+		  break;
+		case Prefix_Imm16:
+		  /* {imm16} */
+		case Prefix_Imm32:
+		  /* {imm32} */
+		  pp.avoid_imm8s_encoding = true;
+		  break;
 		default:
 		  abort ();
 		}
diff --git a/gas/doc/c-i386.texi b/gas/doc/c-i386.texi
index 4d59958fb90..311422fbb56 100644
--- a/gas/doc/c-i386.texi
+++ b/gas/doc/c-i386.texi
@@ -1021,6 +1021,15 @@ Different encoding options can be specified via pseudo prefixes:
 @item
 @samp{@{disp16@}} -- prefer 16-bit displacement.
 
+@item
+@samp{@{imm8@}} -- prefer 8-bit immediate.
+
+@item
+@samp{@{imm16@}} -- prefer 16-bit immediate.
+
+@item
+@samp{@{imm32@}} -- prefer 32-bit immediate.
+
 @item
 @samp{@{load@}} -- prefer load-form instruction.
 
diff --git a/gas/testsuite/gas/i386/pseudos.d b/gas/testsuite/gas/i386/pseudos.d
index 47dca19e9a2..fdc0a5d4e8d 100644
--- a/gas/testsuite/gas/i386/pseudos.d
+++ b/gas/testsuite/gas/i386/pseudos.d
@@ -443,4 +443,19 @@ Disassembly of section .text:
  +[a-f0-9]+:	67 8a 86 00 00       	mov    0x0\(%bp\),%al
  +[a-f0-9]+:	e9 fb ff ff ff       	jmp    [0-9a-f]* <.*>
  +[a-f0-9]+:	e9 fd ff ff ff       	jmp    [0-9a-f]* <.*>
+ +[a-f0-9]+:	81 c3 00 00 00 00    	add    \$0x0,%ebx
+ +[a-f0-9]+:	81 c3 00 00 00 00    	add    \$0x0,%ebx
+ +[a-f0-9]+:	83 c3 00             	add    \$0x0,%ebx
+ +[a-f0-9]+:	81 c3 80 00 00 00    	add    \$0x80,%ebx
+ +[a-f0-9]+:	81 c3 80 00 00 00    	add    \$0x80,%ebx
+ +[a-f0-9]+:	81 c3 80 00 00 00    	add    \$0x80,%ebx
+ +[a-f0-9]+:	66 81 c3 00 00       	add    \$0x0,%bx
+ +[a-f0-9]+:	66 81 c3 00 00       	add    \$0x0,%bx
+ +[a-f0-9]+:	66 83 c3 00          	add    \$0x0,%bx
+ +[a-f0-9]+:	66 81 c3 80 00       	add    \$0x80,%bx
+ +[a-f0-9]+:	66 81 c3 80 00       	add    \$0x80,%bx
+ +[a-f0-9]+:	66 81 c3 80 00       	add    \$0x80,%bx
+ +[a-f0-9]+:	c1 c3 ff             	rol    \$0xff,%ebx
+ +[a-f0-9]+:	c1 c3 ff             	rol    \$0xff,%ebx
+ +[a-f0-9]+:	c1 c3 ff             	rol    \$0xff,%ebx
 #pass
diff --git a/gas/testsuite/gas/i386/pseudos.s b/gas/testsuite/gas/i386/pseudos.s
index 7e3600eb250..cbe214334f6 100644
--- a/gas/testsuite/gas/i386/pseudos.s
+++ b/gas/testsuite/gas/i386/pseudos.s
@@ -408,3 +408,21 @@ _start:
 	.code16
 	{disp16} jmp .
 	.byte -1, -1
+
+	.att_syntax prefix
+	.code32
+{imm32} add	$0,%ebx
+{imm16} add	$0,%ebx
+ {imm8} add	$0,%ebx
+{imm32} add	$128,%ebx
+{imm16} add	$128,%ebx
+ {imm8} add	$128,%ebx
+{imm32} add	$0,%bx
+{imm16} add	$0,%bx
+ {imm8} add	$0,%bx
+{imm32} add	$128,%bx
+{imm16} add	$128,%bx
+ {imm8} add	$128,%bx
+{imm32} rol	$255,%ebx
+{imm16} rol	$255,%ebx
+ {imm8} rol	$255,%ebx
diff --git a/gas/testsuite/gas/i386/x86-64-pseudos.d b/gas/testsuite/gas/i386/x86-64-pseudos.d
index ea5a3585c37..e04f9302c27 100644
--- a/gas/testsuite/gas/i386/x86-64-pseudos.d
+++ b/gas/testsuite/gas/i386/x86-64-pseudos.d
@@ -534,4 +534,34 @@ Disassembly of section .text:
  +[a-f0-9]+:	67 41 8a 45 00       	mov    0x0\(%r13d\),%al
  +[a-f0-9]+:	67 41 8a 85 00 00 00 00 	mov    0x0\(%r13d\),%al
  +[a-f0-9]+:	40 8a c1             	rex mov %cl,%al
+ +[a-f0-9]+:	48 bb 89 67 45 23 01 00 00 00 	movabs \$0x123456789,%rbx
+ +[a-f0-9]+:	48 bb 89 67 45 23 01 00 00 00 	movabs \$0x123456789,%rbx
+ +[a-f0-9]+:	48 bb 89 67 45 23 01 00 00 00 	movabs \$0x123456789,%rbx
+ +[a-f0-9]+:	48 81 c3 00 00 00 00 	add    \$0x0,%rbx
+ +[a-f0-9]+:	48 81 c3 00 00 00 00 	add    \$0x0,%rbx
+ +[a-f0-9]+:	48 83 c3 00          	add    \$0x0,%rbx
+ +[a-f0-9]+:	48 81 c3 80 00 00 00 	add    \$0x80,%rbx
+ +[a-f0-9]+:	48 81 c3 80 00 00 00 	add    \$0x80,%rbx
+ +[a-f0-9]+:	48 81 c3 80 00 00 00 	add    \$0x80,%rbx
+ +[a-f0-9]+:	48 81 c3 00 00 00 80 	add    \$0xffffffff80000000,%rbx
+ +[a-f0-9]+:	48 81 c3 00 00 00 80 	add    \$0xffffffff80000000,%rbx
+ +[a-f0-9]+:	48 81 c3 00 00 00 80 	add    \$0xffffffff80000000,%rbx
+ +[a-f0-9]+:	81 c3 00 00 00 00    	add    \$0x0,%ebx
+ +[a-f0-9]+:	81 c3 00 00 00 00    	add    \$0x0,%ebx
+ +[a-f0-9]+:	83 c3 00             	add    \$0x0,%ebx
+ +[a-f0-9]+:	81 c3 80 00 00 00    	add    \$0x80,%ebx
+ +[a-f0-9]+:	81 c3 80 00 00 00    	add    \$0x80,%ebx
+ +[a-f0-9]+:	81 c3 80 00 00 00    	add    \$0x80,%ebx
+ +[a-f0-9]+:	66 81 c3 00 00       	add    \$0x0,%bx
+ +[a-f0-9]+:	66 81 c3 00 00       	add    \$0x0,%bx
+ +[a-f0-9]+:	66 83 c3 00          	add    \$0x0,%bx
+ +[a-f0-9]+:	66 81 c3 80 00       	add    \$0x80,%bx
+ +[a-f0-9]+:	66 81 c3 80 00       	add    \$0x80,%bx
+ +[a-f0-9]+:	66 81 c3 80 00       	add    \$0x80,%bx
+ +[a-f0-9]+:	48 c1 c3 ff          	rol    \$0xff,%rbx
+ +[a-f0-9]+:	48 c1 c3 ff          	rol    \$0xff,%rbx
+ +[a-f0-9]+:	48 c1 c3 ff          	rol    \$0xff,%rbx
+ +[a-f0-9]+:	c1 c3 ff             	rol    \$0xff,%ebx
+ +[a-f0-9]+:	c1 c3 ff             	rol    \$0xff,%ebx
+ +[a-f0-9]+:	c1 c3 ff             	rol    \$0xff,%ebx
 #pass
diff --git a/gas/testsuite/gas/i386/x86-64-pseudos.s b/gas/testsuite/gas/i386/x86-64-pseudos.s
index 041f98e1939..9c092365f82 100644
--- a/gas/testsuite/gas/i386/x86-64-pseudos.s
+++ b/gas/testsuite/gas/i386/x86-64-pseudos.s
@@ -504,3 +504,35 @@ _start:
 	{disp32} mov al, BYTE PTR [r13d]
 
 	.insn {rex} 0x8a, al, cl
+
+	.att_syntax prefix
+{imm32} mov	$0x123456789,%rbx
+{imm16} mov	$0x123456789,%rbx
+ {imm8} mov	$0x123456789,%rbx
+{imm32} add	$0,%rbx
+{imm16} add	$0,%rbx
+ {imm8} add	$0,%rbx
+{imm32} add	$128,%rbx
+{imm16} add	$128,%rbx
+ {imm8} add	$128,%rbx
+{imm32} add	$-2147483648,%rbx
+{imm16} add	$-2147483648,%rbx
+ {imm8} add	$-2147483648,%rbx
+{imm32} add	$0,%ebx
+{imm16} add	$0,%ebx
+ {imm8} add	$0,%ebx
+{imm32} add	$128,%ebx
+{imm16} add	$128,%ebx
+ {imm8} add	$128,%ebx
+{imm32} add	$0,%bx
+{imm16} add	$0,%bx
+ {imm8} add	$0,%bx
+{imm32} add	$128,%bx
+{imm16} add	$128,%bx
+ {imm8} add	$128,%bx
+{imm32} rol	$255,%rbx
+{imm16} rol	$255,%rbx
+ {imm8} rol	$255,%rbx
+{imm32} rol	$255,%ebx
+{imm16} rol	$255,%ebx
+ {imm8} rol	$255,%ebx
diff --git a/opcodes/i386-mnem.h b/opcodes/i386-mnem.h
index 312c9e37063..9ebf83fff6e 100644
--- a/opcodes/i386-mnem.h
+++ b/opcodes/i386-mnem.h
@@ -2614,17 +2614,20 @@ extern const char i386_mnemonics[];
 #define MN_rex64xyz 0x5014
 #define MN_rexyz 0x501d
 #define MN_rexxyz 0x5023
-#define MN__disp32_ 0x502a
-#define MN__rex2_ 0x5033
-#define MN__vex2_ 0x503a
-#define MN__vex3_ 0x5041
-#define MN__disp16_ 0x5048
-#define MN__disp8_ 0x5051
-#define MN__load_ 0x5059
-#define MN__store_ 0x5060
-#define MN__nooptimize_ 0x5068
-#define MN__nf_ 0x5075
-#define MN__rex_ 0x507a
-#define MN__evex_ 0x5080
-#define MN__vex_ 0x5087
-#define MN__insn 0x508d
+#define MN__imm32_ 0x502a
+#define MN__disp32_ 0x5032
+#define MN__rex2_ 0x503b
+#define MN__vex2_ 0x5042
+#define MN__vex3_ 0x5049
+#define MN__imm16_ 0x5050
+#define MN__disp16_ 0x5058
+#define MN__imm8_ 0x5061
+#define MN__disp8_ 0x5068
+#define MN__load_ 0x5070
+#define MN__store_ 0x5077
+#define MN__nooptimize_ 0x507f
+#define MN__nf_ 0x508c
+#define MN__rex_ 0x5091
+#define MN__evex_ 0x5097
+#define MN__vex_ 0x509e
+#define MN__insn 0x50a4
diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h
index f861cdc4e50..b04d514725f 100644
--- a/opcodes/i386-opc.h
+++ b/opcodes/i386-opc.h
@@ -1074,6 +1074,9 @@ typedef struct insn_template
 #define Prefix_REX2		9	/* {rex2} */
 #define Prefix_NoOptimize	10	/* {nooptimize} */
 #define Prefix_NF		11	/* {nf} */
+#define Prefix_Imm8		12	/* {imm8} */
+#define Prefix_Imm16		13	/* {imm16} */
+#define Prefix_Imm32		14	/* {imm32} */
 
   /* the bits in opcode_modifier are used to generate the final opcode from
      the base_opcode.  These bits also are used to detect alternate forms of
diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
index 5b26fe8be46..51c5735caea 100644
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -947,7 +947,8 @@ rex.wrxb, 0x4f, x64, NoSuf|IsPrefix, {}
                       load:Load:0, store:Store:0, +
                       vex:VEX:0, vex2:VEX:0, vex3:VEX3:0, evex:EVEX:0, +
                       rex:REX:x64, rex2:REX2:APX_F, nf:NF:APX_F, +
-                      nooptimize:NoOptimize:0>
+                      nooptimize:NoOptimize:0, +
+		      imm8:Imm8:0, imm16:Imm16:0, imm32:Imm32:0>
 
 {<pseudopfx>}, PSEUDO_PREFIX/Prefix_<pseudopfx:ident>, <pseudopfx:cpu>, NoSuf|IsPrefix, {}
 
diff --git a/opcodes/i386-tbl.h b/opcodes/i386-tbl.h
index 6fe5873a0a0..c0301eb996a 100644
--- a/opcodes/i386-tbl.h
+++ b/opcodes/i386-tbl.h
@@ -8780,6 +8780,30 @@ static const insn_template i386_optab[] =
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
+  { MN__imm8_, 0x00, 0, SPACE_BASE, Prefix_Imm8,
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN__imm16_, 0x00, 0, SPACE_BASE, Prefix_Imm16,
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN__imm32_, 0x00, 0, SPACE_BASE, Prefix_Imm32,
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xadd, 0xc0, 2, SPACE_0F, None,
     { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47926,122 +47950,122 @@ static const i386_op_off_t i386_op_sets[] =
    951,  952,  953,  954,  955,  956,  957,  958,
    959,  960,  961,  962,  963,  964,  965,  966,
    967,  968,  969,  970,  971,  972,  973,  974,
-   975,  976,  977,  978,  979,  981,  982,  984,
-   986,  987,  988,  989,  990,  991,  992,  993,
-   994,  995,  996,  998, 1000, 1002, 1004, 1006,
-  1008, 1010, 1012, 1014, 1016, 1018, 1020, 1022,
-  1024, 1026, 1028, 1030, 1032, 1034, 1036, 1038,
-  1040, 1042, 1044, 1046, 1048, 1050, 1052, 1054,
-  1056, 1058, 1060, 1062, 1064, 1066, 1068, 1070,
-  1072, 1074, 1076, 1078, 1080, 1082, 1084, 1086,
-  1088, 1090, 1092, 1094, 1096, 1098, 1100, 1102,
-  1104, 1106, 1108, 1110, 1112, 1114, 1116, 1117,
-  1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125,
-  1126, 1127, 1128, 1131, 1134, 1137, 1140, 1143,
-  1146, 1147, 1148, 1149, 1150, 1151, 1152, 1158,
-  1168, 1172, 1176, 1180, 1184, 1188, 1191, 1195,
-  1199, 1203, 1207, 1211, 1214, 1217, 1220, 1223,
-  1226, 1229, 1232, 1235, 1239, 1243, 1247, 1250,
-  1258, 1264, 1272, 1280, 1286, 1294, 1300, 1308,
-  1312, 1316, 1319, 1323, 1327, 1331, 1335, 1339,
-  1343, 1347, 1350, 1354, 1358, 1361, 1364, 1366,
-  1368, 1370, 1372, 1374, 1376, 1378, 1380, 1382,
-  1384, 1386, 1388, 1391, 1394, 1397, 1400, 1402,
-  1404, 1406, 1408, 1410, 1412, 1414, 1416, 1418,
-  1420, 1422, 1424, 1426, 1428, 1430, 1432, 1434,
-  1436, 1438, 1439, 1440, 1446, 1448, 1449, 1451,
-  1453, 1454, 1456, 1458, 1461, 1463, 1466, 1468,
-  1470, 1471, 1473, 1476, 1478, 1482, 1486, 1495,
-  1501, 1505, 1509, 1513, 1517, 1520, 1524, 1525,
-  1526, 1527, 1528, 1532, 1533, 1536, 1539, 1542,
-  1545, 1546, 1548, 1550, 1552, 1554, 1556, 1558,
-  1560, 1563, 1566, 1569, 1572, 1575, 1578, 1581,
-  1584, 1587, 1590, 1593, 1596, 1599, 1602, 1605,
-  1608, 1610, 1612, 1614, 1616, 1618, 1620, 1622,
-  1624, 1626, 1628, 1630, 1632, 1634, 1636, 1638,
-  1640, 1642, 1644, 1647, 1650, 1656, 1659, 1664,
-  1669, 1671, 1674, 1679, 1682, 1685, 1688, 1691,
-  1694, 1697, 1700, 1702, 1705, 1707, 1708, 1711,
-  1713, 1715, 1717, 1720, 1722, 1723, 1725, 1728,
-  1730, 1732, 1734, 1736, 1737, 1738, 1742, 1744,
-  1747, 1750, 1753, 1756, 1759, 1762, 1764, 1766,
-  1768, 1770, 1772, 1774, 1777, 1780, 1782, 1784,
-  1786, 1787, 1788, 1791, 1793, 1794, 1795, 1796,
-  1797, 1798, 1799, 1801, 1803, 1804, 1805, 1806,
-  1807, 1810, 1813, 1816, 1819, 1822, 1825, 1828,
-  1831, 1834, 1838, 1842, 1846, 1849, 1852, 1855,
-  1859, 1863, 1867, 1870, 1872, 1874, 1878, 1882,
-  1884, 1886, 1890, 1892, 1894, 1896, 1899, 1903,
-  1905, 1907, 1913, 1916, 1919, 1921, 1927, 1930,
-  1933, 1936, 1938, 1940, 1943, 1946, 1948, 1950,
-  1953, 1956, 1959, 1961, 1963, 1965, 1967, 1969,
-  1971, 1973, 1975, 1977, 1979, 1982, 1984, 1986,
-  1989, 1991, 1994, 1996, 1998, 2002, 2006, 2008,
-  2010, 2014, 2015, 2016, 2017, 2018, 2019, 2020,
-  2021, 2022, 2024, 2026, 2028, 2030, 2032, 2034,
-  2036, 2038, 2040, 2042, 2044, 2046, 2048, 2050,
-  2052, 2054, 2056, 2058, 2060, 2062, 2064, 2066,
-  2068, 2070, 2072, 2074, 2076, 2078, 2080, 2082,
-  2084, 2086, 2088, 2090, 2092, 2094, 2096, 2098,
-  2099, 2100, 2102, 2104, 2106, 2108, 2110, 2112,
-  2114, 2116, 2117, 2118, 2119, 2120, 2121, 2124,
-  2126, 2128, 2130, 2132, 2134, 2136, 2138, 2140,
-  2142, 2144, 2146, 2148, 2150, 2152, 2154, 2156,
-  2158, 2160, 2162, 2164, 2166, 2168, 2170, 2172,
-  2174, 2176, 2178, 2180, 2182, 2184, 2186, 2188,
-  2190, 2192, 2194, 2196, 2198, 2200, 2202, 2204,
-  2206, 2208, 2210, 2212, 2214, 2216, 2218, 2220,
-  2222, 2224, 2226, 2228, 2230, 2232, 2234, 2236,
-  2238, 2240, 2242, 2244, 2246, 2248, 2250, 2252,
-  2254, 2256, 2258, 2260, 2262, 2264, 2266, 2268,
-  2270, 2272, 2274, 2276, 2278, 2280, 2282, 2284,
-  2286, 2288, 2290, 2292, 2294, 2296, 2298, 2300,
-  2302, 2304, 2306, 2308, 2310, 2312, 2314, 2316,
-  2318, 2320, 2322, 2324, 2326, 2328, 2330, 2332,
-  2334, 2336, 2338, 2340, 2342, 2344, 2346, 2348,
-  2350, 2352, 2354, 2356, 2358, 2360, 2362, 2364,
-  2366, 2368, 2370, 2372, 2374, 2376, 2378, 2380,
-  2382, 2384, 2386, 2388, 2390, 2392, 2394, 2396,
-  2398, 2400, 2402, 2404, 2406, 2408, 2410, 2412,
-  2414, 2416, 2418, 2420, 2422, 2424, 2426, 2428,
-  2430, 2432, 2434, 2436, 2438, 2440, 2442, 2444,
-  2446, 2448, 2450, 2452, 2454, 2456, 2458, 2460,
-  2462, 2464, 2466, 2468, 2470, 2472, 2474, 2476,
-  2478, 2480, 2482, 2484, 2486, 2488, 2490, 2492,
-  2494, 2496, 2498, 2500, 2502, 2504, 2506, 2511,
-  2513, 2518, 2520, 2522, 2527, 2529, 2531, 2533,
-  2538, 2540, 2542, 2544, 2548, 2554, 2556, 2561,
-  2563, 2565, 2567, 2569, 2571, 2572, 2573, 2574,
-  2576, 2577, 2578, 2579, 2580, 2581, 2583, 2584,
-  2585, 2586, 2588, 2590, 2592, 2594, 2598, 2602,
-  2603, 2604, 2606, 2610, 2614, 2616, 2620, 2624,
-  2625, 2626, 2628, 2630, 2632, 2634, 2639, 2643,
-  2647, 2649, 2651, 2653, 2655, 2657, 2659, 2661,
-  2663, 2665, 2667, 2669, 2671, 2673, 2675, 2677,
-  2679, 2681, 2683, 2685, 2687, 2689, 2690, 2691,
-  2693, 2695, 2696, 2697, 2700, 2703, 2706, 2709,
-  2711, 2713, 2715, 2717, 2719, 2721, 2722, 2723,
-  2724, 2726, 2730, 2732, 2734, 2740, 2744, 2745,
-  2746, 2747, 2748, 2749, 2750, 2751, 2755, 2757,
-  2759, 2763, 2765, 2767, 2769, 2771, 2773, 2775,
-  2777, 2779, 2781, 2783, 2785, 2787, 2789, 2791,
-  2792, 2795, 2798, 2801, 2804, 2809, 2814, 2819,
-  2824, 2827, 2830, 2833, 2836, 2838, 2840, 2842,
-  2844, 2846, 2848, 2850, 2851, 2853, 2855, 2857,
-  2859, 2861, 2862, 2863, 2864, 2868, 2872, 2874,
-  2878, 2882, 2886, 2890, 2894, 2896, 2900, 2902,
-  2904, 2906, 2908, 2910, 2912, 2914, 2916, 2917,
-  2919, 2921, 2923, 2925, 2927, 2929, 2931, 2933,
-  2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941,
-  2942, 2944, 2946, 2948, 2950, 2952, 2954, 2955,
-  2956, 2957, 2959, 2961, 2963, 2965, 2967, 2969,
-  2970, 2971, 2972, 2973, 2976, 2979, 2981, 2984,
-  2985, 2986, 2988, 2989, 2991, 2992, 2993, 2995,
-  2997, 2998, 2999, 3000, 3001, 3002, 3005, 3010,
-  3015, 3020, 3025, 3028, 3033, 3038, 3040, 3042,
-  3044, 3046, 3047, 3048, 3050, 3052, 3054, 3056,
-  3058, 3060, 3062, 3063, 3064, 3065, 3066, 3067,
-  3068, 3073, 3078, 3079, 3080, 3081, 3082, 3083,
+   975,  976,  977,  978,  979,  980,  981,  982,
+   984,  985,  987,  989,  990,  991,  992,  993,
+   994,  995,  996,  997,  998,  999, 1001, 1003,
+  1005, 1007, 1009, 1011, 1013, 1015, 1017, 1019,
+  1021, 1023, 1025, 1027, 1029, 1031, 1033, 1035,
+  1037, 1039, 1041, 1043, 1045, 1047, 1049, 1051,
+  1053, 1055, 1057, 1059, 1061, 1063, 1065, 1067,
+  1069, 1071, 1073, 1075, 1077, 1079, 1081, 1083,
+  1085, 1087, 1089, 1091, 1093, 1095, 1097, 1099,
+  1101, 1103, 1105, 1107, 1109, 1111, 1113, 1115,
+  1117, 1119, 1120, 1121, 1122, 1123, 1124, 1125,
+  1126, 1127, 1128, 1129, 1130, 1131, 1134, 1137,
+  1140, 1143, 1146, 1149, 1150, 1151, 1152, 1153,
+  1154, 1155, 1161, 1171, 1175, 1179, 1183, 1187,
+  1191, 1194, 1198, 1202, 1206, 1210, 1214, 1217,
+  1220, 1223, 1226, 1229, 1232, 1235, 1238, 1242,
+  1246, 1250, 1253, 1261, 1267, 1275, 1283, 1289,
+  1297, 1303, 1311, 1315, 1319, 1322, 1326, 1330,
+  1334, 1338, 1342, 1346, 1350, 1353, 1357, 1361,
+  1364, 1367, 1369, 1371, 1373, 1375, 1377, 1379,
+  1381, 1383, 1385, 1387, 1389, 1391, 1394, 1397,
+  1400, 1403, 1405, 1407, 1409, 1411, 1413, 1415,
+  1417, 1419, 1421, 1423, 1425, 1427, 1429, 1431,
+  1433, 1435, 1437, 1439, 1441, 1442, 1443, 1449,
+  1451, 1452, 1454, 1456, 1457, 1459, 1461, 1464,
+  1466, 1469, 1471, 1473, 1474, 1476, 1479, 1481,
+  1485, 1489, 1498, 1504, 1508, 1512, 1516, 1520,
+  1523, 1527, 1528, 1529, 1530, 1531, 1535, 1536,
+  1539, 1542, 1545, 1548, 1549, 1551, 1553, 1555,
+  1557, 1559, 1561, 1563, 1566, 1569, 1572, 1575,
+  1578, 1581, 1584, 1587, 1590, 1593, 1596, 1599,
+  1602, 1605, 1608, 1611, 1613, 1615, 1617, 1619,
+  1621, 1623, 1625, 1627, 1629, 1631, 1633, 1635,
+  1637, 1639, 1641, 1643, 1645, 1647, 1650, 1653,
+  1659, 1662, 1667, 1672, 1674, 1677, 1682, 1685,
+  1688, 1691, 1694, 1697, 1700, 1703, 1705, 1708,
+  1710, 1711, 1714, 1716, 1718, 1720, 1723, 1725,
+  1726, 1728, 1731, 1733, 1735, 1737, 1739, 1740,
+  1741, 1745, 1747, 1750, 1753, 1756, 1759, 1762,
+  1765, 1767, 1769, 1771, 1773, 1775, 1777, 1780,
+  1783, 1785, 1787, 1789, 1790, 1791, 1794, 1796,
+  1797, 1798, 1799, 1800, 1801, 1802, 1804, 1806,
+  1807, 1808, 1809, 1810, 1813, 1816, 1819, 1822,
+  1825, 1828, 1831, 1834, 1837, 1841, 1845, 1849,
+  1852, 1855, 1858, 1862, 1866, 1870, 1873, 1875,
+  1877, 1881, 1885, 1887, 1889, 1893, 1895, 1897,
+  1899, 1902, 1906, 1908, 1910, 1916, 1919, 1922,
+  1924, 1930, 1933, 1936, 1939, 1941, 1943, 1946,
+  1949, 1951, 1953, 1956, 1959, 1962, 1964, 1966,
+  1968, 1970, 1972, 1974, 1976, 1978, 1980, 1982,
+  1985, 1987, 1989, 1992, 1994, 1997, 1999, 2001,
+  2005, 2009, 2011, 2013, 2017, 2018, 2019, 2020,
+  2021, 2022, 2023, 2024, 2025, 2027, 2029, 2031,
+  2033, 2035, 2037, 2039, 2041, 2043, 2045, 2047,
+  2049, 2051, 2053, 2055, 2057, 2059, 2061, 2063,
+  2065, 2067, 2069, 2071, 2073, 2075, 2077, 2079,
+  2081, 2083, 2085, 2087, 2089, 2091, 2093, 2095,
+  2097, 2099, 2101, 2102, 2103, 2105, 2107, 2109,
+  2111, 2113, 2115, 2117, 2119, 2120, 2121, 2122,
+  2123, 2124, 2127, 2129, 2131, 2133, 2135, 2137,
+  2139, 2141, 2143, 2145, 2147, 2149, 2151, 2153,
+  2155, 2157, 2159, 2161, 2163, 2165, 2167, 2169,
+  2171, 2173, 2175, 2177, 2179, 2181, 2183, 2185,
+  2187, 2189, 2191, 2193, 2195, 2197, 2199, 2201,
+  2203, 2205, 2207, 2209, 2211, 2213, 2215, 2217,
+  2219, 2221, 2223, 2225, 2227, 2229, 2231, 2233,
+  2235, 2237, 2239, 2241, 2243, 2245, 2247, 2249,
+  2251, 2253, 2255, 2257, 2259, 2261, 2263, 2265,
+  2267, 2269, 2271, 2273, 2275, 2277, 2279, 2281,
+  2283, 2285, 2287, 2289, 2291, 2293, 2295, 2297,
+  2299, 2301, 2303, 2305, 2307, 2309, 2311, 2313,
+  2315, 2317, 2319, 2321, 2323, 2325, 2327, 2329,
+  2331, 2333, 2335, 2337, 2339, 2341, 2343, 2345,
+  2347, 2349, 2351, 2353, 2355, 2357, 2359, 2361,
+  2363, 2365, 2367, 2369, 2371, 2373, 2375, 2377,
+  2379, 2381, 2383, 2385, 2387, 2389, 2391, 2393,
+  2395, 2397, 2399, 2401, 2403, 2405, 2407, 2409,
+  2411, 2413, 2415, 2417, 2419, 2421, 2423, 2425,
+  2427, 2429, 2431, 2433, 2435, 2437, 2439, 2441,
+  2443, 2445, 2447, 2449, 2451, 2453, 2455, 2457,
+  2459, 2461, 2463, 2465, 2467, 2469, 2471, 2473,
+  2475, 2477, 2479, 2481, 2483, 2485, 2487, 2489,
+  2491, 2493, 2495, 2497, 2499, 2501, 2503, 2505,
+  2507, 2509, 2514, 2516, 2521, 2523, 2525, 2530,
+  2532, 2534, 2536, 2541, 2543, 2545, 2547, 2551,
+  2557, 2559, 2564, 2566, 2568, 2570, 2572, 2574,
+  2575, 2576, 2577, 2579, 2580, 2581, 2582, 2583,
+  2584, 2586, 2587, 2588, 2589, 2591, 2593, 2595,
+  2597, 2601, 2605, 2606, 2607, 2609, 2613, 2617,
+  2619, 2623, 2627, 2628, 2629, 2631, 2633, 2635,
+  2637, 2642, 2646, 2650, 2652, 2654, 2656, 2658,
+  2660, 2662, 2664, 2666, 2668, 2670, 2672, 2674,
+  2676, 2678, 2680, 2682, 2684, 2686, 2688, 2690,
+  2692, 2693, 2694, 2696, 2698, 2699, 2700, 2703,
+  2706, 2709, 2712, 2714, 2716, 2718, 2720, 2722,
+  2724, 2725, 2726, 2727, 2729, 2733, 2735, 2737,
+  2743, 2747, 2748, 2749, 2750, 2751, 2752, 2753,
+  2754, 2758, 2760, 2762, 2766, 2768, 2770, 2772,
+  2774, 2776, 2778, 2780, 2782, 2784, 2786, 2788,
+  2790, 2792, 2794, 2795, 2798, 2801, 2804, 2807,
+  2812, 2817, 2822, 2827, 2830, 2833, 2836, 2839,
+  2841, 2843, 2845, 2847, 2849, 2851, 2853, 2854,
+  2856, 2858, 2860, 2862, 2864, 2865, 2866, 2867,
+  2871, 2875, 2877, 2881, 2885, 2889, 2893, 2897,
+  2899, 2903, 2905, 2907, 2909, 2911, 2913, 2915,
+  2917, 2919, 2920, 2922, 2924, 2926, 2928, 2930,
+  2932, 2934, 2936, 2937, 2938, 2939, 2940, 2941,
+  2942, 2943, 2944, 2945, 2947, 2949, 2951, 2953,
+  2955, 2957, 2958, 2959, 2960, 2962, 2964, 2966,
+  2968, 2970, 2972, 2973, 2974, 2975, 2976, 2979,
+  2982, 2984, 2987, 2988, 2989, 2991, 2992, 2994,
+  2995, 2996, 2998, 3000, 3001, 3002, 3003, 3004,
+  3005, 3008, 3013, 3018, 3023, 3028, 3031, 3036,
+  3041, 3043, 3045, 3047, 3049, 3050, 3051, 3053,
+  3055, 3057, 3059, 3061, 3063, 3065, 3066, 3067,
+  3068, 3069, 3070, 3071, 3076, 3081, 3082, 3083,
   3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091,
   3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099,
   3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107,
@@ -48066,52 +48090,52 @@ static const i386_op_off_t i386_op_sets[] =
   3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259,
   3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267,
   3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275,
-  3276, 3277, 3278, 3279, 3281, 3283, 3284, 3285,
+  3276, 3277, 3278, 3279, 3280, 3281, 3282, 3284,
   3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293,
   3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301,
   3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309,
-  3310, 3311, 3313, 3315, 3317, 3319, 3320, 3321,
+  3310, 3311, 3312, 3313, 3314, 3316, 3318, 3320,
   3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329,
-  3330, 3331, 3332, 3334, 3335, 3336, 3337, 3339,
-  3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347,
+  3330, 3331, 3332, 3333, 3334, 3335, 3337, 3338,
+  3339, 3340, 3342, 3343, 3344, 3345, 3346, 3347,
   3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355,
   3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363,
   3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371,
   3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379,
-  3380, 3382, 3384, 3385, 3386, 3388, 3389, 3391,
-  3393, 3394, 3395, 3397, 3399, 3401, 3403, 3404,
-  3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412,
+  3380, 3381, 3382, 3383, 3385, 3387, 3388, 3389,
+  3391, 3392, 3394, 3396, 3397, 3398, 3400, 3402,
+  3404, 3406, 3407, 3408, 3409, 3410, 3411, 3412,
   3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420,
-  3421, 3422, 3423, 3424, 3425, 3426, 3427, 3430,
-  3433, 3434, 3435, 3436, 3437, 3438, 3439, 3441,
-  3443, 3445, 3446, 3447, 3448, 3449, 3450, 3451,
-  3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460,
-  3461, 3463, 3465, 3466, 3467, 3468, 3469, 3470,
-  3471, 3472, 3473, 3474, 3475, 3478, 3481, 3482,
-  3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490,
+  3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428,
+  3429, 3430, 3433, 3436, 3437, 3438, 3439, 3440,
+  3441, 3442, 3444, 3446, 3448, 3449, 3450, 3451,
+  3452, 3453, 3454, 3456, 3457, 3458, 3459, 3460,
+  3461, 3462, 3463, 3464, 3466, 3468, 3469, 3470,
+  3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478,
+  3481, 3484, 3485, 3486, 3487, 3488, 3489, 3490,
   3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498,
   3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506,
   3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514,
   3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522,
   3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530,
   3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538,
-  3539, 3542, 3544, 3547, 3550, 3552, 3555, 3558,
-  3561, 3564, 3565, 3568, 3569, 3570, 3571, 3572,
-  3573, 3577, 3579, 3582, 3583, 3584, 3585, 3586,
+  3539, 3540, 3541, 3542, 3545, 3547, 3550, 3553,
+  3555, 3558, 3561, 3564, 3567, 3568, 3571, 3572,
+  3573, 3574, 3575, 3576, 3580, 3582, 3585, 3586,
   3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594,
   3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602,
   3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610,
   3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618,
   3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626,
-  3627, 3628, 3629, 3630, 3631, 3632, 3633, 3635,
-  3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643,
+  3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634,
+  3635, 3636, 3638, 3639, 3640, 3641, 3642, 3643,
   3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651,
   3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659,
   3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667,
-  3668, 3669, 3670, 3671, 3672, 3673, 3674, 3677,
-  3680, 3683, 3686, 3689, 3692, 3695, 3698, 3701,
-  3704, 3707, 3710, 3713, 3716, 3719, 3720, 3721,
-  3722, 3723, 3725, 3726, 3727, 3728, 3729, 3730,
+  3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675,
+  3676, 3677, 3680, 3683, 3686, 3689, 3692, 3695,
+  3698, 3701, 3704, 3707, 3710, 3713, 3716, 3719,
+  3722, 3723, 3724, 3725, 3726, 3728, 3729, 3730,
   3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738,
   3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746,
   3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754,
@@ -48119,7 +48143,7 @@ static const i386_op_off_t i386_op_sets[] =
   3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770,
   3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778,
   3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786,
-  3789, 3792, 3793, 3794, 3795, 3796, 3797, 3798,
+  3787, 3788, 3789, 3792, 3795, 3796, 3797, 3798,
   3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806,
   3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814,
   3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822,
@@ -48127,34 +48151,34 @@ static const i386_op_off_t i386_op_sets[] =
   3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838,
   3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846,
   3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854,
-  3857, 3860, 3863, 3864, 3865, 3866, 3867, 3868,
+  3855, 3856, 3857, 3860, 3863, 3866, 3867, 3868,
   3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876,
-  3877, 3878, 3879, 3882, 3885, 3886, 3887, 3890,
-  3891, 3892, 3893, 3894, 3897, 3900, 3903, 3904,
-  3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912,
-  3913, 3915, 3916, 3917, 3918, 3920, 3921, 3922,
+  3877, 3878, 3879, 3880, 3881, 3882, 3885, 3888,
+  3889, 3890, 3893, 3894, 3895, 3896, 3897, 3900,
+  3903, 3906, 3907, 3908, 3909, 3910, 3911, 3912,
+  3913, 3914, 3915, 3916, 3918, 3919, 3920, 3921,
   3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930,
   3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938,
-  3939, 3940, 3941, 3942, 3944, 3946, 3947, 3948,
+  3939, 3940, 3941, 3942, 3943, 3944, 3945, 3947,
   3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956,
   3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964,
-  3965, 3966, 3967, 3968, 3969, 3970, 3971, 3973,
-  3975, 3977, 3979, 3981, 3983, 3985, 3987, 3989,
-  3991, 3993, 3995, 3997, 3999, 4001, 4003, 4004,
-  4005, 4006, 4008, 4009, 4011, 4014, 4016, 4017,
-  4018, 4020, 4022, 4023, 4024, 4025, 4026, 4027,
-  4028, 4030, 4032, 4034, 4036, 4037, 4038, 4039,
-  4040, 4041, 4042, 4043, 4044, 4045, 4047, 4049,
-  4050, 4052, 4054, 4055, 4060, 4062, 4064, 4065,
-  4066, 4067, 4068, 4069, 4070, 4071, 4073, 4075,
-  4076, 4077, 4078, 4080, 4083, 4087, 4090, 4092,
-  4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100,
+  3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972,
+  3973, 3974, 3976, 3978, 3980, 3982, 3984, 3986,
+  3988, 3990, 3992, 3994, 3996, 3998, 4000, 4002,
+  4004, 4006, 4007, 4008, 4009, 4011, 4012, 4014,
+  4017, 4019, 4020, 4021, 4023, 4025, 4026, 4027,
+  4028, 4029, 4030, 4031, 4033, 4035, 4037, 4039,
+  4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047,
+  4048, 4050, 4052, 4053, 4055, 4057, 4058, 4063,
+  4065, 4067, 4068, 4069, 4070, 4071, 4072, 4073,
+  4074, 4076, 4078, 4079, 4080, 4081, 4083, 4086,
+  4090, 4093, 4095, 4096, 4097, 4098, 4099, 4100,
   4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108,
   4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116,
   4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124,
   4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132,
-  4133, 4134, 4135, 4137, 4139, 4141, 4143, 4145,
-  4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154,
+  4133, 4134, 4135, 4136, 4137, 4138, 4140, 4142,
+  4144, 4146, 4148, 4150, 4151, 4152, 4153, 4154,
   4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162,
   4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170,
   4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178,
@@ -48169,32 +48193,33 @@ static const i386_op_off_t i386_op_sets[] =
   4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250,
   4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258,
   4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266,
-  4267, 4268, 4269, 4270, 4273, 4274, 4275, 4278,
-  4279, 4280, 4282, 4283, 4284, 4285, 4287, 4288,
-  4289, 4290, 4292, 4293, 4294, 4295, 4298, 4299,
-  4300, 4301, 4302, 4305, 4308, 4311, 4314, 4317,
-  4318, 4319, 4320, 4321, 4323, 4325, 4326, 4327,
-  4328, 4331, 4334, 4337, 4340, 4343, 4344, 4345,
-  4346, 4348, 4349, 4350, 4351, 4354, 4355, 4356,
+  4267, 4268, 4269, 4270, 4271, 4272, 4273, 4276,
+  4277, 4278, 4281, 4282, 4283, 4285, 4286, 4287,
+  4288, 4290, 4291, 4292, 4293, 4295, 4296, 4297,
+  4298, 4301, 4302, 4303, 4304, 4305, 4308, 4311,
+  4314, 4317, 4320, 4321, 4322, 4323, 4324, 4326,
+  4328, 4329, 4330, 4331, 4334, 4337, 4340, 4343,
+  4346, 4347, 4348, 4349, 4351, 4352, 4353, 4354,
   4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364,
   4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372,
   4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380,
   4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388,
-  4389, 4390, 4392, 4393, 4394, 4396, 4398, 4400,
-  4402, 4404, 4405, 4406, 4409, 4412, 4413, 4414,
-  4415, 4416, 4417, 4418, 4420, 4422, 4424, 4426,
-  4427, 4428, 4429, 4430, 4433, 4434, 4435, 4438,
-  4439, 4440, 4443, 4444, 4445, 4448, 4449, 4450,
-  4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460,
+  4389, 4390, 4391, 4392, 4393, 4395, 4396, 4397,
+  4399, 4401, 4403, 4405, 4407, 4408, 4409, 4412,
+  4415, 4416, 4417, 4418, 4419, 4420, 4421, 4423,
+  4425, 4427, 4429, 4430, 4431, 4432, 4433, 4436,
+  4437, 4438, 4441, 4442, 4443, 4446, 4447, 4448,
+  4451, 4452, 4453, 4456, 4457, 4458, 4459, 4460,
   4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468,
   4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476,
   4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484,
   4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492,
-  4493, 4494, 4495, 4496, 4497, 4500, 4501, 4502,
-  4505, 4506, 4507, 4508, 4509, 4510, 4511, 4514,
-  4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524,
+  4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500,
+  4503, 4504, 4505, 4508, 4509, 4510, 4511, 4512,
+  4513, 4514, 4517, 4520, 4521, 4522, 4523, 4524,
   4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532,
-  4533, 4534, 4535, 4537, 4538, 4539, 4540, 4541
+  4533, 4534, 4535, 4536, 4537, 4538, 4540, 4541,
+  4542, 4543, 4544
 };
 
 /* i386 mnemonics table.  */
@@ -50404,11 +50429,14 @@ const char i386_mnemonics[] =
   "\0""rex64xyz"
   "\0""rexyz"
   "\0""rexxyz"
+  "\0""{imm32}"
   "\0""{disp32}"
   "\0""{rex2}"
   "\0""{vex2}"
   "\0""{vex3}"
+  "\0""{imm16}"
   "\0""{disp16}"
+  "\0""{imm8}"
   "\0""{disp8}"
   "\0""{load}"
   "\0""{store}"
-- 
2.49.0



More information about the Binutils mailing list