]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - opcodes/arm-dis.c
x86: Suggest -fPIE when not building shared object
[thirdparty/binutils-gdb.git] / opcodes / arm-dis.c
index 988699668dd1cf885b9e51d63bf85b582dce4477..c2a8a5f324b020e0a65bce45a02c46e321c4dd4c 100644 (file)
@@ -75,6 +75,23 @@ struct opcode32
   const char *  assembler;     /* How to disassemble this insn.  */
 };
 
+enum isa {
+  ANY,
+  T32,
+  ARM
+};
+
+
+/* Shared (between Arm and Thumb mode) opcode.  */
+struct sopcode32
+{
+  enum isa isa;                        /* Execution mode instruction availability.  */
+  arm_feature_set arch;                /* Architecture defining this insn.  */
+  unsigned long value;         /* If arch is 0 then value is a sentinel.  */
+  unsigned long mask;          /* Recognise insn if (op & mask) == value.  */
+  const char *  assembler;     /* How to disassemble this insn.  */
+};
+
 struct opcode16
 {
   arm_feature_set arch;                /* Architecture defining this insn.  */
@@ -92,7 +109,10 @@ struct opcode16
                           UNPREDICTABLE if not AL in Thumb)
    %A                  print address for ldc/stc/ldf/stf instruction
    %B                  print vstm/vldm register list
+   %C                  print vscclrm register list
    %I                   print cirrus signed shift immediate: bits 0..3|4..6
+   %J                  print register for VLDR instruction
+   %K                  print address for VLDR instruction
    %F                  print the COUNT field of a LFM/SFM instruction.
    %P                  print floating point precision in arithmetic insn
    %Q                  print floating point precision in ldf/stf insn
@@ -147,885 +167,895 @@ enum opcode_sentinel_enum
 
 /* Common coprocessor opcodes shared between Arm and Thumb-2.  */
 
-static const struct opcode32 coprocessor_opcodes[] =
+static const struct sopcode32 coprocessor_opcodes[] =
 {
   /* XScale instructions.  */
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e200010, 0x0fff0ff0,
     "mia%c\tacc0, %0-3r, %12-15r"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e280010, 0x0fff0ff0,
     "miaph%c\tacc0, %0-3r, %12-15r"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e2c0010, 0x0ffc0ff0, "mia%17'T%17`B%16'T%16`B%c\tacc0, %0-3r, %12-15r"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0c400000, 0x0ff00fff, "mar%c\tacc0, %12-15r, %16-19r"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0c500000, 0x0ff00fff, "mra%c\t%12-15r, %16-19r, acc0"},
 
   /* Intel Wireless MMX technology instructions.  */
