x86: have insns acting on segment selector values allow for consistent operands
authorJan Beulich <jbeulich@suse.com>
Fri, 24 Feb 2023 12:57:31 +0000 (13:57 +0100)
committerJan Beulich <jbeulich@suse.com>
Fri, 24 Feb 2023 12:57:31 +0000 (13:57 +0100)
While MOV to/from segment register as well as selector storing insns
already permit 32- and 64-bit GPR operands, selector loading insns and
ARPL do not. Split templates accordingly.

gas/config/tc-i386-intel.c
gas/testsuite/gas/i386/i386-intel.d
gas/testsuite/gas/i386/i386.d
gas/testsuite/gas/i386/i386.s
gas/testsuite/gas/i386/x86_64-intel.d
gas/testsuite/gas/i386/x86_64.d
gas/testsuite/gas/i386/x86_64.s
opcodes/i386-opc.tbl
opcodes/i386-tbl.h

index 7ee63efd2de227e743bbf334105f853fa6134fd7..c139c584573c45e9779a583f12f6b6a0641c2844 100644 (file)
@@ -694,7 +694,8 @@ i386_intel_operand (char *operand_string, int got_a_float)
          if (got_a_float == 2) /* "fi..." */
            suffix = SHORT_MNEM_SUFFIX;
          else if (current_templates->start->mnem_off != MN_lar
-                  && current_templates->start->mnem_off != MN_lsl)
+                  && current_templates->start->mnem_off != MN_lsl
+                  && current_templates->start->mnem_off != MN_arpl)
            suffix = WORD_MNEM_SUFFIX;
          break;
 
index e5e2b78a2072d9921457e6a86615c2bf63280501..a65c12e3edfbc3834c054b15d2b9be8d5e59c472 100644 (file)
@@ -62,24 +62,62 @@ Disassembly of section .text:
 [      ]*[a-f0-9]+:    0f b6 00                movzx  eax,BYTE PTR \[eax\]
 [      ]*[a-f0-9]+:    0f b7 00                movzx  eax,WORD PTR \[eax\]
 [      ]*[a-f0-9]+:    0f c3 00                movnti DWORD PTR \[eax\],eax
+[      ]*[a-f0-9]+:    63 ca                   arpl   dx,cx
+[      ]*[a-f0-9]+:    63 ca                   arpl   dx,cx
+[      ]*[a-f0-9]+:    63 0a                   arpl   (WORD PTR )?\[edx\],cx
+[      ]*[a-f0-9]+:    63 0a                   arpl   (WORD PTR )?\[edx\],cx
 [      ]*[a-f0-9]+:    66 0f 02 d2             lar    dx,dx
 [      ]*[a-f0-9]+:    0f 02 d2                lar    edx,edx
 [      ]*[a-f0-9]+:    0f 02 d2                lar    edx,edx
 [      ]*[a-f0-9]+:    66 0f 02 12             lar    dx,WORD PTR \[edx\]
 [      ]*[a-f0-9]+:    0f 02 12                lar    edx,WORD PTR \[edx\]
+[      ]*[a-f0-9]+:    0f 00 d2                lldt   dx
+[      ]*[a-f0-9]+:    0f 00 d2                lldt   dx
+[      ]*[a-f0-9]+:    0f 00 12                lldt   (WORD PTR )?\[edx\]
 [      ]*[a-f0-9]+:    66 0f 03 d2             lsl    dx,dx
 [      ]*[a-f0-9]+:    0f 03 d2                lsl    edx,edx
 [      ]*[a-f0-9]+:    0f 03 d2                lsl    edx,edx
 [      ]*[a-f0-9]+:    66 0f 03 12             lsl    dx,WORD PTR \[edx\]
 [      ]*[a-f0-9]+:    0f 03 12                lsl    edx,WORD PTR \[edx\]
+[      ]*[a-f0-9]+:    0f 00 da                ltr    dx
+[      ]*[a-f0-9]+:    0f 00 da                ltr    dx
+[      ]*[a-f0-9]+:    0f 00 1a                ltr    (WORD PTR )?\[edx\]
+[      ]*[a-f0-9]+:    0f 00 e2                verr   dx
+[      ]*[a-f0-9]+:    0f 00 e2                verr   dx
+[      ]*[a-f0-9]+:    0f 00 22                verr   (WORD PTR )?\[edx\]
+[      ]*[a-f0-9]+:    0f 00 ea                verw   dx
+[      ]*[a-f0-9]+:    0f 00 ea                verw   dx
+[      ]*[a-f0-9]+:    0f 00 2a                verw   (WORD PTR )?\[edx\]
+[      ]*[a-f0-9]+:    63 d1                   arpl   cx,dx
+[      ]*[a-f0-9]+:    63 d1                   arpl   cx,dx
+[      ]*[a-f0-9]+:    63 11                   arpl   (WORD PTR )?\[ecx],dx
+[      ]*[a-f0-9]+:    63 11                   arpl   (WORD PTR )?\[ecx],dx
+[      ]*[a-f0-9]+:    63 11                   arpl   (WORD PTR )?\[ecx],dx
+[      ]*[a-f0-9]+:    63 11                   arpl   (WORD PTR )?\[ecx],dx
 [      ]*[a-f0-9]+:    66 0f 02 d2             lar    dx,dx
 [      ]*[a-f0-9]+:    0f 02 d2                lar    edx,edx
 [      ]*[a-f0-9]+:    0f 02 d2                lar    edx,edx
 [      ]*[a-f0-9]+:    66 0f 02 12             lar    dx,WORD PTR \[edx\]
 [      ]*[a-f0-9]+:    0f 02 12                lar    edx,WORD PTR \[edx\]
+[      ]*[a-f0-9]+:    0f 00 d2                lldt   dx
+[      ]*[a-f0-9]+:    0f 00 d2                lldt   dx
+[      ]*[a-f0-9]+:    0f 00 12                lldt   (WORD PTR )?\[edx\]
+[      ]*[a-f0-9]+:    0f 00 12                lldt   (WORD PTR )?\[edx\]
 [      ]*[a-f0-9]+:    66 0f 03 d2             lsl    dx,dx
 [      ]*[a-f0-9]+:    0f 03 d2                lsl    edx,edx
 [      ]*[a-f0-9]+:    0f 03 d2                lsl    edx,edx
 [      ]*[a-f0-9]+:    66 0f 03 12             lsl    dx,WORD PTR \[edx\]
 [      ]*[a-f0-9]+:    0f 03 12                lsl    edx,WORD PTR \[edx\]
+[      ]*[a-f0-9]+:    0f 00 da                ltr    dx
+[      ]*[a-f0-9]+:    0f 00 da                ltr    dx
+[      ]*[a-f0-9]+:    0f 00 1a                ltr    (WORD PTR )?\[edx\]
+[      ]*[a-f0-9]+:    0f 00 1a                ltr    (WORD PTR )?\[edx\]
+[      ]*[a-f0-9]+:    0f 00 e2                verr   dx
+[      ]*[a-f0-9]+:    0f 00 e2                verr   dx
+[      ]*[a-f0-9]+:    0f 00 22                verr   (WORD PTR )?\[edx\]
+[      ]*[a-f0-9]+:    0f 00 22                verr   (WORD PTR )?\[edx\]
+[      ]*[a-f0-9]+:    0f 00 ea                verw   dx
+[      ]*[a-f0-9]+:    0f 00 ea                verw   dx
+[      ]*[a-f0-9]+:    0f 00 2a                verw   (WORD PTR )?\[edx\]
+[      ]*[a-f0-9]+:    0f 00 2a                verw   (WORD PTR )?\[edx\]
 #pass
index d532110d5f425c6adda6c78de98acb2c3ff8c846..54e19e87641c3118eb1f583b1902868faf3d0ee2 100644 (file)
@@ -61,24 +61,62 @@ Disassembly of section .text:
 [      ]*[a-f0-9]+:    0f b6 00                movzbl \(%eax\),%eax
 [      ]*[a-f0-9]+:    0f b7 00                movzwl \(%eax\),%eax
 [      ]*[a-f0-9]+:    0f c3 00                movnti %eax,\(%eax\)
+[      ]*[a-f0-9]+:    63 ca                   arpl   %cx,%dx
+[      ]*[a-f0-9]+:    63 ca                   arpl   %cx,%dx
+[      ]*[a-f0-9]+:    63 0a                   arpl   %cx,\(%edx\)
+[      ]*[a-f0-9]+:    63 0a                   arpl   %cx,\(%edx\)
 [      ]*[a-f0-9]+:    66 0f 02 d2             lar    %dx,%dx
 [      ]*[a-f0-9]+:    0f 02 d2                lar    %edx,%edx
 [      ]*[a-f0-9]+:    0f 02 d2                lar    %edx,%edx
 [      ]*[a-f0-9]+:    66 0f 02 12             lar    \(%edx\),%dx
 [      ]*[a-f0-9]+:    0f 02 12                lar    \(%edx\),%edx
+[      ]*[a-f0-9]+:    0f 00 d2                lldt   %dx
+[      ]*[a-f0-9]+:    0f 00 d2                lldt   %dx
+[      ]*[a-f0-9]+:    0f 00 12                lldt   \(%edx\)
 [      ]*[a-f0-9]+:    66 0f 03 d2             lsl    %dx,%dx
 [      ]*[a-f0-9]+:    0f 03 d2                lsl    %edx,%edx
 [      ]*[a-f0-9]+:    0f 03 d2                lsl    %edx,%edx
 [      ]*[a-f0-9]+:    66 0f 03 12             lsl    \(%edx\),%dx
 [      ]*[a-f0-9]+:    0f 03 12                lsl    \(%edx\),%edx
+[      ]*[a-f0-9]+:    0f 00 da                ltr    %dx
+[      ]*[a-f0-9]+:    0f 00 da                ltr    %dx
+[      ]*[a-f0-9]+:    0f 00 1a                ltr    \(%edx\)
+[      ]*[a-f0-9]+:    0f 00 e2                verr   %dx
+[      ]*[a-f0-9]+:    0f 00 e2                verr   %dx
+[      ]*[a-f0-9]+:    0f 00 22                verr   \(%edx\)
+[      ]*[a-f0-9]+:    0f 00 ea                verw   %dx
+[      ]*[a-f0-9]+:    0f 00 ea                verw   %dx
+[      ]*[a-f0-9]+:    0f 00 2a                verw   \(%edx\)
+[      ]*[a-f0-9]+:    63 d1                   arpl   %dx,%cx
+[      ]*[a-f0-9]+:    63 d1                   arpl   %dx,%cx
+[      ]*[a-f0-9]+:    63 11                   arpl   %dx,\(%ecx\)
+[      ]*[a-f0-9]+:    63 11                   arpl   %dx,\(%ecx\)
+[      ]*[a-f0-9]+:    63 11                   arpl   %dx,\(%ecx\)
+[      ]*[a-f0-9]+:    63 11                   arpl   %dx,\(%ecx\)
 [      ]*[a-f0-9]+:    66 0f 02 d2             lar    %dx,%dx
 [      ]*[a-f0-9]+:    0f 02 d2                lar    %edx,%edx
 [      ]*[a-f0-9]+:    0f 02 d2                lar    %edx,%edx
 [      ]*[a-f0-9]+:    66 0f 02 12             lar    \(%edx\),%dx
 [      ]*[a-f0-9]+:    0f 02 12                lar    \(%edx\),%edx
+[      ]*[a-f0-9]+:    0f 00 d2                lldt   %dx
+[      ]*[a-f0-9]+:    0f 00 d2                lldt   %dx
+[      ]*[a-f0-9]+:    0f 00 12                lldt   \(%edx\)
+[      ]*[a-f0-9]+:    0f 00 12                lldt   \(%edx\)
 [      ]*[a-f0-9]+:    66 0f 03 d2             lsl    %dx,%dx
 [      ]*[a-f0-9]+:    0f 03 d2                lsl    %edx,%edx
 [      ]*[a-f0-9]+:    0f 03 d2                lsl    %edx,%edx
 [      ]*[a-f0-9]+:    66 0f 03 12             lsl    \(%edx\),%dx
 [      ]*[a-f0-9]+:    0f 03 12                lsl    \(%edx\),%edx
+[      ]*[a-f0-9]+:    0f 00 da                ltr    %dx
+[      ]*[a-f0-9]+:    0f 00 da                ltr    %dx
+[      ]*[a-f0-9]+:    0f 00 1a                ltr    \(%edx\)
+[      ]*[a-f0-9]+:    0f 00 1a                ltr    \(%edx\)
+[      ]*[a-f0-9]+:    0f 00 e2                verr   %dx
+[      ]*[a-f0-9]+:    0f 00 e2                verr   %dx
+[      ]*[a-f0-9]+:    0f 00 22                verr   \(%edx\)
+[      ]*[a-f0-9]+:    0f 00 22                verr   \(%edx\)
+[      ]*[a-f0-9]+:    0f 00 ea                verw   %dx
+[      ]*[a-f0-9]+:    0f 00 ea                verw   %dx
+[      ]*[a-f0-9]+:    0f 00 2a                verw   \(%edx\)
+[      ]*[a-f0-9]+:    0f 00 2a                verw   \(%edx\)
 #pass
