* a29k.h: Remove RCS crud, update GPL to v2, update copyrights.
authorJohn Gilmore <gnu@cygnus>
Thu, 4 Feb 1993 10:08:35 +0000 (10:08 +0000)
committerJohn Gilmore <gnu@cygnus>
Thu, 4 Feb 1993 10:08:35 +0000 (10:08 +0000)
* convex.h:  Added, from GDB's convx-opcode.h.  Added CONST to all
initialized structs in it.

include/opcode/a29k.h
include/opcode/convex.h [new file with mode: 0644]

index 8ed4c46..c466fa8 100644 (file)
@@ -1,12 +1,12 @@
-/* Table of opcodes for the AMD 29000
-   Copyright (C) 1990, 1991 Free Software Foundation, Inc.
+/* Table of opcodes for the AMD 29000 family.
+   Copyright 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
 
 This file is part of GDB and GAS.
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 1, or (at your option)
-any later version.
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -14,10 +14,8 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with this program; see the file COPYING.  If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
-
-/* $Id$ */
+along with this program; if not, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 struct a29k_opcode {
   /* Name of the instruction.  */
@@ -284,37 +282,3 @@ static CONST struct a29k_opcode a29k_opcodes[] =
 };
 
 CONST unsigned int num_opcodes = (((sizeof a29k_opcodes) / (sizeof a29k_opcodes[0])) - 1);