-  {ARM_FEATURE_CORE_LOW (0), SENTINEL_IWMMXT_START, 0, "" },
-  {ARM_FEATURE_COPROC (ARM_CEXT_IWMMXT),
+  {ANY, ARM_FEATURE_CORE_LOW (0), SENTINEL_IWMMXT_START, 0, "" },
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_IWMMXT),
     0x0e130130, 0x0f3f0fff, "tandc%22-23w%c\t%12-15r"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e400010, 0x0ff00f3f, "tbcst%6-7w%c\t%16-19g, %12-15r"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e130170, 0x0f3f0ff8, "textrc%22-23w%c\t%12-15r, #%0-2d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e100070, 0x0f300ff0, "textrm%3?su%22-23w%c\t%12-15r, %16-19g, #%0-2d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e600010, 0x0ff00f38, "tinsr%6-7w%c\t%16-19g, %12-15r, #%0-2d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e000110, 0x0ff00fff, "tmcr%c\t%16-19G, %12-15r"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0c400000, 0x0ff00ff0, "tmcrr%c\t%0-3g, %12-15r, %16-19r"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e2c0010, 0x0ffc0e10, "tmia%17?tb%16?tb%c\t%5-8g, %0-3r, %12-15r"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e200010, 0x0fff0e10, "tmia%c\t%5-8g, %0-3r, %12-15r"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e280010, 0x0fff0e10, "tmiaph%c\t%5-8g, %0-3r, %12-15r"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e100030, 0x0f300fff, "tmovmsk%22-23w%c\t%12-15r, %16-19g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e100110, 0x0ff00ff0, "tmrc%c\t%12-15r, %16-19G"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0c500000, 0x0ff00ff0, "tmrrc%c\t%12-15r, %16-19r, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e130150, 0x0f3f0fff, "torc%22-23w%c\t%12-15r"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e120190, 0x0f3f0fff, "torvsc%22-23w%c\t%12-15r"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e2001c0, 0x0f300fff, "wabs%22-23w%c\t%12-15g, %16-19g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e0001c0, 0x0f300fff, "wacc%22-23w%c\t%12-15g, %16-19g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e000180, 0x0f000ff0, "wadd%20-23w%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e2001a0, 0x0fb00ff0, "waddbhus%22?ml%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0ea001a0, 0x0ff00ff0, "waddsubhx%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e000020, 0x0f800ff0, "waligni%c\t%12-15g, %16-19g, %0-3g, #%20-22d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e800020, 0x0fc00ff0, "walignr%20-21d%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e200000, 0x0fe00ff0, "wand%20'n%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e800000, 0x0fa00ff0, "wavg2%22?hb%20'r%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e400000, 0x0fe00ff0, "wavg4%20'r%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e000060, 0x0f300ff0, "wcmpeq%22-23w%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e100060, 0x0f100ff0, "wcmpgt%21?su%22-23w%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0xfc500100, 0xfe500f00, "wldrd\t%12-15g, %r"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0xfc100100, 0xfe500f00, "wldrw\t%12-15G, %A"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0c100000, 0x0e100e00, "wldr%L%c\t%12-15g, %l"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e400100, 0x0fc00ff0, "wmac%21?su%20'z%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e800100, 0x0fc00ff0, "wmadd%21?su%20'x%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0ec00100, 0x0fd00ff0, "wmadd%21?sun%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e000160, 0x0f100ff0, "wmax%21?su%22-23w%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e000080, 0x0f100fe0, "wmerge%c\t%12-15g, %16-19g, %0-3g, #%21-23d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e0000a0, 0x0f800ff0, "wmia%21?tb%20?tb%22'n%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e800120, 0x0f800ff0,
     "wmiaw%21?tb%20?tb%22'n%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e100160, 0x0f100ff0, "wmin%21?su%22-23w%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e000100, 0x0fc00ff0, "wmul%21?su%20?ml%23'r%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0ed00100, 0x0fd00ff0, "wmul%21?sumr%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0ee000c0, 0x0fe00ff0, "wmulwsm%20`r%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0ec000c0, 0x0fe00ff0, "wmulwum%20`r%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0eb000c0, 0x0ff00ff0, "wmulwl%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e8000a0, 0x0f800ff0,
     "wqmia%21?tb%20?tb%22'n%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e100080, 0x0fd00ff0, "wqmulm%21'r%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0ec000e0, 0x0fd00ff0, "wqmulwm%21'r%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e000000, 0x0ff00ff0, "wor%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e000080, 0x0f000ff0, "wpack%20-23w%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0xfe300040, 0xff300ef0, "wror%22-23w\t%12-15g, %16-19g, #%i"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e300040, 0x0f300ff0, "wror%22-23w%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e300140, 0x0f300ff0, "wror%22-23wg%c\t%12-15g, %16-19g, %0-3G"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e000120, 0x0fa00ff0, "wsad%22?hb%20'z%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e0001e0, 0x0f000ff0, "wshufh%c\t%12-15g, %16-19g, #%Z"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0xfe100040, 0xff300ef0, "wsll%22-23w\t%12-15g, %16-19g, #%i"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e100040, 0x0f300ff0, "wsll%22-23w%8'g%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e100148, 0x0f300ffc, "wsll%22-23w%8'g%c\t%12-15g, %16-19g, %0-3G"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0xfe000040, 0xff300ef0, "wsra%22-23w\t%12-15g, %16-19g, #%i"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e000040, 0x0f300ff0, "wsra%22-23w%8'g%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e000148, 0x0f300ffc, "wsra%22-23w%8'g%c\t%12-15g, %16-19g, %0-3G"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0xfe200040, 0xff300ef0, "wsrl%22-23w\t%12-15g, %16-19g, #%i"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e200040, 0x0f300ff0, "wsrl%22-23w%8'g%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e200148, 0x0f300ffc, "wsrl%22-23w%8'g%c\t%12-15g, %16-19g, %0-3G"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0xfc400100, 0xfe500f00, "wstrd\t%12-15g, %r"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0xfc000100, 0xfe500f00, "wstrw\t%12-15G, %A"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0c000000, 0x0e100e00, "wstr%L%c\t%12-15g, %l"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e0001a0, 0x0f000ff0, "wsub%20-23w%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0ed001c0, 0x0ff00ff0, "wsubaddhx%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e1001c0, 0x0f300ff0, "wabsdiff%22-23w%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e0000c0, 0x0fd00fff, "wunpckeh%21?sub%c\t%12-15g, %16-19g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e4000c0, 0x0fd00fff, "wunpckeh%21?suh%c\t%12-15g, %16-19g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e8000c0, 0x0fd00fff, "wunpckeh%21?suw%c\t%12-15g, %16-19g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e0000e0, 0x0f100fff, "wunpckel%21?su%22-23w%c\t%12-15g, %16-19g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e1000c0, 0x0f300ff0, "wunpckih%22-23w%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e1000e0, 0x0f300ff0, "wunpckil%22-23w%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_XSCALE),
     0x0e100000, 0x0ff00ff0, "wxor%c\t%12-15g, %16-19g, %0-3g"},
-  {ARM_FEATURE_CORE_LOW (0),
+  {ANY, ARM_FEATURE_CORE_LOW (0),
     SENTINEL_IWMMXT_END, 0, "" },
 
   /* Floating point coprocessor (FPA) instructions.  */
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e000100, 0x0ff08f10, "adf%c%P%R\t%12-14f, %16-18f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e100100, 0x0ff08f10, "muf%c%P%R\t%12-14f, %16-18f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e200100, 0x0ff08f10, "suf%c%P%R\t%12-14f, %16-18f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e300100, 0x0ff08f10, "rsf%c%P%R\t%12-14f, %16-18f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e400100, 0x0ff08f10, "dvf%c%P%R\t%12-14f, %16-18f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e500100, 0x0ff08f10, "rdf%c%P%R\t%12-14f, %16-18f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e600100, 0x0ff08f10, "pow%c%P%R\t%12-14f, %16-18f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e700100, 0x0ff08f10, "rpw%c%P%R\t%12-14f, %16-18f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e800100, 0x0ff08f10, "rmf%c%P%R\t%12-14f, %16-18f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e900100, 0x0ff08f10, "fml%c%P%R\t%12-14f, %16-18f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0ea00100, 0x0ff08f10, "fdv%c%P%R\t%12-14f, %16-18f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0eb00100, 0x0ff08f10, "frd%c%P%R\t%12-14f, %16-18f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0ec00100, 0x0ff08f10, "pol%c%P%R\t%12-14f, %16-18f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e008100, 0x0ff08f10, "mvf%c%P%R\t%12-14f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e108100, 0x0ff08f10, "mnf%c%P%R\t%12-14f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e208100, 0x0ff08f10, "abs%c%P%R\t%12-14f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e308100, 0x0ff08f10, "rnd%c%P%R\t%12-14f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e408100, 0x0ff08f10, "sqt%c%P%R\t%12-14f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e508100, 0x0ff08f10, "log%c%P%R\t%12-14f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e608100, 0x0ff08f10, "lgn%c%P%R\t%12-14f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e708100, 0x0ff08f10, "exp%c%P%R\t%12-14f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e808100, 0x0ff08f10, "sin%c%P%R\t%12-14f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e908100, 0x0ff08f10, "cos%c%P%R\t%12-14f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0ea08100, 0x0ff08f10, "tan%c%P%R\t%12-14f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0eb08100, 0x0ff08f10, "asn%c%P%R\t%12-14f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0ec08100, 0x0ff08f10, "acs%c%P%R\t%12-14f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0ed08100, 0x0ff08f10, "atn%c%P%R\t%12-14f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0ee08100, 0x0ff08f10, "urd%c%P%R\t%12-14f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0ef08100, 0x0ff08f10, "nrm%c%P%R\t%12-14f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e000110, 0x0ff00f1f, "flt%c%P%R\t%16-18f, %12-15r"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e100110, 0x0fff0f98, "fix%c%R\t%12-15r, %0-2f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e200110, 0x0fff0fff, "wfs%c\t%12-15r"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e300110, 0x0fff0fff, "rfs%c\t%12-15r"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e400110, 0x0fff0fff, "wfc%c\t%12-15r"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e500110, 0x0fff0fff, "rfc%c\t%12-15r"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0e90f110, 0x0ff8fff0, "cmf%c\t%16-18f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0eb0f110, 0x0ff8fff0, "cnf%c\t%16-18f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0ed0f110, 0x0ff8fff0, "cmfe%c\t%16-18f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0ef0f110, 0x0ff8fff0, "cnfe%c\t%16-18f, %0-3f"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0c000100, 0x0e100f00, "stf%c%Q\t%12-14f, %A"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V1),
     0x0c100100, 0x0e100f00, "ldf%c%Q\t%12-14f, %A"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V2),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V2),
     0x0c000200, 0x0e100f00, "sfm%c\t%12-14f, %F, %A"},
-  {ARM_FEATURE_COPROC (FPU_FPA_EXT_V2),
+  {ANY, ARM_FEATURE_COPROC (FPU_FPA_EXT_V2),
     0x0c100200, 0x0e100f00, "lfm%c\t%12-14f, %F, %A"},
 
+  /* Armv8.1-M Mainline instructions.  */
+  {T32, ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_1M_MAIN),
+    0xec9f0b00, 0xffbf0f01, "vscclrm%c\t%C"},
+  {T32, ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_1M_MAIN),
+    0xec9f0a00, 0xffbf0f00, "vscclrm%c\t%C"},
+
   /* ARMv8-M Mainline Security Extensions instructions.  */
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8M_MAIN),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8M_MAIN),
     0xec300a00, 0xfff0ffff, "vlldm\t%16-19r"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8M_MAIN),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8M_MAIN),
     0xec200a00, 0xfff0ffff, "vlstm\t%16-19r"},
 
   /* Register load/store.  */
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD | FPU_NEON_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD | FPU_NEON_EXT_V1),
     0x0d2d0b00, 0x0fbf0f01, "vpush%c\t%B"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD | FPU_NEON_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD | FPU_NEON_EXT_V1),
     0x0d200b00, 0x0fb00f01, "vstmdb%c\t%16-19r!, %B"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD | FPU_NEON_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD | FPU_NEON_EXT_V1),
     0x0d300b00, 0x0fb00f01, "vldmdb%c\t%16-19r!, %B"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD | FPU_NEON_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD | FPU_NEON_EXT_V1),
     0x0c800b00, 0x0f900f01, "vstmia%c\t%16-19r%21'!, %B"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD | FPU_NEON_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD | FPU_NEON_EXT_V1),
     0x0cbd0b00, 0x0fbf0f01, "vpop%c\t%B"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD | FPU_NEON_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD | FPU_NEON_EXT_V1),
     0x0c900b00, 0x0f900f01, "vldmia%c\t%16-19r%21'!, %B"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD | FPU_NEON_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD | FPU_NEON_EXT_V1),
     0x0d000b00, 0x0f300f00, "vstr%c\t%12-15,22D, %A"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD | FPU_NEON_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD | FPU_NEON_EXT_V1),
     0x0d100b00, 0x0f300f00, "vldr%c\t%12-15,22D, %A"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0d2d0a00, 0x0fbf0f00, "vpush%c\t%y3"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0d200a00, 0x0fb00f00, "vstmdb%c\t%16-19r!, %y3"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0d300a00, 0x0fb00f00, "vldmdb%c\t%16-19r!, %y3"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0c800a00, 0x0f900f00, "vstmia%c\t%16-19r%21'!, %y3"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0cbd0a00, 0x0fbf0f00, "vpop%c\t%y3"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0c900a00, 0x0f900f00, "vldmia%c\t%16-19r%21'!, %y3"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0d000a00, 0x0f300f00, "vstr%c\t%y1, %A"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0d100a00, 0x0f300f00, "vldr%c\t%y1, %A"},
+  {ANY, ARM_FEATURE_COPROC (ARM_EXT2_V8_1M_MAIN),
+    0xec100f80, 0xfe101f80, "vldr%c\t%J, %K"},
+  {ANY, ARM_FEATURE_COPROC (ARM_EXT2_V8_1M_MAIN),
+    0xec000f80, 0xfe101f80, "vstr%c\t%J, %K"},
 
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0d200b01, 0x0fb00f01, "fstmdbx%c\t%16-19r!, %z3\t;@ Deprecated"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0d300b01, 0x0fb00f01, "fldmdbx%c\t%16-19r!, %z3\t;@ Deprecated"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0c800b01, 0x0f900f01, "fstmiax%c\t%16-19r%21'!, %z3\t;@ Deprecated"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0c900b01, 0x0f900f01, "fldmiax%c\t%16-19r%21'!, %z3\t;@ Deprecated"},
 
   /* Data transfer between ARM and NEON registers.  */
-  {ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
     0x0e800b10, 0x0ff00f70, "vdup%c.32\t%16-19,7D, %12-15r"},
-  {ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
     0x0e800b30, 0x0ff00f70, "vdup%c.16\t%16-19,7D, %12-15r"},
-  {ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
     0x0ea00b10, 0x0ff00f70, "vdup%c.32\t%16-19,7Q, %12-15r"},
-  {ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
     0x0ea00b30, 0x0ff00f70, "vdup%c.16\t%16-19,7Q, %12-15r"},
-  {ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
     0x0ec00b10, 0x0ff00f70, "vdup%c.8\t%16-19,7D, %12-15r"},
-  {ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
     0x0ee00b10, 0x0ff00f70, "vdup%c.8\t%16-19,7Q, %12-15r"},
-  {ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
     0x0c400b10, 0x0ff00fd0, "vmov%c\t%0-3,5D, %12-15r, %16-19r"},
-  {ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
     0x0c500b10, 0x0ff00fd0, "vmov%c\t%12-15r, %16-19r, %0-3,5D"},
-  {ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
     0x0e000b10, 0x0fd00f70, "vmov%c.32\t%16-19,7D[%21d], %12-15r"},
-  {ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
     0x0e100b10, 0x0f500f70, "vmov%c.32\t%12-15r, %16-19,7D[%21d]"},
-  {ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
     0x0e000b30, 0x0fd00f30, "vmov%c.16\t%16-19,7D[%6,21d], %12-15r"},
-  {ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
     0x0e100b30, 0x0f500f30, "vmov%c.%23?us16\t%12-15r, %16-19,7D[%6,21d]"},
-  {ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
     0x0e400b10, 0x0fd00f10, "vmov%c.8\t%16-19,7D[%5,6,21d], %12-15r"},
-  {ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_NEON_EXT_V1),
     0x0e500b10, 0x0f500f10, "vmov%c.%23?us8\t%12-15r, %16-19,7D[%5,6,21d]"},
   /* Half-precision conversion instructions.  */
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
     0x0eb20b40, 0x0fbf0f50, "vcvt%7?tb%c.f64.f16\t%z1, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
     0x0eb30b40, 0x0fbf0f50, "vcvt%7?tb%c.f16.f64\t%y1, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_FP16),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_FP16),
     0x0eb20a40, 0x0fbf0f50, "vcvt%7?tb%c.f32.f16\t%y1, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_FP16),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_FP16),
     0x0eb30a40, 0x0fbf0f50, "vcvt%7?tb%c.f16.f32\t%y1, %y0"},
 
   /* Floating point coprocessor (VFP) instructions.  */
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0ee00a10, 0x0fff0fff, "vmsr%c\tfpsid, %12-15r"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0ee10a10, 0x0fff0fff, "vmsr%c\tfpscr, %12-15r"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0ee60a10, 0x0fff0fff, "vmsr%c\tmvfr1, %12-15r"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0ee70a10, 0x0fff0fff, "vmsr%c\tmvfr0, %12-15r"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
     0x0ee50a10, 0x0fff0fff, "vmsr%c\tmvfr2, %12-15r"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0ee80a10, 0x0fff0fff, "vmsr%c\tfpexc, %12-15r"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0ee90a10, 0x0fff0fff, "vmsr%c\tfpinst, %12-15r\t@ Impl def"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0eea0a10, 0x0fff0fff, "vmsr%c\tfpinst2, %12-15r\t@ Impl def"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0ef00a10, 0x0fff0fff, "vmrs%c\t%12-15r, fpsid"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0ef1fa10, 0x0fffffff, "vmrs%c\tAPSR_nzcv, fpscr"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0ef10a10, 0x0fff0fff, "vmrs%c\t%12-15r, fpscr"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
     0x0ef50a10, 0x0fff0fff, "vmrs%c\t%12-15r, mvfr2"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0ef60a10, 0x0fff0fff, "vmrs%c\t%12-15r, mvfr1"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0ef70a10, 0x0fff0fff, "vmrs%c\t%12-15r, mvfr0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0ef80a10, 0x0fff0fff, "vmrs%c\t%12-15r, fpexc"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0ef90a10, 0x0fff0fff, "vmrs%c\t%12-15r, fpinst\t@ Impl def"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0efa0a10, 0x0fff0fff, "vmrs%c\t%12-15r, fpinst2\t@ Impl def"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
     0x0e000b10, 0x0fd00fff, "vmov%c.32\t%z2[%21d], %12-15r"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
     0x0e100b10, 0x0fd00fff, "vmov%c.32\t%12-15r, %z2[%21d]"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0ee00a10, 0x0ff00fff, "vmsr%c\t<impl def %16-19x>, %12-15r"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0ef00a10, 0x0ff00fff, "vmrs%c\t%12-15r, <impl def %16-19x>"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0e000a10, 0x0ff00f7f, "vmov%c\t%y2, %12-15r"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0e100a10, 0x0ff00f7f, "vmov%c\t%12-15r, %y2"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0eb50a40, 0x0fbf0f70, "vcmp%7'e%c.f32\t%y1, #0.0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
     0x0eb50b40, 0x0fbf0f70, "vcmp%7'e%c.f64\t%z1, #0.0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0eb00a40, 0x0fbf0fd0, "vmov%c.f32\t%y1, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0eb00ac0, 0x0fbf0fd0, "vabs%c.f32\t%y1, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
     0x0eb00b40, 0x0fbf0fd0, "vmov%c.f64\t%z1, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
     0x0eb00bc0, 0x0fbf0fd0, "vabs%c.f64\t%z1, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0eb10a40, 0x0fbf0fd0, "vneg%c.f32\t%y1, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0eb10ac0, 0x0fbf0fd0, "vsqrt%c.f32\t%y1, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
     0x0eb10b40, 0x0fbf0fd0, "vneg%c.f64\t%z1, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
     0x0eb10bc0, 0x0fbf0fd0, "vsqrt%c.f64\t%z1, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
     0x0eb70ac0, 0x0fbf0fd0, "vcvt%c.f64.f32\t%z1, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
     0x0eb70bc0, 0x0fbf0fd0, "vcvt%c.f32.f64\t%y1, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0eb80a40, 0x0fbf0f50, "vcvt%c.f32.%7?su32\t%y1, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
     0x0eb80b40, 0x0fbf0f50, "vcvt%c.f64.%7?su32\t%z1, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0eb40a40, 0x0fbf0f50, "vcmp%7'e%c.f32\t%y1, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
     0x0eb40b40, 0x0fbf0f50, "vcmp%7'e%c.f64\t%z1, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V3xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V3xD),
     0x0eba0a40, 0x0fbe0f50, "vcvt%c.f32.%16?us%7?31%7?26\t%y1, %y1, #%5,0-3k"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V3),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V3),
     0x0eba0b40, 0x0fbe0f50, "vcvt%c.f64.%16?us%7?31%7?26\t%z1, %z1, #%5,0-3k"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0ebc0a40, 0x0fbe0f50, "vcvt%7`r%c.%16?su32.f32\t%y1, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
     0x0ebc0b40, 0x0fbe0f50, "vcvt%7`r%c.%16?su32.f64\t%y1, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V3xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V3xD),
     0x0ebe0a40, 0x0fbe0f50, "vcvt%c.%16?us%7?31%7?26.f32\t%y1, %y1, #%5,0-3k"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V3),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V3),
     0x0ebe0b40, 0x0fbe0f50, "vcvt%c.%16?us%7?31%7?26.f64\t%z1, %z1, #%5,0-3k"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
     0x0c500b10, 0x0fb00ff0, "vmov%c\t%12-15r, %16-19r, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V3xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V3xD),
     0x0eb00a00, 0x0fb00ff0, "vmov%c.f32\t%y1, #%0-3,16-19E"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V3),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V3),
     0x0eb00b00, 0x0fb00ff0, "vmov%c.f64\t%z1, #%0-3,16-19E"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V2),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V2),
     0x0c400a10, 0x0ff00fd0, "vmov%c\t%y4, %12-15r, %16-19r"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V2),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V2),
     0x0c400b10, 0x0ff00fd0, "vmov%c\t%z0, %12-15r, %16-19r"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V2),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V2),
     0x0c500a10, 0x0ff00fd0, "vmov%c\t%12-15r, %16-19r, %y4"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0e000a00, 0x0fb00f50, "vmla%c.f32\t%y1, %y2, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0e000a40, 0x0fb00f50, "vmls%c.f32\t%y1, %y2, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
     0x0e000b00, 0x0fb00f50, "vmla%c.f64\t%z1, %z2, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
     0x0e000b40, 0x0fb00f50, "vmls%c.f64\t%z1, %z2, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0e100a00, 0x0fb00f50, "vnmls%c.f32\t%y1, %y2, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0e100a40, 0x0fb00f50, "vnmla%c.f32\t%y1, %y2, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
     0x0e100b00, 0x0fb00f50, "vnmls%c.f64\t%z1, %z2, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
     0x0e100b40, 0x0fb00f50, "vnmla%c.f64\t%z1, %z2, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0e200a00, 0x0fb00f50, "vmul%c.f32\t%y1, %y2, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0e200a40, 0x0fb00f50, "vnmul%c.f32\t%y1, %y2, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
     0x0e200b00, 0x0fb00f50, "vmul%c.f64\t%z1, %z2, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
     0x0e200b40, 0x0fb00f50, "vnmul%c.f64\t%z1, %z2, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0e300a00, 0x0fb00f50, "vadd%c.f32\t%y1, %y2, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0e300a40, 0x0fb00f50, "vsub%c.f32\t%y1, %y2, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
     0x0e300b00, 0x0fb00f50, "vadd%c.f64\t%z1, %z2, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
     0x0e300b40, 0x0fb00f50, "vsub%c.f64\t%z1, %z2, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0e800a00, 0x0fb00f50, "vdiv%c.f32\t%y1, %y2, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_V1),
     0x0e800b00, 0x0fb00f50, "vdiv%c.f64\t%z1, %z2, %z0"},
 
   /* Cirrus coprocessor instructions.  */
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0d100400, 0x0f500f00, "cfldrs%c\tmvf%12-15d, %A"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0c100400, 0x0f500f00, "cfldrs%c\tmvf%12-15d, %A"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0d500400, 0x0f500f00, "cfldrd%c\tmvd%12-15d, %A"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0c500400, 0x0f500f00, "cfldrd%c\tmvd%12-15d, %A"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0d100500, 0x0f500f00, "cfldr32%c\tmvfx%12-15d, %A"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0c100500, 0x0f500f00, "cfldr32%c\tmvfx%12-15d, %A"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0d500500, 0x0f500f00, "cfldr64%c\tmvdx%12-15d, %A"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0c500500, 0x0f500f00, "cfldr64%c\tmvdx%12-15d, %A"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0d000400, 0x0f500f00, "cfstrs%c\tmvf%12-15d, %A"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0c000400, 0x0f500f00, "cfstrs%c\tmvf%12-15d, %A"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0d400400, 0x0f500f00, "cfstrd%c\tmvd%12-15d, %A"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0c400400, 0x0f500f00, "cfstrd%c\tmvd%12-15d, %A"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0d000500, 0x0f500f00, "cfstr32%c\tmvfx%12-15d, %A"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0c000500, 0x0f500f00, "cfstr32%c\tmvfx%12-15d, %A"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0d400500, 0x0f500f00, "cfstr64%c\tmvdx%12-15d, %A"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0c400500, 0x0f500f00, "cfstr64%c\tmvdx%12-15d, %A"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e000450, 0x0ff00ff0, "cfmvsr%c\tmvf%16-19d, %12-15r"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e100450, 0x0ff00ff0, "cfmvrs%c\t%12-15r, mvf%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e000410, 0x0ff00ff0, "cfmvdlr%c\tmvd%16-19d, %12-15r"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e100410, 0x0ff00ff0, "cfmvrdl%c\t%12-15r, mvd%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e000430, 0x0ff00ff0, "cfmvdhr%c\tmvd%16-19d, %12-15r"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e100430, 0x0ff00fff, "cfmvrdh%c\t%12-15r, mvd%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e000510, 0x0ff00fff, "cfmv64lr%c\tmvdx%16-19d, %12-15r"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e100510, 0x0ff00fff, "cfmvr64l%c\t%12-15r, mvdx%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e000530, 0x0ff00fff, "cfmv64hr%c\tmvdx%16-19d, %12-15r"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e100530, 0x0ff00fff, "cfmvr64h%c\t%12-15r, mvdx%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e200440, 0x0ff00fff, "cfmval32%c\tmvax%12-15d, mvfx%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e100440, 0x0ff00fff, "cfmv32al%c\tmvfx%12-15d, mvax%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e200460, 0x0ff00fff, "cfmvam32%c\tmvax%12-15d, mvfx%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e100460, 0x0ff00fff, "cfmv32am%c\tmvfx%12-15d, mvax%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e200480, 0x0ff00fff, "cfmvah32%c\tmvax%12-15d, mvfx%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e100480, 0x0ff00fff, "cfmv32ah%c\tmvfx%12-15d, mvax%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e2004a0, 0x0ff00fff, "cfmva32%c\tmvax%12-15d, mvfx%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e1004a0, 0x0ff00fff, "cfmv32a%c\tmvfx%12-15d, mvax%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e2004c0, 0x0ff00fff, "cfmva64%c\tmvax%12-15d, mvdx%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e1004c0, 0x0ff00fff, "cfmv64a%c\tmvdx%12-15d, mvax%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e2004e0, 0x0fff0fff, "cfmvsc32%c\tdspsc, mvdx%12-15d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e1004e0, 0x0fff0fff, "cfmv32sc%c\tmvdx%12-15d, dspsc"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e000400, 0x0ff00fff, "cfcpys%c\tmvf%12-15d, mvf%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e000420, 0x0ff00fff, "cfcpyd%c\tmvd%12-15d, mvd%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e000460, 0x0ff00fff, "cfcvtsd%c\tmvd%12-15d, mvf%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e000440, 0x0ff00fff, "cfcvtds%c\tmvf%12-15d, mvd%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e000480, 0x0ff00fff, "cfcvt32s%c\tmvf%12-15d, mvfx%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e0004a0, 0x0ff00fff, "cfcvt32d%c\tmvd%12-15d, mvfx%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e0004c0, 0x0ff00fff, "cfcvt64s%c\tmvf%12-15d, mvdx%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e0004e0, 0x0ff00fff, "cfcvt64d%c\tmvd%12-15d, mvdx%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e100580, 0x0ff00fff, "cfcvts32%c\tmvfx%12-15d, mvf%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e1005a0, 0x0ff00fff, "cfcvtd32%c\tmvfx%12-15d, mvd%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e1005c0, 0x0ff00fff, "cftruncs32%c\tmvfx%12-15d, mvf%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e1005e0, 0x0ff00fff, "cftruncd32%c\tmvfx%12-15d, mvd%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e000550, 0x0ff00ff0, "cfrshl32%c\tmvfx%16-19d, mvfx%0-3d, %12-15r"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e000570, 0x0ff00ff0, "cfrshl64%c\tmvdx%16-19d, mvdx%0-3d, %12-15r"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e000500, 0x0ff00f10, "cfsh32%c\tmvfx%12-15d, mvfx%16-19d, #%I"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e200500, 0x0ff00f10, "cfsh64%c\tmvdx%12-15d, mvdx%16-19d, #%I"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e100490, 0x0ff00ff0, "cfcmps%c\t%12-15r, mvf%16-19d, mvf%0-3d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e1004b0, 0x0ff00ff0, "cfcmpd%c\t%12-15r, mvd%16-19d, mvd%0-3d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e100590, 0x0ff00ff0, "cfcmp32%c\t%12-15r, mvfx%16-19d, mvfx%0-3d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e1005b0, 0x0ff00ff0, "cfcmp64%c\t%12-15r, mvdx%16-19d, mvdx%0-3d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e300400, 0x0ff00fff, "cfabss%c\tmvf%12-15d, mvf%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e300420, 0x0ff00fff, "cfabsd%c\tmvd%12-15d, mvd%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e300440, 0x0ff00fff, "cfnegs%c\tmvf%12-15d, mvf%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e300460, 0x0ff00fff, "cfnegd%c\tmvd%12-15d, mvd%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e300480, 0x0ff00ff0, "cfadds%c\tmvf%12-15d, mvf%16-19d, mvf%0-3d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e3004a0, 0x0ff00ff0, "cfaddd%c\tmvd%12-15d, mvd%16-19d, mvd%0-3d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e3004c0, 0x0ff00ff0, "cfsubs%c\tmvf%12-15d, mvf%16-19d, mvf%0-3d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e3004e0, 0x0ff00ff0, "cfsubd%c\tmvd%12-15d, mvd%16-19d, mvd%0-3d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e100400, 0x0ff00ff0, "cfmuls%c\tmvf%12-15d, mvf%16-19d, mvf%0-3d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e100420, 0x0ff00ff0, "cfmuld%c\tmvd%12-15d, mvd%16-19d, mvd%0-3d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e300500, 0x0ff00fff, "cfabs32%c\tmvfx%12-15d, mvfx%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e300520, 0x0ff00fff, "cfabs64%c\tmvdx%12-15d, mvdx%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e300540, 0x0ff00fff, "cfneg32%c\tmvfx%12-15d, mvfx%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e300560, 0x0ff00fff, "cfneg64%c\tmvdx%12-15d, mvdx%16-19d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e300580, 0x0ff00ff0, "cfadd32%c\tmvfx%12-15d, mvfx%16-19d, mvfx%0-3d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e3005a0, 0x0ff00ff0, "cfadd64%c\tmvdx%12-15d, mvdx%16-19d, mvdx%0-3d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e3005c0, 0x0ff00ff0, "cfsub32%c\tmvfx%12-15d, mvfx%16-19d, mvfx%0-3d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e3005e0, 0x0ff00ff0, "cfsub64%c\tmvdx%12-15d, mvdx%16-19d, mvdx%0-3d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e100500, 0x0ff00ff0, "cfmul32%c\tmvfx%12-15d, mvfx%16-19d, mvfx%0-3d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e100520, 0x0ff00ff0, "cfmul64%c\tmvdx%12-15d, mvdx%16-19d, mvdx%0-3d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e100540, 0x0ff00ff0, "cfmac32%c\tmvfx%12-15d, mvfx%16-19d, mvfx%0-3d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e100560, 0x0ff00ff0, "cfmsc32%c\tmvfx%12-15d, mvfx%16-19d, mvfx%0-3d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e000600, 0x0ff00f10,
     "cfmadd32%c\tmvax%5-7d, mvfx%12-15d, mvfx%16-19d, mvfx%0-3d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e100600, 0x0ff00f10,
     "cfmsub32%c\tmvax%5-7d, mvfx%12-15d, mvfx%16-19d, mvfx%0-3d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e200600, 0x0ff00f10,
     "cfmadda32%c\tmvax%5-7d, mvax%12-15d, mvfx%16-19d, mvfx%0-3d"},