index a42eafb89581ffc3544accd12c77decb5b41101e..110debbf5564e0d8e298203ef4cfd4ebb45f4fba 100644 (file)
@@ -68,25 +68,75 @@ movzx eax, word ptr [eax]
 movnti dword ptr [eax], eax
 
        .att_syntax
+       arpl   %cx,%dx
+       arpl   %ecx,%edx
+       arpl   %cx,(%edx)
+       arpl   %ecx,(%edx)
+
        lar    %dx,%dx
        lar    %dx,%edx
        lar    %edx,%edx
        lar    (%edx),%dx
        lar    (%edx),%edx
+
+       lldt   %dx
+       lldt   %edx
+       lldt   (%edx)
+
        lsl    %dx,%dx
        lsl    %dx,%edx
        lsl    %edx,%edx
        lsl    (%edx),%dx
        lsl    (%edx),%edx
 
+       ltr    %dx
+       ltr    %edx
+       ltr    (%edx)
+
+       verr   %dx
+       verr   %edx
+       verr   (%edx)
+
+       verw   %dx
+       verw   %edx
+       verw   (%edx)
+
        .intel_syntax noprefix
+       arpl   cx,dx
+       arpl   ecx,edx
+       arpl   [ecx],dx
+       arpl   [ecx],edx
+       arpl   word ptr [ecx],dx
+       arpl   word ptr [ecx],edx
+
        lar    dx,dx
        lar    edx,dx
        lar    edx,edx
        lar    dx,WORD PTR [edx]
        lar    edx,WORD PTR [edx]
+
+       lldt   dx
+       lldt   edx
+       lldt   [edx]
+       lldt   word ptr [edx]
+
        lsl    dx,dx
        lsl    edx,dx
        lsl    edx,edx
        lsl    dx,WORD PTR [edx]
        lsl    edx,WORD PTR [edx]
+
+       ltr    dx
+       ltr    edx
+       ltr    [edx]
+       ltr    word ptr [edx]
+
+       verr   dx
+       verr   edx
+       verr   [edx]
+       verr   word ptr [edx]
+
+       verw   dx
+       verw   edx
+       verw   [edx]
+       verw   word ptr [edx]
index bd99ce0db51045437e77824b43fef7cb096d9ef4..6b74ae68f96ee862e80654d419d4ce2e7077dca3 100644 (file)
@@ -266,6 +266,10 @@ Disassembly of section .text:
 [      ]*[a-f0-9]+:    66 0f 02 12             lar    dx,WORD PTR \[rdx\]
 [      ]*[a-f0-9]+:    0f 02 12                lar    edx,WORD PTR \[rdx\]
 [      ]*[a-f0-9]+:    0f 02 12                lar    edx,WORD PTR \[rdx\]
+[      ]*[a-f0-9]+:    0f 00 d2                lldt   dx
+[      ]*[a-f0-9]+:    0f 00 d2                lldt   dx
+[      ]*[a-f0-9]+:    0f 00 d2                lldt   dx
+[      ]*[a-f0-9]+:    0f 00 12                lldt   (WORD PTR )?\[rdx\]
 [      ]*[a-f0-9]+:    66 0f 03 d2             lsl    dx,dx
 [      ]*[a-f0-9]+:    0f 03 d2                lsl    edx,edx
 [      ]*[a-f0-9]+:    0f 03 d2                lsl    edx,edx
@@ -274,6 +278,18 @@ Disassembly of section .text:
 [      ]*[a-f0-9]+:    66 0f 03 12             lsl    dx,WORD PTR \[rdx\]
 [      ]*[a-f0-9]+:    0f 03 12                lsl    edx,WORD PTR \[rdx\]
 [      ]*[a-f0-9]+:    0f 03 12                lsl    edx,WORD PTR \[rdx\]
+[      ]*[a-f0-9]+:    0f 00 da                ltr    dx
+[      ]*[a-f0-9]+:    0f 00 da                ltr    dx
+[      ]*[a-f0-9]+:    0f 00 da                ltr    dx
+[      ]*[a-f0-9]+:    0f 00 1a                ltr    (WORD PTR )?\[rdx\]
+[      ]*[a-f0-9]+:    0f 00 e2                verr   dx
+[      ]*[a-f0-9]+:    0f 00 e2                verr   dx
+[      ]*[a-f0-9]+:    0f 00 e2                verr   dx
+[      ]*[a-f0-9]+:    0f 00 22                verr   (WORD PTR )?\[rdx\]
+[      ]*[a-f0-9]+:    0f 00 ea                verw   dx
+[      ]*[a-f0-9]+:    0f 00 ea                verw   dx
+[      ]*[a-f0-9]+:    0f 00 ea                verw   dx
+[      ]*[a-f0-9]+:    0f 00 2a                verw   (WORD PTR )?\[rdx\]
 [      ]*[a-f0-9]+:    66 0f 02 d2             lar    dx,dx
 [      ]*[a-f0-9]+:    0f 02 d2                lar    edx,edx
 [      ]*[a-f0-9]+:    0f 02 d2                lar    edx,edx
@@ -282,6 +298,11 @@ Disassembly of section .text:
 [      ]*[a-f0-9]+:    66 0f 02 12             lar    dx,WORD PTR \[rdx\]
 [      ]*[a-f0-9]+:    0f 02 12                lar    edx,WORD PTR \[rdx\]
 [      ]*[a-f0-9]+:    0f 02 12                lar    edx,WORD PTR \[rdx\]
+[      ]*[a-f0-9]+:    0f 00 d2                lldt   dx
+[      ]*[a-f0-9]+:    0f 00 d2                lldt   dx
+[      ]*[a-f0-9]+:    0f 00 d2                lldt   dx
+[      ]*[a-f0-9]+:    0f 00 12                lldt   (WORD PTR )?\[rdx\]
+[      ]*[a-f0-9]+:    0f 00 12                lldt   (WORD PTR )?\[rdx\]
 [      ]*[a-f0-9]+:    66 0f 03 d2             lsl    dx,dx
 [      ]*[a-f0-9]+:    0f 03 d2                lsl    edx,edx
 [      ]*[a-f0-9]+:    0f 03 d2                lsl    edx,edx
@@ -290,4 +311,19 @@ Disassembly of section .text:
 [      ]*[a-f0-9]+:    66 0f 03 12             lsl    dx,WORD PTR \[rdx\]
 [      ]*[a-f0-9]+:    0f 03 12                lsl    edx,WORD PTR \[rdx\]
 [      ]*[a-f0-9]+:    0f 03 12                lsl    edx,WORD PTR \[rdx\]
+[      ]*[a-f0-9]+:    0f 00 da                ltr    dx
+[      ]*[a-f0-9]+:    0f 00 da                ltr    dx
+[      ]*[a-f0-9]+:    0f 00 da                ltr    dx
+[      ]*[a-f0-9]+:    0f 00 1a                ltr    (WORD PTR )?\[rdx\]
+[      ]*[a-f0-9]+:    0f 00 1a                ltr    (WORD PTR )?\[rdx\]
+[      ]*[a-f0-9]+:    0f 00 e2                verr   dx
+[      ]*[a-f0-9]+:    0f 00 e2                verr   dx
+[      ]*[a-f0-9]+:    0f 00 e2                verr   dx
+[      ]*[a-f0-9]+:    0f 00 22                verr   (WORD PTR )?\[rdx\]
+[      ]*[a-f0-9]+:    0f 00 22                verr   (WORD PTR )?\[rdx\]
+[      ]*[a-f0-9]+:    0f 00 ea                verw   dx
+[      ]*[a-f0-9]+:    0f 00 ea                verw   dx
+[      ]*[a-f0-9]+:    0f 00 ea                verw   dx
+[      ]*[a-f0-9]+:    0f 00 2a                verw   (WORD PTR )?\[rdx\]
+[      ]*[a-f0-9]+:    0f 00 2a                verw   (WORD PTR )?\[rdx\]
 #pass
index 8897bb30d03e4f84a7758aed93fbc5f71fb52fab..cdfe12ebdb7c15cc173ed175d6f0efca28792c8b 100644 (file)
@@ -266,6 +266,10 @@ Disassembly of section .text:
 [      ]*[a-f0-9]+:    66 0f 02 12             lar    \(%rdx\),%dx
 [      ]*[a-f0-9]+:    0f 02 12                lar    \(%rdx\),%edx
 [      ]*[a-f0-9]+:    0f 02 12                lar    \(%rdx\),%edx
+[      ]*[a-f0-9]+:    0f 00 d2                lldt   %dx
+[      ]*[a-f0-9]+:    0f 00 d2                lldt   %dx
+[      ]*[a-f0-9]+:    0f 00 d2                lldt   %dx
+[      ]*[a-f0-9]+:    0f 00 12                lldt   \(%rdx\)
 [      ]*[a-f0-9]+:    66 0f 03 d2             lsl    %dx,%dx
 [      ]*[a-f0-9]+:    0f 03 d2                lsl    %edx,%edx
 [      ]*[a-f0-9]+:    0f 03 d2                lsl    %edx,%edx
@@ -274,6 +278,18 @@ Disassembly of section .text:
 [      ]*[a-f0-9]+:    66 0f 03 12             lsl    \(%rdx\),%dx
 [      ]*[a-f0-9]+:    0f 03 12                lsl    \(%rdx\),%edx
 [      ]*[a-f0-9]+:    0f 03 12                lsl    \(%rdx\),%edx
+[      ]*[a-f0-9]+:    0f 00 da                ltr    %dx
+[      ]*[a-f0-9]+:    0f 00 da                ltr    %dx
+[      ]*[a-f0-9]+:    0f 00 da                ltr    %dx
+[      ]*[a-f0-9]+:    0f 00 1a                ltr    \(%rdx\)
+[      ]*[a-f0-9]+:    0f 00 e2                verr   %dx
+[      ]*[a-f0-9]+:    0f 00 e2                verr   %dx
+[      ]*[a-f0-9]+:    0f 00 e2                verr   %dx
+[      ]*[a-f0-9]+:    0f 00 22                verr   \(%rdx\)
+[      ]*[a-f0-9]+:    0f 00 ea                verw   %dx
+[      ]*[a-f0-9]+:    0f 00 ea                verw   %dx
+[      ]*[a-f0-9]+:    0f 00 ea                verw   %dx
+[      ]*[a-f0-9]+:    0f 00 2a                verw   \(%rdx\)
 [      ]*[a-f0-9]+:    66 0f 02 d2             lar    %dx,%dx
 [      ]*[a-f0-9]+:    0f 02 d2                lar    %edx,%edx
 [      ]*[a-f0-9]+:    0f 02 d2                lar    %edx,%edx
@@ -282,6 +298,11 @@ Disassembly of section .text:
 [      ]*[a-f0-9]+:    66 0f 02 12             lar    \(%rdx\),%dx
 [      ]*[a-f0-9]+:    0f 02 12                lar    \(%rdx\),%edx
 [      ]*[a-f0-9]+:    0f 02 12                lar    \(%rdx\),%edx
+[      ]*[a-f0-9]+:    0f 00 d2                lldt   %dx
+[      ]*[a-f0-9]+:    0f 00 d2                lldt   %dx
+[      ]*[a-f0-9]+:    0f 00 d2                lldt   %dx
+[      ]*[a-f0-9]+:    0f 00 12                lldt   \(%rdx\)
+[      ]*[a-f0-9]+:    0f 00 12                lldt   \(%rdx\)
 [      ]*[a-f0-9]+:    66 0f 03 d2             lsl    %dx,%dx
 [      ]*[a-f0-9]+:    0f 03 d2                lsl    %edx,%edx
 [      ]*[a-f0-9]+:    0f 03 d2                lsl    %edx,%edx
@@ -290,4 +311,19 @@ Disassembly of section .text:
 [      ]*[a-f0-9]+:    66 0f 03 12             lsl    \(%rdx\),%dx
 [      ]*[a-f0-9]+:    0f 03 12                lsl    \(%rdx\),%edx
 [      ]*[a-f0-9]+:    0f 03 12                lsl    \(%rdx\),%edx
+[      ]*[a-f0-9]+:    0f 00 da                ltr    %dx
+[      ]*[a-f0-9]+:    0f 00 da                ltr    %dx
+[      ]*[a-f0-9]+:    0f 00 da                ltr    %dx
+[      ]*[a-f0-9]+:    0f 00 1a                ltr    \(%rdx\)
+[      ]*[a-f0-9]+:    0f 00 1a                ltr    \(%rdx\)
+[      ]*[a-f0-9]+:    0f 00 e2                verr   %dx
+[      ]*[a-f0-9]+:    0f 00 e2                verr   %dx
+[      ]*[a-f0-9]+:    0f 00 e2                verr   %dx
+[      ]*[a-f0-9]+:    0f 00 22                verr   \(%rdx\)
+[      ]*[a-f0-9]+:    0f 00 22                verr   \(%rdx\)
+[      ]*[a-f0-9]+:    0f 00 ea                verw   %dx
+[      ]*[a-f0-9]+:    0f 00 ea                verw   %dx
+[      ]*[a-f0-9]+:    0f 00 ea                verw   %dx
+[      ]*[a-f0-9]+:    0f 00 2a                verw   \(%rdx\)
+[      ]*[a-f0-9]+:    0f 00 2a                verw   \(%rdx\)
 #pass