-
-/*
- * $Log$
- * Revision 1.1  1991/12/01 02:22:19  sac
- * Initial revision
- *
- * Revision 1.5  1991/11/07  16:59:19  sac
- * Fixed encoding of mtacc instruction.
- *
- * Revision 1.4  1991/08/06  07:20:27  rich
- * Fixing CONST declarations.
- *
- * Revision 1.3  1991/08/05  22:31:05  rich
- * *** empty log message ***
- *
- * Revision 1.2  1991/07/15  23:34:04  steve
- * *** empty log message ***
- *
- * Revision 1.1  1991/05/19  00:19:33  rich
- * Initial revision
- *
- * Revision 1.1.1.1  1991/04/04  18:15:23  rich
- * new gas main line
- *
- * Revision 1.1  1991/04/04  18:15:23  rich
- * Initial revision
- *
- * Revision 1.2  1991/03/30  17:13:19  rich
- * num_opcodes now unsigned.  Also, added rcsid and log.
- *
- *
- */
-
-/* end of a29k-opcode.h */
diff --git a/include/opcode/convex.h b/include/opcode/convex.h
new file mode 100644 (file)
index 0000000..3e1000a
--- /dev/null
@@ -0,0 +1,1711 @@
+/* Information for instruction disassembly on the Convex.
+   Copyright 1989, 1993 Free Software Foundation.  
+
+This file is part of GDB.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+#ifndef        CONST
+#define        CONST
+#endif /* CONST */
+
+#define xxx 0
+#define rrr 1
+#define rr 2
+#define rxr 3
+#define r 4
+#define nops 5
+#define nr 6
+#define pcrel 7
+#define lr 8
+#define rxl 9
+#define rlr 10
+#define rrl 11
+#define iml 12
+#define imr 13
+#define a1r 14
+#define a1l 15
+#define a2r 16
+#define a2l 17
+#define a3 18
+#define a4 19
+#define a5 20
+#define V 1
+#define S 2
+#define VM 3
+#define A 4
+#define VL 5
+#define VS 6
+#define VLS 7
+#define PSW 8
+/* Prevent an error during "make depend".  */
+#if !defined (PC)
+#define PC 9
+#endif
+#define ITR 10
+#define VV 11
+#define ITSR 12
+#define TOC 13
+#define CIR 14
+#define TTR 15
+#define VMU 16
+#define VML 17
+#define ICR 18
+#define TCPU 19
+#define CPUID 20
+#define TID 21
+
+CONST char *op[] = {
+  "",
+  "v0\0v1\0v2\0v3\0v4\0v5\0v6\0v7",
+  "s0\0s1\0s2\0s3\0s4\0s5\0s6\0s7",
+  "vm",
+  "sp\0a1\0a2\0a3\0a4\0a5\0ap\0fp",
+  "vl",
+  "vs",
+  "vls",
+  "psw",
+  "pc",
+  "itr",
+  "vv",
+  "itsr",
+  "toc",
+  "cir",
+  "ttr",
+  "vmu",
+  "vml",
+  "icr",
+  "tcpu",
+  "cpuid",
+  "tid",
+};
+
+CONST struct formstr format0[] = {
+  {0,0,rrr,V,S,S},     /* mov */
+  {0,0,rrr,S,S,V},     /* mov */
+  {1,1,rrr,V,V,V},     /* merg.t */
+  {2,1,rrr,V,V,V},     /* mask.t */
+  {1,2,rrr,V,S,V},     /* merg.f */
+  {2,2,rrr,V,S,V},     /* mask.f */
+  {1,1,rrr,V,S,V},     /* merg.t */
+  {2,1,rrr,V,S,V},     /* mask.t */
+  {3,3,rrr,V,V,V},     /* mul.s */
+  {3,4,rrr,V,V,V},     /* mul.d */
+  {4,3,rrr,V,V,V},     /* div.s */
+  {4,4,rrr,V,V,V},     /* div.d */
+  {3,3,rrr,V,S,V},     /* mul.s */
+  {3,4,rrr,V,S,V},     /* mul.d */
+  {4,3,rrr,V,S,V},     /* div.s */
+  {4,4,rrr,V,S,V},     /* div.d */
+  {5,0,rrr,V,V,V},     /* and */
+  {6,0,rrr,V,V,V},     /* or */
+  {7,0,rrr,V,V,V},     /* xor */
+  {8,0,rrr,V,V,V},     /* shf */
+  {5,0,rrr,V,S,V},     /* and */
+  {6,0,rrr,V,S,V},     /* or */
+  {7,0,rrr,V,S,V},     /* xor */
+  {8,0,rrr,V,S,V},     /* shf */
+  {9,3,rrr,V,V,V},     /* add.s */
+  {9,4,rrr,V,V,V},     /* add.d */
+  {10,3,rrr,V,V,V},    /* sub.s */
+  {10,4,rrr,V,V,V},    /* sub.d */
+  {9,3,rrr,V,S,V},     /* add.s */
+  {9,4,rrr,V,S,V},     /* add.d */
+  {10,3,rrr,V,S,V},    /* sub.s */
+  {10,4,rrr,V,S,V},    /* sub.d */
+  {9,5,rrr,V,V,V},     /* add.b */
+  {9,6,rrr,V,V,V},     /* add.h */
+  {9,7,rrr,V,V,V},     /* add.w */
+  {9,8,rrr,V,V,V},     /* add.l */
+  {9,5,rrr,V,S,V},     /* add.b */
+  {9,6,rrr,V,S,V},     /* add.h */
+  {9,7,rrr,V,S,V},     /* add.w */
+  {9,8,rrr,V,S,V},     /* add.l */
+  {10,5,rrr,V,V,V},    /* sub.b */
+  {10,6,rrr,V,V,V},    /* sub.h */
+  {10,7,rrr,V,V,V},    /* sub.w */
+  {10,8,rrr,V,V,V},    /* sub.l */
+  {10,5,rrr,V,S,V},    /* sub.b */
+  {10,6,rrr,V,S,V},    /* sub.h */
+  {10,7,rrr,V,S,V},    /* sub.w */
+  {10,8,rrr,V,S,V},    /* sub.l */
+  {3,5,rrr,V,V,V},     /* mul.b */
+  {3,6,rrr,V,V,V},     /* mul.h */
+  {3,7,rrr,V,V,V},     /* mul.w */
+  {3,8,rrr,V,V,V},     /* mul.l */
+  {3,5,rrr,V,S,V},     /* mul.b */
+  {3,6,rrr,V,S,V},     /* mul.h */
+  {3,7,rrr,V,S,V},     /* mul.w */
+  {3,8,rrr,V,S,V},     /* mul.l */
+  {4,5,rrr,V,V,V},     /* div.b */
+  {4,6,rrr,V,V,V},     /* div.h */
+  {4,7,rrr,V,V,V},     /* div.w */
+  {4,8,rrr,V,V,V},     /* div.l */
+  {4,5,rrr,V,S,V},     /* div.b */
+  {4,6,rrr,V,S,V},     /* div.h */
+  {4,7,rrr,V,S,V},     /* div.w */
+  {4,8,rrr,V,S,V},     /* div.l */
+};
+
+CONST struct formstr format1[] = {
+  {11,0,xxx,0,0,0},    /* exit */
+  {12,0,a3,0,0,0},     /* jmp */
+  {13,2,a3,0,0,0},     /* jmpi.f */
+  {13,1,a3,0,0,0},     /* jmpi.t */
+  {14,2,a3,0,0,0},     /* jmpa.f */
+  {14,1,a3,0,0,0},     /* jmpa.t */
+  {15,2,a3,0,0,0},     /* jmps.f */
+  {15,1,a3,0,0,0},     /* jmps.t */
+  {16,0,a3,0,0,0},     /* tac */
+  {17,0,a1r,A,0,0},    /* ldea */
+  {18,8,a1l,VLS,0,0},  /* ld.l */
+  {18,9,a1l,VM,0,0},   /* ld.x */
+  {19,0,a3,0,0,0},     /* tas */
+  {20,0,a3,0,0,0},     /* pshea */
+  {21,8,a2l,VLS,0,0},  /* st.l */
+  {21,9,a2l,VM,0,0},   /* st.x */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {22,0,a3,0,0,0},     /* call */
+  {23,0,a3,0,0,0},     /* calls */
+  {24,0,a3,0,0,0},     /* callq */
+  {25,0,a1r,A,0,0},    /* pfork */
+  {26,5,a2r,S,0,0},    /* ste.b */
+  {26,6,a2r,S,0,0},    /* ste.h */
+  {26,7,a2r,S,0,0},    /* ste.w */
+  {26,8,a2r,S,0,0},    /* ste.l */
+  {18,5,a1r,A,0,0},    /* ld.b */
+  {18,6,a1r,A,0,0},    /* ld.h */
+  {18,7,a1r,A,0,0},    /* ld.w */
+  {27,7,a1r,A,0,0},    /* incr.w */
+  {21,5,a2r,A,0,0},    /* st.b */
+  {21,6,a2r,A,0,0},    /* st.h */
+  {21,7,a2r,A,0,0},    /* st.w */
+  {27,8,a1r,S,0,0},    /* incr.l */
+  {18,5,a1r,S,0,0},    /* ld.b */
+  {18,6,a1r,S,0,0},    /* ld.h */
+  {18,7,a1r,S,0,0},    /* ld.w */
+  {18,8,a1r,S,0,0},    /* ld.l */
+  {21,5,a2r,S,0,0},    /* st.b */
+  {21,6,a2r,S,0,0},    /* st.h */
+  {21,7,a2r,S,0,0},    /* st.w */
+  {21,8,a2r,S,0,0},    /* st.l */
+  {18,5,a1r,V,0,0},    /* ld.b */
+  {18,6,a1r,V,0,0},    /* ld.h */
+  {18,7,a1r,V,0,0},    /* ld.w */
+  {18,8,a1r,V,0,0},    /* ld.l */
+  {21,5,a2r,V,0,0},    /* st.b */
+  {21,6,a2r,V,0,0},    /* st.h */
+  {21,7,a2r,V,0,0},    /* st.w */
+  {21,8,a2r,V,0,0},    /* st.l */
+};
+
+CONST struct formstr format2[] = {
+  {28,5,rr,A,A,0},     /* cvtw.b */
+  {28,6,rr,A,A,0},     /* cvtw.h */
+  {29,7,rr,A,A,0},     /* cvtb.w */
+  {30,7,rr,A,A,0},     /* cvth.w */
+  {28,5,rr,S,S,0},     /* cvtw.b */
+  {28,6,rr,S,S,0},     /* cvtw.h */
+  {29,7,rr,S,S,0},     /* cvtb.w */
+  {30,7,rr,S,S,0},     /* cvth.w */
+  {28,3,rr,S,S,0},     /* cvtw.s */
+  {31,7,rr,S,S,0},     /* cvts.w */
+  {32,3,rr,S,S,0},     /* cvtd.s */
+  {31,4,rr,S,S,0},     /* cvts.d */
+  {31,8,rr,S,S,0},     /* cvts.l */
+  {32,8,rr,S,S,0},     /* cvtd.l */
+  {33,3,rr,S,S,0},     /* cvtl.s */
+  {33,4,rr,S,S,0},     /* cvtl.d */
+  {34,0,rr,A,A,0},     /* ldpa */
+  {8,0,nr,A,0,0},      /* shf */
+  {18,6,nr,A,0,0},     /* ld.h */
+  {18,7,nr,A,0,0},     /* ld.w */
+  {33,7,rr,S,S,0},     /* cvtl.w */
+  {28,8,rr,S,S,0},     /* cvtw.l */
+  {35,1,rr,S,S,0},     /* plc.t */
+  {36,0,rr,S,S,0},     /* tzc */
+  {37,6,rr,A,A,0},     /* eq.h */
+  {37,7,rr,A,A,0},     /* eq.w */
+  {37,6,nr,A,0,0},     /* eq.h */
+  {37,7,nr,A,0,0},     /* eq.w */
+  {37,5,rr,S,S,0},     /* eq.b */
+  {37,6,rr,S,S,0},     /* eq.h */
+  {37,7,rr,S,S,0},     /* eq.w */
+  {37,8,rr,S,S,0},     /* eq.l */
+  {38,6,rr,A,A,0},     /* leu.h */
+  {38,7,rr,A,A,0},     /* leu.w */
+  {38,6,nr,A,0,0},     /* leu.h */
+  {38,7,nr,A,0,0},     /* leu.w */
+  {38,5,rr,S,S,0},     /* leu.b */
+  {38,6,rr,S,S,0},     /* leu.h */
+  {38,7,rr,S,S,0},     /* leu.w */
+  {38,8,rr,S,S,0},     /* leu.l */
+  {39,6,rr,A,A,0},     /* ltu.h */
+  {39,7,rr,A,A,0},     /* ltu.w */
+  {39,6,nr,A,0,0},     /* ltu.h */
+  {39,7,nr,A,0,0},     /* ltu.w */
+  {39,5,rr,S,S,0},     /* ltu.b */
+  {39,6,rr,S,S,0},     /* ltu.h */
+  {39,7,rr,S,S,0},     /* ltu.w */
+  {39,8,rr,S,S,0},     /* ltu.l */
+  {40,6,rr,A,A,0},     /* le.h */
+  {40,7,rr,A,A,0},     /* le.w */
+  {40,6,nr,A,0,0},     /* le.h */
+  {40,7,nr,A,0,0},     /* le.w */
+  {40,5,rr,S,S,0},     /* le.b */
+  {40,6,rr,S,S,0},     /* le.h */
+  {40,7,rr,S,S,0},     /* le.w */
+  {40,8,rr,S,S,0},     /* le.l */
+  {41,6,rr,A,A,0},     /* lt.h */
+  {41,7,rr,A,A,0},     /* lt.w */
+  {41,6,nr,A,0,0},     /* lt.h */
+  {41,7,nr,A,0,0},     /* lt.w */
+  {41,5,rr,S,S,0},     /* lt.b */
+  {41,6,rr,S,S,0},     /* lt.h */
+  {41,7,rr,S,S,0},     /* lt.w */
+  {41,8,rr,S,S,0},     /* lt.l */
+  {9,7,rr,S,A,0},      /* add.w */
+  {8,0,rr,A,A,0},      /* shf */
+  {0,0,rr,A,A,0},      /* mov */
+  {0,0,rr,S,A,0},      /* mov */
+  {0,7,rr,S,S,0},      /* mov.w */
+  {8,0,rr,S,S,0},      /* shf */
+  {0,0,rr,S,S,0},      /* mov */
+  {0,0,rr,A,S,0},      /* mov */
+  {5,0,rr,A,A,0},      /* and */
+  {6,0,rr,A,A,0},      /* or */
+  {7,0,rr,A,A,0},      /* xor */
+  {42,0,rr,A,A,0},     /* not */
+  {5,0,rr,S,S,0},      /* and */
+  {6,0,rr,S,S,0},      /* or */
+  {7,0,rr,S,S,0},      /* xor */
+  {42,0,rr,S,S,0},     /* not */
+  {40,3,rr,S,S,0},     /* le.s */
+  {40,4,rr,S,S,0},     /* le.d */
+  {41,3,rr,S,S,0},     /* lt.s */
+  {41,4,rr,S,S,0},     /* lt.d */
+  {9,3,rr,S,S,0},      /* add.s */
+  {9,4,rr,S,S,0},      /* add.d */
+  {10,3,rr,S,S,0},     /* sub.s */
+  {10,4,rr,S,S,0},     /* sub.d */
+  {37,3,rr,S,S,0},     /* eq.s */
+  {37,4,rr,S,S,0},     /* eq.d */
+  {43,6,rr,A,A,0},     /* neg.h */
+  {43,7,rr,A,A,0},     /* neg.w */
+  {3,3,rr,S,S,0},      /* mul.s */
+  {3,4,rr,S,S,0},      /* mul.d */
+  {4,3,rr,S,S,0},      /* div.s */
+  {4,4,rr,S,S,0},      /* div.d */
+  {9,6,rr,A,A,0},      /* add.h */
+  {9,7,rr,A,A,0},      /* add.w */
+  {9,6,nr,A,0,0},      /* add.h */
+  {9,7,nr,A,0,0},      /* add.w */
+  {9,5,rr,S,S,0},      /* add.b */
+  {9,6,rr,S,S,0},      /* add.h */
+  {9,7,rr,S,S,0},      /* add.w */
+  {9,8,rr,S,S,0},      /* add.l */
+  {10,6,rr,A,A,0},     /* sub.h */
+  {10,7,rr,A,A,0},     /* sub.w */
+  {10,6,nr,A,0,0},     /* sub.h */
+  {10,7,nr,A,0,0},     /* sub.w */
+  {10,5,rr,S,S,0},     /* sub.b */
+  {10,6,rr,S,S,0},     /* sub.h */
+  {10,7,rr,S,S,0},     /* sub.w */
+  {10,8,rr,S,S,0},     /* sub.l */
+  {3,6,rr,A,A,0},      /* mul.h */
+  {3,7,rr,A,A,0},      /* mul.w */
+  {3,6,nr,A,0,0},      /* mul.h */
+  {3,7,nr,A,0,0},      /* mul.w */
+  {3,5,rr,S,S,0},      /* mul.b */
+  {3,6,rr,S,S,0},      /* mul.h */
+  {3,7,rr,S,S,0},      /* mul.w */
+  {3,8,rr,S,S,0},      /* mul.l */
+  {4,6,rr,A,A,0},      /* div.h */
+  {4,7,rr,A,A,0},      /* div.w */
+  {4,6,nr,A,0,0},      /* div.h */
+  {4,7,nr,A,0,0},      /* div.w */
+  {4,5,rr,S,S,0},      /* div.b */
+  {4,6,rr,S,S,0},      /* div.h */
+  {4,7,rr,S,S,0},      /* div.w */
+  {4,8,rr,S,S,0},      /* div.l */
+};
+
+CONST struct formstr format3[] = {
+  {32,3,rr,V,V,0},     /* cvtd.s */
+  {31,4,rr,V,V,0},     /* cvts.d */
+  {33,4,rr,V,V,0},     /* cvtl.d */
+  {32,8,rr,V,V,0},     /* cvtd.l */
+  {0,0,rrl,S,S,VM},    /* mov */
+  {0,0,rlr,S,VM,S},    /* mov */
+  {0,0,0,0,0,0},
+  {44,0,rr,S,S,0},     /* lop */
+  {36,0,rr,V,V,0},     /* tzc */
+  {44,0,rr,V,V,0},     /* lop */
+  {0,0,0,0,0,0},
+  {42,0,rr,V,V,0},     /* not */
+  {8,0,rr,S,V,0},      /* shf */
+  {35,1,rr,V,V,0},     /* plc.t */
+  {45,2,rr,V,V,0},     /* cprs.f */
+  {45,1,rr,V,V,0},     /* cprs.t */
+  {37,3,rr,V,V,0},     /* eq.s */
+  {37,4,rr,V,V,0},     /* eq.d */
+  {43,3,rr,V,V,0},     /* neg.s */
+  {43,4,rr,V,V,0},     /* neg.d */
+  {37,3,rr,S,V,0},     /* eq.s */
+  {37,4,rr,S,V,0},     /* eq.d */
+  {43,3,rr,S,S,0},     /* neg.s */
+  {43,4,rr,S,S,0},     /* neg.d */
+  {40,3,rr,V,V,0},     /* le.s */
+  {40,4,rr,V,V,0},     /* le.d */
+  {41,3,rr,V,V,0},     /* lt.s */
+  {41,4,rr,V,V,0},     /* lt.d */
+  {40,3,rr,S,V,0},     /* le.s */
+  {40,4,rr,S,V,0},     /* le.d */
+  {41,3,rr,S,V,0},     /* lt.s */
+  {41,4,rr,S,V,0},     /* lt.d */
+  {37,5,rr,V,V,0},     /* eq.b */
+  {37,6,rr,V,V,0},     /* eq.h */
+  {37,7,rr,V,V,0},     /* eq.w */
+  {37,8,rr,V,V,0},     /* eq.l */
+  {37,5,rr,S,V,0},     /* eq.b */
+  {37,6,rr,S,V,0},     /* eq.h */
+  {37,7,rr,S,V,0},     /* eq.w */
+  {37,8,rr,S,V,0},     /* eq.l */
+  {40,5,rr,V,V,0},     /* le.b */
+  {40,6,rr,V,V,0},     /* le.h */
+  {40,7,rr,V,V,0},     /* le.w */
+  {40,8,rr,V,V,0},     /* le.l */
+  {40,5,rr,S,V,0},     /* le.b */
+  {40,6,rr,S,V,0},     /* le.h */
+  {40,7,rr,S,V,0},     /* le.w */
+  {40,8,rr,S,V,0},     /* le.l */
+  {41,5,rr,V,V,0},     /* lt.b */
+  {41,6,rr,V,V,0},     /* lt.h */
+  {41,7,rr,V,V,0},     /* lt.w */
+  {41,8,rr,V,V,0},     /* lt.l */
+  {41,5,rr,S,V,0},     /* lt.b */
+  {41,6,rr,S,V,0},     /* lt.h */
+  {41,7,rr,S,V,0},     /* lt.w */
+  {41,8,rr,S,V,0},     /* lt.l */
+  {43,5,rr,V,V,0},     /* neg.b */
+  {43,6,rr,V,V,0},     /* neg.h */
+  {43,7,rr,V,V,0},     /* neg.w */
+  {43,8,rr,V,V,0},     /* neg.l */
+  {43,5,rr,S,S,0},     /* neg.b */
+  {43,6,rr,S,S,0},     /* neg.h */
+  {43,7,rr,S,S,0},     /* neg.w */
+  {43,8,rr,S,S,0},     /* neg.l */
+};
+
+CONST struct formstr format4[] = {
+  {46,0,nops,0,0,0},   /* nop */
+  {47,0,pcrel,0,0,0},  /* br */
+  {48,2,pcrel,0,0,0},  /* bri.f */
+  {48,1,pcrel,0,0,0},  /* bri.t */
+  {49,2,pcrel,0,0,0},  /* bra.f */
+  {49,1,pcrel,0,0,0},  /* bra.t */
+  {50,2,pcrel,0,0,0},  /* brs.f */
+  {50,1,pcrel,0,0,0},  /* brs.t */
+};
+
+CONST struct formstr format5[] = {
+  {51,5,rr,V,V,0},     /* ldvi.b */
+  {51,6,rr,V,V,0},     /* ldvi.h */
+  {51,7,rr,V,V,0},     /* ldvi.w */
+  {51,8,rr,V,V,0},     /* ldvi.l */
+  {28,3,rr,V,V,0},     /* cvtw.s */
+  {31,7,rr,V,V,0},     /* cvts.w */
+  {28,8,rr,V,V,0},     /* cvtw.l */
+  {33,7,rr,V,V,0},     /* cvtl.w */
+  {52,5,rxr,V,V,0},    /* stvi.b */
+  {52,6,rxr,V,V,0},    /* stvi.h */
+  {52,7,rxr,V,V,0},    /* stvi.w */
+  {52,8,rxr,V,V,0},    /* stvi.l */
+  {52,5,rxr,S,V,0},    /* stvi.b */
+  {52,6,rxr,S,V,0},    /* stvi.h */
+  {52,7,rxr,S,V,0},    /* stvi.w */
+  {52,8,rxr,S,V,0},    /* stvi.l */
+};
+
+CONST struct formstr format6[] = {
+  {53,0,r,A,0,0},      /* ldsdr */
+  {54,0,r,A,0,0},      /* ldkdr */
+  {55,3,r,S,0,0},      /* ln.s */
+  {55,4,r,S,0,0},      /* ln.d */
+  {56,0,nops,0,0,0},   /* patu */
+  {57,0,r,A,0,0},      /* pate */
+  {58,0,nops,0,0,0},   /* pich */
+  {59,0,nops,0,0,0},   /* plch */
+  {0,0,lr,PSW,A,0},    /* mov */
+  {0,0,rxl,A,PSW,0},   /* mov */
+  {0,0,lr,PC,A,0},     /* mov */
+  {60,0,r,S,0,0},      /* idle */
+  {0,0,lr,ITR,S,0},    /* mov */
+  {0,0,rxl,S,ITR,0},   /* mov */
+  {0,0,0,0,0,0},
+  {0,0,rxl,S,ITSR,0},  /* mov */
+  {61,0,nops,0,0,0},   /* rtnq */
+  {62,0,nops,0,0,0},   /* cfork */
+  {63,0,nops,0,0,0},   /* rtn */
+  {64,0,nops,0,0,0},   /* wfork */
+  {65,0,nops,0,0,0},   /* join */
+  {66,0,nops,0,0,0},   /* rtnc */
+  {67,3,r,S,0,0},      /* exp.s */
+  {67,4,r,S,0,0},      /* exp.d */
+  {68,3,r,S,0,0},      /* sin.s */
+  {68,4,r,S,0,0},      /* sin.d */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {69,3,r,S,0,0},      /* cos.s */
+  {69,4,r,S,0,0},      /* cos.d */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {70,7,r,A,0,0},      /* psh.w */
+  {0,0,0,0,0,0},
+  {71,7,r,A,0,0},      /* pop.w */
+  {0,0,0,0,0,0},
+  {70,7,r,S,0,0},      /* psh.w */
+  {70,8,r,S,0,0},      /* psh.l */
+  {71,7,r,S,0,0},      /* pop.w */
+  {71,8,r,S,0,0},      /* pop.l */
+  {72,0,nops,0,0,0},   /* eni */
+  {73,0,nops,0,0,0},   /* dsi */
+  {74,0,nops,0,0,0},   /* bkpt */
+  {75,0,nops,0,0,0},   /* msync */
+  {76,0,r,S,0,0},      /* mski */
+  {77,0,r,S,0,0},      /* xmti */
+  {0,0,rxl,S,VV,0},    /* mov */
+  {78,0,nops,0,0,0},   /* tstvv */
+  {0,0,lr,VS,A,0},     /* mov */
+  {0,0,rxl,A,VS,0},    /* mov */
+  {0,0,lr,VL,A,0},     /* mov */
+  {0,0,rxl,A,VL,0},    /* mov */
+  {0,7,lr,VS,S,0},     /* mov.w */
+  {0,7,rxl,S,VS,0},    /* mov.w */
+  {0,7,lr,VL,S,0},     /* mov.w */
+  {0,7,rxl,S,VL,0},    /* mov.w */
+  {79,0,r,A,0,0},      /* diag */
+  {80,0,nops,0,0,0},   /* pbkpt */
+  {81,3,r,S,0,0},      /* sqrt.s */
+  {81,4,r,S,0,0},      /* sqrt.d */
+  {82,0,nops,0,0,0},   /* casr */
+  {0,0,0,0,0,0},
+  {83,3,r,S,0,0},      /* atan.s */
+  {83,4,r,S,0,0},      /* atan.d */
+};
+
+CONST struct formstr format7[] = {
+  {84,5,r,V,0,0},      /* sum.b */
+  {84,6,r,V,0,0},      /* sum.h */
+  {84,7,r,V,0,0},      /* sum.w */
+  {84,8,r,V,0,0},      /* sum.l */
+  {85,0,r,V,0,0},      /* all */
+  {86,0,r,V,0,0},      /* any */
+  {87,0,r,V,0,0},      /* parity */
+  {0,0,0,0,0,0},
+  {88,5,r,V,0,0},      /* max.b */
+  {88,6,r,V,0,0},      /* max.h */
+  {88,7,r,V,0,0},      /* max.w */
+  {88,8,r,V,0,0},      /* max.l */
+  {89,5,r,V,0,0},      /* min.b */
+  {89,6,r,V,0,0},      /* min.h */
+  {89,7,r,V,0,0},      /* min.w */
+  {89,8,r,V,0,0},      /* min.l */
+  {84,3,r,V,0,0},      /* sum.s */
+  {84,4,r,V,0,0},      /* sum.d */
+  {90,3,r,V,0,0},      /* prod.s */
+  {90,4,r,V,0,0},      /* prod.d */
+  {88,3,r,V,0,0},      /* max.s */
+  {88,4,r,V,0,0},      /* max.d */
+  {89,3,r,V,0,0},      /* min.s */
+  {89,4,r,V,0,0},      /* min.d */
+  {90,5,r,V,0,0},      /* prod.b */
+  {90,6,r,V,0,0},      /* prod.h */
+  {90,7,r,V,0,0},      /* prod.w */
+  {90,8,r,V,0,0},      /* prod.l */
+  {35,2,lr,VM,S,0},    /* plc.f */
+  {35,1,lr,VM,S,0},    /* plc.t */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+};
+
+CONST struct formstr formatx[] = {
+  {0,0,0,0,0,0},
+};
+
+CONST struct formstr format1a[] = {
+  {91,0,imr,A,0,0},    /* halt */
+  {92,0,a4,0,0,0},     /* sysc */
+  {18,6,imr,A,0,0},    /* ld.h */
+  {18,7,imr,A,0,0},    /* ld.w */
+  {5,0,imr,A,0,0},     /* and */
+  {6,0,imr,A,0,0},     /* or */
+  {7,0,imr,A,0,0},     /* xor */
+  {8,0,imr,A,0,0},     /* shf */
+  {9,6,imr,A,0,0},     /* add.h */
+  {9,7,imr,A,0,0},     /* add.w */
+  {10,6,imr,A,0,0},    /* sub.h */
+  {10,7,imr,A,0,0},    /* sub.w */
+  {3,6,imr,A,0,0},     /* mul.h */
+  {3,7,imr,A,0,0},     /* mul.w */
+  {4,6,imr,A,0,0},     /* div.h */
+  {4,7,imr,A,0,0},     /* div.w */
+  {18,7,iml,VL,0,0},   /* ld.w */
+  {18,7,iml,VS,0,0},   /* ld.w */
+  {0,0,0,0,0,0},
+  {8,7,imr,S,0,0},     /* shf.w */
+  {93,0,a5,0,0,0},     /* trap */
+  {0,0,0,0,0,0},
+  {37,6,imr,A,0,0},    /* eq.h */
+  {37,7,imr,A,0,0},    /* eq.w */
+  {38,6,imr,A,0,0},    /* leu.h */
+  {38,7,imr,A,0,0},    /* leu.w */
+  {39,6,imr,A,0,0},    /* ltu.h */
+  {39,7,imr,A,0,0},    /* ltu.w */
+  {40,6,imr,A,0,0},    /* le.h */
+  {40,7,imr,A,0,0},    /* le.w */
+  {41,6,imr,A,0,0},    /* lt.h */
+  {41,7,imr,A,0,0},    /* lt.w */
+};
+
+CONST struct formstr format1b[] = {
+  {18,4,imr,S,0,0},    /* ld.d */
+  {18,10,imr,S,0,0},   /* ld.u */
+  {18,8,imr,S,0,0},    /* ld.l */
+  {18,7,imr,S,0,0},    /* ld.w */
+  {5,0,imr,S,0,0},     /* and */
+  {6,0,imr,S,0,0},     /* or */
+  {7,0,imr,S,0,0},     /* xor */
+  {8,0,imr,S,0,0},     /* shf */
+  {9,6,imr,S,0,0},     /* add.h */
+  {9,7,imr,S,0,0},     /* add.w */
+  {10,6,imr,S,0,0},    /* sub.h */
+  {10,7,imr,S,0,0},    /* sub.w */
+  {3,6,imr,S,0,0},     /* mul.h */
+  {3,7,imr,S,0,0},     /* mul.w */
+  {4,6,imr,S,0,0},     /* div.h */
+  {4,7,imr,S,0,0},     /* div.w */
+  {9,3,imr,S,0,0},     /* add.s */
+  {10,3,imr,S,0,0},    /* sub.s */
+  {3,3,imr,S,0,0},     /* mul.s */
+  {4,3,imr,S,0,0},     /* div.s */
+  {40,3,imr,S,0,0},    /* le.s */
+  {41,3,imr,S,0,0},    /* lt.s */
+  {37,6,imr,S,0,0},    /* eq.h */
+  {37,7,imr,S,0,0},    /* eq.w */
+  {38,6,imr,S,0,0},    /* leu.h */
+  {38,7,imr,S,0,0},    /* leu.w */
+  {39,6,imr,S,0,0},    /* ltu.h */
+  {39,7,imr,S,0,0},    /* ltu.w */
+  {40,6,imr,S,0,0},    /* le.h */
+  {40,7,imr,S,0,0},    /* le.w */
+  {41,6,imr,S,0,0},    /* lt.h */
+  {41,7,imr,S,0,0},    /* lt.w */
+};
+
+CONST struct formstr e0_format0[] = {
+  {10,3,rrr,S,V,V},    /* sub.s */
+  {10,4,rrr,S,V,V},    /* sub.d */
+  {4,3,rrr,S,V,V},     /* div.s */
+  {4,4,rrr,S,V,V},     /* div.d */
+  {10,11,rrr,S,V,V},   /* sub.s.f */
+  {10,12,rrr,S,V,V},   /* sub.d.f */
+  {4,11,rrr,S,V,V},    /* div.s.f */
+  {4,12,rrr,S,V,V},    /* div.d.f */
+  {3,11,rrr,V,V,V},    /* mul.s.f */
+  {3,12,rrr,V,V,V},    /* mul.d.f */
+  {4,11,rrr,V,V,V},    /* div.s.f */
+  {4,12,rrr,V,V,V},    /* div.d.f */
+  {3,11,rrr,V,S,V},    /* mul.s.f */
+  {3,12,rrr,V,S,V},    /* mul.d.f */
+  {4,11,rrr,V,S,V},    /* div.s.f */
+  {4,12,rrr,V,S,V},    /* div.d.f */
+  {5,2,rrr,V,V,V},     /* and.f */
+  {6,2,rrr,V,V,V},     /* or.f */
+  {7,2,rrr,V,V,V},     /* xor.f */
+  {8,2,rrr,V,V,V},     /* shf.f */
+  {5,2,rrr,V,S,V},     /* and.f */
+  {6,2,rrr,V,S,V},     /* or.f */
+  {7,2,rrr,V,S,V},     /* xor.f */
+  {8,2,rrr,V,S,V},     /* shf.f */
+  {9,11,rrr,V,V,V},    /* add.s.f */
+  {9,12,rrr,V,V,V},    /* add.d.f */
+  {10,11,rrr,V,V,V},   /* sub.s.f */
+  {10,12,rrr,V,V,V},   /* sub.d.f */
+  {9,11,rrr,V,S,V},    /* add.s.f */
+  {9,12,rrr,V,S,V},    /* add.d.f */
+  {10,11,rrr,V,S,V},   /* sub.s.f */
+  {10,12,rrr,V,S,V},   /* sub.d.f */
+  {9,13,rrr,V,V,V},    /* add.b.f */
+  {9,14,rrr,V,V,V},    /* add.h.f */
+  {9,15,rrr,V,V,V},    /* add.w.f */
+  {9,16,rrr,V,V,V},    /* add.l.f */
+  {9,13,rrr,V,S,V},    /* add.b.f */
+  {9,14,rrr,V,S,V},    /* add.h.f */
+  {9,15,rrr,V,S,V},    /* add.w.f */
+  {9,16,rrr,V,S,V},    /* add.l.f */
+  {10,13,rrr,V,V,V},   /* sub.b.f */
+  {10,14,rrr,V,V,V},   /* sub.h.f */
+  {10,15,rrr,V,V,V},   /* sub.w.f */
+  {10,16,rrr,V,V,V},   /* sub.l.f */
+  {10,13,rrr,V,S,V},   /* sub.b.f */
+  {10,14,rrr,V,S,V},   /* sub.h.f */
+  {10,15,rrr,V,S,V},   /* sub.w.f */
+  {10,16,rrr,V,S,V},   /* sub.l.f */
+  {3,13,rrr,V,V,V},    /* mul.b.f */
+  {3,14,rrr,V,V,V},    /* mul.h.f */
+  {3,15,rrr,V,V,V},    /* mul.w.f */
+  {3,16,rrr,V,V,V},    /* mul.l.f */
+  {3,13,rrr,V,S,V},    /* mul.b.f */
+  {3,14,rrr,V,S,V},    /* mul.h.f */
+  {3,15,rrr,V,S,V},    /* mul.w.f */
+  {3,16,rrr,V,S,V},    /* mul.l.f */
+  {4,13,rrr,V,V,V},    /* div.b.f */
+  {4,14,rrr,V,V,V},    /* div.h.f */
+  {4,15,rrr,V,V,V},    /* div.w.f */
+  {4,16,rrr,V,V,V},    /* div.l.f */
+  {4,13,rrr,V,S,V},    /* div.b.f */
+  {4,14,rrr,V,S,V},    /* div.h.f */
+  {4,15,rrr,V,S,V},    /* div.w.f */
+  {4,16,rrr,V,S,V},    /* div.l.f */
+};
+
+CONST struct formstr e0_format1[] = {
+  {0,0,0,0,0,0},
+  {94,0,a3,0,0,0},     /* tst */
+  {95,0,a3,0,0,0},     /* lck */
+  {96,0,a3,0,0,0},     /* ulk */
+  {17,0,a1r,S,0,0},    /* ldea */
+  {97,0,a1r,A,0,0},    /* spawn */
+  {98,0,a1r,A,0,0},    /* ldcmr */
+  {99,0,a2r,A,0,0},    /* stcmr */
+  {100,0,a1r,A,0,0},   /* popr */
+  {101,0,a2r,A,0,0},   /* pshr */
+  {102,7,a1r,A,0,0},   /* rcvr.w */
+  {103,7,a2r,A,0,0},   /* matm.w */
+  {104,7,a2r,A,0,0},   /* sndr.w */
+  {104,8,a2r,S,0,0},   /* sndr.l */
+  {102,8,a1r,S,0,0},   /* rcvr.l */
+  {103,8,a2r,S,0,0},   /* matm.l */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {105,7,a2r,A,0,0},   /* putr.w */
+  {105,8,a2r,S,0,0},   /* putr.l */
+  {106,7,a1r,A,0,0},   /* getr.w */
+  {106,8,a1r,S,0,0},   /* getr.l */
+  {26,13,a2r,S,0,0},   /* ste.b.f */
+  {26,14,a2r,S,0,0},   /* ste.h.f */
+  {26,15,a2r,S,0,0},   /* ste.w.f */
+  {26,16,a2r,S,0,0},   /* ste.l.f */
+  {107,7,a2r,A,0,0},   /* matr.w */
+  {108,7,a2r,A,0,0},   /* mat.w */
+  {109,7,a1r,A,0,0},   /* get.w */
+  {110,7,a1r,A,0,0},   /* rcv.w */
+  {0,0,0,0,0,0},
+  {111,7,a1r,A,0,0},   /* inc.w */
+  {112,7,a2r,A,0,0},   /* put.w */
+  {113,7,a2r,A,0,0},   /* snd.w */
+  {107,8,a2r,S,0,0},   /* matr.l */
+  {108,8,a2r,S,0,0},   /* mat.l */
+  {109,8,a1r,S,0,0},   /* get.l */
+  {110,8,a1r,S,0,0},   /* rcv.l */
+  {0,0,0,0,0,0},
+  {111,8,a1r,S,0,0},   /* inc.l */
+  {112,8,a2r,S,0,0},   /* put.l */
+  {113,8,a2r,S,0,0},   /* snd.l */
+  {18,13,a1r,V,0,0},   /* ld.b.f */
+  {18,14,a1r,V,0,0},   /* ld.h.f */
+  {18,15,a1r,V,0,0},   /* ld.w.f */
+  {18,16,a1r,V,0,0},   /* ld.l.f */
+  {21,13,a2r,V,0,0},   /* st.b.f */
+  {21,14,a2r,V,0,0},   /* st.h.f */
+  {21,15,a2r,V,0,0},   /* st.w.f */
+  {21,16,a2r,V,0,0},   /* st.l.f */
+};
+
+CONST struct formstr e0_format2[] = {
+  {28,5,rr,V,V,0},     /* cvtw.b */
+  {28,6,rr,V,V,0},     /* cvtw.h */
+  {29,7,rr,V,V,0},     /* cvtb.w */
+  {30,7,rr,V,V,0},     /* cvth.w */
+  {28,13,rr,V,V,0},    /* cvtw.b.f */
+  {28,14,rr,V,V,0},    /* cvtw.h.f */
+  {29,15,rr,V,V,0},    /* cvtb.w.f */
+  {30,15,rr,V,V,0},    /* cvth.w.f */
+  {31,8,rr,V,V,0},     /* cvts.l */
+  {32,7,rr,V,V,0},     /* cvtd.w */
+  {33,3,rr,V,V,0},     /* cvtl.s */
+  {28,4,rr,V,V,0},     /* cvtw.d */
+  {31,16,rr,V,V,0},    /* cvts.l.f */
+  {32,15,rr,V,V,0},    /* cvtd.w.f */
+  {33,11,rr,V,V,0},    /* cvtl.s.f */
+  {28,12,rr,V,V,0},    /* cvtw.d.f */
+  {114,0,rr,S,S,0},    /* enal */
+  {8,7,rr,S,S,0},      /* shf.w */
+  {115,0,rr,S,S,0},    /* enag */
+  {0,0,0,0,0,0},
+  {28,4,rr,S,S,0},     /* cvtw.d */
+  {32,7,rr,S,S,0},     /* cvtd.w */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {116,3,rr,S,S,0},    /* frint.s */
+  {116,4,rr,S,S,0},    /* frint.d */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {116,3,rr,V,V,0},    /* frint.s */
+  {116,4,rr,V,V,0},    /* frint.d */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {116,11,rr,V,V,0},   /* frint.s.f */
+  {116,12,rr,V,V,0},   /* frint.d.f */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {81,3,rr,V,V,0},     /* sqrt.s */
+  {81,4,rr,V,V,0},     /* sqrt.d */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {81,11,rr,V,V,0},    /* sqrt.s.f */
+  {81,12,rr,V,V,0},    /* sqrt.d.f */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+};
+
+CONST struct formstr e0_format3[] = {
+  {32,11,rr,V,V,0},    /* cvtd.s.f */
+  {31,12,rr,V,V,0},    /* cvts.d.f */
+  {33,12,rr,V,V,0},    /* cvtl.d.f */
+  {32,16,rr,V,V,0},    /* cvtd.l.f */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {36,2,rr,V,V,0},     /* tzc.f */
+  {44,2,rr,V,V,0},     /* lop.f */
+  {117,2,rr,V,V,0},    /* xpnd.f */
+  {42,2,rr,V,V,0},     /* not.f */
+  {8,2,rr,S,V,0},      /* shf.f */
+  {35,17,rr,V,V,0},    /* plc.t.f */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {37,11,rr,V,V,0},    /* eq.s.f */
+  {37,12,rr,V,V,0},    /* eq.d.f */
+  {43,11,rr,V,V,0},    /* neg.s.f */
+  {43,12,rr,V,V,0},    /* neg.d.f */
+  {37,11,rr,S,V,0},    /* eq.s.f */
+  {37,12,rr,S,V,0},    /* eq.d.f */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {40,11,rr,V,V,0},    /* le.s.f */
+  {40,12,rr,V,V,0},    /* le.d.f */
+  {41,11,rr,V,V,0},    /* lt.s.f */
+  {41,12,rr,V,V,0},    /* lt.d.f */
+  {40,11,rr,S,V,0},    /* le.s.f */
+  {40,12,rr,S,V,0},    /* le.d.f */
+  {41,11,rr,S,V,0},    /* lt.s.f */
+  {41,12,rr,S,V,0},    /* lt.d.f */
+  {37,13,rr,V,V,0},    /* eq.b.f */
+  {37,14,rr,V,V,0},    /* eq.h.f */
+  {37,15,rr,V,V,0},    /* eq.w.f */
+  {37,16,rr,V,V,0},    /* eq.l.f */
+  {37,13,rr,S,V,0},    /* eq.b.f */
+  {37,14,rr,S,V,0},    /* eq.h.f */
+  {37,15,rr,S,V,0},    /* eq.w.f */
+  {37,16,rr,S,V,0},    /* eq.l.f */
+  {40,13,rr,V,V,0},    /* le.b.f */
+  {40,14,rr,V,V,0},    /* le.h.f */
+  {40,15,rr,V,V,0},    /* le.w.f */
+  {40,16,rr,V,V,0},    /* le.l.f */
+  {40,13,rr,S,V,0},    /* le.b.f */
+  {40,14,rr,S,V,0},    /* le.h.f */
+  {40,15,rr,S,V,0},    /* le.w.f */
+  {40,16,rr,S,V,0},    /* le.l.f */
+  {41,13,rr,V,V,0},    /* lt.b.f */
+  {41,14,rr,V,V,0},    /* lt.h.f */
+  {41,15,rr,V,V,0},    /* lt.w.f */
+  {41,16,rr,V,V,0},    /* lt.l.f */
+  {41,13,rr,S,V,0},    /* lt.b.f */
+  {41,14,rr,S,V,0},    /* lt.h.f */
+  {41,15,rr,S,V,0},    /* lt.w.f */
+  {41,16,rr,S,V,0},    /* lt.l.f */
+  {43,13,rr,V,V,0},    /* neg.b.f */
+  {43,14,rr,V,V,0},    /* neg.h.f */
+  {43,15,rr,V,V,0},    /* neg.w.f */
+  {43,16,rr,V,V,0},    /* neg.l.f */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+};
+
+CONST struct formstr e0_format4[] = {
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+};
+
+CONST struct formstr e0_format5[] = {
+  {51,13,rr,V,V,0},    /* ldvi.b.f */
+  {51,14,rr,V,V,0},    /* ldvi.h.f */
+  {51,15,rr,V,V,0},    /* ldvi.w.f */
+  {51,16,rr,V,V,0},    /* ldvi.l.f */
+  {28,11,rr,V,V,0},    /* cvtw.s.f */
+  {31,15,rr,V,V,0},    /* cvts.w.f */
+  {28,16,rr,V,V,0},    /* cvtw.l.f */
+  {33,15,rr,V,V,0},    /* cvtl.w.f */
+  {52,13,rxr,V,V,0},   /* stvi.b.f */
+  {52,14,rxr,V,V,0},   /* stvi.h.f */
+  {52,15,rxr,V,V,0},   /* stvi.w.f */
+  {52,16,rxr,V,V,0},   /* stvi.l.f */
+  {52,13,rxr,S,V,0},   /* stvi.b.f */
+  {52,14,rxr,S,V,0},   /* stvi.h.f */
+  {52,15,rxr,S,V,0},   /* stvi.w.f */
+  {52,16,rxr,S,V,0},   /* stvi.l.f */
+};
+
+CONST struct formstr e0_format6[] = {
+  {0,0,rxl,S,CIR,0},   /* mov */
+  {0,0,lr,CIR,S,0},    /* mov */
+  {0,0,lr,TOC,S,0},    /* mov */
+  {0,0,lr,CPUID,S,0},  /* mov */
+  {0,0,rxl,S,TTR,0},   /* mov */
+  {0,0,lr,TTR,S,0},    /* mov */
+  {118,0,nops,0,0,0},  /* ctrsl */
+  {119,0,nops,0,0,0},  /* ctrsg */
+  {0,0,rxl,S,VMU,0},   /* mov */
+  {0,0,lr,VMU,S,0},    /* mov */
+  {0,0,rxl,S,VML,0},   /* mov */
+  {0,0,lr,VML,S,0},    /* mov */
+  {0,0,rxl,S,ICR,0},   /* mov */
+  {0,0,lr,ICR,S,0},    /* mov */
+  {0,0,rxl,S,TCPU,0},  /* mov */
+  {0,0,lr,TCPU,S,0},   /* mov */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {120,0,nops,0,0,0},  /* stop */
+  {0,0,0,0,0,0},
+  {0,0,rxl,S,TID,0},   /* mov */
+  {0,0,lr,TID,S,0},    /* mov */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+};
+
+CONST struct formstr e0_format7[] = {
+  {84,13,r,V,0,0},     /* sum.b.f */
+  {84,14,r,V,0,0},     /* sum.h.f */
+  {84,15,r,V,0,0},     /* sum.w.f */
+  {84,16,r,V,0,0},     /* sum.l.f */
+  {85,2,r,V,0,0},      /* all.f */
+  {86,2,r,V,0,0},      /* any.f */
+  {87,2,r,V,0,0},      /* parity.f */
+  {0,0,0,0,0,0},
+  {88,13,r,V,0,0},     /* max.b.f */
+  {88,14,r,V,0,0},     /* max.h.f */
+  {88,15,r,V,0,0},     /* max.w.f */
+  {88,16,r,V,0,0},     /* max.l.f */
+  {89,13,r,V,0,0},     /* min.b.f */
+  {89,14,r,V,0,0},     /* min.h.f */
+  {89,15,r,V,0,0},     /* min.w.f */
+  {89,16,r,V,0,0},     /* min.l.f */
+  {84,11,r,V,0,0},     /* sum.s.f */
+  {84,12,r,V,0,0},     /* sum.d.f */
+  {90,11,r,V,0,0},     /* prod.s.f */
+  {90,12,r,V,0,0},     /* prod.d.f */
+  {88,11,r,V,0,0},     /* max.s.f */
+  {88,12,r,V,0,0},     /* max.d.f */
+  {89,11,r,V,0,0},     /* min.s.f */
+  {89,12,r,V,0,0},     /* min.d.f */
+  {90,13,r,V,0,0},     /* prod.b.f */
+  {90,14,r,V,0,0},     /* prod.h.f */
+  {90,15,r,V,0,0},     /* prod.w.f */
+  {90,16,r,V,0,0},     /* prod.l.f */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+};
+
+CONST struct formstr e1_format0[] = {
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {10,18,rrr,S,V,V},   /* sub.s.t */
+  {10,19,rrr,S,V,V},   /* sub.d.t */
+  {4,18,rrr,S,V,V},    /* div.s.t */
+  {4,19,rrr,S,V,V},    /* div.d.t */
+  {3,18,rrr,V,V,V},    /* mul.s.t */
+  {3,19,rrr,V,V,V},    /* mul.d.t */
+  {4,18,rrr,V,V,V},    /* div.s.t */
+  {4,19,rrr,V,V,V},    /* div.d.t */
+  {3,18,rrr,V,S,V},    /* mul.s.t */
+  {3,19,rrr,V,S,V},    /* mul.d.t */
+  {4,18,rrr,V,S,V},    /* div.s.t */
+  {4,19,rrr,V,S,V},    /* div.d.t */
+  {5,1,rrr,V,V,V},     /* and.t */
+  {6,1,rrr,V,V,V},     /* or.t */
+  {7,1,rrr,V,V,V},     /* xor.t */
+  {8,1,rrr,V,V,V},     /* shf.t */
+  {5,1,rrr,V,S,V},     /* and.t */
+  {6,1,rrr,V,S,V},     /* or.t */
+  {7,1,rrr,V,S,V},     /* xor.t */
+  {8,1,rrr,V,S,V},     /* shf.t */
+  {9,18,rrr,V,V,V},    /* add.s.t */
+  {9,19,rrr,V,V,V},    /* add.d.t */
+  {10,18,rrr,V,V,V},   /* sub.s.t */
+  {10,19,rrr,V,V,V},   /* sub.d.t */
+  {9,18,rrr,V,S,V},    /* add.s.t */
+  {9,19,rrr,V,S,V},    /* add.d.t */
+  {10,18,rrr,V,S,V},   /* sub.s.t */
+  {10,19,rrr,V,S,V},   /* sub.d.t */
+  {9,20,rrr,V,V,V},    /* add.b.t */
+  {9,21,rrr,V,V,V},    /* add.h.t */
+  {9,22,rrr,V,V,V},    /* add.w.t */
+  {9,23,rrr,V,V,V},    /* add.l.t */
+  {9,20,rrr,V,S,V},    /* add.b.t */
+  {9,21,rrr,V,S,V},    /* add.h.t */
+  {9,22,rrr,V,S,V},    /* add.w.t */
+  {9,23,rrr,V,S,V},    /* add.l.t */
+  {10,20,rrr,V,V,V},   /* sub.b.t */
+  {10,21,rrr,V,V,V},   /* sub.h.t */
+  {10,22,rrr,V,V,V},   /* sub.w.t */
+  {10,23,rrr,V,V,V},   /* sub.l.t */
+  {10,20,rrr,V,S,V},   /* sub.b.t */
+  {10,21,rrr,V,S,V},   /* sub.h.t */
+  {10,22,rrr,V,S,V},   /* sub.w.t */
+  {10,23,rrr,V,S,V},   /* sub.l.t */
+  {3,20,rrr,V,V,V},    /* mul.b.t */
+  {3,21,rrr,V,V,V},    /* mul.h.t */
+  {3,22,rrr,V,V,V},    /* mul.w.t */
+  {3,23,rrr,V,V,V},    /* mul.l.t */
+  {3,20,rrr,V,S,V},    /* mul.b.t */
+  {3,21,rrr,V,S,V},    /* mul.h.t */
+  {3,22,rrr,V,S,V},    /* mul.w.t */
+  {3,23,rrr,V,S,V},    /* mul.l.t */
+  {4,20,rrr,V,V,V},    /* div.b.t */
+  {4,21,rrr,V,V,V},    /* div.h.t */
+  {4,22,rrr,V,V,V},    /* div.w.t */
+  {4,23,rrr,V,V,V},    /* div.l.t */
+  {4,20,rrr,V,S,V},    /* div.b.t */
+  {4,21,rrr,V,S,V},    /* div.h.t */
+  {4,22,rrr,V,S,V},    /* div.w.t */
+  {4,23,rrr,V,S,V},    /* div.l.t */
+};
+
+CONST struct formstr e1_format1[] = {
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {26,20,a2r,S,0,0},   /* ste.b.t */
+  {26,21,a2r,S,0,0},   /* ste.h.t */
+  {26,22,a2r,S,0,0},   /* ste.w.t */
+  {26,23,a2r,S,0,0},   /* ste.l.t */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {18,20,a1r,V,0,0},   /* ld.b.t */
+  {18,21,a1r,V,0,0},   /* ld.h.t */
+  {18,22,a1r,V,0,0},   /* ld.w.t */
+  {18,23,a1r,V,0,0},   /* ld.l.t */
+  {21,20,a2r,V,0,0},   /* st.b.t */
+  {21,21,a2r,V,0,0},   /* st.h.t */
+  {21,22,a2r,V,0,0},   /* st.w.t */
+  {21,23,a2r,V,0,0},   /* st.l.t */
+};
+
+CONST struct formstr e1_format2[] = {
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {28,20,rr,V,V,0},    /* cvtw.b.t */
+  {28,21,rr,V,V,0},    /* cvtw.h.t */
+  {29,22,rr,V,V,0},    /* cvtb.w.t */
+  {30,22,rr,V,V,0},    /* cvth.w.t */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {31,23,rr,V,V,0},    /* cvts.l.t */
+  {32,22,rr,V,V,0},    /* cvtd.w.t */
+  {33,18,rr,V,V,0},    /* cvtl.s.t */
+  {28,19,rr,V,V,0},    /* cvtw.d.t */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {116,18,rr,V,V,0},   /* frint.s.t */
+  {116,19,rr,V,V,0},   /* frint.d.t */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {81,18,rr,V,V,0},    /* sqrt.s.t */
+  {81,19,rr,V,V,0},    /* sqrt.d.t */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+};
+
+CONST struct formstr e1_format3[] = {
+  {32,18,rr,V,V,0},    /* cvtd.s.t */
+  {31,19,rr,V,V,0},    /* cvts.d.t */
+  {33,19,rr,V,V,0},    /* cvtl.d.t */
+  {32,23,rr,V,V,0},    /* cvtd.l.t */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {36,1,rr,V,V,0},     /* tzc.t */
+  {44,1,rr,V,V,0},     /* lop.t */
+  {117,1,rr,V,V,0},    /* xpnd.t */
+  {42,1,rr,V,V,0},     /* not.t */
+  {8,1,rr,S,V,0},      /* shf.t */
+  {35,24,rr,V,V,0},    /* plc.t.t */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {37,18,rr,V,V,0},    /* eq.s.t */
+  {37,19,rr,V,V,0},    /* eq.d.t */
+  {43,18,rr,V,V,0},    /* neg.s.t */
+  {43,19,rr,V,V,0},    /* neg.d.t */
+  {37,18,rr,S,V,0},    /* eq.s.t */
+  {37,19,rr,S,V,0},    /* eq.d.t */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {40,18,rr,V,V,0},    /* le.s.t */
+  {40,19,rr,V,V,0},    /* le.d.t */
+  {41,18,rr,V,V,0},    /* lt.s.t */
+  {41,19,rr,V,V,0},    /* lt.d.t */
+  {40,18,rr,S,V,0},    /* le.s.t */
+  {40,19,rr,S,V,0},    /* le.d.t */
+  {41,18,rr,S,V,0},    /* lt.s.t */
+  {41,19,rr,S,V,0},    /* lt.d.t */
+  {37,20,rr,V,V,0},    /* eq.b.t */
+  {37,21,rr,V,V,0},    /* eq.h.t */
+  {37,22,rr,V,V,0},    /* eq.w.t */
+  {37,23,rr,V,V,0},    /* eq.l.t */
+  {37,20,rr,S,V,0},    /* eq.b.t */
+  {37,21,rr,S,V,0},    /* eq.h.t */
+  {37,22,rr,S,V,0},    /* eq.w.t */
+  {37,23,rr,S,V,0},    /* eq.l.t */
+  {40,20,rr,V,V,0},    /* le.b.t */
+  {40,21,rr,V,V,0},    /* le.h.t */
+  {40,22,rr,V,V,0},    /* le.w.t */
+  {40,23,rr,V,V,0},    /* le.l.t */
+  {40,20,rr,S,V,0},    /* le.b.t */
+  {40,21,rr,S,V,0},    /* le.h.t */
+  {40,22,rr,S,V,0},    /* le.w.t */
+  {40,23,rr,S,V,0},    /* le.l.t */
+  {41,20,rr,V,V,0},    /* lt.b.t */
+  {41,21,rr,V,V,0},    /* lt.h.t */
+  {41,22,rr,V,V,0},    /* lt.w.t */
+  {41,23,rr,V,V,0},    /* lt.l.t */
+  {41,20,rr,S,V,0},    /* lt.b.t */
+  {41,21,rr,S,V,0},    /* lt.h.t */
+  {41,22,rr,S,V,0},    /* lt.w.t */
+  {41,23,rr,S,V,0},    /* lt.l.t */
+  {43,20,rr,V,V,0},    /* neg.b.t */
+  {43,21,rr,V,V,0},    /* neg.h.t */
+  {43,22,rr,V,V,0},    /* neg.w.t */
+  {43,23,rr,V,V,0},    /* neg.l.t */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+};
+
+CONST struct formstr e1_format4[] = {
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+};
+
+CONST struct formstr e1_format5[] = {
+  {51,20,rr,V,V,0},    /* ldvi.b.t */
+  {51,21,rr,V,V,0},    /* ldvi.h.t */
+  {51,22,rr,V,V,0},    /* ldvi.w.t */
+  {51,23,rr,V,V,0},    /* ldvi.l.t */
+  {28,18,rr,V,V,0},    /* cvtw.s.t */
+  {31,22,rr,V,V,0},    /* cvts.w.t */
+  {28,23,rr,V,V,0},    /* cvtw.l.t */
+  {33,22,rr,V,V,0},    /* cvtl.w.t */
+  {52,20,rxr,V,V,0},   /* stvi.b.t */
+  {52,21,rxr,V,V,0},   /* stvi.h.t */
+  {52,22,rxr,V,V,0},   /* stvi.w.t */
+  {52,23,rxr,V,V,0},   /* stvi.l.t */
+  {52,20,rxr,S,V,0},   /* stvi.b.t */
+  {52,21,rxr,S,V,0},   /* stvi.h.t */
+  {52,22,rxr,S,V,0},   /* stvi.w.t */
+  {52,23,rxr,S,V,0},   /* stvi.l.t */
+};
+
+CONST struct formstr e1_format6[] = {
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+};
+
+CONST struct formstr e1_format7[] = {
+  {84,20,r,V,0,0},     /* sum.b.t */
+  {84,21,r,V,0,0},     /* sum.h.t */
+  {84,22,r,V,0,0},     /* sum.w.t */
+  {84,23,r,V,0,0},     /* sum.l.t */
+  {85,1,r,V,0,0},      /* all.t */
+  {86,1,r,V,0,0},      /* any.t */
+  {87,1,r,V,0,0},      /* parity.t */
+  {0,0,0,0,0,0},
+  {88,20,r,V,0,0},     /* max.b.t */
+  {88,21,r,V,0,0},     /* max.h.t */
+  {88,22,r,V,0,0},     /* max.w.t */
+  {88,23,r,V,0,0},     /* max.l.t */
+  {89,20,r,V,0,0},     /* min.b.t */
+  {89,21,r,V,0,0},     /* min.h.t */
+  {89,22,r,V,0,0},     /* min.w.t */
+  {89,23,r,V,0,0},     /* min.l.t */
+  {84,18,r,V,0,0},     /* sum.s.t */
+  {84,19,r,V,0,0},     /* sum.d.t */
+  {90,18,r,V,0,0},     /* prod.s.t */
+  {90,19,r,V,0,0},     /* prod.d.t */
+  {88,18,r,V,0,0},     /* max.s.t */
+  {88,19,r,V,0,0},     /* max.d.t */
+  {89,18,r,V,0,0},     /* min.s.t */
+  {89,19,r,V,0,0},     /* min.d.t */
+  {90,20,r,V,0,0},     /* prod.b.t */
+  {90,21,r,V,0,0},     /* prod.h.t */
+  {90,22,r,V,0,0},     /* prod.w.t */
+  {90,23,r,V,0,0},     /* prod.l.t */
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+  {0,0,0,0,0,0},
+};
+
+char *lop[] = {
+  "mov",       /* 0 */
+  "merg",      /* 1 */
+  "mask",      /* 2 */
+  "mul",       /* 3 */
+  "div",       /* 4 */
+  "and",       /* 5 */
+  "or",        /* 6 */
+  "xor",       /* 7 */
+  "shf",       /* 8 */
+  "add",       /* 9 */
+  "sub",       /* 10 */
+  "exit",      /* 11 */
+  "jmp",       /* 12 */
+  "jmpi",      /* 13 */
+  "jmpa",      /* 14 */
+  "jmps",      /* 15 */
+  "tac",       /* 16 */
+  "ldea",      /* 17 */
+  "ld",        /* 18 */
+  "tas",       /* 19 */
+  "pshea",     /* 20 */
+  "st",        /* 21 */
+  "call",      /* 22 */
+  "calls",     /* 23 */
+  "callq",     /* 24 */
+  "pfork",     /* 25 */
+  "ste",       /* 26 */
+  "incr",      /* 27 */
+  "cvtw",      /* 28 */
+  "cvtb",      /* 29 */
+  "cvth",      /* 30 */
+  "cvts",      /* 31 */
+  "cvtd",      /* 32 */
+  "cvtl",      /* 33 */
+  "ldpa",      /* 34 */
+  "plc",       /* 35 */
+  "tzc",       /* 36 */
+  "eq",        /* 37 */
+  "leu",       /* 38 */
+  "ltu",       /* 39 */
+  "le",        /* 40 */
+  "lt",        /* 41 */
+  "not",       /* 42 */
+  "neg",       /* 43 */
+  "lop",       /* 44 */
+  "cprs",      /* 45 */
+  "nop",       /* 46 */
+  "br",        /* 47 */
+  "bri",       /* 48 */
+  "bra",       /* 49 */
+  "brs",       /* 50 */
+  "ldvi",      /* 51 */
+  "stvi",      /* 52 */
+  "ldsdr",     /* 53 */
+  "ldkdr",     /* 54 */
+  "ln",        /* 55 */
+  "patu",      /* 56 */
+  "pate",      /* 57 */
+  "pich",      /* 58 */
+  "plch",      /* 59 */
+  "idle",      /* 60 */
+  "rtnq",      /* 61 */
+  "cfork",     /* 62 */
+  "rtn",       /* 63 */
+  "wfork",     /* 64 */
+  "join",      /* 65 */
+  "rtnc",      /* 66 */
+  "exp",       /* 67 */
+  "sin",       /* 68 */
+  "cos",       /* 69 */
+  "psh",       /* 70 */
+  "pop",       /* 71 */
+  "eni",       /* 72 */
+  "dsi",       /* 73 */
+  "bkpt",      /* 74 */
+  "msync",     /* 75 */
+  "mski",      /* 76 */
+  "xmti",      /* 77 */
+  "tstvv",     /* 78 */
+  "diag",      /* 79 */
+  "pbkpt",     /* 80 */
+  "sqrt",      /* 81 */
+  "casr",      /* 82 */
+  "atan",      /* 83 */
+  "sum",       /* 84 */
+  "all",       /* 85 */
+  "any",       /* 86 */
+  "parity",    /* 87 */
+  "max",       /* 88 */
+  "min",       /* 89 */
+  "prod",      /* 90 */
+  "halt",      /* 91 */
+  "sysc",      /* 92 */
+  "trap",      /* 93 */
+  "tst",       /* 94 */
+  "lck",       /* 95 */
+  "ulk",       /* 96 */
+  "spawn",     /* 97 */
+  "ldcmr",     /* 98 */
+  "stcmr",     /* 99 */
+  "popr",      /* 100 */
+  "pshr",      /* 101 */
+  "rcvr",      /* 102 */
+  "matm",      /* 103 */
+  "sndr",      /* 104 */
+  "putr",      /* 105 */
+  "getr",      /* 106 */
+  "matr",      /* 107 */
+  "mat",       /* 108 */
+  "get",       /* 109 */
+  "rcv",       /* 110 */
+  "inc",       /* 111 */
+  "put",       /* 112 */
+  "snd",       /* 113 */
+  "enal",      /* 114 */
+  "enag",      /* 115 */
+  "frint",     /* 116 */
+  "xpnd",      /* 117 */
+  "ctrsl",     /* 118 */
+  "ctrsg",     /* 119 */
+  "stop",      /* 120 */
+};
+
+char *rop[] = {
+  "",  /* 0 */
+  ".t",        /* 1 */
+  ".f",        /* 2 */
+  ".s",        /* 3 */
+  ".d",        /* 4 */
+  ".b",        /* 5 */
+  ".h",        /* 6 */
+  ".w",        /* 7 */
+  ".l",        /* 8 */
+  ".x",        /* 9 */
+  ".u",        /* 10 */
+  ".s.f",      /* 11 */
+  ".d.f",      /* 12 */
+  ".b.f",      /* 13 */
+  ".h.f",      /* 14 */
+  ".w.f",      /* 15 */
+  ".l.f",      /* 16 */
+  ".t.f",      /* 17 */
+  ".s.t",      /* 18 */
+  ".d.t",      /* 19 */
+  ".b.t",      /* 20 */
+  ".h.t",      /* 21 */
+  ".w.t",      /* 22 */
+  ".l.t",      /* 23 */
+  ".t.t",      /* 24 */
+};