-  {ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
+  {ANY, ARM_FEATURE_COPROC (ARM_CEXT_MAVERICK),
     0x0e300600, 0x0ff00f10,
     "cfmsuba32%c\tmvax%5-7d, mvax%12-15d, mvfx%16-19d, mvfx%0-3d"},
 
   /* VFP Fused multiply add instructions.  */
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_FMA),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_FMA),
     0x0ea00a00, 0x0fb00f50, "vfma%c.f32\t%y1, %y2, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_FMA),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_FMA),
     0x0ea00b00, 0x0fb00f50, "vfma%c.f64\t%z1, %z2, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_FMA),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_FMA),
     0x0ea00a40, 0x0fb00f50, "vfms%c.f32\t%y1, %y2, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_FMA),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_FMA),
     0x0ea00b40, 0x0fb00f50, "vfms%c.f64\t%z1, %z2, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_FMA),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_FMA),
     0x0e900a40, 0x0fb00f50, "vfnma%c.f32\t%y1, %y2, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_FMA),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_FMA),
     0x0e900b40, 0x0fb00f50, "vfnma%c.f64\t%z1, %z2, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_FMA),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_FMA),
     0x0e900a00, 0x0fb00f50, "vfnms%c.f32\t%y1, %y2, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_FMA),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_FMA),
     0x0e900b00, 0x0fb00f50, "vfnms%c.f64\t%z1, %z2, %z0"},
 
   /* FP v5.  */
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
     0xfe000a00, 0xff800f50, "vsel%20-21c%u.f32\t%y1, %y2, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
     0xfe000b00, 0xff800f50, "vsel%20-21c%u.f64\t%z1, %z2, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
     0xfe800a00, 0xffb00f50, "vmaxnm%u.f32\t%y1, %y2, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
     0xfe800b00, 0xffb00f50, "vmaxnm%u.f64\t%z1, %z2, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
     0xfe800a40, 0xffb00f50, "vminnm%u.f32\t%y1, %y2, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
     0xfe800b40, 0xffb00f50, "vminnm%u.f64\t%z1, %z2, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
     0xfebc0a40, 0xffbc0f50, "vcvt%16-17?mpna%u.%7?su32.f32\t%y1, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
     0xfebc0b40, 0xffbc0f50, "vcvt%16-17?mpna%u.%7?su32.f64\t%y1, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
     0x0eb60a40, 0x0fbe0f50, "vrint%7,16??xzr%c.f32\t%y1, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
     0x0eb60b40, 0x0fbe0f50, "vrint%7,16??xzr%c.f64\t%z1, %z0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
     0xfeb80a40, 0xffbc0fd0, "vrint%16-17?mpna%u.f32\t%y1, %y0"},