index 7f58e1617700100afa197053598143bf32cd358a..d9d19deea8ef7a20c7568e4da461f5e41dae9319 100644 (file)
@@ -320,6 +320,12 @@ mov tr0, rcx
        lar    (%rdx),%dx
        lar    (%rdx),%edx
        lar    (%rdx),%rdx
+
+       lldt   %dx
+       lldt   %edx
+       lldt   %rdx
+       lldt   (%rdx)
+
        lsl    %dx,%dx
        lsl    %dx,%edx
        lsl    %dx,%rdx
@@ -329,6 +335,21 @@ mov tr0, rcx
        lsl    (%rdx),%edx
        lsl    (%rdx),%rdx
 
+       ltr    %dx
+       ltr    %edx
+       ltr    %rdx
+       ltr    (%rdx)
+
+       verr   %dx
+       verr   %edx
+       verr   %rdx
+       verr   (%rdx)
+
+       verw   %dx
+       verw   %edx
+       verw   %rdx
+       verw   (%rdx)
+
        .intel_syntax noprefix
        lar    dx,dx
        lar    edx,dx
@@ -338,6 +359,13 @@ mov tr0, rcx
        lar    dx,WORD PTR [rdx]
        lar    edx,WORD PTR [rdx]
        lar    rdx,WORD PTR [rdx]
+
+       lldt   dx
+       lldt   edx
+       lldt   rdx
+       lldt   [rdx]
+       lldt   word ptr [rdx]
+
        lsl    dx,dx
        lsl    edx,dx
        lsl    rdx,dx
@@ -346,3 +374,21 @@ mov tr0, rcx
        lsl    dx,WORD PTR [rdx]
        lsl    edx,WORD PTR [rdx]
        lsl    rdx,WORD PTR [rdx]
+
+       ltr    dx
+       ltr    edx
+       ltr    rdx
+       ltr    [rdx]
+       ltr    word ptr [rdx]
+
+       verr   dx
+       verr   edx
+       verr   rdx
+       verr   [rdx]
+       verr   word ptr [rdx]
+
+       verw   dx
+       verw   edx
+       verw   rdx
+       verw   [rdx]
+       verw   word ptr [rdx]
index 252b4da5ce0958f4d6bf24828939ab93b4a896be..a9fb1196dbfd64ce20a4c0950c49024f6ca773a2 100644 (file)
@@ -566,18 +566,21 @@ nop, 0xf1f/0, Nop, Modrm|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|U
 nop, 0x90, 0, NoSuf|RepPrefixOk, {}
 
 // Protection control.
-arpl, 0x63, i286|No64, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Reg16, Reg16|Word|Unspecified|BaseIndex }
+arpl, 0x63, i286|No64, RegMem|CheckOperandSize|IgnoreSize|No_bSuf|No_sSuf|No_qSuf, { Reg16|Reg32, Reg16|Reg32 }
+arpl, 0x63, i286|No64, Modrm|IgnoreSize|No_bSuf|No_sSuf|No_qSuf, { Reg16|Reg32, Word|Unspecified|BaseIndex }
 lar, 0xf02, i286, Modrm|CheckOperandSize|No_bSuf|No_sSuf|NoRex64, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 }
 lar, 0xf02, i286, Modrm|No_bSuf|No_sSuf|NoRex64, { Reg16|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 lgdt, 0xf01/2, i286|No64, Modrm|No_bSuf|No_sSuf|No_qSuf, { Fword|Unspecified|BaseIndex }
 lgdt, 0xf01/2, x64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|NoRex64, { Tbyte|Unspecified|BaseIndex }
 lidt, 0xf01/3, i286|No64, Modrm|No_bSuf|No_sSuf|No_qSuf, { Fword|Unspecified|BaseIndex }
 lidt, 0xf01/3, x64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|NoRex64, { Tbyte|Unspecified|BaseIndex }
-lldt, 0xf00/2, i286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Reg16|Word|Unspecified|BaseIndex }
+lldt, 0xf00/2, i286, Modrm|IgnoreSize|No_bSuf|No_sSuf|NoRex64, { Reg16|Reg32|Reg64 }
+lldt, 0xf00/2, i286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Word|Unspecified|BaseIndex }
 lmsw, 0xf01/6, i286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Reg16|Word|Unspecified|BaseIndex }
 lsl, 0xf03, i286, Modrm|CheckOperandSize|No_bSuf|No_sSuf|NoRex64, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 }
 lsl, 0xf03, i286, Modrm|No_bSuf|No_sSuf|NoRex64, { Reg16|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
-ltr, 0xf00/3, i286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Reg16|Word|Unspecified|BaseIndex }
+ltr, 0xf00/3, i286, Modrm|IgnoreSize|No_bSuf|No_sSuf|NoRex64, { Reg16|Reg32|Reg64 }
+ltr, 0xf00/3, i286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Word|Unspecified|BaseIndex }
 
 sgdt, 0xf01/0, i286|No64, Modrm|No_bSuf|No_sSuf|No_qSuf, { Fword|Unspecified|BaseIndex }
 sgdt, 0xf01/0, x64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|NoRex64, { Tbyte|Unspecified|BaseIndex }
@@ -590,8 +593,10 @@ smsw, 0xf01/4, i286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Word|Un
 str, 0xf00/1, i286, Modrm|No_bSuf|No_sSuf|NoRex64, { Reg16|Reg32|Reg64 }
 str, 0xf00/1, i286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Word|Unspecified|BaseIndex }
 
-verr, 0xf00/4, i286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Reg16|Word|Unspecified|BaseIndex }
-verw, 0xf00/5, i286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Reg16|Word|Unspecified|BaseIndex }
+verr, 0xf00/4, i286, Modrm|IgnoreSize|No_bSuf|No_sSuf|NoRex64, { Reg16|Reg32|Reg64 }
+verr, 0xf00/4, i286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Word|Unspecified|BaseIndex }
+verw, 0xf00/5, i286, Modrm|IgnoreSize|No_bSuf|No_sSuf|NoRex64, { Reg16|Reg32|Reg64 }
+verw, 0xf00/5, i286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf, { Word|Unspecified|BaseIndex }
 
 // Floating point instructions.
 
index a1b8bf066068ff1a24b461b9af0e92853c06f5cd..ed0d330de587910a357d6d3fd3dd50a32f9516bc 100644 (file)
@@ -4549,7 +4549,21 @@ 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 } } } },
   { MN_arpl, 0x63, 2, SPACE_BASE, None,
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 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, 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, 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, 1, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+         0, 0, 0, 0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+         0, 0, 0, 0, 0, 0 } } } },
+  { MN_arpl, 0x63, 2, SPACE_BASE, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 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, 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,
@@ -4558,9 +4572,9 @@ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
          0, 0, 0, 0, 0, 0 } },
-      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
          0, 0, 0, 0, 1, 0 } } } },
   { MN_lar, 0x02, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -4638,6 +4652,18 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1,
          0, 0, 0, 0, 1, 0 } } } },
+  { MN_lldt, 0x00, 1, SPACE_0F, 2,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+         0, 0, 0, 0, 0, 0 } } } },
   { MN_lldt, 0x00, 1, SPACE_0F, 2,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 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 },
@@ -4648,7 +4674,7 @@ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
          0, 0, 0, 0, 1, 0 } } } },
   { MN_lmsw, 0x01, 1, SPACE_0F, 6,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -4690,6 +4716,18 @@ static const insn_template i386_optab[] =
          0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
          0, 0, 0, 0, 0, 0 } } } },
+  { MN_ltr, 0x00, 1, SPACE_0F, 3,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+         0, 0, 0, 0, 0, 0 } } } },
   { MN_ltr, 0x00, 1, SPACE_0F, 3,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 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 },
@@ -4700,7 +4738,7 @@ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
          0, 0, 0, 0, 1, 0 } } } },
   { MN_sgdt, 0x01, 1, SPACE_0F, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
@@ -4822,6 +4860,18 @@ 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, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
          0, 0, 0, 0, 1, 0 } } } },
+  { MN_verr, 0x00, 1, SPACE_0F, 4,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+         0, 0, 0, 0, 0, 0 } } } },
   { MN_verr, 0x00, 1, SPACE_0F, 4,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 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 },
@@ -4832,8 +4882,20 @@ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
          0, 0, 0, 0, 1, 0 } } } },
+  { MN_verw, 0x00, 1, SPACE_0F, 5,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+         0, 0, 0, 0, 0, 0 } } } },
   { MN_verw, 0x00, 1, SPACE_0F, 5,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 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 },
