Back to index

cell-binutils  2.17cvs20070401
convex.h
Go to the documentation of this file.
00001 /* Information for instruction disassembly on the Convex.
00002    Copyright 1989, 1993, 2002 Free Software Foundation, Inc.
00003 
00004 This file is part of GDB.
00005 
00006 This program is free software; you can redistribute it and/or modify
00007 it under the terms of the GNU General Public License as published by
00008 the Free Software Foundation; either version 2 of the License, or
00009 (at your option) any later version.
00010 
00011 This program is distributed in the hope that it will be useful,
00012 but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014 GNU General Public License for more details.
00015 
00016 You should have received a copy of the GNU General Public License
00017 along with this program; if not, write to the Free Software
00018 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
00019 
00020 #define xxx 0
00021 #define rrr 1
00022 #define rr 2
00023 #define rxr 3
00024 #define r 4
00025 #define nops 5
00026 #define nr 6
00027 #define pcrel 7
00028 #define lr 8
00029 #define rxl 9
00030 #define rlr 10
00031 #define rrl 11
00032 #define iml 12
00033 #define imr 13
00034 #define a1r 14
00035 #define a1l 15
00036 #define a2r 16
00037 #define a2l 17
00038 #define a3 18
00039 #define a4 19
00040 #define a5 20
00041 #define V 1
00042 #define S 2
00043 #define VM 3
00044 #define A 4
00045 #define VL 5
00046 #define VS 6
00047 #define VLS 7
00048 #define PSW 8
00049 /* Prevent an error during "make depend".  */
00050 #if !defined (PC)
00051 #define PC 9
00052 #endif
00053 #define ITR 10
00054 #define VV 11
00055 #define ITSR 12
00056 #define TOC 13
00057 #define CIR 14
00058 #define TTR 15
00059 #define VMU 16
00060 #define VML 17
00061 #define ICR 18
00062 #define TCPU 19
00063 #define CPUID 20
00064 #define TID 21
00065 
00066 const char *op[] = {
00067   "",
00068   "v0\0v1\0v2\0v3\0v4\0v5\0v6\0v7",
00069   "s0\0s1\0s2\0s3\0s4\0s5\0s6\0s7",
00070   "vm",
00071   "sp\0a1\0a2\0a3\0a4\0a5\0ap\0fp",
00072   "vl",
00073   "vs",
00074   "vls",
00075   "psw",
00076   "pc",
00077   "itr",
00078   "vv",
00079   "itsr",
00080   "toc",
00081   "cir",
00082   "ttr",
00083   "vmu",
00084   "vml",
00085   "icr",
00086   "tcpu",
00087   "cpuid",
00088   "tid",
00089 };
00090 
00091 const struct formstr format0[] = {
00092   {0,0,rrr,V,S,S},   /* mov */
00093   {0,0,rrr,S,S,V},   /* mov */
00094   {1,1,rrr,V,V,V},   /* merg.t */
00095   {2,1,rrr,V,V,V},   /* mask.t */
00096   {1,2,rrr,V,S,V},   /* merg.f */
00097   {2,2,rrr,V,S,V},   /* mask.f */
00098   {1,1,rrr,V,S,V},   /* merg.t */
00099   {2,1,rrr,V,S,V},   /* mask.t */
00100   {3,3,rrr,V,V,V},   /* mul.s */
00101   {3,4,rrr,V,V,V},   /* mul.d */
00102   {4,3,rrr,V,V,V},   /* div.s */
00103   {4,4,rrr,V,V,V},   /* div.d */
00104   {3,3,rrr,V,S,V},   /* mul.s */
00105   {3,4,rrr,V,S,V},   /* mul.d */
00106   {4,3,rrr,V,S,V},   /* div.s */
00107   {4,4,rrr,V,S,V},   /* div.d */
00108   {5,0,rrr,V,V,V},   /* and */
00109   {6,0,rrr,V,V,V},   /* or */
00110   {7,0,rrr,V,V,V},   /* xor */
00111   {8,0,rrr,V,V,V},   /* shf */
00112   {5,0,rrr,V,S,V},   /* and */
00113   {6,0,rrr,V,S,V},   /* or */
00114   {7,0,rrr,V,S,V},   /* xor */
00115   {8,0,rrr,V,S,V},   /* shf */
00116   {9,3,rrr,V,V,V},   /* add.s */
00117   {9,4,rrr,V,V,V},   /* add.d */
00118   {10,3,rrr,V,V,V},  /* sub.s */
00119   {10,4,rrr,V,V,V},  /* sub.d */
00120   {9,3,rrr,V,S,V},   /* add.s */
00121   {9,4,rrr,V,S,V},   /* add.d */
00122   {10,3,rrr,V,S,V},  /* sub.s */
00123   {10,4,rrr,V,S,V},  /* sub.d */
00124   {9,5,rrr,V,V,V},   /* add.b */
00125   {9,6,rrr,V,V,V},   /* add.h */
00126   {9,7,rrr,V,V,V},   /* add.w */
00127   {9,8,rrr,V,V,V},   /* add.l */
00128   {9,5,rrr,V,S,V},   /* add.b */
00129   {9,6,rrr,V,S,V},   /* add.h */
00130   {9,7,rrr,V,S,V},   /* add.w */
00131   {9,8,rrr,V,S,V},   /* add.l */
00132   {10,5,rrr,V,V,V},  /* sub.b */
00133   {10,6,rrr,V,V,V},  /* sub.h */
00134   {10,7,rrr,V,V,V},  /* sub.w */
00135   {10,8,rrr,V,V,V},  /* sub.l */
00136   {10,5,rrr,V,S,V},  /* sub.b */
00137   {10,6,rrr,V,S,V},  /* sub.h */
00138   {10,7,rrr,V,S,V},  /* sub.w */
00139   {10,8,rrr,V,S,V},  /* sub.l */
00140   {3,5,rrr,V,V,V},   /* mul.b */
00141   {3,6,rrr,V,V,V},   /* mul.h */
00142   {3,7,rrr,V,V,V},   /* mul.w */
00143   {3,8,rrr,V,V,V},   /* mul.l */
00144   {3,5,rrr,V,S,V},   /* mul.b */
00145   {3,6,rrr,V,S,V},   /* mul.h */
00146   {3,7,rrr,V,S,V},   /* mul.w */
00147   {3,8,rrr,V,S,V},   /* mul.l */
00148   {4,5,rrr,V,V,V},   /* div.b */
00149   {4,6,rrr,V,V,V},   /* div.h */
00150   {4,7,rrr,V,V,V},   /* div.w */
00151   {4,8,rrr,V,V,V},   /* div.l */
00152   {4,5,rrr,V,S,V},   /* div.b */
00153   {4,6,rrr,V,S,V},   /* div.h */
00154   {4,7,rrr,V,S,V},   /* div.w */
00155   {4,8,rrr,V,S,V},   /* div.l */
00156 };
00157 
00158 const struct formstr format1[] = {
00159   {11,0,xxx,0,0,0},  /* exit */
00160   {12,0,a3,0,0,0},   /* jmp */
00161   {13,2,a3,0,0,0},   /* jmpi.f */
00162   {13,1,a3,0,0,0},   /* jmpi.t */
00163   {14,2,a3,0,0,0},   /* jmpa.f */
00164   {14,1,a3,0,0,0},   /* jmpa.t */
00165   {15,2,a3,0,0,0},   /* jmps.f */
00166   {15,1,a3,0,0,0},   /* jmps.t */
00167   {16,0,a3,0,0,0},   /* tac */
00168   {17,0,a1r,A,0,0},  /* ldea */
00169   {18,8,a1l,VLS,0,0},       /* ld.l */
00170   {18,9,a1l,VM,0,0}, /* ld.x */
00171   {19,0,a3,0,0,0},   /* tas */
00172   {20,0,a3,0,0,0},   /* pshea */
00173   {21,8,a2l,VLS,0,0},       /* st.l */
00174   {21,9,a2l,VM,0,0}, /* st.x */
00175   {0,0,0,0,0,0},
00176   {0,0,0,0,0,0},
00177   {0,0,0,0,0,0},
00178   {0,0,0,0,0,0},
00179   {0,0,0,0,0,0},
00180   {0,0,0,0,0,0},
00181   {0,0,0,0,0,0},
00182   {0,0,0,0,0,0},
00183   {0,0,0,0,0,0},
00184   {0,0,0,0,0,0},
00185   {0,0,0,0,0,0},
00186   {0,0,0,0,0,0},
00187   {0,0,0,0,0,0},
00188   {0,0,0,0,0,0},
00189   {0,0,0,0,0,0},
00190   {0,0,0,0,0,0},
00191   {22,0,a3,0,0,0},   /* call */
00192   {23,0,a3,0,0,0},   /* calls */
00193   {24,0,a3,0,0,0},   /* callq */
00194   {25,0,a1r,A,0,0},  /* pfork */
00195   {26,5,a2r,S,0,0},  /* ste.b */
00196   {26,6,a2r,S,0,0},  /* ste.h */
00197   {26,7,a2r,S,0,0},  /* ste.w */
00198   {26,8,a2r,S,0,0},  /* ste.l */
00199   {18,5,a1r,A,0,0},  /* ld.b */
00200   {18,6,a1r,A,0,0},  /* ld.h */
00201   {18,7,a1r,A,0,0},  /* ld.w */
00202   {27,7,a1r,A,0,0},  /* incr.w */
00203   {21,5,a2r,A,0,0},  /* st.b */
00204   {21,6,a2r,A,0,0},  /* st.h */
00205   {21,7,a2r,A,0,0},  /* st.w */
00206   {27,8,a1r,S,0,0},  /* incr.l */
00207   {18,5,a1r,S,0,0},  /* ld.b */
00208   {18,6,a1r,S,0,0},  /* ld.h */
00209   {18,7,a1r,S,0,0},  /* ld.w */
00210   {18,8,a1r,S,0,0},  /* ld.l */
00211   {21,5,a2r,S,0,0},  /* st.b */
00212   {21,6,a2r,S,0,0},  /* st.h */
00213   {21,7,a2r,S,0,0},  /* st.w */
00214   {21,8,a2r,S,0,0},  /* st.l */
00215   {18,5,a1r,V,0,0},  /* ld.b */
00216   {18,6,a1r,V,0,0},  /* ld.h */
00217   {18,7,a1r,V,0,0},  /* ld.w */
00218   {18,8,a1r,V,0,0},  /* ld.l */
00219   {21,5,a2r,V,0,0},  /* st.b */
00220   {21,6,a2r,V,0,0},  /* st.h */
00221   {21,7,a2r,V,0,0},  /* st.w */
00222   {21,8,a2r,V,0,0},  /* st.l */
00223 };
00224 
00225 const struct formstr format2[] = {
00226   {28,5,rr,A,A,0},   /* cvtw.b */
00227   {28,6,rr,A,A,0},   /* cvtw.h */
00228   {29,7,rr,A,A,0},   /* cvtb.w */
00229   {30,7,rr,A,A,0},   /* cvth.w */
00230   {28,5,rr,S,S,0},   /* cvtw.b */
00231   {28,6,rr,S,S,0},   /* cvtw.h */
00232   {29,7,rr,S,S,0},   /* cvtb.w */
00233   {30,7,rr,S,S,0},   /* cvth.w */
00234   {28,3,rr,S,S,0},   /* cvtw.s */
00235   {31,7,rr,S,S,0},   /* cvts.w */
00236   {32,3,rr,S,S,0},   /* cvtd.s */
00237   {31,4,rr,S,S,0},   /* cvts.d */
00238   {31,8,rr,S,S,0},   /* cvts.l */
00239   {32,8,rr,S,S,0},   /* cvtd.l */
00240   {33,3,rr,S,S,0},   /* cvtl.s */
00241   {33,4,rr,S,S,0},   /* cvtl.d */
00242   {34,0,rr,A,A,0},   /* ldpa */
00243   {8,0,nr,A,0,0},    /* shf */
00244   {18,6,nr,A,0,0},   /* ld.h */
00245   {18,7,nr,A,0,0},   /* ld.w */
00246   {33,7,rr,S,S,0},   /* cvtl.w */
00247   {28,8,rr,S,S,0},   /* cvtw.l */
00248   {35,1,rr,S,S,0},   /* plc.t */
00249   {36,0,rr,S,S,0},   /* tzc */
00250   {37,6,rr,A,A,0},   /* eq.h */
00251   {37,7,rr,A,A,0},   /* eq.w */
00252   {37,6,nr,A,0,0},   /* eq.h */
00253   {37,7,nr,A,0,0},   /* eq.w */
00254   {37,5,rr,S,S,0},   /* eq.b */
00255   {37,6,rr,S,S,0},   /* eq.h */
00256   {37,7,rr,S,S,0},   /* eq.w */
00257   {37,8,rr,S,S,0},   /* eq.l */
00258   {38,6,rr,A,A,0},   /* leu.h */
00259   {38,7,rr,A,A,0},   /* leu.w */
00260   {38,6,nr,A,0,0},   /* leu.h */
00261   {38,7,nr,A,0,0},   /* leu.w */
00262   {38,5,rr,S,S,0},   /* leu.b */
00263   {38,6,rr,S,S,0},   /* leu.h */
00264   {38,7,rr,S,S,0},   /* leu.w */
00265   {38,8,rr,S,S,0},   /* leu.l */
00266   {39,6,rr,A,A,0},   /* ltu.h */
00267   {39,7,rr,A,A,0},   /* ltu.w */
00268   {39,6,nr,A,0,0},   /* ltu.h */
00269   {39,7,nr,A,0,0},   /* ltu.w */
00270   {39,5,rr,S,S,0},   /* ltu.b */
00271   {39,6,rr,S,S,0},   /* ltu.h */
00272   {39,7,rr,S,S,0},   /* ltu.w */
00273   {39,8,rr,S,S,0},   /* ltu.l */
00274   {40,6,rr,A,A,0},   /* le.h */
00275   {40,7,rr,A,A,0},   /* le.w */
00276   {40,6,nr,A,0,0},   /* le.h */
00277   {40,7,nr,A,0,0},   /* le.w */
00278   {40,5,rr,S,S,0},   /* le.b */
00279   {40,6,rr,S,S,0},   /* le.h */
00280   {40,7,rr,S,S,0},   /* le.w */
00281   {40,8,rr,S,S,0},   /* le.l */
00282   {41,6,rr,A,A,0},   /* lt.h */
00283   {41,7,rr,A,A,0},   /* lt.w */
00284   {41,6,nr,A,0,0},   /* lt.h */
00285   {41,7,nr,A,0,0},   /* lt.w */
00286   {41,5,rr,S,S,0},   /* lt.b */
00287   {41,6,rr,S,S,0},   /* lt.h */
00288   {41,7,rr,S,S,0},   /* lt.w */
00289   {41,8,rr,S,S,0},   /* lt.l */
00290   {9,7,rr,S,A,0},    /* add.w */
00291   {8,0,rr,A,A,0},    /* shf */
00292   {0,0,rr,A,A,0},    /* mov */
00293   {0,0,rr,S,A,0},    /* mov */
00294   {0,7,rr,S,S,0},    /* mov.w */
00295   {8,0,rr,S,S,0},    /* shf */
00296   {0,0,rr,S,S,0},    /* mov */
00297   {0,0,rr,A,S,0},    /* mov */
00298   {5,0,rr,A,A,0},    /* and */
00299   {6,0,rr,A,A,0},    /* or */
00300   {7,0,rr,A,A,0},    /* xor */
00301   {42,0,rr,A,A,0},   /* not */
00302   {5,0,rr,S,S,0},    /* and */
00303   {6,0,rr,S,S,0},    /* or */
00304   {7,0,rr,S,S,0},    /* xor */
00305   {42,0,rr,S,S,0},   /* not */
00306   {40,3,rr,S,S,0},   /* le.s */
00307   {40,4,rr,S,S,0},   /* le.d */
00308   {41,3,rr,S,S,0},   /* lt.s */
00309   {41,4,rr,S,S,0},   /* lt.d */
00310   {9,3,rr,S,S,0},    /* add.s */
00311   {9,4,rr,S,S,0},    /* add.d */
00312   {10,3,rr,S,S,0},   /* sub.s */
00313   {10,4,rr,S,S,0},   /* sub.d */
00314   {37,3,rr,S,S,0},   /* eq.s */
00315   {37,4,rr,S,S,0},   /* eq.d */
00316   {43,6,rr,A,A,0},   /* neg.h */
00317   {43,7,rr,A,A,0},   /* neg.w */
00318   {3,3,rr,S,S,0},    /* mul.s */
00319   {3,4,rr,S,S,0},    /* mul.d */
00320   {4,3,rr,S,S,0},    /* div.s */
00321   {4,4,rr,S,S,0},    /* div.d */
00322   {9,6,rr,A,A,0},    /* add.h */
00323   {9,7,rr,A,A,0},    /* add.w */
00324   {9,6,nr,A,0,0},    /* add.h */
00325   {9,7,nr,A,0,0},    /* add.w */
00326   {9,5,rr,S,S,0},    /* add.b */
00327   {9,6,rr,S,S,0},    /* add.h */
00328   {9,7,rr,S,S,0},    /* add.w */
00329   {9,8,rr,S,S,0},    /* add.l */
00330   {10,6,rr,A,A,0},   /* sub.h */
00331   {10,7,rr,A,A,0},   /* sub.w */
00332   {10,6,nr,A,0,0},   /* sub.h */
00333   {10,7,nr,A,0,0},   /* sub.w */
00334   {10,5,rr,S,S,0},   /* sub.b */
00335   {10,6,rr,S,S,0},   /* sub.h */
00336   {10,7,rr,S,S,0},   /* sub.w */
00337   {10,8,rr,S,S,0},   /* sub.l */
00338   {3,6,rr,A,A,0},    /* mul.h */
00339   {3,7,rr,A,A,0},    /* mul.w */
00340   {3,6,nr,A,0,0},    /* mul.h */
00341   {3,7,nr,A,0,0},    /* mul.w */
00342   {3,5,rr,S,S,0},    /* mul.b */
00343   {3,6,rr,S,S,0},    /* mul.h */
00344   {3,7,rr,S,S,0},    /* mul.w */
00345   {3,8,rr,S,S,0},    /* mul.l */
00346   {4,6,rr,A,A,0},    /* div.h */
00347   {4,7,rr,A,A,0},    /* div.w */
00348   {4,6,nr,A,0,0},    /* div.h */
00349   {4,7,nr,A,0,0},    /* div.w */
00350   {4,5,rr,S,S,0},    /* div.b */
00351   {4,6,rr,S,S,0},    /* div.h */
00352   {4,7,rr,S,S,0},    /* div.w */
00353   {4,8,rr,S,S,0},    /* div.l */
00354 };
00355 
00356 const struct formstr format3[] = {
00357   {32,3,rr,V,V,0},   /* cvtd.s */
00358   {31,4,rr,V,V,0},   /* cvts.d */
00359   {33,4,rr,V,V,0},   /* cvtl.d */
00360   {32,8,rr,V,V,0},   /* cvtd.l */
00361   {0,0,rrl,S,S,VM},  /* mov */
00362   {0,0,rlr,S,VM,S},  /* mov */
00363   {0,0,0,0,0,0},
00364   {44,0,rr,S,S,0},   /* lop */
00365   {36,0,rr,V,V,0},   /* tzc */
00366   {44,0,rr,V,V,0},   /* lop */
00367   {0,0,0,0,0,0},
00368   {42,0,rr,V,V,0},   /* not */
00369   {8,0,rr,S,V,0},    /* shf */
00370   {35,1,rr,V,V,0},   /* plc.t */
00371   {45,2,rr,V,V,0},   /* cprs.f */
00372   {45,1,rr,V,V,0},   /* cprs.t */
00373   {37,3,rr,V,V,0},   /* eq.s */
00374   {37,4,rr,V,V,0},   /* eq.d */
00375   {43,3,rr,V,V,0},   /* neg.s */
00376   {43,4,rr,V,V,0},   /* neg.d */
00377   {37,3,rr,S,V,0},   /* eq.s */
00378   {37,4,rr,S,V,0},   /* eq.d */
00379   {43,3,rr,S,S,0},   /* neg.s */
00380   {43,4,rr,S,S,0},   /* neg.d */
00381   {40,3,rr,V,V,0},   /* le.s */
00382   {40,4,rr,V,V,0},   /* le.d */
00383   {41,3,rr,V,V,0},   /* lt.s */
00384   {41,4,rr,V,V,0},   /* lt.d */
00385   {40,3,rr,S,V,0},   /* le.s */
00386   {40,4,rr,S,V,0},   /* le.d */
00387   {41,3,rr,S,V,0},   /* lt.s */
00388   {41,4,rr,S,V,0},   /* lt.d */
00389   {37,5,rr,V,V,0},   /* eq.b */
00390   {37,6,rr,V,V,0},   /* eq.h */
00391   {37,7,rr,V,V,0},   /* eq.w */
00392   {37,8,rr,V,V,0},   /* eq.l */
00393   {37,5,rr,S,V,0},   /* eq.b */
00394   {37,6,rr,S,V,0},   /* eq.h */
00395   {37,7,rr,S,V,0},   /* eq.w */
00396   {37,8,rr,S,V,0},   /* eq.l */
00397   {40,5,rr,V,V,0},   /* le.b */
00398   {40,6,rr,V,V,0},   /* le.h */
00399   {40,7,rr,V,V,0},   /* le.w */
00400   {40,8,rr,V,V,0},   /* le.l */
00401   {40,5,rr,S,V,0},   /* le.b */
00402   {40,6,rr,S,V,0},   /* le.h */
00403   {40,7,rr,S,V,0},   /* le.w */
00404   {40,8,rr,S,V,0},   /* le.l */
00405   {41,5,rr,V,V,0},   /* lt.b */
00406   {41,6,rr,V,V,0},   /* lt.h */
00407   {41,7,rr,V,V,0},   /* lt.w */
00408   {41,8,rr,V,V,0},   /* lt.l */
00409   {41,5,rr,S,V,0},   /* lt.b */
00410   {41,6,rr,S,V,0},   /* lt.h */
00411   {41,7,rr,S,V,0},   /* lt.w */
00412   {41,8,rr,S,V,0},   /* lt.l */
00413   {43,5,rr,V,V,0},   /* neg.b */
00414   {43,6,rr,V,V,0},   /* neg.h */
00415   {43,7,rr,V,V,0},   /* neg.w */
00416   {43,8,rr,V,V,0},   /* neg.l */
00417   {43,5,rr,S,S,0},   /* neg.b */
00418   {43,6,rr,S,S,0},   /* neg.h */
00419   {43,7,rr,S,S,0},   /* neg.w */
00420   {43,8,rr,S,S,0},   /* neg.l */
00421 };
00422 
00423 const struct formstr format4[] = {
00424   {46,0,nops,0,0,0}, /* nop */
00425   {47,0,pcrel,0,0,0},       /* br */
00426   {48,2,pcrel,0,0,0},       /* bri.f */
00427   {48,1,pcrel,0,0,0},       /* bri.t */
00428   {49,2,pcrel,0,0,0},       /* bra.f */
00429   {49,1,pcrel,0,0,0},       /* bra.t */
00430   {50,2,pcrel,0,0,0},       /* brs.f */
00431   {50,1,pcrel,0,0,0},       /* brs.t */
00432 };
00433 
00434 const struct formstr format5[] = {
00435   {51,5,rr,V,V,0},   /* ldvi.b */
00436   {51,6,rr,V,V,0},   /* ldvi.h */
00437   {51,7,rr,V,V,0},   /* ldvi.w */
00438   {51,8,rr,V,V,0},   /* ldvi.l */
00439   {28,3,rr,V,V,0},   /* cvtw.s */
00440   {31,7,rr,V,V,0},   /* cvts.w */
00441   {28,8,rr,V,V,0},   /* cvtw.l */
00442   {33,7,rr,V,V,0},   /* cvtl.w */
00443   {52,5,rxr,V,V,0},  /* stvi.b */
00444   {52,6,rxr,V,V,0},  /* stvi.h */
00445   {52,7,rxr,V,V,0},  /* stvi.w */
00446   {52,8,rxr,V,V,0},  /* stvi.l */
00447   {52,5,rxr,S,V,0},  /* stvi.b */
00448   {52,6,rxr,S,V,0},  /* stvi.h */
00449   {52,7,rxr,S,V,0},  /* stvi.w */
00450   {52,8,rxr,S,V,0},  /* stvi.l */
00451 };
00452 
00453 const struct formstr format6[] = {
00454   {53,0,r,A,0,0},    /* ldsdr */
00455   {54,0,r,A,0,0},    /* ldkdr */
00456   {55,3,r,S,0,0},    /* ln.s */
00457   {55,4,r,S,0,0},    /* ln.d */
00458   {56,0,nops,0,0,0}, /* patu */
00459   {57,0,r,A,0,0},    /* pate */
00460   {58,0,nops,0,0,0}, /* pich */
00461   {59,0,nops,0,0,0}, /* plch */
00462   {0,0,lr,PSW,A,0},  /* mov */
00463   {0,0,rxl,A,PSW,0}, /* mov */
00464   {0,0,lr,PC,A,0},   /* mov */
00465   {60,0,r,S,0,0},    /* idle */
00466   {0,0,lr,ITR,S,0},  /* mov */
00467   {0,0,rxl,S,ITR,0}, /* mov */
00468   {0,0,0,0,0,0},
00469   {0,0,rxl,S,ITSR,0},       /* mov */
00470   {61,0,nops,0,0,0}, /* rtnq */
00471   {62,0,nops,0,0,0}, /* cfork */
00472   {63,0,nops,0,0,0}, /* rtn */
00473   {64,0,nops,0,0,0}, /* wfork */
00474   {65,0,nops,0,0,0}, /* join */
00475   {66,0,nops,0,0,0}, /* rtnc */
00476   {67,3,r,S,0,0},    /* exp.s */
00477   {67,4,r,S,0,0},    /* exp.d */
00478   {68,3,r,S,0,0},    /* sin.s */
00479   {68,4,r,S,0,0},    /* sin.d */
00480   {0,0,0,0,0,0},
00481   {0,0,0,0,0,0},
00482   {69,3,r,S,0,0},    /* cos.s */
00483   {69,4,r,S,0,0},    /* cos.d */
00484   {0,0,0,0,0,0},
00485   {0,0,0,0,0,0},
00486   {70,7,r,A,0,0},    /* psh.w */
00487   {0,0,0,0,0,0},
00488   {71,7,r,A,0,0},    /* pop.w */
00489   {0,0,0,0,0,0},
00490   {70,7,r,S,0,0},    /* psh.w */
00491   {70,8,r,S,0,0},    /* psh.l */
00492   {71,7,r,S,0,0},    /* pop.w */
00493   {71,8,r,S,0,0},    /* pop.l */
00494   {72,0,nops,0,0,0}, /* eni */
00495   {73,0,nops,0,0,0}, /* dsi */
00496   {74,0,nops,0,0,0}, /* bkpt */
00497   {75,0,nops,0,0,0}, /* msync */
00498   {76,0,r,S,0,0},    /* mski */
00499   {77,0,r,S,0,0},    /* xmti */
00500   {0,0,rxl,S,VV,0},  /* mov */
00501   {78,0,nops,0,0,0}, /* tstvv */
00502   {0,0,lr,VS,A,0},   /* mov */
00503   {0,0,rxl,A,VS,0},  /* mov */
00504   {0,0,lr,VL,A,0},   /* mov */
00505   {0,0,rxl,A,VL,0},  /* mov */
00506   {0,7,lr,VS,S,0},   /* mov.w */
00507   {0,7,rxl,S,VS,0},  /* mov.w */
00508   {0,7,lr,VL,S,0},   /* mov.w */
00509   {0,7,rxl,S,VL,0},  /* mov.w */
00510   {79,0,r,A,0,0},    /* diag */
00511   {80,0,nops,0,0,0}, /* pbkpt */
00512   {81,3,r,S,0,0},    /* sqrt.s */
00513   {81,4,r,S,0,0},    /* sqrt.d */
00514   {82,0,nops,0,0,0}, /* casr */
00515   {0,0,0,0,0,0},
00516   {83,3,r,S,0,0},    /* atan.s */
00517   {83,4,r,S,0,0},    /* atan.d */
00518 };
00519 
00520 const struct formstr format7[] = {
00521   {84,5,r,V,0,0},    /* sum.b */
00522   {84,6,r,V,0,0},    /* sum.h */
00523   {84,7,r,V,0,0},    /* sum.w */
00524   {84,8,r,V,0,0},    /* sum.l */
00525   {85,0,r,V,0,0},    /* all */
00526   {86,0,r,V,0,0},    /* any */
00527   {87,0,r,V,0,0},    /* parity */
00528   {0,0,0,0,0,0},
00529   {88,5,r,V,0,0},    /* max.b */
00530   {88,6,r,V,0,0},    /* max.h */
00531   {88,7,r,V,0,0},    /* max.w */
00532   {88,8,r,V,0,0},    /* max.l */
00533   {89,5,r,V,0,0},    /* min.b */
00534   {89,6,r,V,0,0},    /* min.h */
00535   {89,7,r,V,0,0},    /* min.w */
00536   {89,8,r,V,0,0},    /* min.l */
00537   {84,3,r,V,0,0},    /* sum.s */
00538   {84,4,r,V,0,0},    /* sum.d */
00539   {90,3,r,V,0,0},    /* prod.s */
00540   {90,4,r,V,0,0},    /* prod.d */
00541   {88,3,r,V,0,0},    /* max.s */
00542   {88,4,r,V,0,0},    /* max.d */
00543   {89,3,r,V,0,0},    /* min.s */
00544   {89,4,r,V,0,0},    /* min.d */
00545   {90,5,r,V,0,0},    /* prod.b */
00546   {90,6,r,V,0,0},    /* prod.h */
00547   {90,7,r,V,0,0},    /* prod.w */
00548   {90,8,r,V,0,0},    /* prod.l */
00549   {35,2,lr,VM,S,0},  /* plc.f */
00550   {35,1,lr,VM,S,0},  /* plc.t */
00551   {0,0,0,0,0,0},
00552   {0,0,0,0,0,0},
00553 };
00554 
00555 const struct formstr formatx[] = {
00556   {0,0,0,0,0,0},
00557 };
00558 
00559 const struct formstr format1a[] = {
00560   {91,0,imr,A,0,0},  /* halt */
00561   {92,0,a4,0,0,0},   /* sysc */
00562   {18,6,imr,A,0,0},  /* ld.h */
00563   {18,7,imr,A,0,0},  /* ld.w */
00564   {5,0,imr,A,0,0},   /* and */
00565   {6,0,imr,A,0,0},   /* or */
00566   {7,0,imr,A,0,0},   /* xor */
00567   {8,0,imr,A,0,0},   /* shf */
00568   {9,6,imr,A,0,0},   /* add.h */
00569   {9,7,imr,A,0,0},   /* add.w */
00570   {10,6,imr,A,0,0},  /* sub.h */
00571   {10,7,imr,A,0,0},  /* sub.w */
00572   {3,6,imr,A,0,0},   /* mul.h */
00573   {3,7,imr,A,0,0},   /* mul.w */
00574   {4,6,imr,A,0,0},   /* div.h */
00575   {4,7,imr,A,0,0},   /* div.w */
00576   {18,7,iml,VL,0,0}, /* ld.w */
00577   {18,7,iml,VS,0,0}, /* ld.w */
00578   {0,0,0,0,0,0},
00579   {8,7,imr,S,0,0},   /* shf.w */
00580   {93,0,a5,0,0,0},   /* trap */
00581   {0,0,0,0,0,0},
00582   {37,6,imr,A,0,0},  /* eq.h */
00583   {37,7,imr,A,0,0},  /* eq.w */
00584   {38,6,imr,A,0,0},  /* leu.h */
00585   {38,7,imr,A,0,0},  /* leu.w */
00586   {39,6,imr,A,0,0},  /* ltu.h */
00587   {39,7,imr,A,0,0},  /* ltu.w */
00588   {40,6,imr,A,0,0},  /* le.h */
00589   {40,7,imr,A,0,0},  /* le.w */
00590   {41,6,imr,A,0,0},  /* lt.h */
00591   {41,7,imr,A,0,0},  /* lt.w */
00592 };
00593 
00594 const struct formstr format1b[] = {
00595   {18,4,imr,S,0,0},  /* ld.d */
00596   {18,10,imr,S,0,0}, /* ld.u */
00597   {18,8,imr,S,0,0},  /* ld.l */
00598   {18,7,imr,S,0,0},  /* ld.w */
00599   {5,0,imr,S,0,0},   /* and */
00600   {6,0,imr,S,0,0},   /* or */
00601   {7,0,imr,S,0,0},   /* xor */
00602   {8,0,imr,S,0,0},   /* shf */
00603   {9,6,imr,S,0,0},   /* add.h */
00604   {9,7,imr,S,0,0},   /* add.w */
00605   {10,6,imr,S,0,0},  /* sub.h */
00606   {10,7,imr,S,0,0},  /* sub.w */
00607   {3,6,imr,S,0,0},   /* mul.h */
00608   {3,7,imr,S,0,0},   /* mul.w */
00609   {4,6,imr,S,0,0},   /* div.h */
00610   {4,7,imr,S,0,0},   /* div.w */
00611   {9,3,imr,S,0,0},   /* add.s */
00612   {10,3,imr,S,0,0},  /* sub.s */
00613   {3,3,imr,S,0,0},   /* mul.s */
00614   {4,3,imr,S,0,0},   /* div.s */
00615   {40,3,imr,S,0,0},  /* le.s */
00616   {41,3,imr,S,0,0},  /* lt.s */
00617   {37,6,imr,S,0,0},  /* eq.h */
00618   {37,7,imr,S,0,0},  /* eq.w */
00619   {38,6,imr,S,0,0},  /* leu.h */
00620   {38,7,imr,S,0,0},  /* leu.w */
00621   {39,6,imr,S,0,0},  /* ltu.h */
00622   {39,7,imr,S,0,0},  /* ltu.w */
00623   {40,6,imr,S,0,0},  /* le.h */
00624   {40,7,imr,S,0,0},  /* le.w */
00625   {41,6,imr,S,0,0},  /* lt.h */
00626   {41,7,imr,S,0,0},  /* lt.w */
00627 };
00628 
00629 const struct formstr e0_format0[] = {
00630   {10,3,rrr,S,V,V},  /* sub.s */
00631   {10,4,rrr,S,V,V},  /* sub.d */
00632   {4,3,rrr,S,V,V},   /* div.s */
00633   {4,4,rrr,S,V,V},   /* div.d */
00634   {10,11,rrr,S,V,V}, /* sub.s.f */
00635   {10,12,rrr,S,V,V}, /* sub.d.f */
00636   {4,11,rrr,S,V,V},  /* div.s.f */
00637   {4,12,rrr,S,V,V},  /* div.d.f */
00638   {3,11,rrr,V,V,V},  /* mul.s.f */
00639   {3,12,rrr,V,V,V},  /* mul.d.f */
00640   {4,11,rrr,V,V,V},  /* div.s.f */
00641   {4,12,rrr,V,V,V},  /* div.d.f */
00642   {3,11,rrr,V,S,V},  /* mul.s.f */
00643   {3,12,rrr,V,S,V},  /* mul.d.f */
00644   {4,11,rrr,V,S,V},  /* div.s.f */
00645   {4,12,rrr,V,S,V},  /* div.d.f */
00646   {5,2,rrr,V,V,V},   /* and.f */
00647   {6,2,rrr,V,V,V},   /* or.f */
00648   {7,2,rrr,V,V,V},   /* xor.f */
00649   {8,2,rrr,V,V,V},   /* shf.f */
00650   {5,2,rrr,V,S,V},   /* and.f */
00651   {6,2,rrr,V,S,V},   /* or.f */
00652   {7,2,rrr,V,S,V},   /* xor.f */
00653   {8,2,rrr,V,S,V},   /* shf.f */
00654   {9,11,rrr,V,V,V},  /* add.s.f */
00655   {9,12,rrr,V,V,V},  /* add.d.f */
00656   {10,11,rrr,V,V,V}, /* sub.s.f */
00657   {10,12,rrr,V,V,V}, /* sub.d.f */
00658   {9,11,rrr,V,S,V},  /* add.s.f */
00659   {9,12,rrr,V,S,V},  /* add.d.f */
00660   {10,11,rrr,V,S,V}, /* sub.s.f */
00661   {10,12,rrr,V,S,V}, /* sub.d.f */
00662   {9,13,rrr,V,V,V},  /* add.b.f */
00663   {9,14,rrr,V,V,V},  /* add.h.f */
00664   {9,15,rrr,V,V,V},  /* add.w.f */
00665   {9,16,rrr,V,V,V},  /* add.l.f */
00666   {9,13,rrr,V,S,V},  /* add.b.f */
00667   {9,14,rrr,V,S,V},  /* add.h.f */
00668   {9,15,rrr,V,S,V},  /* add.w.f */
00669   {9,16,rrr,V,S,V},  /* add.l.f */
00670   {10,13,rrr,V,V,V}, /* sub.b.f */
00671   {10,14,rrr,V,V,V}, /* sub.h.f */
00672   {10,15,rrr,V,V,V}, /* sub.w.f */
00673   {10,16,rrr,V,V,V}, /* sub.l.f */
00674   {10,13,rrr,V,S,V}, /* sub.b.f */
00675   {10,14,rrr,V,S,V}, /* sub.h.f */
00676   {10,15,rrr,V,S,V}, /* sub.w.f */
00677   {10,16,rrr,V,S,V}, /* sub.l.f */
00678   {3,13,rrr,V,V,V},  /* mul.b.f */
00679   {3,14,rrr,V,V,V},  /* mul.h.f */
00680   {3,15,rrr,V,V,V},  /* mul.w.f */
00681   {3,16,rrr,V,V,V},  /* mul.l.f */
00682   {3,13,rrr,V,S,V},  /* mul.b.f */
00683   {3,14,rrr,V,S,V},  /* mul.h.f */
00684   {3,15,rrr,V,S,V},  /* mul.w.f */
00685   {3,16,rrr,V,S,V},  /* mul.l.f */
00686   {4,13,rrr,V,V,V},  /* div.b.f */
00687   {4,14,rrr,V,V,V},  /* div.h.f */
00688   {4,15,rrr,V,V,V},  /* div.w.f */
00689   {4,16,rrr,V,V,V},  /* div.l.f */
00690   {4,13,rrr,V,S,V},  /* div.b.f */
00691   {4,14,rrr,V,S,V},  /* div.h.f */
00692   {4,15,rrr,V,S,V},  /* div.w.f */
00693   {4,16,rrr,V,S,V},  /* div.l.f */
00694 };
00695 
00696 const struct formstr e0_format1[] = {
00697   {0,0,0,0,0,0},
00698   {94,0,a3,0,0,0},   /* tst */
00699   {95,0,a3,0,0,0},   /* lck */
00700   {96,0,a3,0,0,0},   /* ulk */
00701   {17,0,a1r,S,0,0},  /* ldea */
00702   {97,0,a1r,A,0,0},  /* spawn */
00703   {98,0,a1r,A,0,0},  /* ldcmr */
00704   {99,0,a2r,A,0,0},  /* stcmr */
00705   {100,0,a1r,A,0,0}, /* popr */
00706   {101,0,a2r,A,0,0}, /* pshr */
00707   {102,7,a1r,A,0,0}, /* rcvr.w */
00708   {103,7,a2r,A,0,0}, /* matm.w */
00709   {104,7,a2r,A,0,0}, /* sndr.w */
00710   {104,8,a2r,S,0,0}, /* sndr.l */
00711   {102,8,a1r,S,0,0}, /* rcvr.l */
00712   {103,8,a2r,S,0,0}, /* matm.l */
00713   {0,0,0,0,0,0},
00714   {0,0,0,0,0,0},
00715   {0,0,0,0,0,0},
00716   {0,0,0,0,0,0},
00717   {0,0,0,0,0,0},
00718   {0,0,0,0,0,0},
00719   {0,0,0,0,0,0},
00720   {0,0,0,0,0,0},
00721   {0,0,0,0,0,0},
00722   {0,0,0,0,0,0},
00723   {0,0,0,0,0,0},
00724   {0,0,0,0,0,0},
00725   {0,0,0,0,0,0},
00726   {0,0,0,0,0,0},
00727   {0,0,0,0,0,0},
00728   {0,0,0,0,0,0},
00729   {105,7,a2r,A,0,0}, /* putr.w */
00730   {105,8,a2r,S,0,0}, /* putr.l */
00731   {106,7,a1r,A,0,0}, /* getr.w */
00732   {106,8,a1r,S,0,0}, /* getr.l */
00733   {26,13,a2r,S,0,0}, /* ste.b.f */
00734   {26,14,a2r,S,0,0}, /* ste.h.f */
00735   {26,15,a2r,S,0,0}, /* ste.w.f */
00736   {26,16,a2r,S,0,0}, /* ste.l.f */
00737   {107,7,a2r,A,0,0}, /* matr.w */
00738   {108,7,a2r,A,0,0}, /* mat.w */
00739   {109,7,a1r,A,0,0}, /* get.w */
00740   {110,7,a1r,A,0,0}, /* rcv.w */
00741   {0,0,0,0,0,0},
00742   {111,7,a1r,A,0,0}, /* inc.w */
00743   {112,7,a2r,A,0,0}, /* put.w */
00744   {113,7,a2r,A,0,0}, /* snd.w */
00745   {107,8,a2r,S,0,0}, /* matr.l */
00746   {108,8,a2r,S,0,0}, /* mat.l */
00747   {109,8,a1r,S,0,0}, /* get.l */
00748   {110,8,a1r,S,0,0}, /* rcv.l */
00749   {0,0,0,0,0,0},
00750   {111,8,a1r,S,0,0}, /* inc.l */
00751   {112,8,a2r,S,0,0}, /* put.l */
00752   {113,8,a2r,S,0,0}, /* snd.l */
00753   {18,13,a1r,V,0,0}, /* ld.b.f */
00754   {18,14,a1r,V,0,0}, /* ld.h.f */
00755   {18,15,a1r,V,0,0}, /* ld.w.f */
00756   {18,16,a1r,V,0,0}, /* ld.l.f */
00757   {21,13,a2r,V,0,0}, /* st.b.f */
00758   {21,14,a2r,V,0,0}, /* st.h.f */
00759   {21,15,a2r,V,0,0}, /* st.w.f */
00760   {21,16,a2r,V,0,0}, /* st.l.f */
00761 };
00762 
00763 const struct formstr e0_format2[] = {
00764   {28,5,rr,V,V,0},   /* cvtw.b */
00765   {28,6,rr,V,V,0},   /* cvtw.h */
00766   {29,7,rr,V,V,0},   /* cvtb.w */
00767   {30,7,rr,V,V,0},   /* cvth.w */
00768   {28,13,rr,V,V,0},  /* cvtw.b.f */
00769   {28,14,rr,V,V,0},  /* cvtw.h.f */
00770   {29,15,rr,V,V,0},  /* cvtb.w.f */
00771   {30,15,rr,V,V,0},  /* cvth.w.f */
00772   {31,8,rr,V,V,0},   /* cvts.l */
00773   {32,7,rr,V,V,0},   /* cvtd.w */
00774   {33,3,rr,V,V,0},   /* cvtl.s */
00775   {28,4,rr,V,V,0},   /* cvtw.d */
00776   {31,16,rr,V,V,0},  /* cvts.l.f */
00777   {32,15,rr,V,V,0},  /* cvtd.w.f */
00778   {33,11,rr,V,V,0},  /* cvtl.s.f */
00779   {28,12,rr,V,V,0},  /* cvtw.d.f */
00780   {114,0,rr,S,S,0},  /* enal */
00781   {8,7,rr,S,S,0},    /* shf.w */
00782   {115,0,rr,S,S,0},  /* enag */
00783   {0,0,0,0,0,0},
00784   {28,4,rr,S,S,0},   /* cvtw.d */
00785   {32,7,rr,S,S,0},   /* cvtd.w */
00786   {0,0,0,0,0,0},
00787   {0,0,0,0,0,0},
00788   {0,0,0,0,0,0},
00789   {0,0,0,0,0,0},
00790   {0,0,0,0,0,0},
00791   {0,0,0,0,0,0},
00792   {116,3,rr,S,S,0},  /* frint.s */
00793   {116,4,rr,S,S,0},  /* frint.d */
00794   {0,0,0,0,0,0},
00795   {0,0,0,0,0,0},
00796   {0,0,0,0,0,0},
00797   {0,0,0,0,0,0},
00798   {0,0,0,0,0,0},
00799   {0,0,0,0,0,0},
00800   {0,0,0,0,0,0},
00801   {0,0,0,0,0,0},
00802   {0,0,0,0,0,0},
00803   {0,0,0,0,0,0},
00804   {0,0,0,0,0,0},
00805   {0,0,0,0,0,0},
00806   {0,0,0,0,0,0},
00807   {0,0,0,0,0,0},
00808   {0,0,0,0,0,0},
00809   {0,0,0,0,0,0},
00810   {0,0,0,0,0,0},
00811   {0,0,0,0,0,0},
00812   {0,0,0,0,0,0},
00813   {0,0,0,0,0,0},
00814   {0,0,0,0,0,0},
00815   {0,0,0,0,0,0},
00816   {0,0,0,0,0,0},
00817   {0,0,0,0,0,0},
00818   {0,0,0,0,0,0},
00819   {0,0,0,0,0,0},
00820   {0,0,0,0,0,0},
00821   {0,0,0,0,0,0},
00822   {0,0,0,0,0,0},
00823   {0,0,0,0,0,0},
00824   {0,0,0,0,0,0},
00825   {0,0,0,0,0,0},
00826   {0,0,0,0,0,0},
00827   {0,0,0,0,0,0},
00828   {0,0,0,0,0,0},
00829   {0,0,0,0,0,0},
00830   {0,0,0,0,0,0},
00831   {0,0,0,0,0,0},
00832   {0,0,0,0,0,0},
00833   {0,0,0,0,0,0},
00834   {0,0,0,0,0,0},
00835   {0,0,0,0,0,0},
00836   {0,0,0,0,0,0},
00837   {0,0,0,0,0,0},
00838   {0,0,0,0,0,0},
00839   {0,0,0,0,0,0},
00840   {0,0,0,0,0,0},
00841   {0,0,0,0,0,0},
00842   {0,0,0,0,0,0},
00843   {0,0,0,0,0,0},
00844   {0,0,0,0,0,0},
00845   {0,0,0,0,0,0},
00846   {0,0,0,0,0,0},
00847   {0,0,0,0,0,0},
00848   {0,0,0,0,0,0},
00849   {0,0,0,0,0,0},
00850   {0,0,0,0,0,0},
00851   {0,0,0,0,0,0},
00852   {0,0,0,0,0,0},
00853   {0,0,0,0,0,0},
00854   {0,0,0,0,0,0},
00855   {0,0,0,0,0,0},
00856   {0,0,0,0,0,0},
00857   {0,0,0,0,0,0},
00858   {0,0,0,0,0,0},
00859   {0,0,0,0,0,0},
00860   {0,0,0,0,0,0},
00861   {0,0,0,0,0,0},
00862   {116,3,rr,V,V,0},  /* frint.s */
00863   {116,4,rr,V,V,0},  /* frint.d */
00864   {0,0,0,0,0,0},
00865   {0,0,0,0,0,0},
00866   {116,11,rr,V,V,0}, /* frint.s.f */
00867   {116,12,rr,V,V,0}, /* frint.d.f */
00868   {0,0,0,0,0,0},
00869   {0,0,0,0,0,0},
00870   {0,0,0,0,0,0},
00871   {0,0,0,0,0,0},
00872   {0,0,0,0,0,0},
00873   {0,0,0,0,0,0},
00874   {0,0,0,0,0,0},
00875   {0,0,0,0,0,0},
00876   {0,0,0,0,0,0},
00877   {0,0,0,0,0,0},
00878   {0,0,0,0,0,0},
00879   {0,0,0,0,0,0},
00880   {81,3,rr,V,V,0},   /* sqrt.s */
00881   {81,4,rr,V,V,0},   /* sqrt.d */
00882   {0,0,0,0,0,0},
00883   {0,0,0,0,0,0},
00884   {0,0,0,0,0,0},
00885   {0,0,0,0,0,0},
00886   {0,0,0,0,0,0},
00887   {0,0,0,0,0,0},
00888   {81,11,rr,V,V,0},  /* sqrt.s.f */
00889   {81,12,rr,V,V,0},  /* sqrt.d.f */
00890   {0,0,0,0,0,0},
00891   {0,0,0,0,0,0},
00892 };
00893 
00894 const struct formstr e0_format3[] = {
00895   {32,11,rr,V,V,0},  /* cvtd.s.f */
00896   {31,12,rr,V,V,0},  /* cvts.d.f */
00897   {33,12,rr,V,V,0},  /* cvtl.d.f */
00898   {32,16,rr,V,V,0},  /* cvtd.l.f */
00899   {0,0,0,0,0,0},
00900   {0,0,0,0,0,0},
00901   {0,0,0,0,0,0},
00902   {0,0,0,0,0,0},
00903   {36,2,rr,V,V,0},   /* tzc.f */
00904   {44,2,rr,V,V,0},   /* lop.f */
00905   {117,2,rr,V,V,0},  /* xpnd.f */
00906   {42,2,rr,V,V,0},   /* not.f */
00907   {8,2,rr,S,V,0},    /* shf.f */
00908   {35,17,rr,V,V,0},  /* plc.t.f */
00909   {0,0,0,0,0,0},
00910   {0,0,0,0,0,0},
00911   {37,11,rr,V,V,0},  /* eq.s.f */
00912   {37,12,rr,V,V,0},  /* eq.d.f */
00913   {43,11,rr,V,V,0},  /* neg.s.f */
00914   {43,12,rr,V,V,0},  /* neg.d.f */
00915   {37,11,rr,S,V,0},  /* eq.s.f */
00916   {37,12,rr,S,V,0},  /* eq.d.f */
00917   {0,0,0,0,0,0},
00918   {0,0,0,0,0,0},
00919   {40,11,rr,V,V,0},  /* le.s.f */
00920   {40,12,rr,V,V,0},  /* le.d.f */
00921   {41,11,rr,V,V,0},  /* lt.s.f */
00922   {41,12,rr,V,V,0},  /* lt.d.f */
00923   {40,11,rr,S,V,0},  /* le.s.f */
00924   {40,12,rr,S,V,0},  /* le.d.f */
00925   {41,11,rr,S,V,0},  /* lt.s.f */
00926   {41,12,rr,S,V,0},  /* lt.d.f */
00927   {37,13,rr,V,V,0},  /* eq.b.f */
00928   {37,14,rr,V,V,0},  /* eq.h.f */
00929   {37,15,rr,V,V,0},  /* eq.w.f */
00930   {37,16,rr,V,V,0},  /* eq.l.f */
00931   {37,13,rr,S,V,0},  /* eq.b.f */
00932   {37,14,rr,S,V,0},  /* eq.h.f */
00933   {37,15,rr,S,V,0},  /* eq.w.f */
00934   {37,16,rr,S,V,0},  /* eq.l.f */
00935   {40,13,rr,V,V,0},  /* le.b.f */
00936   {40,14,rr,V,V,0},  /* le.h.f */
00937   {40,15,rr,V,V,0},  /* le.w.f */
00938   {40,16,rr,V,V,0},  /* le.l.f */
00939   {40,13,rr,S,V,0},  /* le.b.f */
00940   {40,14,rr,S,V,0},  /* le.h.f */
00941   {40,15,rr,S,V,0},  /* le.w.f */
00942   {40,16,rr,S,V,0},  /* le.l.f */
00943   {41,13,rr,V,V,0},  /* lt.b.f */
00944   {41,14,rr,V,V,0},  /* lt.h.f */
00945   {41,15,rr,V,V,0},  /* lt.w.f */
00946   {41,16,rr,V,V,0},  /* lt.l.f */
00947   {41,13,rr,S,V,0},  /* lt.b.f */
00948   {41,14,rr,S,V,0},  /* lt.h.f */
00949   {41,15,rr,S,V,0},  /* lt.w.f */
00950   {41,16,rr,S,V,0},  /* lt.l.f */
00951   {43,13,rr,V,V,0},  /* neg.b.f */
00952   {43,14,rr,V,V,0},  /* neg.h.f */
00953   {43,15,rr,V,V,0},  /* neg.w.f */
00954   {43,16,rr,V,V,0},  /* neg.l.f */
00955   {0,0,0,0,0,0},
00956   {0,0,0,0,0,0},
00957   {0,0,0,0,0,0},
00958   {0,0,0,0,0,0},
00959 };
00960 
00961 const struct formstr e0_format4[] = {
00962   {0,0,0,0,0,0},
00963   {0,0,0,0,0,0},
00964   {0,0,0,0,0,0},
00965   {0,0,0,0,0,0},
00966   {0,0,0,0,0,0},
00967   {0,0,0,0,0,0},
00968   {0,0,0,0,0,0},
00969   {0,0,0,0,0,0},
00970 };
00971 
00972 const struct formstr e0_format5[] = {
00973   {51,13,rr,V,V,0},  /* ldvi.b.f */
00974   {51,14,rr,V,V,0},  /* ldvi.h.f */
00975   {51,15,rr,V,V,0},  /* ldvi.w.f */
00976   {51,16,rr,V,V,0},  /* ldvi.l.f */
00977   {28,11,rr,V,V,0},  /* cvtw.s.f */
00978   {31,15,rr,V,V,0},  /* cvts.w.f */
00979   {28,16,rr,V,V,0},  /* cvtw.l.f */
00980   {33,15,rr,V,V,0},  /* cvtl.w.f */
00981   {52,13,rxr,V,V,0}, /* stvi.b.f */
00982   {52,14,rxr,V,V,0}, /* stvi.h.f */
00983   {52,15,rxr,V,V,0}, /* stvi.w.f */
00984   {52,16,rxr,V,V,0}, /* stvi.l.f */
00985   {52,13,rxr,S,V,0}, /* stvi.b.f */
00986   {52,14,rxr,S,V,0}, /* stvi.h.f */
00987   {52,15,rxr,S,V,0}, /* stvi.w.f */
00988   {52,16,rxr,S,V,0}, /* stvi.l.f */
00989 };
00990 
00991 const struct formstr e0_format6[] = {
00992   {0,0,rxl,S,CIR,0}, /* mov */
00993   {0,0,lr,CIR,S,0},  /* mov */
00994   {0,0,lr,TOC,S,0},  /* mov */
00995   {0,0,lr,CPUID,S,0},       /* mov */
00996   {0,0,rxl,S,TTR,0}, /* mov */
00997   {0,0,lr,TTR,S,0},  /* mov */
00998   {118,0,nops,0,0,0},       /* ctrsl */
00999   {119,0,nops,0,0,0},       /* ctrsg */
01000   {0,0,rxl,S,VMU,0}, /* mov */
01001   {0,0,lr,VMU,S,0},  /* mov */
01002   {0,0,rxl,S,VML,0}, /* mov */
01003   {0,0,lr,VML,S,0},  /* mov */
01004   {0,0,rxl,S,ICR,0}, /* mov */
01005   {0,0,lr,ICR,S,0},  /* mov */
01006   {0,0,rxl,S,TCPU,0},       /* mov */
01007   {0,0,lr,TCPU,S,0}, /* mov */
01008   {0,0,0,0,0,0},
01009   {0,0,0,0,0,0},
01010   {0,0,0,0,0,0},
01011   {0,0,0,0,0,0},
01012   {120,0,nops,0,0,0},       /* stop */
01013   {0,0,0,0,0,0},
01014   {0,0,rxl,S,TID,0}, /* mov */
01015   {0,0,lr,TID,S,0},  /* mov */
01016   {0,0,0,0,0,0},
01017   {0,0,0,0,0,0},
01018   {0,0,0,0,0,0},
01019   {0,0,0,0,0,0},
01020   {0,0,0,0,0,0},
01021   {0,0,0,0,0,0},
01022   {0,0,0,0,0,0},
01023   {0,0,0,0,0,0},
01024   {0,0,0,0,0,0},
01025   {0,0,0,0,0,0},
01026   {0,0,0,0,0,0},
01027   {0,0,0,0,0,0},
01028   {0,0,0,0,0,0},
01029   {0,0,0,0,0,0},
01030   {0,0,0,0,0,0},
01031   {0,0,0,0,0,0},
01032   {0,0,0,0,0,0},
01033   {0,0,0,0,0,0},
01034   {0,0,0,0,0,0},
01035   {0,0,0,0,0,0},
01036   {0,0,0,0,0,0},
01037   {0,0,0,0,0,0},
01038   {0,0,0,0,0,0},
01039   {0,0,0,0,0,0},
01040   {0,0,0,0,0,0},
01041   {0,0,0,0,0,0},
01042   {0,0,0,0,0,0},
01043   {0,0,0,0,0,0},
01044   {0,0,0,0,0,0},
01045   {0,0,0,0,0,0},
01046   {0,0,0,0,0,0},
01047   {0,0,0,0,0,0},
01048   {0,0,0,0,0,0},
01049   {0,0,0,0,0,0},
01050   {0,0,0,0,0,0},
01051   {0,0,0,0,0,0},
01052   {0,0,0,0,0,0},
01053   {0,0,0,0,0,0},
01054   {0,0,0,0,0,0},
01055   {0,0,0,0,0,0},
01056 };
01057 
01058 const struct formstr e0_format7[] = {
01059   {84,13,r,V,0,0},   /* sum.b.f */
01060   {84,14,r,V,0,0},   /* sum.h.f */
01061   {84,15,r,V,0,0},   /* sum.w.f */
01062   {84,16,r,V,0,0},   /* sum.l.f */
01063   {85,2,r,V,0,0},    /* all.f */
01064   {86,2,r,V,0,0},    /* any.f */
01065   {87,2,r,V,0,0},    /* parity.f */
01066   {0,0,0,0,0,0},
01067   {88,13,r,V,0,0},   /* max.b.f */
01068   {88,14,r,V,0,0},   /* max.h.f */
01069   {88,15,r,V,0,0},   /* max.w.f */
01070   {88,16,r,V,0,0},   /* max.l.f */
01071   {89,13,r,V,0,0},   /* min.b.f */
01072   {89,14,r,V,0,0},   /* min.h.f */
01073   {89,15,r,V,0,0},   /* min.w.f */
01074   {89,16,r,V,0,0},   /* min.l.f */
01075   {84,11,r,V,0,0},   /* sum.s.f */
01076   {84,12,r,V,0,0},   /* sum.d.f */
01077   {90,11,r,V,0,0},   /* prod.s.f */
01078   {90,12,r,V,0,0},   /* prod.d.f */
01079   {88,11,r,V,0,0},   /* max.s.f */
01080   {88,12,r,V,0,0},   /* max.d.f */
01081   {89,11,r,V,0,0},   /* min.s.f */
01082   {89,12,r,V,0,0},   /* min.d.f */
01083   {90,13,r,V,0,0},   /* prod.b.f */
01084   {90,14,r,V,0,0},   /* prod.h.f */
01085   {90,15,r,V,0,0},   /* prod.w.f */
01086   {90,16,r,V,0,0},   /* prod.l.f */
01087   {0,0,0,0,0,0},
01088   {0,0,0,0,0,0},
01089   {0,0,0,0,0,0},
01090   {0,0,0,0,0,0},
01091 };
01092 
01093 const struct formstr e1_format0[] = {
01094   {0,0,0,0,0,0},
01095   {0,0,0,0,0,0},
01096   {0,0,0,0,0,0},
01097   {0,0,0,0,0,0},
01098   {10,18,rrr,S,V,V}, /* sub.s.t */
01099   {10,19,rrr,S,V,V}, /* sub.d.t */
01100   {4,18,rrr,S,V,V},  /* div.s.t */
01101   {4,19,rrr,S,V,V},  /* div.d.t */
01102   {3,18,rrr,V,V,V},  /* mul.s.t */
01103   {3,19,rrr,V,V,V},  /* mul.d.t */
01104   {4,18,rrr,V,V,V},  /* div.s.t */
01105   {4,19,rrr,V,V,V},  /* div.d.t */
01106   {3,18,rrr,V,S,V},  /* mul.s.t */
01107   {3,19,rrr,V,S,V},  /* mul.d.t */
01108   {4,18,rrr,V,S,V},  /* div.s.t */
01109   {4,19,rrr,V,S,V},  /* div.d.t */
01110   {5,1,rrr,V,V,V},   /* and.t */
01111   {6,1,rrr,V,V,V},   /* or.t */
01112   {7,1,rrr,V,V,V},   /* xor.t */
01113   {8,1,rrr,V,V,V},   /* shf.t */
01114   {5,1,rrr,V,S,V},   /* and.t */
01115   {6,1,rrr,V,S,V},   /* or.t */
01116   {7,1,rrr,V,S,V},   /* xor.t */
01117   {8,1,rrr,V,S,V},   /* shf.t */
01118   {9,18,rrr,V,V,V},  /* add.s.t */
01119   {9,19,rrr,V,V,V},  /* add.d.t */
01120   {10,18,rrr,V,V,V}, /* sub.s.t */
01121   {10,19,rrr,V,V,V}, /* sub.d.t */
01122   {9,18,rrr,V,S,V},  /* add.s.t */
01123   {9,19,rrr,V,S,V},  /* add.d.t */
01124   {10,18,rrr,V,S,V}, /* sub.s.t */
01125   {10,19,rrr,V,S,V}, /* sub.d.t */
01126   {9,20,rrr,V,V,V},  /* add.b.t */
01127   {9,21,rrr,V,V,V},  /* add.h.t */
01128   {9,22,rrr,V,V,V},  /* add.w.t */
01129   {9,23,rrr,V,V,V},  /* add.l.t */
01130   {9,20,rrr,V,S,V},  /* add.b.t */
01131   {9,21,rrr,V,S,V},  /* add.h.t */
01132   {9,22,rrr,V,S,V},  /* add.w.t */
01133   {9,23,rrr,V,S,V},  /* add.l.t */
01134   {10,20,rrr,V,V,V}, /* sub.b.t */
01135   {10,21,rrr,V,V,V}, /* sub.h.t */
01136   {10,22,rrr,V,V,V}, /* sub.w.t */
01137   {10,23,rrr,V,V,V}, /* sub.l.t */
01138   {10,20,rrr,V,S,V}, /* sub.b.t */
01139   {10,21,rrr,V,S,V}, /* sub.h.t */
01140   {10,22,rrr,V,S,V}, /* sub.w.t */
01141   {10,23,rrr,V,S,V}, /* sub.l.t */
01142   {3,20,rrr,V,V,V},  /* mul.b.t */
01143   {3,21,rrr,V,V,V},  /* mul.h.t */
01144   {3,22,rrr,V,V,V},  /* mul.w.t */
01145   {3,23,rrr,V,V,V},  /* mul.l.t */
01146   {3,20,rrr,V,S,V},  /* mul.b.t */
01147   {3,21,rrr,V,S,V},  /* mul.h.t */
01148   {3,22,rrr,V,S,V},  /* mul.w.t */
01149   {3,23,rrr,V,S,V},  /* mul.l.t */
01150   {4,20,rrr,V,V,V},  /* div.b.t */
01151   {4,21,rrr,V,V,V},  /* div.h.t */
01152   {4,22,rrr,V,V,V},  /* div.w.t */
01153   {4,23,rrr,V,V,V},  /* div.l.t */
01154   {4,20,rrr,V,S,V},  /* div.b.t */
01155   {4,21,rrr,V,S,V},  /* div.h.t */
01156   {4,22,rrr,V,S,V},  /* div.w.t */
01157   {4,23,rrr,V,S,V},  /* div.l.t */
01158 };
01159 
01160 const struct formstr e1_format1[] = {
01161   {0,0,0,0,0,0},
01162   {0,0,0,0,0,0},
01163   {0,0,0,0,0,0},
01164   {0,0,0,0,0,0},
01165   {0,0,0,0,0,0},
01166   {0,0,0,0,0,0},
01167   {0,0,0,0,0,0},
01168   {0,0,0,0,0,0},
01169   {0,0,0,0,0,0},
01170   {0,0,0,0,0,0},
01171   {0,0,0,0,0,0},
01172   {0,0,0,0,0,0},
01173   {0,0,0,0,0,0},
01174   {0,0,0,0,0,0},
01175   {0,0,0,0,0,0},
01176   {0,0,0,0,0,0},
01177   {0,0,0,0,0,0},
01178   {0,0,0,0,0,0},
01179   {0,0,0,0,0,0},
01180   {0,0,0,0,0,0},
01181   {0,0,0,0,0,0},
01182   {0,0,0,0,0,0},
01183   {0,0,0,0,0,0},
01184   {0,0,0,0,0,0},
01185   {0,0,0,0,0,0},
01186   {0,0,0,0,0,0},
01187   {0,0,0,0,0,0},
01188   {0,0,0,0,0,0},
01189   {0,0,0,0,0,0},
01190   {0,0,0,0,0,0},
01191   {0,0,0,0,0,0},
01192   {0,0,0,0,0,0},
01193   {0,0,0,0,0,0},
01194   {0,0,0,0,0,0},
01195   {0,0,0,0,0,0},
01196   {0,0,0,0,0,0},
01197   {26,20,a2r,S,0,0}, /* ste.b.t */
01198   {26,21,a2r,S,0,0}, /* ste.h.t */
01199   {26,22,a2r,S,0,0}, /* ste.w.t */
01200   {26,23,a2r,S,0,0}, /* ste.l.t */
01201   {0,0,0,0,0,0},
01202   {0,0,0,0,0,0},
01203   {0,0,0,0,0,0},
01204   {0,0,0,0,0,0},
01205   {0,0,0,0,0,0},
01206   {0,0,0,0,0,0},
01207   {0,0,0,0,0,0},
01208   {0,0,0,0,0,0},
01209   {0,0,0,0,0,0},
01210   {0,0,0,0,0,0},
01211   {0,0,0,0,0,0},
01212   {0,0,0,0,0,0},
01213   {0,0,0,0,0,0},
01214   {0,0,0,0,0,0},
01215   {0,0,0,0,0,0},
01216   {0,0,0,0,0,0},
01217   {18,20,a1r,V,0,0}, /* ld.b.t */
01218   {18,21,a1r,V,0,0}, /* ld.h.t */
01219   {18,22,a1r,V,0,0}, /* ld.w.t */
01220   {18,23,a1r,V,0,0}, /* ld.l.t */
01221   {21,20,a2r,V,0,0}, /* st.b.t */
01222   {21,21,a2r,V,0,0}, /* st.h.t */
01223   {21,22,a2r,V,0,0}, /* st.w.t */
01224   {21,23,a2r,V,0,0}, /* st.l.t */
01225 };
01226 
01227 const struct formstr e1_format2[] = {
01228   {0,0,0,0,0,0},
01229   {0,0,0,0,0,0},
01230   {0,0,0,0,0,0},
01231   {0,0,0,0,0,0},
01232   {28,20,rr,V,V,0},  /* cvtw.b.t */
01233   {28,21,rr,V,V,0},  /* cvtw.h.t */
01234   {29,22,rr,V,V,0},  /* cvtb.w.t */
01235   {30,22,rr,V,V,0},  /* cvth.w.t */
01236   {0,0,0,0,0,0},
01237   {0,0,0,0,0,0},
01238   {0,0,0,0,0,0},
01239   {0,0,0,0,0,0},
01240   {31,23,rr,V,V,0},  /* cvts.l.t */
01241   {32,22,rr,V,V,0},  /* cvtd.w.t */
01242   {33,18,rr,V,V,0},  /* cvtl.s.t */
01243   {28,19,rr,V,V,0},  /* cvtw.d.t */
01244   {0,0,0,0,0,0},
01245   {0,0,0,0,0,0},
01246   {0,0,0,0,0,0},
01247   {0,0,0,0,0,0},
01248   {0,0,0,0,0,0},
01249   {0,0,0,0,0,0},
01250   {0,0,0,0,0,0},
01251   {0,0,0,0,0,0},
01252   {0,0,0,0,0,0},
01253   {0,0,0,0,0,0},
01254   {0,0,0,0,0,0},
01255   {0,0,0,0,0,0},
01256   {0,0,0,0,0,0},
01257   {0,0,0,0,0,0},
01258   {0,0,0,0,0,0},
01259   {0,0,0,0,0,0},
01260   {0,0,0,0,0,0},
01261   {0,0,0,0,0,0},
01262   {0,0,0,0,0,0},
01263   {0,0,0,0,0,0},
01264   {0,0,0,0,0,0},
01265   {0,0,0,0,0,0},
01266   {0,0,0,0,0,0},
01267   {0,0,0,0,0,0},
01268   {0,0,0,0,0,0},
01269   {0,0,0,0,0,0},
01270   {0,0,0,0,0,0},
01271   {0,0,0,0,0,0},
01272   {0,0,0,0,0,0},
01273   {0,0,0,0,0,0},
01274   {0,0,0,0,0,0},
01275   {0,0,0,0,0,0},
01276   {0,0,0,0,0,0},
01277   {0,0,0,0,0,0},
01278   {0,0,0,0,0,0},
01279   {0,0,0,0,0,0},
01280   {0,0,0,0,0,0},
01281   {0,0,0,0,0,0},
01282   {0,0,0,0,0,0},
01283   {0,0,0,0,0,0},
01284   {0,0,0,0,0,0},
01285   {0,0,0,0,0,0},
01286   {0,0,0,0,0,0},
01287   {0,0,0,0,0,0},
01288   {0,0,0,0,0,0},
01289   {0,0,0,0,0,0},
01290   {0,0,0,0,0,0},
01291   {0,0,0,0,0,0},
01292   {0,0,0,0,0,0},
01293   {0,0,0,0,0,0},
01294   {0,0,0,0,0,0},
01295   {0,0,0,0,0,0},
01296   {0,0,0,0,0,0},
01297   {0,0,0,0,0,0},
01298   {0,0,0,0,0,0},
01299   {0,0,0,0,0,0},
01300   {0,0,0,0,0,0},
01301   {0,0,0,0,0,0},
01302   {0,0,0,0,0,0},
01303   {0,0,0,0,0,0},
01304   {0,0,0,0,0,0},
01305   {0,0,0,0,0,0},
01306   {0,0,0,0,0,0},
01307   {0,0,0,0,0,0},
01308   {0,0,0,0,0,0},
01309   {0,0,0,0,0,0},
01310   {0,0,0,0,0,0},
01311   {0,0,0,0,0,0},
01312   {0,0,0,0,0,0},
01313   {0,0,0,0,0,0},
01314   {0,0,0,0,0,0},
01315   {0,0,0,0,0,0},
01316   {0,0,0,0,0,0},
01317   {0,0,0,0,0,0},
01318   {0,0,0,0,0,0},
01319   {0,0,0,0,0,0},
01320   {0,0,0,0,0,0},
01321   {0,0,0,0,0,0},
01322   {0,0,0,0,0,0},
01323   {0,0,0,0,0,0},
01324   {0,0,0,0,0,0},
01325   {0,0,0,0,0,0},
01326   {0,0,0,0,0,0},
01327   {0,0,0,0,0,0},
01328   {0,0,0,0,0,0},
01329   {0,0,0,0,0,0},
01330   {116,18,rr,V,V,0}, /* frint.s.t */
01331   {116,19,rr,V,V,0}, /* frint.d.t */
01332   {0,0,0,0,0,0},
01333   {0,0,0,0,0,0},
01334   {0,0,0,0,0,0},
01335   {0,0,0,0,0,0},
01336   {0,0,0,0,0,0},
01337   {0,0,0,0,0,0},
01338   {0,0,0,0,0,0},
01339   {0,0,0,0,0,0},
01340   {0,0,0,0,0,0},
01341   {0,0,0,0,0,0},
01342   {0,0,0,0,0,0},
01343   {0,0,0,0,0,0},
01344   {0,0,0,0,0,0},
01345   {0,0,0,0,0,0},
01346   {0,0,0,0,0,0},
01347   {0,0,0,0,0,0},
01348   {0,0,0,0,0,0},
01349   {0,0,0,0,0,0},
01350   {0,0,0,0,0,0},
01351   {0,0,0,0,0,0},
01352   {81,18,rr,V,V,0},  /* sqrt.s.t */
01353   {81,19,rr,V,V,0},  /* sqrt.d.t */
01354   {0,0,0,0,0,0},
01355   {0,0,0,0,0,0},
01356 };
01357 
01358 const struct formstr e1_format3[] = {
01359   {32,18,rr,V,V,0},  /* cvtd.s.t */
01360   {31,19,rr,V,V,0},  /* cvts.d.t */
01361   {33,19,rr,V,V,0},  /* cvtl.d.t */
01362   {32,23,rr,V,V,0},  /* cvtd.l.t */
01363   {0,0,0,0,0,0},
01364   {0,0,0,0,0,0},
01365   {0,0,0,0,0,0},
01366   {0,0,0,0,0,0},
01367   {36,1,rr,V,V,0},   /* tzc.t */
01368   {44,1,rr,V,V,0},   /* lop.t */
01369   {117,1,rr,V,V,0},  /* xpnd.t */
01370   {42,1,rr,V,V,0},   /* not.t */
01371   {8,1,rr,S,V,0},    /* shf.t */
01372   {35,24,rr,V,V,0},  /* plc.t.t */
01373   {0,0,0,0,0,0},
01374   {0,0,0,0,0,0},
01375   {37,18,rr,V,V,0},  /* eq.s.t */
01376   {37,19,rr,V,V,0},  /* eq.d.t */
01377   {43,18,rr,V,V,0},  /* neg.s.t */
01378   {43,19,rr,V,V,0},  /* neg.d.t */
01379   {37,18,rr,S,V,0},  /* eq.s.t */
01380   {37,19,rr,S,V,0},  /* eq.d.t */
01381   {0,0,0,0,0,0},
01382   {0,0,0,0,0,0},
01383   {40,18,rr,V,V,0},  /* le.s.t */
01384   {40,19,rr,V,V,0},  /* le.d.t */
01385   {41,18,rr,V,V,0},  /* lt.s.t */
01386   {41,19,rr,V,V,0},  /* lt.d.t */
01387   {40,18,rr,S,V,0},  /* le.s.t */
01388   {40,19,rr,S,V,0},  /* le.d.t */
01389   {41,18,rr,S,V,0},  /* lt.s.t */
01390   {41,19,rr,S,V,0},  /* lt.d.t */
01391   {37,20,rr,V,V,0},  /* eq.b.t */
01392   {37,21,rr,V,V,0},  /* eq.h.t */
01393   {37,22,rr,V,V,0},  /* eq.w.t */
01394   {37,23,rr,V,V,0},  /* eq.l.t */
01395   {37,20,rr,S,V,0},  /* eq.b.t */
01396   {37,21,rr,S,V,0},  /* eq.h.t */
01397   {37,22,rr,S,V,0},  /* eq.w.t */
01398   {37,23,rr,S,V,0},  /* eq.l.t */
01399   {40,20,rr,V,V,0},  /* le.b.t */
01400   {40,21,rr,V,V,0},  /* le.h.t */
01401   {40,22,rr,V,V,0},  /* le.w.t */
01402   {40,23,rr,V,V,0},  /* le.l.t */
01403   {40,20,rr,S,V,0},  /* le.b.t */
01404   {40,21,rr,S,V,0},  /* le.h.t */
01405   {40,22,rr,S,V,0},  /* le.w.t */
01406   {40,23,rr,S,V,0},  /* le.l.t */
01407   {41,20,rr,V,V,0},  /* lt.b.t */
01408   {41,21,rr,V,V,0},  /* lt.h.t */
01409   {41,22,rr,V,V,0},  /* lt.w.t */
01410   {41,23,rr,V,V,0},  /* lt.l.t */
01411   {41,20,rr,S,V,0},  /* lt.b.t */
01412   {41,21,rr,S,V,0},  /* lt.h.t */
01413   {41,22,rr,S,V,0},  /* lt.w.t */
01414   {41,23,rr,S,V,0},  /* lt.l.t */
01415   {43,20,rr,V,V,0},  /* neg.b.t */
01416   {43,21,rr,V,V,0},  /* neg.h.t */
01417   {43,22,rr,V,V,0},  /* neg.w.t */
01418   {43,23,rr,V,V,0},  /* neg.l.t */
01419   {0,0,0,0,0,0},
01420   {0,0,0,0,0,0},
01421   {0,0,0,0,0,0},
01422   {0,0,0,0,0,0},
01423 };
01424 
01425 const struct formstr e1_format4[] = {
01426   {0,0,0,0,0,0},
01427   {0,0,0,0,0,0},
01428   {0,0,0,0,0,0},
01429   {0,0,0,0,0,0},
01430   {0,0,0,0,0,0},
01431   {0,0,0,0,0,0},
01432   {0,0,0,0,0,0},
01433   {0,0,0,0,0,0},
01434 };
01435 
01436 const struct formstr e1_format5[] = {
01437   {51,20,rr,V,V,0},  /* ldvi.b.t */
01438   {51,21,rr,V,V,0},  /* ldvi.h.t */
01439   {51,22,rr,V,V,0},  /* ldvi.w.t */
01440   {51,23,rr,V,V,0},  /* ldvi.l.t */
01441   {28,18,rr,V,V,0},  /* cvtw.s.t */
01442   {31,22,rr,V,V,0},  /* cvts.w.t */
01443   {28,23,rr,V,V,0},  /* cvtw.l.t */
01444   {33,22,rr,V,V,0},  /* cvtl.w.t */
01445   {52,20,rxr,V,V,0}, /* stvi.b.t */
01446   {52,21,rxr,V,V,0}, /* stvi.h.t */
01447   {52,22,rxr,V,V,0}, /* stvi.w.t */
01448   {52,23,rxr,V,V,0}, /* stvi.l.t */
01449   {52,20,rxr,S,V,0}, /* stvi.b.t */
01450   {52,21,rxr,S,V,0}, /* stvi.h.t */
01451   {52,22,rxr,S,V,0}, /* stvi.w.t */
01452   {52,23,rxr,S,V,0}, /* stvi.l.t */
01453 };
01454 
01455 const struct formstr e1_format6[] = {
01456   {0,0,0,0,0,0},
01457   {0,0,0,0,0,0},
01458   {0,0,0,0,0,0},
01459   {0,0,0,0,0,0},
01460   {0,0,0,0,0,0},
01461   {0,0,0,0,0,0},
01462   {0,0,0,0,0,0},
01463   {0,0,0,0,0,0},
01464   {0,0,0,0,0,0},
01465   {0,0,0,0,0,0},
01466   {0,0,0,0,0,0},
01467   {0,0,0,0,0,0},
01468   {0,0,0,0,0,0},
01469   {0,0,0,0,0,0},
01470   {0,0,0,0,0,0},
01471   {0,0,0,0,0,0},
01472   {0,0,0,0,0,0},
01473   {0,0,0,0,0,0},
01474   {0,0,0,0,0,0},
01475   {0,0,0,0,0,0},
01476   {0,0,0,0,0,0},
01477   {0,0,0,0,0,0},
01478   {0,0,0,0,0,0},
01479   {0,0,0,0,0,0},
01480   {0,0,0,0,0,0},
01481   {0,0,0,0,0,0},
01482   {0,0,0,0,0,0},
01483   {0,0,0,0,0,0},
01484   {0,0,0,0,0,0},
01485   {0,0,0,0,0,0},
01486   {0,0,0,0,0,0},
01487   {0,0,0,0,0,0},
01488   {0,0,0,0,0,0},
01489   {0,0,0,0,0,0},
01490   {0,0,0,0,0,0},
01491   {0,0,0,0,0,0},
01492   {0,0,0,0,0,0},
01493   {0,0,0,0,0,0},
01494   {0,0,0,0,0,0},
01495   {0,0,0,0,0,0},
01496   {0,0,0,0,0,0},
01497   {0,0,0,0,0,0},
01498   {0,0,0,0,0,0},
01499   {0,0,0,0,0,0},
01500   {0,0,0,0,0,0},
01501   {0,0,0,0,0,0},
01502   {0,0,0,0,0,0},
01503   {0,0,0,0,0,0},
01504   {0,0,0,0,0,0},
01505   {0,0,0,0,0,0},
01506   {0,0,0,0,0,0},
01507   {0,0,0,0,0,0},
01508   {0,0,0,0,0,0},
01509   {0,0,0,0,0,0},
01510   {0,0,0,0,0,0},
01511   {0,0,0,0,0,0},
01512   {0,0,0,0,0,0},
01513   {0,0,0,0,0,0},
01514   {0,0,0,0,0,0},
01515   {0,0,0,0,0,0},
01516   {0,0,0,0,0,0},
01517   {0,0,0,0,0,0},
01518   {0,0,0,0,0,0},
01519   {0,0,0,0,0,0},
01520 };
01521 
01522 const struct formstr e1_format7[] = {
01523   {84,20,r,V,0,0},   /* sum.b.t */
01524   {84,21,r,V,0,0},   /* sum.h.t */
01525   {84,22,r,V,0,0},   /* sum.w.t */
01526   {84,23,r,V,0,0},   /* sum.l.t */
01527   {85,1,r,V,0,0},    /* all.t */
01528   {86,1,r,V,0,0},    /* any.t */
01529   {87,1,r,V,0,0},    /* parity.t */
01530   {0,0,0,0,0,0},
01531   {88,20,r,V,0,0},   /* max.b.t */
01532   {88,21,r,V,0,0},   /* max.h.t */
01533   {88,22,r,V,0,0},   /* max.w.t */
01534   {88,23,r,V,0,0},   /* max.l.t */
01535   {89,20,r,V,0,0},   /* min.b.t */
01536   {89,21,r,V,0,0},   /* min.h.t */
01537   {89,22,r,V,0,0},   /* min.w.t */
01538   {89,23,r,V,0,0},   /* min.l.t */
01539   {84,18,r,V,0,0},   /* sum.s.t */
01540   {84,19,r,V,0,0},   /* sum.d.t */
01541   {90,18,r,V,0,0},   /* prod.s.t */
01542   {90,19,r,V,0,0},   /* prod.d.t */
01543   {88,18,r,V,0,0},   /* max.s.t */
01544   {88,19,r,V,0,0},   /* max.d.t */
01545   {89,18,r,V,0,0},   /* min.s.t */
01546   {89,19,r,V,0,0},   /* min.d.t */
01547   {90,20,r,V,0,0},   /* prod.b.t */
01548   {90,21,r,V,0,0},   /* prod.h.t */
01549   {90,22,r,V,0,0},   /* prod.w.t */
01550   {90,23,r,V,0,0},   /* prod.l.t */
01551   {0,0,0,0,0,0},
01552   {0,0,0,0,0,0},
01553   {0,0,0,0,0,0},
01554   {0,0,0,0,0,0},
01555 };
01556 
01557 char *lop[] = {
01558   "mov",      /* 0 */
01559   "merg",     /* 1 */
01560   "mask",     /* 2 */
01561   "mul",      /* 3 */
01562   "div",      /* 4 */
01563   "and",      /* 5 */
01564   "or",       /* 6 */
01565   "xor",      /* 7 */
01566   "shf",      /* 8 */
01567   "add",      /* 9 */
01568   "sub",      /* 10 */
01569   "exit",     /* 11 */
01570   "jmp",      /* 12 */
01571   "jmpi",     /* 13 */
01572   "jmpa",     /* 14 */
01573   "jmps",     /* 15 */
01574   "tac",      /* 16 */
01575   "ldea",     /* 17 */
01576   "ld",       /* 18 */
01577   "tas",      /* 19 */
01578   "pshea",    /* 20 */
01579   "st",       /* 21 */
01580   "call",     /* 22 */
01581   "calls",    /* 23 */
01582   "callq",    /* 24 */
01583   "pfork",    /* 25 */
01584   "ste",      /* 26 */
01585   "incr",     /* 27 */
01586   "cvtw",     /* 28 */
01587   "cvtb",     /* 29 */
01588   "cvth",     /* 30 */
01589   "cvts",     /* 31 */
01590   "cvtd",     /* 32 */
01591   "cvtl",     /* 33 */
01592   "ldpa",     /* 34 */
01593   "plc",      /* 35 */
01594   "tzc",      /* 36 */
01595   "eq",       /* 37 */
01596   "leu",      /* 38 */
01597   "ltu",      /* 39 */
01598   "le",       /* 40 */
01599   "lt",       /* 41 */
01600   "not",      /* 42 */
01601   "neg",      /* 43 */
01602   "lop",      /* 44 */
01603   "cprs",     /* 45 */
01604   "nop",      /* 46 */
01605   "br",       /* 47 */
01606   "bri",      /* 48 */
01607   "bra",      /* 49 */
01608   "brs",      /* 50 */
01609   "ldvi",     /* 51 */
01610   "stvi",     /* 52 */
01611   "ldsdr",    /* 53 */
01612   "ldkdr",    /* 54 */
01613   "ln",       /* 55 */
01614   "patu",     /* 56 */
01615   "pate",     /* 57 */
01616   "pich",     /* 58 */
01617   "plch",     /* 59 */
01618   "idle",     /* 60 */
01619   "rtnq",     /* 61 */
01620   "cfork",    /* 62 */
01621   "rtn",      /* 63 */
01622   "wfork",    /* 64 */
01623   "join",     /* 65 */
01624   "rtnc",     /* 66 */
01625   "exp",      /* 67 */
01626   "sin",      /* 68 */
01627   "cos",      /* 69 */
01628   "psh",      /* 70 */
01629   "pop",      /* 71 */
01630   "eni",      /* 72 */
01631   "dsi",      /* 73 */
01632   "bkpt",     /* 74 */
01633   "msync",    /* 75 */
01634   "mski",     /* 76 */
01635   "xmti",     /* 77 */
01636   "tstvv",    /* 78 */
01637   "diag",     /* 79 */
01638   "pbkpt",    /* 80 */
01639   "sqrt",     /* 81 */
01640   "casr",     /* 82 */
01641   "atan",     /* 83 */
01642   "sum",      /* 84 */
01643   "all",      /* 85 */
01644   "any",      /* 86 */
01645   "parity",   /* 87 */
01646   "max",      /* 88 */
01647   "min",      /* 89 */
01648   "prod",     /* 90 */
01649   "halt",     /* 91 */
01650   "sysc",     /* 92 */
01651   "trap",     /* 93 */
01652   "tst",      /* 94 */
01653   "lck",      /* 95 */
01654   "ulk",      /* 96 */
01655   "spawn",    /* 97 */
01656   "ldcmr",    /* 98 */
01657   "stcmr",    /* 99 */
01658   "popr",     /* 100 */
01659   "pshr",     /* 101 */
01660   "rcvr",     /* 102 */
01661   "matm",     /* 103 */
01662   "sndr",     /* 104 */
01663   "putr",     /* 105 */
01664   "getr",     /* 106 */
01665   "matr",     /* 107 */
01666   "mat",      /* 108 */
01667   "get",      /* 109 */
01668   "rcv",      /* 110 */
01669   "inc",      /* 111 */
01670   "put",      /* 112 */
01671   "snd",      /* 113 */
01672   "enal",     /* 114 */
01673   "enag",     /* 115 */
01674   "frint",    /* 116 */
01675   "xpnd",     /* 117 */
01676   "ctrsl",    /* 118 */
01677   "ctrsg",    /* 119 */
01678   "stop",     /* 120 */
01679 };
01680 
01681 char *rop[] = {
01682   "",  /* 0 */
01683   ".t",       /* 1 */
01684   ".f",       /* 2 */
01685   ".s",       /* 3 */
01686   ".d",       /* 4 */
01687   ".b",       /* 5 */
01688   ".h",       /* 6 */
01689   ".w",       /* 7 */
01690   ".l",       /* 8 */
01691   ".x",       /* 9 */
01692   ".u",       /* 10 */
01693   ".s.f",     /* 11 */
01694   ".d.f",     /* 12 */
01695   ".b.f",     /* 13 */
01696   ".h.f",     /* 14 */
01697   ".w.f",     /* 15 */
01698   ".l.f",     /* 16 */
01699   ".t.f",     /* 17 */
01700   ".s.t",     /* 18 */
01701   ".d.t",     /* 19 */
01702   ".b.t",     /* 20 */
01703   ".h.t",     /* 21 */
01704   ".w.t",     /* 22 */
01705   ".l.t",     /* 23 */
01706   ".t.t",     /* 24 */
01707 };