-  {ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
+  {ANY, ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
     0xfeb80b40, 0xffbc0fd0, "vrint%16-17?mpna%u.f64\t%z1, %z0"},
 
   /* Generic coprocessor instructions.  */
-  {ARM_FEATURE_CORE_LOW (0), SENTINEL_GENERIC_START, 0, "" },
-  {ARM_FEATURE_CORE_LOW (ARM_EXT_V5E),
+  {ANY, ARM_FEATURE_CORE_LOW (0), SENTINEL_GENERIC_START, 0, "" },
+  {ANY, ARM_FEATURE_CORE_LOW (ARM_EXT_V5E),
     0x0c400000, 0x0ff00000, "mcrr%c\t%8-11d, %4-7d, %12-15R, %16-19r, cr%0-3d"},
-  {ARM_FEATURE_CORE_LOW (ARM_EXT_V5E),
+  {ANY, ARM_FEATURE_CORE_LOW (ARM_EXT_V5E),
     0x0c500000, 0x0ff00000,
     "mrrc%c\t%8-11d, %4-7d, %12-15Ru, %16-19Ru, cr%0-3d"},
-  {ARM_FEATURE_CORE_LOW (ARM_EXT_V2),
+  {ANY, ARM_FEATURE_CORE_LOW (ARM_EXT_V2),
     0x0e000000, 0x0f000010,
     "cdp%c\t%8-11d, %20-23d, cr%12-15d, cr%16-19d, cr%0-3d, {%5-7d}"},
-  {ARM_FEATURE_CORE_LOW (ARM_EXT_V2),
+  {ANY, ARM_FEATURE_CORE_LOW (ARM_EXT_V2),
     0x0e10f010, 0x0f10f010,
     "mrc%c\t%8-11d, %21-23d, APSR_nzcv, cr%16-19d, cr%0-3d, {%5-7d}"},
-  {ARM_FEATURE_CORE_LOW (ARM_EXT_V2),
+  {ANY, ARM_FEATURE_CORE_LOW (ARM_EXT_V2),
     0x0e100010, 0x0f100010,
     "mrc%c\t%8-11d, %21-23d, %12-15r, cr%16-19d, cr%0-3d, {%5-7d}"},
-  {ARM_FEATURE_CORE_LOW (ARM_EXT_V2),
+  {ANY, ARM_FEATURE_CORE_LOW (ARM_EXT_V2),
     0x0e000010, 0x0f100010,
     "mcr%c\t%8-11d, %21-23d, %12-15R, cr%16-19d, cr%0-3d, {%5-7d}"},
-  {ARM_FEATURE_CORE_LOW (ARM_EXT_V2),
+  {ANY, ARM_FEATURE_CORE_LOW (ARM_EXT_V2),
     0x0c000000, 0x0e100000, "stc%22'l%c\t%8-11d, cr%12-15d, %A"},
-  {ARM_FEATURE_CORE_LOW (ARM_EXT_V2),
+  {ANY, ARM_FEATURE_CORE_LOW (ARM_EXT_V2),
     0x0c100000, 0x0e100000, "ldc%22'l%c\t%8-11d, cr%12-15d, %A"},
 
   /* V6 coprocessor instructions.  */
-  {ARM_FEATURE_CORE_LOW (ARM_EXT_V6),
+  {ANY, ARM_FEATURE_CORE_LOW (ARM_EXT_V6),
     0xfc500000, 0xfff00000,
     "mrrc2%c\t%8-11d, %4-7d, %12-15Ru, %16-19Ru, cr%0-3d"},
-  {ARM_FEATURE_CORE_LOW (ARM_EXT_V6),
+  {ANY, ARM_FEATURE_CORE_LOW (ARM_EXT_V6),
     0xfc400000, 0xfff00000,
     "mcrr2%c\t%8-11d, %4-7d, %12-15R, %16-19R, cr%0-3d"},
 
   /* ARMv8.3 AdvSIMD instructions in the space of coprocessor 8.  */
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_3A),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_3A),
     0xfc800800, 0xfeb00f10, "vcadd%c.f16\t%12-15,22V, %16-19,7V, %0-3,5V, #%24?29%24'70"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_3A),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_3A),
     0xfc900800, 0xfeb00f10, "vcadd%c.f32\t%12-15,22V, %16-19,7V, %0-3,5V, #%24?29%24'70"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_3A),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_3A),
     0xfc200800, 0xff300f10, "vcmla%c.f16\t%12-15,22V, %16-19,7V, %0-3,5V, #%23'90"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_3A),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_3A),
     0xfd200800, 0xff300f10, "vcmla%c.f16\t%12-15,22V, %16-19,7V, %0-3,5V, #%23?21%23?780"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_3A),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_3A),
     0xfc300800, 0xff300f10, "vcmla%c.f32\t%12-15,22V, %16-19,7V, %0-3,5V, #%23'90"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_3A),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_3A),
     0xfd300800, 0xff300f10, "vcmla%c.f32\t%12-15,22V, %16-19,7V, %0-3,5V, #%23?21%23?780"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_3A),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_3A),
     0xfe000800, 0xffa00f10, "vcmla%c.f16\t%12-15,22V, %16-19,7V, %0-3D[%5?10], #%20'90"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_3A),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_3A),
     0xfe200800, 0xffa00f10, "vcmla%c.f16\t%12-15,22V, %16-19,7V, %0-3D[%5?10], #%20?21%20?780"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_3A),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_3A),
     0xfe800800, 0xffa00f10, "vcmla%c.f32\t%12-15,22V, %16-19,7V, %0-3,5D[0], #%20'90"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_3A),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_3A),
     0xfea00800, 0xffa00f10, "vcmla%c.f32\t%12-15,22V, %16-19,7V, %0-3,5D[0], #%20?21%20?780"},
 
   /* Dot Product instructions in the space of coprocessor 13.  */