@@ -4844,7 +4906,7 @@ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
          0, 0, 0, 0, 1, 0 } } } },
   { MN_fld, 0xd9, 1, SPACE_BASE, 0,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -56008,73 +56070,68 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 349,
   i386_optab + 350,
   i386_optab + 352,
-  i386_optab + 353,
-  i386_optab + 355,
-  i386_optab + 357,
-  i386_optab + 359,
+  i386_optab + 354,
+  i386_optab + 356,
+  i386_optab + 358,
   i386_optab + 360,
-  i386_optab + 361,
+  i386_optab + 362,
   i386_optab + 363,
-  i386_optab + 364,
-  i386_optab + 366,
-  i386_optab + 368,
-  i386_optab + 370,
-  i386_optab + 372,
-  i386_optab + 374,
+  i386_optab + 365,
+  i386_optab + 367,
+  i386_optab + 369,
+  i386_optab + 371,
+  i386_optab + 373,
   i386_optab + 375,
-  i386_optab + 376,
-  i386_optab + 380,
-  i386_optab + 382,
-  i386_optab + 383,
-  i386_optab + 384,
+  i386_optab + 377,
+  i386_optab + 379,
+  i386_optab + 381,
   i386_optab + 385,
+  i386_optab + 387,
   i386_optab + 388,
   i386_optab + 389,
+  i386_optab + 390,
   i386_optab + 393,
-  i386_optab + 395,
-  i386_optab + 396,
-  i386_optab + 397,
+  i386_optab + 394,
   i386_optab + 398,
   i386_optab + 400,
-  i386_optab + 404,
+  i386_optab + 401,
+  i386_optab + 402,
+  i386_optab + 403,
   i386_optab + 405,
   i386_optab + 409,
   i386_optab + 410,
-  i386_optab + 411,
-  i386_optab + 413,
+  i386_optab + 414,
   i386_optab + 415,
   i386_optab + 416,
-  i386_optab + 417,
   i386_optab + 418,
-  i386_optab + 419,
   i386_optab + 420,
   i386_optab + 421,
   i386_optab + 422,
   i386_optab + 423,
   i386_optab + 424,
   i386_optab + 425,
+  i386_optab + 426,
+  i386_optab + 427,
+  i386_optab + 428,
   i386_optab + 429,
   i386_optab + 430,
-  i386_optab + 433,
+  i386_optab + 434,
+  i386_optab + 435,
   i386_optab + 438,
-  i386_optab + 439,
-  i386_optab + 445,
+  i386_optab + 443,
+  i386_optab + 444,
   i386_optab + 450,
-  i386_optab + 451,
-  i386_optab + 457,
-  i386_optab + 461,
+  i386_optab + 455,
+  i386_optab + 456,
   i386_optab + 462,
-  i386_optab + 465,
+  i386_optab + 466,
+  i386_optab + 467,
   i386_optab + 470,
-  i386_optab + 471,
-  i386_optab + 477,
+  i386_optab + 475,
+  i386_optab + 476,
   i386_optab + 482,
-  i386_optab + 483,
-  i386_optab + 489,
-  i386_optab + 490,
-  i386_optab + 491,
-  i386_optab + 492,
-  i386_optab + 493,
+  i386_optab + 487,
+  i386_optab + 488,
   i386_optab + 494,
   i386_optab + 495,
   i386_optab + 496,
@@ -56094,12 +56151,12 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 510,
   i386_optab + 511,
   i386_optab + 512,
+  i386_optab + 513,
+  i386_optab + 514,
   i386_optab + 515,
-  i386_optab + 518,
-  i386_optab + 519,
+  i386_optab + 516,
+  i386_optab + 517,
   i386_optab + 520,
-  i386_optab + 521,
-  i386_optab + 522,
   i386_optab + 523,
   i386_optab + 524,
   i386_optab + 525,
@@ -56191,12 +56248,12 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 611,
   i386_optab + 612,
   i386_optab + 613,
+  i386_optab + 614,
   i386_optab + 615,
+  i386_optab + 616,
   i386_optab + 617,
   i386_optab + 618,
-  i386_optab + 619,
   i386_optab + 620,
-  i386_optab + 621,
   i386_optab + 622,
   i386_optab + 623,
   i386_optab + 624,
@@ -56245,706 +56302,710 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 667,
   i386_optab + 668,
   i386_optab + 669,
+  i386_optab + 670,
+  i386_optab + 671,
   i386_optab + 672,
-  i386_optab + 675,
-  i386_optab + 678,
-  i386_optab + 681,
-  i386_optab + 684,
-  i386_optab + 687,
-  i386_optab + 688,
+  i386_optab + 673,
+  i386_optab + 674,
+  i386_optab + 677,
+  i386_optab + 680,
+  i386_optab + 683,
+  i386_optab + 686,
   i386_optab + 689,
-  i386_optab + 690,
-  i386_optab + 691,
   i386_optab + 692,
   i386_optab + 693,
-  i386_optab + 699,
-  i386_optab + 707,
-  i386_optab + 710,
-  i386_optab + 713,
-  i386_optab + 716,
-  i386_optab + 719,
-  i386_optab + 722,
-  i386_optab + 725,
-  i386_optab + 728,
-  i386_optab + 731,
-  i386_optab + 734,
-  i386_optab + 737,
-  i386_optab + 740,
-  i386_optab + 743,
-  i386_optab + 746,
-  i386_optab + 749,
-  i386_optab + 752,
-  i386_optab + 755,
-  i386_optab + 758,
-  i386_optab + 761,
-  i386_optab + 764,
-  i386_optab + 767,
-  i386_optab + 770,
-  i386_optab + 773,
-  i386_optab + 776,
-  i386_optab + 782,
-  i386_optab + 788,
-  i386_optab + 794,
-  i386_optab + 800,
-  i386_optab + 806,
-  i386_optab + 812,
-  i386_optab + 818,
-  i386_optab + 824,
-  i386_optab + 827,
-  i386_optab + 830,
-  i386_optab + 833,
-  i386_optab + 836,
-  i386_optab + 839,
-  i386_optab + 842,
-  i386_optab + 845,
-  i386_optab + 848,
-  i386_optab + 851,
-  i386_optab + 854,
-  i386_optab + 857,
-  i386_optab + 860,
-  i386_optab + 863,
-  i386_optab + 866,
-  i386_optab + 869,
+  i386_optab + 694,
+  i386_optab + 695,
+  i386_optab + 696,
+  i386_optab + 697,
+  i386_optab + 698,
+  i386_optab + 704,
+  i386_optab + 712,
+  i386_optab + 715,
+  i386_optab + 718,
+  i386_optab + 721,
+  i386_optab + 724,
+  i386_optab + 727,
+  i386_optab + 730,
+  i386_optab + 733,
+  i386_optab + 736,
+  i386_optab + 739,
+  i386_optab + 742,
+  i386_optab + 745,
+  i386_optab + 748,
+  i386_optab + 751,
+  i386_optab + 754,
+  i386_optab + 757,
+  i386_optab + 760,
+  i386_optab + 763,
+  i386_optab + 766,
+  i386_optab + 769,
+  i386_optab + 772,
+  i386_optab + 775,
+  i386_optab + 778,
+  i386_optab + 781,
+  i386_optab + 787,
+  i386_optab + 793,
+  i386_optab + 799,
+  i386_optab + 805,
+  i386_optab + 811,
+  i386_optab + 817,
+  i386_optab + 823,
+  i386_optab + 829,
+  i386_optab + 832,
+  i386_optab + 835,
+  i386_optab + 838,
+  i386_optab + 841,
+  i386_optab + 844,
+  i386_optab + 847,
+  i386_optab + 850,
+  i386_optab + 853,
+  i386_optab + 856,
+  i386_optab + 859,
+  i386_optab + 862,
+  i386_optab + 865,
+  i386_optab + 868,
   i386_optab + 871,
-  i386_optab + 873,
-  i386_optab + 875,
-  i386_optab + 877,
-  i386_optab + 879,
-  i386_optab + 881,
-  i386_optab + 883,
-  i386_optab + 885,
-  i386_optab + 887,
-  i386_optab + 889,
-  i386_optab + 891,
-  i386_optab + 893,
-  i386_optab + 895,
-  i386_optab + 897,
-  i386_optab + 899,
-  i386_optab + 901,
-  i386_optab + 903,
-  i386_optab + 905,
-  i386_optab + 907,
-  i386_optab + 909,
-  i386_optab + 911,
-  i386_optab + 913,
-  i386_optab + 915,
+  i386_optab + 874,
+  i386_optab + 876,
+  i386_optab + 878,
+  i386_optab + 880,
+  i386_optab + 882,
+  i386_optab + 884,
+  i386_optab + 886,
+  i386_optab + 888,
+  i386_optab + 890,
+  i386_optab + 892,
+  i386_optab + 894,
+  i386_optab + 896,
+  i386_optab + 898,
+  i386_optab + 900,
+  i386_optab + 902,
+  i386_optab + 904,
+  i386_optab + 906,
+  i386_optab + 908,
+  i386_optab + 910,
+  i386_optab + 912,
+  i386_optab + 914,
   i386_optab + 916,
-  i386_optab + 917,
-  i386_optab + 923,
-  i386_optab + 925,
-  i386_optab + 926,
+  i386_optab + 918,
+  i386_optab + 920,
+  i386_optab + 921,
+  i386_optab + 922,
   i386_optab + 928,
   i386_optab + 930,
-  i386_optab + 932,
-  i386_optab + 934,
+  i386_optab + 931,
+  i386_optab + 933,
   i386_optab + 935,
   i386_optab + 937,
   i386_optab + 939,
-  i386_optab + 941,
-  i386_optab + 943,
-  i386_optab + 945,
-  i386_optab + 947,
+  i386_optab + 940,
+  i386_optab + 942,
+  i386_optab + 944,
+  i386_optab + 946,
+  i386_optab + 948,
   i386_optab + 950,
   i386_optab + 952,
   i386_optab + 955,
   i386_optab + 957,
-  i386_optab + 959,
   i386_optab + 960,
   i386_optab + 962,
+  i386_optab + 964,
   i386_optab + 965,
   i386_optab + 967,
-  i386_optab + 969,
-  i386_optab + 971,
-  i386_optab + 973,
+  i386_optab + 970,
+  i386_optab + 972,
+  i386_optab + 974,
   i386_optab + 976,
-  i386_optab + 979,
-  i386_optab + 986,
-  i386_optab + 992,
-  i386_optab + 995,
-  i386_optab + 998,
-  i386_optab + 1001,
-  i386_optab + 1004,
-  i386_optab + 1007,
-  i386_optab + 1010,
-  i386_optab + 1011,
+  i386_optab + 978,
+  i386_optab + 981,
+  i386_optab + 984,
+  i386_optab + 991,
+  i386_optab + 997,
+  i386_optab + 1000,
+  i386_optab + 1003,
+  i386_optab + 1006,
+  i386_optab + 1009,
   i386_optab + 1012,
-  i386_optab + 1013,
-  i386_optab + 1014,
+  i386_optab + 1015,
+  i386_optab + 1016,
   i386_optab + 1017,
   i386_optab + 1018,
-  i386_optab + 1020,
+  i386_optab + 1019,
   i386_optab + 1022,
-  i386_optab + 1024,
-  i386_optab + 1026,
+  i386_optab + 1023,
+  i386_optab + 1025,
   i386_optab + 1027,
   i386_optab + 1029,
   i386_optab + 1031,
-  i386_optab + 1033,
-  i386_optab + 1035,
-  i386_optab + 1037,
-  i386_optab + 1039,
-  i386_optab + 1041,
-  i386_optab + 1043,
-  i386_optab + 1045,
-  i386_optab + 1047,
-  i386_optab + 1049,
-  i386_optab + 1051,
-  i386_optab + 1053,
-  i386_optab + 1055,
-  i386_optab + 1057,
-  i386_optab + 1059,
-  i386_optab + 1061,
-  i386_optab + 1063,
-  i386_optab + 1065,
-  i386_optab + 1067,
-  i386_optab + 1069,
-  i386_optab + 1071,
-  i386_optab + 1073,
-  i386_optab + 1075,
-  i386_optab + 1077,
-  i386_optab + 1079,
-  i386_optab + 1081,
-  i386_optab + 1083,
-  i386_optab + 1085,
-  i386_optab + 1087,
-  i386_optab + 1089,
-  i386_optab + 1091,
-  i386_optab + 1093,
+  i386_optab + 1032,
+  i386_optab + 1034,
+  i386_optab + 1036,
+  i386_optab + 1038,
+  i386_optab + 1040,
+  i386_optab + 1042,
+  i386_optab + 1044,
+  i386_optab + 1046,
+  i386_optab + 1048,
+  i386_optab + 1050,
+  i386_optab + 1052,
+  i386_optab + 1054,
+  i386_optab + 1056,
+  i386_optab + 1058,
+  i386_optab + 1060,
+  i386_optab + 1062,
+  i386_optab + 1064,
+  i386_optab + 1066,
+  i386_optab + 1068,
+  i386_optab + 1070,
+  i386_optab + 1072,
+  i386_optab + 1074,
+  i386_optab + 1076,
+  i386_optab + 1078,
+  i386_optab + 1080,
+  i386_optab + 1082,
+  i386_optab + 1084,
+  i386_optab + 1086,
+  i386_optab + 1088,
+  i386_optab + 1090,
+  i386_optab + 1092,
+  i386_optab + 1094,
   i386_optab + 1096,
-  i386_optab + 1102,
-  i386_optab + 1104,
-  i386_optab + 1106,
-  i386_optab + 1108,
-  i386_optab + 1110,
-  i386_optab + 1112,
-  i386_optab + 1114,
-  i386_optab + 1116,
+  i386_optab + 1098,
+  i386_optab + 1101,
+  i386_optab + 1107,
+  i386_optab + 1109,
+  i386_optab + 1111,
+  i386_optab + 1113,
+  i386_optab + 1115,
+  i386_optab + 1117,
   i386_optab + 1119,
-  i386_optab + 1122,
+  i386_optab + 1121,
   i386_optab + 1124,
-  i386_optab + 1126,
+  i386_optab + 1127,
   i386_optab + 1129,
   i386_optab + 1131,
-  i386_optab + 1133,
-  i386_optab + 1135,
-  i386_optab + 1137,
-  i386_optab + 1139,
-  i386_optab + 1141,
-  i386_optab + 1143,
-  i386_optab + 1145,
-  i386_optab + 1147,
-  i386_optab + 1149,
-  i386_optab + 1151,
-  i386_optab + 1153,
-  i386_optab + 1155,
-  i386_optab + 1157,
-  i386_optab + 1159,
-  i386_optab + 1161,
+  i386_optab + 1134,
+  i386_optab + 1136,
+  i386_optab + 1138,
+  i386_optab + 1140,
+  i386_optab + 1142,
+  i386_optab + 1144,
+  i386_optab + 1146,
+  i386_optab + 1148,
+  i386_optab + 1150,
+  i386_optab + 1152,
+  i386_optab + 1154,
+  i386_optab + 1156,
+  i386_optab + 1158,
+  i386_optab + 1160,
   i386_optab + 1162,
   i386_optab + 1164,
   i386_optab + 1166,
-  i386_optab + 1168,
-  i386_optab + 1170,
-  i386_optab + 1172,
-  i386_optab + 1174,
+  i386_optab + 1167,
+  i386_optab + 1169,
+  i386_optab + 1171,
+  i386_optab + 1173,
   i386_optab + 1175,
   i386_optab + 1177,
   i386_optab + 1179,
-  i386_optab + 1181,
-  i386_optab + 1183,
-  i386_optab + 1185,
-  i386_optab + 1187,
+  i386_optab + 1180,
+  i386_optab + 1182,
+  i386_optab + 1184,
+  i386_optab + 1186,
   i386_optab + 1188,
-  i386_optab + 1189,
+  i386_optab + 1190,
   i386_optab + 1192,
+  i386_optab + 1193,
   i386_optab + 1194,
-  i386_optab + 1196,
-  i386_optab + 1198,
-  i386_optab + 1200,
-  i386_optab + 1202,
-  i386_optab + 1204,
-  i386_optab + 1206,
-  i386_optab + 1208,
-  i386_optab + 1210,
-  i386_optab + 1212,
-  i386_optab + 1214,
-  i386_optab + 1216,
-  i386_optab + 1218,
-  i386_optab + 1220,
-  i386_optab + 1222,
-  i386_optab + 1224,
-  i386_optab + 1226,
-  i386_optab + 1228,
+  i386_optab + 1197,
+  i386_optab + 1199,
+  i386_optab + 1201,
+  i386_optab + 1203,
+  i386_optab + 1205,
+  i386_optab + 1207,
+  i386_optab + 1209,
+  i386_optab + 1211,
+  i386_optab + 1213,
+  i386_optab + 1215,
+  i386_optab + 1217,
+  i386_optab + 1219,
+  i386_optab + 1221,
+  i386_optab + 1223,
+  i386_optab + 1225,
+  i386_optab + 1227,
   i386_optab + 1229,
-  i386_optab + 1230,
+  i386_optab + 1231,
   i386_optab + 1233,
+  i386_optab + 1234,
   i386_optab + 1235,
-  i386_optab + 1236,
-  i386_optab + 1237,
   i386_optab + 1238,
-  i386_optab + 1239,
   i386_optab + 1240,
   i386_optab + 1241,
+  i386_optab + 1242,
   i386_optab + 1243,
+  i386_optab + 1244,
   i386_optab + 1245,
   i386_optab + 1246,
-  i386_optab + 1247,
   i386_optab + 1248,
-  i386_optab + 1249,
+  i386_optab + 1250,
   i386_optab + 1251,
+  i386_optab + 1252,
   i386_optab + 1253,
-  i386_optab + 1255,
+  i386_optab + 1254,
+  i386_optab + 1256,
   i386_optab + 1258,
-  i386_optab + 1261,
-  i386_optab + 1264,
-  i386_optab + 1267,
-  i386_optab + 1270,
-  i386_optab + 1273,
-  i386_optab + 1276,
-  i386_optab + 1279,
-  i386_optab + 1282,
-  i386_optab + 1285,
-  i386_optab + 1288,
-  i386_optab + 1291,
-  i386_optab + 1294,
-  i386_optab + 1297,
-  i386_optab + 1300,
-  i386_optab + 1303,
+  i386_optab + 1260,
+  i386_optab + 1263,
+  i386_optab + 1266,
+  i386_optab + 1269,
+  i386_optab + 1272,
+  i386_optab + 1275,
+  i386_optab + 1278,
+  i386_optab + 1281,
+  i386_optab + 1284,
+  i386_optab + 1287,
+  i386_optab + 1290,
+  i386_optab + 1293,
+  i386_optab + 1296,
+  i386_optab + 1299,
+  i386_optab + 1302,
   i386_optab + 1305,
-  i386_optab + 1307,
-  i386_optab + 1311,
-  i386_optab + 1315,
-  i386_optab + 1317,
-  i386_optab + 1319,
-  i386_optab + 1323,
-  i386_optab + 1325,
-  i386_optab + 1327,
-  i386_optab + 1329,
-  i386_optab + 1331,
-  i386_optab + 1335,
-  i386_optab + 1337,
-  i386_optab + 1339,
-  i386_optab + 1343,
-  i386_optab + 1345,
-  i386_optab + 1347,
-  i386_optab + 1349,
-  i386_optab + 1353,
-  i386_optab + 1355,
-  i386_optab + 1357,
-  i386_optab + 1359,
-  i386_optab + 1361,
-  i386_optab + 1363,
-  i386_optab + 1365,
-  i386_optab + 1367,
-  i386_optab + 1369,
-  i386_optab + 1371,
-  i386_optab + 1373,
-  i386_optab + 1375,
-  i386_optab + 1377,
-  i386_optab + 1379,
-  i386_optab + 1381,
-  i386_optab + 1383,
-  i386_optab + 1385,
-  i386_optab + 1387,
-  i386_optab + 1389,
-  i386_optab + 1391,
-  i386_optab + 1393,
-  i386_optab + 1395,
-  i386_optab + 1397,
-  i386_optab + 1399,
-  i386_optab + 1401,
-  i386_optab + 1403,
-  i386_optab + 1405,
-  i386_optab + 1407,
-  i386_optab + 1409,
-  i386_optab + 1411,
-  i386_optab + 1413,
-  i386_optab + 1417,
-  i386_optab + 1421,
-  i386_optab + 1423,
-  i386_optab + 1425,
-  i386_optab + 1427,
+  i386_optab + 1308,
+  i386_optab + 1310,
+  i386_optab + 1312,
+  i386_optab + 1316,
+  i386_optab + 1320,
+  i386_optab + 1322,
+  i386_optab + 1324,
+  i386_optab + 1328,
+  i386_optab + 1330,
+  i386_optab + 1332,
+  i386_optab + 1334,
+  i386_optab + 1336,
+  i386_optab + 1340,
+  i386_optab + 1342,
+  i386_optab + 1344,
+  i386_optab + 1348,
+  i386_optab + 1350,
+  i386_optab + 1352,
+  i386_optab + 1354,
+  i386_optab + 1358,
+  i386_optab + 1360,
+  i386_optab + 1362,
+  i386_optab + 1364,
+  i386_optab + 1366,
+  i386_optab + 1368,
+  i386_optab + 1370,
+  i386_optab + 1372,
+  i386_optab + 1374,
+  i386_optab + 1376,
+  i386_optab + 1378,
+  i386_optab + 1380,
+  i386_optab + 1382,
+  i386_optab + 1384,
+  i386_optab + 1386,
+  i386_optab + 1388,
+  i386_optab + 1390,
+  i386_optab + 1392,
+  i386_optab + 1394,
+  i386_optab + 1396,
+  i386_optab + 1398,
+  i386_optab + 1400,
+  i386_optab + 1402,
+  i386_optab + 1404,
+  i386_optab + 1406,
+  i386_optab + 1408,
+  i386_optab + 1410,
+  i386_optab + 1412,
+  i386_optab + 1414,
+  i386_optab + 1416,
+  i386_optab + 1418,
+  i386_optab + 1422,
+  i386_optab + 1426,
   i386_optab + 1428,
-  i386_optab + 1429,
   i386_optab + 1430,
-  i386_optab + 1431,
   i386_optab + 1432,
   i386_optab + 1433,
   i386_optab + 1434,
   i386_optab + 1435,
+  i386_optab + 1436,
   i386_optab + 1437,
+  i386_optab + 1438,
   i386_optab + 1439,
-  i386_optab + 1441,
-  i386_optab + 1443,
-  i386_optab + 1445,
-  i386_optab + 1447,
+  i386_optab + 1440,
+  i386_optab + 1442,
+  i386_optab + 1444,
+  i386_optab + 1446,
+  i386_optab + 1448,
   i386_optab + 1450,
-  i386_optab + 1453,
-  i386_optab + 1456,
-  i386_optab + 1459,
+  i386_optab + 1452,
+  i386_optab + 1455,
+  i386_optab + 1458,
   i386_optab + 1461,
-  i386_optab + 1463,
-  i386_optab + 1465,
-  i386_optab + 1467,
-  i386_optab + 1469,
-  i386_optab + 1471,
-  i386_optab + 1473,
-  i386_optab + 1475,
-  i386_optab + 1477,
-  i386_optab + 1479,
-  i386_optab + 1481,
-  i386_optab + 1483,
+  i386_optab + 1464,
+  i386_optab + 1466,
+  i386_optab + 1468,
+  i386_optab + 1470,
+  i386_optab + 1472,
+  i386_optab + 1474,
+  i386_optab + 1476,
+  i386_optab + 1478,
+  i386_optab + 1480,
+  i386_optab + 1482,
   i386_optab + 1484,
-  i386_optab + 1485,
-  i386_optab + 1487,
+  i386_optab + 1486,
+  i386_optab + 1488,
   i386_optab + 1489,
-  i386_optab + 1491,
-  i386_optab + 1493,
+  i386_optab + 1490,
+  i386_optab + 1492,
   i386_optab + 1494,
-  i386_optab + 1495,
   i386_optab + 1496,
-  i386_optab + 1497,
   i386_optab + 1498,
+  i386_optab + 1499,
+  i386_optab + 1500,
   i386_optab + 1501,
-  i386_optab + 1504,
+  i386_optab + 1502,
+  i386_optab + 1503,
   i386_optab + 1506,
-  i386_optab + 1508,
-  i386_optab + 1510,
-  i386_optab + 1512,
-  i386_optab + 1514,
-  i386_optab + 1516,
-  i386_optab + 1518,
-  i386_optab + 1520,
-  i386_optab + 1522,
-  i386_optab + 1524,
-  i386_optab + 1526,
-  i386_optab + 1528,
-  i386_optab + 1530,
-  i386_optab + 1532,
-  i386_optab + 1534,
-  i386_optab + 1536,
-  i386_optab + 1538,
-  i386_optab + 1540,
-  i386_optab + 1542,
-  i386_optab + 1544,
-  i386_optab + 1546,
-  i386_optab + 1548,
-  i386_optab + 1550,
-  i386_optab + 1552,
-  i386_optab + 1554,
-  i386_optab + 1556,
-  i386_optab + 1558,
-  i386_optab + 1560,
-  i386_optab + 1562,
-  i386_optab + 1564,
-  i386_optab + 1566,
-  i386_optab + 1568,
-  i386_optab + 1570,
-  i386_optab + 1572,
-  i386_optab + 1574,
-  i386_optab + 1576,
-  i386_optab + 1578,
-  i386_optab + 1580,
-  i386_optab + 1582,
-  i386_optab + 1584,
-  i386_optab + 1586,
-  i386_optab + 1588,
-  i386_optab + 1590,
-  i386_optab + 1592,
-  i386_optab + 1594,
-  i386_optab + 1596,
-  i386_optab + 1598,
-  i386_optab + 1600,
-  i386_optab + 1602,
-  i386_optab + 1604,
-  i386_optab + 1606,
-  i386_optab + 1608,
-  i386_optab + 1610,
-  i386_optab + 1612,
-  i386_optab + 1614,
-  i386_optab + 1616,
-  i386_optab + 1618,
-  i386_optab + 1620,
-  i386_optab + 1622,
-  i386_optab + 1624,
-  i386_optab + 1626,
-  i386_optab + 1628,
-  i386_optab + 1630,
-  i386_optab + 1632,
-  i386_optab + 1634,
-  i386_optab + 1636,
-  i386_optab + 1638,
-  i386_optab + 1640,
-  i386_optab + 1642,
-  i386_optab + 1644,
-  i386_optab + 1646,
-  i386_optab + 1648,
-  i386_optab + 1650,
-  i386_optab + 1652,
-  i386_optab + 1654,
-  i386_optab + 1656,
-  i386_optab + 1658,
-  i386_optab + 1660,
-  i386_optab + 1662,
-  i386_optab + 1664,
-  i386_optab + 1666,
-  i386_optab + 1668,
-  i386_optab + 1670,
-  i386_optab + 1672,
-  i386_optab + 1674,
-  i386_optab + 1676,
-  i386_optab + 1678,
-  i386_optab + 1680,
-  i386_optab + 1682,
-  i386_optab + 1684,
-  i386_optab + 1686,
-  i386_optab + 1688,
-  i386_optab + 1690,
-  i386_optab + 1692,
-  i386_optab + 1694,
-  i386_optab + 1696,
-  i386_optab + 1698,
-  i386_optab + 1700,
-  i386_optab + 1702,
-  i386_optab + 1704,
-  i386_optab + 1706,
-  i386_optab + 1708,
-  i386_optab + 1710,
-  i386_optab + 1712,
-  i386_optab + 1714,
-  i386_optab + 1716,
-  i386_optab + 1718,
-  i386_optab + 1720,
-  i386_optab + 1722,
-  i386_optab + 1724,
-  i386_optab + 1726,
-  i386_optab + 1728,
-  i386_optab + 1730,
-  i386_optab + 1732,
-  i386_optab + 1734,
-  i386_optab + 1736,
-  i386_optab + 1738,
-  i386_optab + 1740,
-  i386_optab + 1742,
-  i386_optab + 1744,
-  i386_optab + 1746,
-  i386_optab + 1748,
-  i386_optab + 1750,
-  i386_optab + 1752,
-  i386_optab + 1754,
-  i386_optab + 1756,
-  i386_optab + 1758,
-  i386_optab + 1760,
-  i386_optab + 1762,
-  i386_optab + 1764,
-  i386_optab + 1766,
-  i386_optab + 1768,
-  i386_optab + 1770,
-  i386_optab + 1772,
-  i386_optab + 1774,
-  i386_optab + 1776,
-  i386_optab + 1778,
-  i386_optab + 1780,
-  i386_optab + 1782,
-  i386_optab + 1784,
-  i386_optab + 1786,
-  i386_optab + 1788,
-  i386_optab + 1790,
-  i386_optab + 1792,
-  i386_optab + 1794,
-  i386_optab + 1796,
-  i386_optab + 1798,
-  i386_optab + 1800,
-  i386_optab + 1802,
-  i386_optab + 1804,
-  i386_optab + 1806,
-  i386_optab + 1808,
-  i386_optab + 1810,
-  i386_optab + 1812,
-  i386_optab + 1814,
-  i386_optab + 1816,
-  i386_optab + 1818,
-  i386_optab + 1820,
-  i386_optab + 1822,
-  i386_optab + 1824,
-  i386_optab + 1826,
-  i386_optab + 1828,
-  i386_optab + 1830,
-  i386_optab + 1832,
-  i386_optab + 1834,
-  i386_optab + 1836,
-  i386_optab + 1838,
-  i386_optab + 1840,
-  i386_optab + 1842,
-  i386_optab + 1844,
-  i386_optab + 1846,
-  i386_optab + 1848,
-  i386_optab + 1850,
-  i386_optab + 1852,
-  i386_optab + 1854,
-  i386_optab + 1856,
-  i386_optab + 1858,
-  i386_optab + 1860,
-  i386_optab + 1862,
-  i386_optab + 1864,
-  i386_optab + 1866,
-  i386_optab + 1868,
-  i386_optab + 1870,
-  i386_optab + 1872,
-  i386_optab + 1874,
-  i386_optab + 1876,
-  i386_optab + 1878,
-  i386_optab + 1880,
-  i386_optab + 1882,
-  i386_optab + 1884,
+  i386_optab + 1509,
+  i386_optab + 1511,
+  i386_optab + 1513,
+  i386_optab + 1515,
+  i386_optab + 1517,
+  i386_optab + 1519,
+  i386_optab + 1521,
+  i386_optab + 1523,
+  i386_optab + 1525,
+  i386_optab + 1527,
+  i386_optab + 1529,
+  i386_optab + 1531,
+  i386_optab + 1533,
+  i386_optab + 1535,
+  i386_optab + 1537,
+  i386_optab + 1539,
+  i386_optab + 1541,
+  i386_optab + 1543,
+  i386_optab + 1545,
+  i386_optab + 1547,
+  i386_optab + 1549,
+  i386_optab + 1551,
+  i386_optab + 1553,
+  i386_optab + 1555,
+  i386_optab + 1557,
+  i386_optab + 1559,
+  i386_optab + 1561,
+  i386_optab + 1563,
+  i386_optab + 1565,
+  i386_optab + 1567,
+  i386_optab + 1569,
+  i386_optab + 1571,
+  i386_optab + 1573,
+  i386_optab + 1575,
+  i386_optab + 1577,
+  i386_optab + 1579,
+  i386_optab + 1581,
+  i386_optab + 1583,
+  i386_optab + 1585,
+  i386_optab + 1587,
+  i386_optab + 1589,
+  i386_optab + 1591,
+  i386_optab + 1593,
+  i386_optab + 1595,
+  i386_optab + 1597,
+  i386_optab + 1599,
+  i386_optab + 1601,
+  i386_optab + 1603,
+  i386_optab + 1605,
+  i386_optab + 1607,
+  i386_optab + 1609,
+  i386_optab + 1611,
+  i386_optab + 1613,
+  i386_optab + 1615,
+  i386_optab + 1617,
+  i386_optab + 1619,
+  i386_optab + 1621,
+  i386_optab + 1623,
+  i386_optab + 1625,
+  i386_optab + 1627,
+  i386_optab + 1629,
+  i386_optab + 1631,
+  i386_optab + 1633,
+  i386_optab + 1635,
+  i386_optab + 1637,
+  i386_optab + 1639,
+  i386_optab + 1641,
+  i386_optab + 1643,
+  i386_optab + 1645,
+  i386_optab + 1647,
+  i386_optab + 1649,
+  i386_optab + 1651,
+  i386_optab + 1653,
+  i386_optab + 1655,
+  i386_optab + 1657,
+  i386_optab + 1659,
+  i386_optab + 1661,
+  i386_optab + 1663,
+  i386_optab + 1665,
+  i386_optab + 1667,
+  i386_optab + 1669,
+  i386_optab + 1671,
+  i386_optab + 1673,
+  i386_optab + 1675,
+  i386_optab + 1677,
+  i386_optab + 1679,
+  i386_optab + 1681,
+  i386_optab + 1683,
+  i386_optab + 1685,
+  i386_optab + 1687,
+  i386_optab + 1689,
+  i386_optab + 1691,
+  i386_optab + 1693,
+  i386_optab + 1695,
+  i386_optab + 1697,
+  i386_optab + 1699,
+  i386_optab + 1701,
+  i386_optab + 1703,
+  i386_optab + 1705,
+  i386_optab + 1707,
+  i386_optab + 1709,
+  i386_optab + 1711,
+  i386_optab + 1713,
+  i386_optab + 1715,
+  i386_optab + 1717,
+  i386_optab + 1719,
+  i386_optab + 1721,
+  i386_optab + 1723,
+  i386_optab + 1725,
+  i386_optab + 1727,
+  i386_optab + 1729,
+  i386_optab + 1731,
+  i386_optab + 1733,
+  i386_optab + 1735,
+  i386_optab + 1737,
+  i386_optab + 1739,
+  i386_optab + 1741,
+  i386_optab + 1743,
+  i386_optab + 1745,
+  i386_optab + 1747,
+  i386_optab + 1749,
+  i386_optab + 1751,
+  i386_optab + 1753,
+  i386_optab + 1755,
+  i386_optab + 1757,
+  i386_optab + 1759,
+  i386_optab + 1761,
+  i386_optab + 1763,
+  i386_optab + 1765,
+  i386_optab + 1767,
+  i386_optab + 1769,
+  i386_optab + 1771,
+  i386_optab + 1773,
+  i386_optab + 1775,
+  i386_optab + 1777,
+  i386_optab + 1779,
+  i386_optab + 1781,
+  i386_optab + 1783,
+  i386_optab + 1785,
+  i386_optab + 1787,
+  i386_optab + 1789,
+  i386_optab + 1791,
+  i386_optab + 1793,
+  i386_optab + 1795,
+  i386_optab + 1797,
+  i386_optab + 1799,
+  i386_optab + 1801,
+  i386_optab + 1803,
+  i386_optab + 1805,
+  i386_optab + 1807,
+  i386_optab + 1809,
+  i386_optab + 1811,
+  i386_optab + 1813,
+  i386_optab + 1815,
+  i386_optab + 1817,
+  i386_optab + 1819,
+  i386_optab + 1821,
+  i386_optab + 1823,
+  i386_optab + 1825,
+  i386_optab + 1827,
+  i386_optab + 1829,
+  i386_optab + 1831,
+  i386_optab + 1833,
+  i386_optab + 1835,
+  i386_optab + 1837,
+  i386_optab + 1839,
+  i386_optab + 1841,
+  i386_optab + 1843,
+  i386_optab + 1845,
+  i386_optab + 1847,
+  i386_optab + 1849,
+  i386_optab + 1851,
+  i386_optab + 1853,
+  i386_optab + 1855,
+  i386_optab + 1857,
+  i386_optab + 1859,
+  i386_optab + 1861,
+  i386_optab + 1863,
+  i386_optab + 1865,
+  i386_optab + 1867,
+  i386_optab + 1869,
+  i386_optab + 1871,
+  i386_optab + 1873,
+  i386_optab + 1875,
+  i386_optab + 1877,
+  i386_optab + 1879,
+  i386_optab + 1881,
+  i386_optab + 1883,
+  i386_optab + 1885,
+  i386_optab + 1887,
   i386_optab + 1889,
-  i386_optab + 1891,
+  i386_optab + 1894,
   i386_optab + 1896,
-  i386_optab + 1898,
-  i386_optab + 1900,
+  i386_optab + 1901,
+  i386_optab + 1903,
   i386_optab + 1905,
-  i386_optab + 1907,
-  i386_optab + 1909,
-  i386_optab + 1911,
+  i386_optab + 1910,
+  i386_optab + 1912,
+  i386_optab + 1914,
   i386_optab + 1916,
-  i386_optab + 1918,
-  i386_optab + 1920,
-  i386_optab + 1922,
-  i386_optab + 1926,
-  i386_optab + 1932,
-  i386_optab + 1934,
+  i386_optab + 1921,
+  i386_optab + 1923,
+  i386_optab + 1925,
+  i386_optab + 1927,
+  i386_optab + 1931,
+  i386_optab + 1937,
   i386_optab + 1939,
-  i386_optab + 1941,
-  i386_optab + 1943,
-  i386_optab + 1945,
-  i386_optab + 1947,
-  i386_optab + 1949,
-  i386_optab + 1951,
-  i386_optab + 1953,
-  i386_optab + 1955,
-  i386_optab + 1957,
+  i386_optab + 1944,
+  i386_optab + 1946,
+  i386_optab + 1948,
+  i386_optab + 1950,
+  i386_optab + 1952,
+  i386_optab + 1954,
+  i386_optab + 1956,
   i386_optab + 1958,
-  i386_optab + 1959,
   i386_optab + 1960,
+  i386_optab + 1962,
+  i386_optab + 1963,
   i386_optab + 1964,
   i386_optab + 1965,
-  i386_optab + 1966,
-  i386_optab + 1967,
-  i386_optab + 1968,
   i386_optab + 1969,
+  i386_optab + 1970,
   i386_optab + 1971,
   i386_optab + 1972,
   i386_optab + 1973,
   i386_optab + 1974,
   i386_optab + 1976,
+  i386_optab + 1977,
   i386_optab + 1978,
-  i386_optab + 1980,
-  i386_optab + 1982,
-  i386_optab + 1984,
-  i386_optab + 1986,
-  i386_optab + 1988,
-  i386_optab + 1990,
-  i386_optab + 1992,
-  i386_optab + 1994,
-  i386_optab + 1996,
-  i386_optab + 1998,
+  i386_optab + 1979,
+  i386_optab + 1981,
+  i386_optab + 1983,
+  i386_optab + 1985,
+  i386_optab + 1987,
+  i386_optab + 1989,
+  i386_optab + 1991,
+  i386_optab + 1993,
+  i386_optab + 1995,
+  i386_optab + 1997,
+  i386_optab + 1999,
   i386_optab + 2001,
-  i386_optab + 2005,
+  i386_optab + 2003,
   i386_optab + 2006,
-  i386_optab + 2007,
-  i386_optab + 2009,
-  i386_optab + 2013,
-  i386_optab + 2017,
-  i386_optab + 2019,
-  i386_optab + 2023,
-  i386_optab + 2027,
+  i386_optab + 2010,
+  i386_optab + 2011,
+  i386_optab + 2012,
+  i386_optab + 2014,
+  i386_optab + 2018,
+  i386_optab + 2022,
+  i386_optab + 2024,
   i386_optab + 2028,
-  i386_optab + 2029,
-  i386_optab + 2031,
+  i386_optab + 2032,
   i386_optab + 2033,
-  i386_optab + 2035,
-  i386_optab + 2037,
-  i386_optab + 2043,
-  i386_optab + 2047,
-  i386_optab + 2051,
-  i386_optab + 2053,
-  i386_optab + 2055,
-  i386_optab + 2057,
-  i386_optab + 2059,
+  i386_optab + 2034,
+  i386_optab + 2036,
+  i386_optab + 2038,
+  i386_optab + 2040,
+  i386_optab + 2042,
+  i386_optab + 2048,
+  i386_optab + 2052,
+  i386_optab + 2056,
+  i386_optab + 2058,
   i386_optab + 2060,
   i386_optab + 2062,
   i386_optab + 2064,
-  i386_optab + 2066,
-  i386_optab + 2068,
-  i386_optab + 2070,
-  i386_optab + 2072,
-  i386_optab + 2074,
-  i386_optab + 2076,
-  i386_optab + 2078,
-  i386_optab + 2080,
-  i386_optab + 2082,
-  i386_optab + 2084,
-  i386_optab + 2086,
-  i386_optab + 2088,
-  i386_optab + 2090,
-  i386_optab + 2092,
-  i386_optab + 2094,
-  i386_optab + 2096,
-  i386_optab + 2098,
-  i386_optab + 2100,
-  i386_optab + 2102,
-  i386_optab + 2104,
+  i386_optab + 2065,
+  i386_optab + 2067,
+  i386_optab + 2069,
+  i386_optab + 2071,
+  i386_optab + 2073,
+  i386_optab + 2075,
+  i386_optab + 2077,
+  i386_optab + 2079,
+  i386_optab + 2081,
+  i386_optab + 2083,
+  i386_optab + 2085,
+  i386_optab + 2087,
+  i386_optab + 2089,
+  i386_optab + 2091,
+  i386_optab + 2093,
+  i386_optab + 2095,
+  i386_optab + 2097,
+  i386_optab + 2099,
+  i386_optab + 2101,
+  i386_optab + 2103,
   i386_optab + 2105,
-  i386_optab + 2106,
-  i386_optab + 2108,
+  i386_optab + 2107,
+  i386_optab + 2109,
   i386_optab + 2110,
   i386_optab + 2111,
-  i386_optab + 2112,
+  i386_optab + 2113,
   i386_optab + 2115,
-  i386_optab + 2118,
-  i386_optab + 2121,
-  i386_optab + 2124,
+  i386_optab + 2116,
+  i386_optab + 2117,
+  i386_optab + 2120,
+  i386_optab + 2123,
   i386_optab + 2126,
-  i386_optab + 2128,
-  i386_optab + 2130,
-  i386_optab + 2132,
-  i386_optab + 2134,
-  i386_optab + 2136,
+  i386_optab + 2129,
+  i386_optab + 2131,
+  i386_optab + 2133,
+  i386_optab + 2135,
   i386_optab + 2137,
-  i386_optab + 2138,
   i386_optab + 2139,
+  i386_optab + 2141,
+  i386_optab + 2142,
   i386_optab + 2143,
-  i386_optab + 2147,
-  i386_optab + 2149,
-  i386_optab + 2151,
-  i386_optab + 2157,
-  i386_optab + 2161,
+  i386_optab + 2144,
+  i386_optab + 2148,
+  i386_optab + 2152,
+  i386_optab + 2154,
+  i386_optab + 2156,
   i386_optab + 2162,
-  i386_optab + 2163,
-  i386_optab + 2164,
-  i386_optab + 2165,
   i386_optab + 2166,
   i386_optab + 2167,
   i386_optab + 2168,
+  i386_optab + 2169,
+  i386_optab + 2170,
+  i386_optab + 2171,
   i386_optab + 2172,
-  i386_optab + 2174,
-  i386_optab + 2176,
-  i386_optab + 2180,
-  i386_optab + 2182,
-  i386_optab + 2184,
-  i386_optab + 2186,
-  i386_optab + 2188,
-  i386_optab + 2190,
-  i386_optab + 2192,
-  i386_optab + 2194,
-  i386_optab + 2196,
-  i386_optab + 2198,
-  i386_optab + 2200,
-  i386_optab + 2202,
-  i386_optab + 2204,
-  i386_optab + 2206,
-  i386_optab + 2208,
+  i386_optab + 2173,
+  i386_optab + 2177,
+  i386_optab + 2179,
+  i386_optab + 2181,
+  i386_optab + 2185,
+  i386_optab + 2187,
+  i386_optab + 2189,
+  i386_optab + 2191,
+  i386_optab + 2193,
+  i386_optab + 2195,
+  i386_optab + 2197,
+  i386_optab + 2199,
+  i386_optab + 2201,
+  i386_optab + 2203,
+  i386_optab + 2205,
+  i386_optab + 2207,
   i386_optab + 2209,
+  i386_optab + 2211,
+  i386_optab + 2213,
   i386_optab + 2214,
   i386_optab + 2219,
   i386_optab + 2224,
@@ -56957,190 +57018,186 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 2259,
   i386_optab + 2264,
   i386_optab + 2269,
-  i386_optab + 2271,
-  i386_optab + 2273,
-  i386_optab + 2275,
-  i386_optab + 2277,
-  i386_optab + 2279,
-  i386_optab + 2281,
-  i386_optab + 2283,
+  i386_optab + 2274,
+  i386_optab + 2276,
+  i386_optab + 2278,
+  i386_optab + 2280,
+  i386_optab + 2282,
   i386_optab + 2284,
   i386_optab + 2286,
   i386_optab + 2288,
-  i386_optab + 2290,
-  i386_optab + 2292,
-  i386_optab + 2294,
+  i386_optab + 2289,
+  i386_optab + 2291,
+  i386_optab + 2293,
   i386_optab + 2295,
-  i386_optab + 2296,
   i386_optab + 2297,
+  i386_optab + 2299,
+  i386_optab + 2300,
   i386_optab + 2301,
-  i386_optab + 2305,
-  i386_optab + 2307,
-  i386_optab + 2311,
-  i386_optab + 2315,
-  i386_optab + 2319,
-  i386_optab + 2323,
-  i386_optab + 2327,
-  i386_optab + 2329,
-  i386_optab + 2333,
-  i386_optab + 2335,
-  i386_optab + 2337,
-  i386_optab + 2339,
-  i386_optab + 2341,
-  i386_optab + 2343,
-  i386_optab + 2345,
-  i386_optab + 2347,
-  i386_optab + 2349,
+  i386_optab + 2302,
+  i386_optab + 2306,
+  i386_optab + 2310,
+  i386_optab + 2312,
+  i386_optab + 2316,
+  i386_optab + 2320,
+  i386_optab + 2324,
+  i386_optab + 2328,
+  i386_optab + 2332,
+  i386_optab + 2334,
+  i386_optab + 2338,
+  i386_optab + 2340,
+  i386_optab + 2342,
+  i386_optab + 2344,
+  i386_optab + 2346,
+  i386_optab + 2348,
   i386_optab + 2350,
   i386_optab + 2352,
   i386_optab + 2354,
-  i386_optab + 2356,
-  i386_optab + 2358,
-  i386_optab + 2360,
-  i386_optab + 2362,
-  i386_optab + 2364,
-  i386_optab + 2366,
+  i386_optab + 2355,
+  i386_optab + 2357,
+  i386_optab + 2359,
+  i386_optab + 2361,
+  i386_optab + 2363,
+  i386_optab + 2365,
   i386_optab + 2367,
-  i386_optab + 2368,
   i386_optab + 2369,
-  i386_optab + 2370,
   i386_optab + 2371,
   i386_optab + 2372,
   i386_optab + 2373,
   i386_optab + 2374,
   i386_optab + 2375,
+  i386_optab + 2376,
   i386_optab + 2377,
+  i386_optab + 2378,
   i386_optab + 2379,
-  i386_optab + 2381,
-  i386_optab + 2383,
-  i386_optab + 2385,
-  i386_optab + 2387,
+  i386_optab + 2380,
+  i386_optab + 2382,
+  i386_optab + 2384,
+  i386_optab + 2386,
   i386_optab + 2388,
   i386_optab + 2390,
   i386_optab + 2392,
-  i386_optab + 2394,
-  i386_optab + 2396,
+  i386_optab + 2393,
+  i386_optab + 2395,
   i386_optab + 2397,
-  i386_optab + 2398,
-  i386_optab + 2400,
+  i386_optab + 2399,
+  i386_optab + 2401,
   i386_optab + 2402,
-  i386_optab + 2404,
-  i386_optab + 2406,
-  i386_optab + 2408,
-  i386_optab + 2410,
-  i386_optab + 2412,
-  i386_optab + 2414,
+  i386_optab + 2403,
+  i386_optab + 2405,
+  i386_optab + 2407,
+  i386_optab + 2409,
+  i386_optab + 2411,
+  i386_optab + 2413,
   i386_optab + 2415,
-  i386_optab + 2416,
   i386_optab + 2417,
-  i386_optab + 2418,
+  i386_optab + 2419,
+  i386_optab + 2420,
   i386_optab + 2421,
-  i386_optab + 2424,
-  i386_optab + 2427,
-  i386_optab + 2430,
-  i386_optab + 2431,
-  i386_optab + 2433,
+  i386_optab + 2422,
+  i386_optab + 2423,
+  i386_optab + 2426,
+  i386_optab + 2429,
+  i386_optab + 2432,
+  i386_optab + 2435,
   i386_optab + 2436,
   i386_optab + 2438,
   i386_optab + 2441,
-  i386_optab + 2442,
   i386_optab + 2443,
-  i386_optab + 2445,
+  i386_optab + 2446,
   i386_optab + 2447,
-  i386_optab + 2449,
-  i386_optab + 2451,
-  i386_optab + 2453,
-  i386_optab + 2455,
-  i386_optab + 2457,
+  i386_optab + 2448,
+  i386_optab + 2450,
+  i386_optab + 2452,
+  i386_optab + 2454,
+  i386_optab + 2456,
+  i386_optab + 2458,
   i386_optab + 2460,
+  i386_optab + 2462,
   i386_optab + 2465,
   i386_optab + 2470,
   i386_optab + 2475,
   i386_optab + 2480,
-  i386_optab + 2483,
+  i386_optab + 2485,
   i386_optab + 2488,
   i386_optab + 2493,
-  i386_optab + 2494,
-  i386_optab + 2495,
   i386_optab + 2498,
-  i386_optab + 2501,
-  i386_optab + 2504,
-  i386_optab + 2507,
-  i386_optab + 2510,
+  i386_optab + 2499,
+  i386_optab + 2500,
+  i386_optab + 2503,
+  i386_optab + 2506,
+  i386_optab + 2509,
   i386_optab + 2512,
-  i386_optab + 2514,
-  i386_optab + 2516,
+  i386_optab + 2515,
   i386_optab + 2517,
-  i386_optab + 2518,
   i386_optab + 2519,
-  i386_optab + 2520,
   i386_optab + 2521,
+  i386_optab + 2522,
+  i386_optab + 2523,
+  i386_optab + 2524,
+  i386_optab + 2525,
   i386_optab + 2526,
   i386_optab + 2531,
-  i386_optab + 2533,
-  i386_optab + 2535,
-  i386_optab + 2537,
-  i386_optab + 2539,
-  i386_optab + 2541,
-  i386_optab + 2543,
-  i386_optab + 2545,
-  i386_optab + 2547,
-  i386_optab + 2549,
-  i386_optab + 2551,
-  i386_optab + 2553,
-  i386_optab + 2555,
-  i386_optab + 2557,
-  i386_optab + 2559,
-  i386_optab + 2561,
-  i386_optab + 2563,
-  i386_optab + 2565,
-  i386_optab + 2567,
-  i386_optab + 2569,
-  i386_optab + 2571,
-  i386_optab + 2573,
-  i386_optab + 2575,
-  i386_optab + 2577,
-  i386_optab + 2579,
-  i386_optab + 2581,
-  i386_optab + 2583,
-  i386_optab + 2585,
-  i386_optab + 2587,
-  i386_optab + 2589,
-  i386_optab + 2591,
-  i386_optab + 2593,
-  i386_optab + 2595,
-  i386_optab + 2597,
-  i386_optab + 2599,
-  i386_optab + 2601,
-  i386_optab + 2603,
-  i386_optab + 2605,
-  i386_optab + 2607,
-  i386_optab + 2609,
-  i386_optab + 2611,
-  i386_optab + 2613,
-  i386_optab + 2615,
-  i386_optab + 2617,
-  i386_optab + 2619,
-  i386_optab + 2621,
-  i386_optab + 2623,
-  i386_optab + 2625,
-  i386_optab + 2627,
-  i386_optab + 2629,
-  i386_optab + 2631,
-  i386_optab + 2633,
-  i386_optab + 2635,
-  i386_optab + 2637,
-  i386_optab + 2639,
-  i386_optab + 2641,
-  i386_optab + 2643,
-  i386_optab + 2645,
-  i386_optab + 2647,
-  i386_optab + 2649,
-  i386_optab + 2651,
+  i386_optab + 2536,
+  i386_optab + 2538,
+  i386_optab + 2540,
+  i386_optab + 2542,
+  i386_optab + 2544,
+  i386_optab + 2546,
+  i386_optab + 2548,
+  i386_optab + 2550,
+  i386_optab + 2552,
+  i386_optab + 2554,
+  i386_optab + 2556,
+  i386_optab + 2558,
+  i386_optab + 2560,
+  i386_optab + 2562,
+  i386_optab + 2564,
+  i386_optab + 2566,
+  i386_optab + 2568,
+  i386_optab + 2570,
+  i386_optab + 2572,
+  i386_optab + 2574,
+  i386_optab + 2576,
+  i386_optab + 2578,
+  i386_optab + 2580,
+  i386_optab + 2582,
+  i386_optab + 2584,
+  i386_optab + 2586,
+  i386_optab + 2588,
+  i386_optab + 2590,
+  i386_optab + 2592,
+  i386_optab + 2594,
+  i386_optab + 2596,
+  i386_optab + 2598,
+  i386_optab + 2600,
+  i386_optab + 2602,
+  i386_optab + 2604,
+  i386_optab + 2606,
+  i386_optab + 2608,
+  i386_optab + 2610,
+  i386_optab + 2612,
+  i386_optab + 2614,
+  i386_optab + 2616,
+  i386_optab + 2618,
+  i386_optab + 2620,
+  i386_optab + 2622,
+  i386_optab + 2624,
+  i386_optab + 2626,
+  i386_optab + 2628,
+  i386_optab + 2630,
+  i386_optab + 2632,
+  i386_optab + 2634,
+  i386_optab + 2636,
+  i386_optab + 2638,
+  i386_optab + 2640,
+  i386_optab + 2642,
+  i386_optab + 2644,
+  i386_optab + 2646,
+  i386_optab + 2648,
+  i386_optab + 2650,
   i386_optab + 2652,
-  i386_optab + 2653,
   i386_optab + 2654,
-  i386_optab + 2655,
   i386_optab + 2656,
   i386_optab + 2657,
   i386_optab + 2658,
@@ -57248,12 +57305,12 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 2760,
   i386_optab + 2761,
   i386_optab + 2762,
+  i386_optab + 2763,
   i386_optab + 2764,
+  i386_optab + 2765,
   i386_optab + 2766,
   i386_optab + 2767,
-  i386_optab + 2768,
   i386_optab + 2769,
-  i386_optab + 2770,
   i386_optab + 2771,
   i386_optab + 2772,
   i386_optab + 2773,
@@ -57278,14 +57335,14 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 2792,
   i386_optab + 2793,
   i386_optab + 2794,
+  i386_optab + 2795,
   i386_optab + 2796,
+  i386_optab + 2797,
   i386_optab + 2798,
-  i386_optab + 2800,
-  i386_optab + 2802,
+  i386_optab + 2799,
+  i386_optab + 2801,
   i386_optab + 2803,
-  i386_optab + 2804,
   i386_optab + 2805,
-  i386_optab + 2806,
   i386_optab + 2807,
   i386_optab + 2808,
   i386_optab + 2809,
@@ -57295,11 +57352,11 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 2813,
   i386_optab + 2814,
   i386_optab + 2815,
+  i386_optab + 2816,
   i386_optab + 2817,
   i386_optab + 2818,
   i386_optab + 2819,
   i386_optab + 2820,
-  i386_optab + 2821,
   i386_optab + 2822,
   i386_optab + 2823,
   i386_optab + 2824,
@@ -57341,22 +57398,22 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 2860,
   i386_optab + 2861,
   i386_optab + 2862,
+  i386_optab + 2863,
   i386_optab + 2864,
+  i386_optab + 2865,
   i386_optab + 2866,
   i386_optab + 2867,
-  i386_optab + 2868,
-  i386_optab + 2870,
+  i386_optab + 2869,
   i386_optab + 2871,
+  i386_optab + 2872,
   i386_optab + 2873,
   i386_optab + 2875,
   i386_optab + 2876,
-  i386_optab + 2877,
-  i386_optab + 2879,
+  i386_optab + 2878,
+  i386_optab + 2880,
   i386_optab + 2881,
   i386_optab + 2882,
-  i386_optab + 2883,
   i386_optab + 2884,
-  i386_optab + 2885,
   i386_optab + 2886,
   i386_optab + 2887,
   i386_optab + 2888,
@@ -57379,20 +57436,20 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 2905,
   i386_optab + 2906,
   i386_optab + 2907,
+  i386_optab + 2908,
   i386_optab + 2909,
+  i386_optab + 2910,
   i386_optab + 2911,
-  i386_optab + 2913,
+  i386_optab + 2912,
   i386_optab + 2914,
-  i386_optab + 2915,
   i386_optab + 2916,
-  i386_optab + 2917,
   i386_optab + 2918,
   i386_optab + 2919,
+  i386_optab + 2920,
   i386_optab + 2921,
   i386_optab + 2922,
   i386_optab + 2923,
   i386_optab + 2924,
-  i386_optab + 2925,
   i386_optab + 2926,
   i386_optab + 2927,
   i386_optab + 2928,
@@ -57401,12 +57458,12 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 2931,
   i386_optab + 2932,
   i386_optab + 2933,
+  i386_optab + 2934,
+  i386_optab + 2935,
   i386_optab + 2936,
-  i386_optab + 2939,
-  i386_optab + 2940,
+  i386_optab + 2937,
+  i386_optab + 2938,
   i386_optab + 2941,
-  i386_optab + 2942,
-  i386_optab + 2943,
   i386_optab + 2944,
   i386_optab + 2945,
   i386_optab + 2946,
@@ -57457,29 +57514,29 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 2991,
   i386_optab + 2992,
   i386_optab + 2993,
+  i386_optab + 2994,
+  i386_optab + 2995,
   i386_optab + 2996,
+  i386_optab + 2997,
   i386_optab + 2998,
   i386_optab + 3001,
-  i386_optab + 3004,
+  i386_optab + 3003,
   i386_optab + 3006,
   i386_optab + 3009,
-  i386_optab + 3012,
-  i386_optab + 3015,
-  i386_optab + 3018,
-  i386_optab + 3019,
-  i386_optab + 3022,
+  i386_optab + 3011,
+  i386_optab + 3014,
+  i386_optab + 3017,
+  i386_optab + 3020,
   i386_optab + 3023,
   i386_optab + 3024,
-  i386_optab + 3025,
-  i386_optab + 3026,
   i386_optab + 3027,
+  i386_optab + 3028,
+  i386_optab + 3029,
+  i386_optab + 3030,
   i386_optab + 3031,
-  i386_optab + 3033,
+  i386_optab + 3032,
   i386_optab + 3036,
-  i386_optab + 3037,
   i386_optab + 3038,
-  i386_optab + 3039,
-  i386_optab + 3040,
   i386_optab + 3041,
   i386_optab + 3042,
   i386_optab + 3043,
@@ -57561,11 +57618,11 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3119,
   i386_optab + 3120,
   i386_optab + 3121,
+  i386_optab + 3122,
   i386_optab + 3123,
   i386_optab + 3124,
   i386_optab + 3125,
   i386_optab + 3126,
-  i386_optab + 3127,
   i386_optab + 3128,
   i386_optab + 3129,
   i386_optab + 3130,
@@ -57601,30 +57658,30 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3160,
   i386_optab + 3161,
   i386_optab + 3162,
+  i386_optab + 3163,
+  i386_optab + 3164,
   i386_optab + 3165,
-  i386_optab + 3168,
-  i386_optab + 3171,
-  i386_optab + 3174,
-  i386_optab + 3177,
-  i386_optab + 3180,
-  i386_optab + 3183,
-  i386_optab + 3186,
-  i386_optab + 3189,
-  i386_optab + 3192,
-  i386_optab + 3195,
-  i386_optab + 3198,
-  i386_optab + 3201,
-  i386_optab + 3204,
-  i386_optab + 3207,
-  i386_optab + 3208,
+  i386_optab + 3166,
+  i386_optab + 3167,
+  i386_optab + 3170,
+  i386_optab + 3173,
+  i386_optab + 3176,
+  i386_optab + 3179,
+  i386_optab + 3182,
+  i386_optab + 3185,
+  i386_optab + 3188,
+  i386_optab + 3191,
+  i386_optab + 3194,
+  i386_optab + 3197,
+  i386_optab + 3200,
+  i386_optab + 3203,
+  i386_optab + 3206,
   i386_optab + 3209,
-  i386_optab + 3210,
-  i386_optab + 3211,
+  i386_optab + 3212,
   i386_optab + 3213,
   i386_optab + 3214,
   i386_optab + 3215,
   i386_optab + 3216,
-  i386_optab + 3217,
   i386_optab + 3218,
   i386_optab + 3219,
   i386_optab + 3220,
@@ -57682,12 +57739,12 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3272,
   i386_optab + 3273,
   i386_optab + 3274,
+  i386_optab + 3275,
+  i386_optab + 3276,
   i386_optab + 3277,
-  i386_optab + 3280,
-  i386_optab + 3281,
+  i386_optab + 3278,
+  i386_optab + 3279,
   i386_optab + 3282,
-  i386_optab + 3283,
-  i386_optab + 3284,
   i386_optab + 3285,
   i386_optab + 3286,
   i386_optab + 3287,
@@ -57746,13 +57803,13 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3340,
   i386_optab + 3341,
   i386_optab + 3342,
+  i386_optab + 3343,
+  i386_optab + 3344,
   i386_optab + 3345,
-  i386_optab + 3348,
-  i386_optab + 3351,
-  i386_optab + 3352,
+  i386_optab + 3346,
+  i386_optab + 3347,
+  i386_optab + 3350,
   i386_optab + 3353,
-  i386_optab + 3354,
-  i386_optab + 3355,
   i386_optab + 3356,
   i386_optab + 3357,
   i386_optab + 3358,
@@ -57765,34 +57822,34 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3365,
   i386_optab + 3366,
   i386_optab + 3367,
+  i386_optab + 3368,
+  i386_optab + 3369,
   i386_optab + 3370,
-  i386_optab + 3373,
-  i386_optab + 3374,
+  i386_optab + 3371,
+  i386_optab + 3372,
   i386_optab + 3375,
   i386_optab + 3378,
   i386_optab + 3379,
   i386_optab + 3380,
-  i386_optab + 3381,
-  i386_optab + 3382,
+  i386_optab + 3383,
+  i386_optab + 3384,
   i386_optab + 3385,
-  i386_optab + 3388,
-  i386_optab + 3391,
-  i386_optab + 3392,
+  i386_optab + 3386,
+  i386_optab + 3387,
+  i386_optab + 3390,
   i386_optab + 3393,
-  i386_optab + 3394,
-  i386_optab + 3395,
   i386_optab + 3396,
   i386_optab + 3397,
   i386_optab + 3398,
   i386_optab + 3399,
   i386_optab + 3400,
   i386_optab + 3401,
+  i386_optab + 3402,
   i386_optab + 3403,
+  i386_optab + 3404,
   i386_optab + 3405,
   i386_optab + 3406,
-  i386_optab + 3407,
   i386_optab + 3408,
-  i386_optab + 3409,
   i386_optab + 3410,
   i386_optab + 3411,
   i386_optab + 3412,
@@ -57814,12 +57871,12 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3428,
   i386_optab + 3429,
   i386_optab + 3430,
+  i386_optab + 3431,
   i386_optab + 3432,
+  i386_optab + 3433,
   i386_optab + 3434,
   i386_optab + 3435,
-  i386_optab + 3436,
   i386_optab + 3437,
-  i386_optab + 3438,
   i386_optab + 3439,
   i386_optab + 3440,
   i386_optab + 3441,
@@ -57841,32 +57898,32 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3457,
   i386_optab + 3458,
   i386_optab + 3459,
+  i386_optab + 3460,
   i386_optab + 3461,
+  i386_optab + 3462,
   i386_optab + 3463,
-  i386_optab + 3465,
-  i386_optab + 3467,
+  i386_optab + 3464,
+  i386_optab + 3466,
   i386_optab + 3468,
-  i386_optab + 3469,
   i386_optab + 3470,
-  i386_optab + 3471,
   i386_optab + 3472,
   i386_optab + 3473,
   i386_optab + 3474,
   i386_optab + 3475,
   i386_optab + 3476,
+  i386_optab + 3477,
   i386_optab + 3478,
   i386_optab + 3479,
+  i386_optab + 3480,
   i386_optab + 3481,
+  i386_optab + 3483,
   i386_optab + 3484,
   i386_optab + 3486,
-  i386_optab + 3487,
-  i386_optab + 3488,
-  i386_optab + 3490,
+  i386_optab + 3489,
+  i386_optab + 3491,
   i386_optab + 3492,
   i386_optab + 3493,
-  i386_optab + 3494,
   i386_optab + 3495,
-  i386_optab + 3496,
   i386_optab + 3497,
   i386_optab + 3498,
   i386_optab + 3499,
@@ -57881,19 +57938,19 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3508,
   i386_optab + 3509,
   i386_optab + 3510,
+  i386_optab + 3511,
   i386_optab + 3512,
+  i386_optab + 3513,
   i386_optab + 3514,
   i386_optab + 3515,
-  i386_optab + 3516,
   i386_optab + 3517,
-  i386_optab + 3518,
+  i386_optab + 3519,
+  i386_optab + 3520,
+  i386_optab + 3521,
+  i386_optab + 3522,
   i386_optab + 3523,
-  i386_optab + 3525,
-  i386_optab + 3527,
   i386_optab + 3528,
-  i386_optab + 3529,
   i386_optab + 3530,
-  i386_optab + 3531,
   i386_optab + 3532,
   i386_optab + 3533,
   i386_optab + 3534,
@@ -57902,15 +57959,15 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3537,
   i386_optab + 3538,
   i386_optab + 3539,
+  i386_optab + 3540,
   i386_optab + 3541,
+  i386_optab + 3542,
+  i386_optab + 3543,
   i386_optab + 3544,
-  i386_optab + 3547,
-  i386_optab + 3550,
+  i386_optab + 3546,
+  i386_optab + 3549,
   i386_optab + 3552,
-  i386_optab + 3553,
-  i386_optab + 3554,
   i386_optab + 3555,
-  i386_optab + 3556,
   i386_optab + 3557,
   i386_optab + 3558,
   i386_optab + 3559,
@@ -58047,13 +58104,14 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3690,
   i386_optab + 3691,
   i386_optab + 3692,
+  i386_optab + 3693,
+  i386_optab + 3694,
   i386_optab + 3695,
   i386_optab + 3696,
   i386_optab + 3697,
   i386_optab + 3700,
   i386_optab + 3701,
   i386_optab + 3702,
-  i386_optab + 3704,
   i386_optab + 3705,
   i386_optab + 3706,
   i386_optab + 3707,
@@ -58065,33 +58123,33 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3715,
   i386_optab + 3716,
   i386_optab + 3717,
+  i386_optab + 3719,
   i386_optab + 3720,
   i386_optab + 3721,
   i386_optab + 3722,
-  i386_optab + 3723,
-  i386_optab + 3724,
+  i386_optab + 3725,
+  i386_optab + 3726,
   i386_optab + 3727,
-  i386_optab + 3730,
-  i386_optab + 3733,
-  i386_optab + 3736,
-  i386_optab + 3739,
-  i386_optab + 3740,
+  i386_optab + 3728,
+  i386_optab + 3729,
+  i386_optab + 3732,
+  i386_optab + 3735,
+  i386_optab + 3738,
   i386_optab + 3741,
-  i386_optab + 3742,
-  i386_optab + 3743,
+  i386_optab + 3744,
   i386_optab + 3745,
+  i386_optab + 3746,
   i386_optab + 3747,
   i386_optab + 3748,
-  i386_optab + 3749,
   i386_optab + 3750,
+  i386_optab + 3752,
   i386_optab + 3753,
-  i386_optab + 3756,
-  i386_optab + 3759,
-  i386_optab + 3762,
-  i386_optab + 3765,
-  i386_optab + 3766,
+  i386_optab + 3754,
+  i386_optab + 3755,
+  i386_optab + 3758,
+  i386_optab + 3761,
+  i386_optab + 3764,
   i386_optab + 3767,
-  i386_optab + 3768,
   i386_optab + 3770,
   i386_optab + 3771,
   i386_optab + 3772,
@@ -58100,7 +58158,6 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3776,
   i386_optab + 3777,
   i386_optab + 3778,
-  i386_optab + 3779,
   i386_optab + 3780,
   i386_optab + 3781,
   i386_optab + 3782,
@@ -58140,6 +58197,11 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3816,
   i386_optab + 3817,
   i386_optab + 3818,
+  i386_optab + 3819,
+  i386_optab + 3820,
+  i386_optab + 3821,
+  i386_optab + 3822,
+  i386_optab + 3823,
 };
 
 /* i386 mnemonics table.  */