-  {ARM_FEATURE_COPROC (FPU_NEON_EXT_DOTPROD),
+  {ANY, ARM_FEATURE_COPROC (FPU_NEON_EXT_DOTPROD),
     0xfc200d00, 0xffb00f00, "v%4?usdot.%4?us8\t%12-15,22V, %16-19,7V, %0-3,5V"},
-  {ARM_FEATURE_COPROC (FPU_NEON_EXT_DOTPROD),
+  {ANY, ARM_FEATURE_COPROC (FPU_NEON_EXT_DOTPROD),
     0xfe000d00, 0xff000f00, "v%4?usdot.%4?us8\t%12-15,22V, %16-19,7V, %0-3D[%5?10]"},
 
   /* ARMv8.2 FMAC Long instructions in the space of coprocessor 8.  */
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_V8_2A),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_V8_2A),
     0xfc200810, 0xffb00f50, "vfmal.f16\t%12-15,22D, s%7,16-19d, s%5,0-3d"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_V8_2A),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_V8_2A),
     0xfca00810, 0xffb00f50, "vfmsl.f16\t%12-15,22D, s%7,16-19d, s%5,0-3d"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_V8_2A),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_V8_2A),
     0xfc200850, 0xffb00f50, "vfmal.f16\t%12-15,22Q, d%16-19,7d, d%0-3,5d"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_V8_2A),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_V8_2A),
     0xfca00850, 0xffb00f50, "vfmsl.f16\t%12-15,22Q, d%16-19,7d, d%0-3,5d"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_V8_2A),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_V8_2A),
     0xfe000810, 0xffb00f50, "vfmal.f16\t%12-15,22D, s%7,16-19d, s%5,0-2d[%3d]"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_V8_2A),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_V8_2A),
     0xfe100810, 0xffb00f50, "vfmsl.f16\t%12-15,22D, s%7,16-19d, s%5,0-2d[%3d]"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_V8_2A),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_V8_2A),
     0xfe000850, 0xffb00f50, "vfmal.f16\t%12-15,22Q, d%16-19,7d, d%0-2d[%3,5d]"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_V8_2A),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_V8_2A),
     0xfe100850, 0xffb00f50, "vfmsl.f16\t%12-15,22Q, d%16-19,7d, d%0-2d[%3,5d]"},
 
   /* V5 coprocessor instructions.  */
-  {ARM_FEATURE_CORE_LOW (ARM_EXT_V5),
+  {ANY, ARM_FEATURE_CORE_LOW (ARM_EXT_V5),
     0xfc100000, 0xfe100000, "ldc2%22'l%c\t%8-11d, cr%12-15d, %A"},
-  {ARM_FEATURE_CORE_LOW (ARM_EXT_V5),
+  {ANY, ARM_FEATURE_CORE_LOW (ARM_EXT_V5),
     0xfc000000, 0xfe100000, "stc2%22'l%c\t%8-11d, cr%12-15d, %A"},
-  {ARM_FEATURE_CORE_LOW (ARM_EXT_V5),
+  {ANY, ARM_FEATURE_CORE_LOW (ARM_EXT_V5),
     0xfe000000, 0xff000010,
     "cdp2%c\t%8-11d, %20-23d, cr%12-15d, cr%16-19d, cr%0-3d, {%5-7d}"},
-  {ARM_FEATURE_CORE_LOW (ARM_EXT_V5),
+  {ANY, ARM_FEATURE_CORE_LOW (ARM_EXT_V5),
     0xfe000010, 0xff100010,
     "mcr2%c\t%8-11d, %21-23d, %12-15R, cr%16-19d, cr%0-3d, {%5-7d}"},
-  {ARM_FEATURE_CORE_LOW (ARM_EXT_V5),
+  {ANY, ARM_FEATURE_CORE_LOW (ARM_EXT_V5),
     0xfe100010, 0xff100010,
     "mrc2%c\t%8-11d, %21-23d, %12-15r, cr%16-19d, cr%0-3d, {%5-7d}"},
 
   /* ARMv8.2 half-precision Floating point coprocessor 9 (VFP) instructions.
      cp_num: bit <11:8> == 0b1001.
      cond: bit <31:28> == 0b1110, otherwise, it's UNPREDICTABLE.  */
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0eb009c0, 0x0fbf0fd0, "vabs%c.f16\t%y1, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0e300900, 0x0fb00f50, "vadd%c.f16\t%y1, %y2, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0eb40940, 0x0fbf0f50, "vcmp%7'e%c.f16\t%y1, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0eb50940, 0x0fbf0f70, "vcmp%7'e%c.f16\t%y1, #0.0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0eba09c0, 0x0fbe0fd0, "vcvt%c.f16.%16?us%7?31%7?26\t%y1, %y1, #%5,0-3k"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0ebe09c0, 0x0fbe0fd0, "vcvt%c.%16?us%7?31%7?26.f16\t%y1, %y1, #%5,0-3k"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0ebc0940, 0x0fbe0f50, "vcvt%7`r%c.%16?su32.f16\t%y1, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0eb80940, 0x0fbf0f50, "vcvt%c.f16.%7?su32\t%y1, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0xfebc0940, 0xffbc0f50, "vcvt%16-17?mpna%u.%7?su32.f16\t%y1, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0e800900, 0x0fb00f50, "vdiv%c.f16\t%y1, %y2, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0ea00900, 0x0fb00f50, "vfma%c.f16\t%y1, %y2, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0ea00940, 0x0fb00f50, "vfms%c.f16\t%y1, %y2, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0e900940, 0x0fb00f50, "vfnma%c.f16\t%y1, %y2, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0e900900, 0x0fb00f50, "vfnms%c.f16\t%y1, %y2, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0xfeb00ac0, 0xffbf0fd0, "vins.f16\t%y1, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0xfeb00a40, 0xffbf0fd0, "vmovx%c.f16\t%y1, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0d100900, 0x0f300f00, "vldr%c.16\t%y1, %A"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0d000900, 0x0f300f00, "vstr%c.16\t%y1, %A"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0xfe800900, 0xffb00f50, "vmaxnm%c.f16\t%y1, %y2, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0xfe800940, 0xffb00f50, "vminnm%c.f16\t%y1, %y2, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0e000900, 0x0fb00f50, "vmla%c.f16\t%y1, %y2, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0e000940, 0x0fb00f50, "vmls%c.f16\t%y1, %y2, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0e100910, 0x0ff00f7f, "vmov%c.f16\t%12-15r, %y2"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0e000910, 0x0ff00f7f, "vmov%c.f16\t%y2, %12-15r"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0xeb00900, 0x0fb00ff0, "vmov%c.f16\t%y1, #%0-3,16-19E"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0e200900, 0x0fb00f50, "vmul%c.f16\t%y1, %y2, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0eb10940, 0x0fbf0fd0, "vneg%c.f16\t%y1, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0e100940, 0x0fb00f50, "vnmla%c.f16\t%y1, %y2, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0e100900, 0x0fb00f50, "vnmls%c.f16\t%y1, %y2, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0e200940, 0x0fb00f50, "vnmul%c.f16\t%y1, %y2, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0eb60940, 0x0fbe0f50, "vrint%7,16??xzr%c.f16\t%y1, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0xfeb80940, 0xffbc0fd0, "vrint%16-17?mpna%u.f16\t%y1, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0xfe000900, 0xff800f50, "vsel%20-21c%u.f16\t%y1, %y2, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0eb109c0, 0x0fbf0fd0, "vsqrt%c.f16\t%y1, %y0"},
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
     0x0e300940, 0x0fb00f50, "vsub%c.f16\t%y1, %y2, %y0"},
 
   /* ARMv8.3 javascript conversion instruction.  */
-  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_3A),
+  {ANY, ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_3A),
     0x0eb90bc0, 0x0fbf0fd0, "vjcvt%c.s32.f64\t%y1, %z0"},
 
-  {ARM_FEATURE_CORE_LOW (0), 0, 0, 0}
+  {ANY, ARM_FEATURE_CORE_LOW (0), 0, 0, 0}
 };
 
 /* Neon opcode table:  This does not encode the top byte -- that is
@@ -2710,6 +2740,7 @@ static const struct opcode16 thumb_opcodes[] =
        %a              print the address of a plain load/store
        %w              print the width and signedness of a core load/store
        %m              print register mask for ldm/stm
+       %n              print register mask for clrm
 
        %E              print the lsb and width fields of a bfc/bfi instruction
        %F              print the lsb and width fields of a sbfx/ubfx instruction
@@ -2717,6 +2748,8 @@ static const struct opcode16 thumb_opcodes[] =
        %W              print an offset for BF instruction
        %Y              print an offset for BFL instruction
        %Z              print an offset for BFCSEL instruction
+       %Q              print an offset for Low Overhead Loop instructions
+       %P              print an offset for Low Overhead Loop end instructions
        %b              print a conditional branch offset
        %B              print an unconditional branch offset
        %s              print the shift field of an SSAT instruction
@@ -2749,7 +2782,17 @@ static const struct opcode16 thumb_opcodes[] =
    makes heavy use of special-case bit patterns.  */
 static const struct opcode32 thumb32_opcodes[] =
 {
-  /* Armv8.1-M Mainline instructions.  */
+  /* Armv8.1-M Mainline and Armv8.1-M Mainline Security Extensions
+     instructions.  */
+  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_1M_MAIN),
+    0xf040c001, 0xfff0f001, "wls\tlr, %16-19S, %Q"},
+  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_1M_MAIN),
+    0xf040e001, 0xfff0ffff, "dls\tlr, %16-19S"},
+  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_1M_MAIN),
+    0xf02fc001, 0xfffff001, "le\t%P"},
+  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_1M_MAIN),
+    0xf00fc001, 0xfffff001, "le\tlr, %P"},
+
   {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_1M_MAIN),
     0xf040e001, 0xf860f001, "bf%c\t%G, %W"},
   {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_1M_MAIN),
@@ -2761,6 +2804,8 @@ static const struct opcode32 thumb32_opcodes[] =
   {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_1M_MAIN),
     0xf000e001, 0xf840f001, "bfcsel\t%G, %Z, %18-21c"},
 
+  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_1M_MAIN),
+    0xe89f0000, 0xffff2000, "clrm%c\t%n"},
 
   /* ARMv8-M and ARMv8-M Security Extensions instructions.  */
   {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8M), 0xe97fe97f, 0xffffffff, "sg"},
@@ -3414,7 +3459,7 @@ print_insn_coprocessor (bfd_vma pc,
                        long given,
                        bfd_boolean thumb)
 {
-  const struct opcode32 *insn;
+  const struct sopcode32 *insn;
   void *stream = info->stream;
   fprintf_ftype func = info->fprintf_func;
   unsigned long mask;
@@ -3423,6 +3468,8 @@ print_insn_coprocessor (bfd_vma pc,
   int cp_num;
   struct arm_private_data *private_data = info->private_data;
   arm_feature_set allowed_arches = ARM_ARCH_NONE;
+  arm_feature_set arm_ext_v8_1m_main =
+    ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_1M_MAIN);
 
   allowed_arches = private_data->features;
 
@@ -3490,6 +3537,10 @@ print_insn_coprocessor (bfd_vma pc,
            }
        }
 
+      if ((insn->isa == T32 && !thumb)
+         || (insn->isa == ARM && thumb))
+       continue;
+
       if ((given & mask) != value)
        continue;
 
@@ -3514,23 +3565,34 @@ print_insn_coprocessor (bfd_vma pc,
          /* Floating-point instructions.  */
          if (cp_num == 9 || cp_num == 10 || cp_num == 11)
            continue;
+
+         /* Armv8.1-M Mainline FP & MVE instructions.  */
+         if (ARM_CPU_HAS_FEATURE (arm_ext_v8_1m_main, allowed_arches)
+             && !ARM_CPU_IS_ANY (allowed_arches)
+             && (cp_num == 8 || cp_num == 14 || cp_num == 15))
+           continue;
        }
 
       for (c = insn->assembler; *c; c++)
        {
          if (*c == '%')
            {
-             switch (*++c)
+             const char mod = *++c;
+             switch (mod)
                {
                case '%':
                  func (stream, "%%");
                  break;
 
                case 'A':
+               case 'K':
                  {
                    int rn = (given >> 16) & 0xf;
                    bfd_vma offset = given & 0xff;
 
+                   if (mod == 'K')
+                     offset = given & 0x7f;
+
                    func (stream, "[%s", arm_regnames [(given >> 16) & 0xf]);
 
                    if (PRE_BIT_SET || WRITEBACK_BIT_SET)
@@ -3606,6 +3668,31 @@ print_insn_coprocessor (bfd_vma pc,
                  }
                  break;
 
+               case 'C':
+                 {
+                   bfd_boolean single = ((given >> 8) & 1) == 0;
+                   char reg_prefix = single ? 's' : 'd';
+                   int Dreg = (given >> 22) & 0x1;
+                   int Vdreg = (given >> 12) & 0xf;
+                   int reg = single ? ((Vdreg << 1) | Dreg)
+                                    : ((Dreg << 4) | Vdreg);
+                   int num = (given >> (single ? 0 : 1)) & 0x7f;
+                   int maxreg = single ? 31 : 15;
+                   int topreg = reg + num - 1;
+
+                   if (!num)
+                     func (stream, "{VPR}");
+                   else if (num == 1)
+                     func (stream, "{%c%d, VPR}", reg_prefix, reg);
+                   else if (topreg > maxreg)
+                     func (stream, "{%c%d-<overflow reg d%d, VPR}",
+                           reg_prefix, reg, single ? topreg >> 1 : topreg);
+                   else
+                     func (stream, "{%c%d-%c%d, VPR}", reg_prefix, reg,
+                           reg_prefix, topreg);
+                 }
+                 break;
+
                case 'u':
                  if (cond != COND_UNCOND)
                    is_unpredictable = TRUE;
@@ -3637,6 +3724,37 @@ print_insn_coprocessor (bfd_vma pc,
 
                  break;
 
+               case 'J':
+                 {
+                   int regno = ((given >> 19) & 0x8) | ((given >> 13) & 0x7);
+
+                   switch (regno)
+                     {
+                     case 0x1:
+                       func (stream, "FPSCR");
+                       break;
+                     case 0x2:
+                       func (stream, "FPSCR_nzcvqc");
+                       break;
+                     case 0xc:
+                       func (stream, "VPR");
+                       break;
+                     case 0xd:
+                       func (stream, "P0");
+                       break;
+                     case 0xe:
+                       func (stream, "FPCXTNS");
+                       break;
+                     case 0xf:
+                       func (stream, "FPCXTS");
+                       break;
+                     default:
+                       func (stream, "<invalid reg %d>", regno);
+                       break;
+                     }
+                 }
+                 break;
+
                case 'F':
                  switch (given & 0x00408000)
                    {
@@ -5545,6 +5663,7 @@ print_insn_thumb32 (bfd_vma pc, struct disassemble_info *info, long given)
   for (insn = thumb32_opcodes; insn->assembler; insn++)
     if ((given & insn->mask) == insn->value)
       {
+       bfd_boolean is_clrm = FALSE;
        bfd_boolean is_unpredictable = FALSE;
        signed long value_in_comment = 0;
        const char *c = insn->assembler;
@@ -5840,6 +5959,9 @@ print_insn_thumb32 (bfd_vma pc, struct disassemble_info *info, long given)
                }
                break;
 
+             case 'n':
+               is_clrm = TRUE;
+               /* Fall through.  */
              case 'm':
                {
                  int started = 0;
@@ -5852,7 +5974,12 @@ print_insn_thumb32 (bfd_vma pc, struct disassemble_info *info, long given)
                        if (started)
                          func (stream, ", ");
                        started = 1;
-                       func (stream, "%s", arm_regnames[reg]);
+                       if (is_clrm && reg == 13)
+                         func (stream, "(invalid: %s)", arm_regnames[reg]);
+                       else if (is_clrm && reg == 15)
+                         func (stream, "%s", "APSR");
+                       else
+                         func (stream, "%s", arm_regnames[reg]);
                      }
                  func (stream, "}");
                }
@@ -5944,6 +6071,32 @@ print_insn_thumb32 (bfd_vma pc, struct disassemble_info *info, long given)
                }
                break;
 
+             case 'Q':
+               {
+                 unsigned int immh = (given & 0x000007feu) >> 1;
+                 unsigned int imml = (given & 0x00000800u) >> 11;
+                 bfd_vma imm32 = 0;
+
+                 imm32 |= immh << 2;
+                 imm32 |= imml << 1;
+
+                 info->print_address_func (pc + 4 + imm32, info);
+               }
+               break;
+
+             case 'P':
+               {
+                 unsigned int immh = (given & 0x000007feu) >> 1;
+                 unsigned int imml = (given & 0x00000800u) >> 11;
+                 bfd_vma imm32 = 0;
+
+                 imm32 |= immh << 2;
+                 imm32 |= imml << 1;
+
+                 info->print_address_func (pc + 4 - imm32, info);
+               }
+               break;
+
              case 'b':
                {
                  unsigned int S = (given & 0x04000000u) >> 26;