1130561Sobrien/* Information for instruction disassembly on the Convex. 2130561Sobrien Copyright 1989, 1993, 2002 Free Software Foundation, Inc. 3130561Sobrien 4130561SobrienThis file is part of GDB. 5130561Sobrien 6130561SobrienThis program is free software; you can redistribute it and/or modify 7130561Sobrienit under the terms of the GNU General Public License as published by 8130561Sobrienthe Free Software Foundation; either version 2 of the License, or 9130561Sobrien(at your option) any later version. 10130561Sobrien 11130561SobrienThis program is distributed in the hope that it will be useful, 12130561Sobrienbut WITHOUT ANY WARRANTY; without even the implied warranty of 13130561SobrienMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14130561SobrienGNU General Public License for more details. 15130561Sobrien 16130561SobrienYou should have received a copy of the GNU General Public License 17130561Sobrienalong with this program; if not, write to the Free Software 18218822SdimFoundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ 19130561Sobrien 20130561Sobrien#define xxx 0 21130561Sobrien#define rrr 1 22130561Sobrien#define rr 2 23130561Sobrien#define rxr 3 24130561Sobrien#define r 4 25130561Sobrien#define nops 5 26130561Sobrien#define nr 6 27130561Sobrien#define pcrel 7 28130561Sobrien#define lr 8 29130561Sobrien#define rxl 9 30130561Sobrien#define rlr 10 31130561Sobrien#define rrl 11 32130561Sobrien#define iml 12 33130561Sobrien#define imr 13 34130561Sobrien#define a1r 14 35130561Sobrien#define a1l 15 36130561Sobrien#define a2r 16 37130561Sobrien#define a2l 17 38130561Sobrien#define a3 18 39130561Sobrien#define a4 19 40130561Sobrien#define a5 20 41130561Sobrien#define V 1 42130561Sobrien#define S 2 43130561Sobrien#define VM 3 44130561Sobrien#define A 4 45130561Sobrien#define VL 5 46130561Sobrien#define VS 6 47130561Sobrien#define VLS 7 48130561Sobrien#define PSW 8 49130561Sobrien/* Prevent an error during "make depend". */ 50130561Sobrien#if !defined (PC) 51130561Sobrien#define PC 9 52130561Sobrien#endif 53130561Sobrien#define ITR 10 54130561Sobrien#define VV 11 55130561Sobrien#define ITSR 12 56130561Sobrien#define TOC 13 57130561Sobrien#define CIR 14 58130561Sobrien#define TTR 15 59130561Sobrien#define VMU 16 60130561Sobrien#define VML 17 61130561Sobrien#define ICR 18 62130561Sobrien#define TCPU 19 63130561Sobrien#define CPUID 20 64130561Sobrien#define TID 21 65130561Sobrien 66130561Sobrienconst char *op[] = { 67130561Sobrien "", 68130561Sobrien "v0\0v1\0v2\0v3\0v4\0v5\0v6\0v7", 69130561Sobrien "s0\0s1\0s2\0s3\0s4\0s5\0s6\0s7", 70130561Sobrien "vm", 71130561Sobrien "sp\0a1\0a2\0a3\0a4\0a5\0ap\0fp", 72130561Sobrien "vl", 73130561Sobrien "vs", 74130561Sobrien "vls", 75130561Sobrien "psw", 76130561Sobrien "pc", 77130561Sobrien "itr", 78130561Sobrien "vv", 79130561Sobrien "itsr", 80130561Sobrien "toc", 81130561Sobrien "cir", 82130561Sobrien "ttr", 83130561Sobrien "vmu", 84130561Sobrien "vml", 85130561Sobrien "icr", 86130561Sobrien "tcpu", 87130561Sobrien "cpuid", 88130561Sobrien "tid", 89130561Sobrien}; 90130561Sobrien 91130561Sobrienconst struct formstr format0[] = { 92130561Sobrien {0,0,rrr,V,S,S}, /* mov */ 93130561Sobrien {0,0,rrr,S,S,V}, /* mov */ 94130561Sobrien {1,1,rrr,V,V,V}, /* merg.t */ 95130561Sobrien {2,1,rrr,V,V,V}, /* mask.t */ 96130561Sobrien {1,2,rrr,V,S,V}, /* merg.f */ 97130561Sobrien {2,2,rrr,V,S,V}, /* mask.f */ 98130561Sobrien {1,1,rrr,V,S,V}, /* merg.t */ 99130561Sobrien {2,1,rrr,V,S,V}, /* mask.t */ 100130561Sobrien {3,3,rrr,V,V,V}, /* mul.s */ 101130561Sobrien {3,4,rrr,V,V,V}, /* mul.d */ 102130561Sobrien {4,3,rrr,V,V,V}, /* div.s */ 103130561Sobrien {4,4,rrr,V,V,V}, /* div.d */ 104130561Sobrien {3,3,rrr,V,S,V}, /* mul.s */ 105130561Sobrien {3,4,rrr,V,S,V}, /* mul.d */ 106130561Sobrien {4,3,rrr,V,S,V}, /* div.s */ 107130561Sobrien {4,4,rrr,V,S,V}, /* div.d */ 108130561Sobrien {5,0,rrr,V,V,V}, /* and */ 109130561Sobrien {6,0,rrr,V,V,V}, /* or */ 110130561Sobrien {7,0,rrr,V,V,V}, /* xor */ 111130561Sobrien {8,0,rrr,V,V,V}, /* shf */ 112130561Sobrien {5,0,rrr,V,S,V}, /* and */ 113130561Sobrien {6,0,rrr,V,S,V}, /* or */ 114130561Sobrien {7,0,rrr,V,S,V}, /* xor */ 115130561Sobrien {8,0,rrr,V,S,V}, /* shf */ 116130561Sobrien {9,3,rrr,V,V,V}, /* add.s */ 117130561Sobrien {9,4,rrr,V,V,V}, /* add.d */ 118130561Sobrien {10,3,rrr,V,V,V}, /* sub.s */ 119130561Sobrien {10,4,rrr,V,V,V}, /* sub.d */ 120130561Sobrien {9,3,rrr,V,S,V}, /* add.s */ 121130561Sobrien {9,4,rrr,V,S,V}, /* add.d */ 122130561Sobrien {10,3,rrr,V,S,V}, /* sub.s */ 123130561Sobrien {10,4,rrr,V,S,V}, /* sub.d */ 124130561Sobrien {9,5,rrr,V,V,V}, /* add.b */ 125130561Sobrien {9,6,rrr,V,V,V}, /* add.h */ 126130561Sobrien {9,7,rrr,V,V,V}, /* add.w */ 127130561Sobrien {9,8,rrr,V,V,V}, /* add.l */ 128130561Sobrien {9,5,rrr,V,S,V}, /* add.b */ 129130561Sobrien {9,6,rrr,V,S,V}, /* add.h */ 130130561Sobrien {9,7,rrr,V,S,V}, /* add.w */ 131130561Sobrien {9,8,rrr,V,S,V}, /* add.l */ 132130561Sobrien {10,5,rrr,V,V,V}, /* sub.b */ 133130561Sobrien {10,6,rrr,V,V,V}, /* sub.h */ 134130561Sobrien {10,7,rrr,V,V,V}, /* sub.w */ 135130561Sobrien {10,8,rrr,V,V,V}, /* sub.l */ 136130561Sobrien {10,5,rrr,V,S,V}, /* sub.b */ 137130561Sobrien {10,6,rrr,V,S,V}, /* sub.h */ 138130561Sobrien {10,7,rrr,V,S,V}, /* sub.w */ 139130561Sobrien {10,8,rrr,V,S,V}, /* sub.l */ 140130561Sobrien {3,5,rrr,V,V,V}, /* mul.b */ 141130561Sobrien {3,6,rrr,V,V,V}, /* mul.h */ 142130561Sobrien {3,7,rrr,V,V,V}, /* mul.w */ 143130561Sobrien {3,8,rrr,V,V,V}, /* mul.l */ 144130561Sobrien {3,5,rrr,V,S,V}, /* mul.b */ 145130561Sobrien {3,6,rrr,V,S,V}, /* mul.h */ 146130561Sobrien {3,7,rrr,V,S,V}, /* mul.w */ 147130561Sobrien {3,8,rrr,V,S,V}, /* mul.l */ 148130561Sobrien {4,5,rrr,V,V,V}, /* div.b */ 149130561Sobrien {4,6,rrr,V,V,V}, /* div.h */ 150130561Sobrien {4,7,rrr,V,V,V}, /* div.w */ 151130561Sobrien {4,8,rrr,V,V,V}, /* div.l */ 152130561Sobrien {4,5,rrr,V,S,V}, /* div.b */ 153130561Sobrien {4,6,rrr,V,S,V}, /* div.h */ 154130561Sobrien {4,7,rrr,V,S,V}, /* div.w */ 155130561Sobrien {4,8,rrr,V,S,V}, /* div.l */ 156130561Sobrien}; 157130561Sobrien 158130561Sobrienconst struct formstr format1[] = { 159130561Sobrien {11,0,xxx,0,0,0}, /* exit */ 160130561Sobrien {12,0,a3,0,0,0}, /* jmp */ 161130561Sobrien {13,2,a3,0,0,0}, /* jmpi.f */ 162130561Sobrien {13,1,a3,0,0,0}, /* jmpi.t */ 163130561Sobrien {14,2,a3,0,0,0}, /* jmpa.f */ 164130561Sobrien {14,1,a3,0,0,0}, /* jmpa.t */ 165130561Sobrien {15,2,a3,0,0,0}, /* jmps.f */ 166130561Sobrien {15,1,a3,0,0,0}, /* jmps.t */ 167130561Sobrien {16,0,a3,0,0,0}, /* tac */ 168130561Sobrien {17,0,a1r,A,0,0}, /* ldea */ 169130561Sobrien {18,8,a1l,VLS,0,0}, /* ld.l */ 170130561Sobrien {18,9,a1l,VM,0,0}, /* ld.x */ 171130561Sobrien {19,0,a3,0,0,0}, /* tas */ 172130561Sobrien {20,0,a3,0,0,0}, /* pshea */ 173130561Sobrien {21,8,a2l,VLS,0,0}, /* st.l */ 174130561Sobrien {21,9,a2l,VM,0,0}, /* st.x */ 175130561Sobrien {0,0,0,0,0,0}, 176130561Sobrien {0,0,0,0,0,0}, 177130561Sobrien {0,0,0,0,0,0}, 178130561Sobrien {0,0,0,0,0,0}, 179130561Sobrien {0,0,0,0,0,0}, 180130561Sobrien {0,0,0,0,0,0}, 181130561Sobrien {0,0,0,0,0,0}, 182130561Sobrien {0,0,0,0,0,0}, 183130561Sobrien {0,0,0,0,0,0}, 184130561Sobrien {0,0,0,0,0,0}, 185130561Sobrien {0,0,0,0,0,0}, 186130561Sobrien {0,0,0,0,0,0}, 187130561Sobrien {0,0,0,0,0,0}, 188130561Sobrien {0,0,0,0,0,0}, 189130561Sobrien {0,0,0,0,0,0}, 190130561Sobrien {0,0,0,0,0,0}, 191130561Sobrien {22,0,a3,0,0,0}, /* call */ 192130561Sobrien {23,0,a3,0,0,0}, /* calls */ 193130561Sobrien {24,0,a3,0,0,0}, /* callq */ 194130561Sobrien {25,0,a1r,A,0,0}, /* pfork */ 195130561Sobrien {26,5,a2r,S,0,0}, /* ste.b */ 196130561Sobrien {26,6,a2r,S,0,0}, /* ste.h */ 197130561Sobrien {26,7,a2r,S,0,0}, /* ste.w */ 198130561Sobrien {26,8,a2r,S,0,0}, /* ste.l */ 199130561Sobrien {18,5,a1r,A,0,0}, /* ld.b */ 200130561Sobrien {18,6,a1r,A,0,0}, /* ld.h */ 201130561Sobrien {18,7,a1r,A,0,0}, /* ld.w */ 202130561Sobrien {27,7,a1r,A,0,0}, /* incr.w */ 203130561Sobrien {21,5,a2r,A,0,0}, /* st.b */ 204130561Sobrien {21,6,a2r,A,0,0}, /* st.h */ 205130561Sobrien {21,7,a2r,A,0,0}, /* st.w */ 206130561Sobrien {27,8,a1r,S,0,0}, /* incr.l */ 207130561Sobrien {18,5,a1r,S,0,0}, /* ld.b */ 208130561Sobrien {18,6,a1r,S,0,0}, /* ld.h */ 209130561Sobrien {18,7,a1r,S,0,0}, /* ld.w */ 210130561Sobrien {18,8,a1r,S,0,0}, /* ld.l */ 211130561Sobrien {21,5,a2r,S,0,0}, /* st.b */ 212130561Sobrien {21,6,a2r,S,0,0}, /* st.h */ 213130561Sobrien {21,7,a2r,S,0,0}, /* st.w */ 214130561Sobrien {21,8,a2r,S,0,0}, /* st.l */ 215130561Sobrien {18,5,a1r,V,0,0}, /* ld.b */ 216130561Sobrien {18,6,a1r,V,0,0}, /* ld.h */ 217130561Sobrien {18,7,a1r,V,0,0}, /* ld.w */ 218130561Sobrien {18,8,a1r,V,0,0}, /* ld.l */ 219130561Sobrien {21,5,a2r,V,0,0}, /* st.b */ 220130561Sobrien {21,6,a2r,V,0,0}, /* st.h */ 221130561Sobrien {21,7,a2r,V,0,0}, /* st.w */ 222130561Sobrien {21,8,a2r,V,0,0}, /* st.l */ 223130561Sobrien}; 224130561Sobrien 225130561Sobrienconst struct formstr format2[] = { 226130561Sobrien {28,5,rr,A,A,0}, /* cvtw.b */ 227130561Sobrien {28,6,rr,A,A,0}, /* cvtw.h */ 228130561Sobrien {29,7,rr,A,A,0}, /* cvtb.w */ 229130561Sobrien {30,7,rr,A,A,0}, /* cvth.w */ 230130561Sobrien {28,5,rr,S,S,0}, /* cvtw.b */ 231130561Sobrien {28,6,rr,S,S,0}, /* cvtw.h */ 232130561Sobrien {29,7,rr,S,S,0}, /* cvtb.w */ 233130561Sobrien {30,7,rr,S,S,0}, /* cvth.w */ 234130561Sobrien {28,3,rr,S,S,0}, /* cvtw.s */ 235130561Sobrien {31,7,rr,S,S,0}, /* cvts.w */ 236130561Sobrien {32,3,rr,S,S,0}, /* cvtd.s */ 237130561Sobrien {31,4,rr,S,S,0}, /* cvts.d */ 238130561Sobrien {31,8,rr,S,S,0}, /* cvts.l */ 239130561Sobrien {32,8,rr,S,S,0}, /* cvtd.l */ 240130561Sobrien {33,3,rr,S,S,0}, /* cvtl.s */ 241130561Sobrien {33,4,rr,S,S,0}, /* cvtl.d */ 242130561Sobrien {34,0,rr,A,A,0}, /* ldpa */ 243130561Sobrien {8,0,nr,A,0,0}, /* shf */ 244130561Sobrien {18,6,nr,A,0,0}, /* ld.h */ 245130561Sobrien {18,7,nr,A,0,0}, /* ld.w */ 246130561Sobrien {33,7,rr,S,S,0}, /* cvtl.w */ 247130561Sobrien {28,8,rr,S,S,0}, /* cvtw.l */ 248130561Sobrien {35,1,rr,S,S,0}, /* plc.t */ 249130561Sobrien {36,0,rr,S,S,0}, /* tzc */ 250130561Sobrien {37,6,rr,A,A,0}, /* eq.h */ 251130561Sobrien {37,7,rr,A,A,0}, /* eq.w */ 252130561Sobrien {37,6,nr,A,0,0}, /* eq.h */ 253130561Sobrien {37,7,nr,A,0,0}, /* eq.w */ 254130561Sobrien {37,5,rr,S,S,0}, /* eq.b */ 255130561Sobrien {37,6,rr,S,S,0}, /* eq.h */ 256130561Sobrien {37,7,rr,S,S,0}, /* eq.w */ 257130561Sobrien {37,8,rr,S,S,0}, /* eq.l */ 258130561Sobrien {38,6,rr,A,A,0}, /* leu.h */ 259130561Sobrien {38,7,rr,A,A,0}, /* leu.w */ 260130561Sobrien {38,6,nr,A,0,0}, /* leu.h */ 261130561Sobrien {38,7,nr,A,0,0}, /* leu.w */ 262130561Sobrien {38,5,rr,S,S,0}, /* leu.b */ 263130561Sobrien {38,6,rr,S,S,0}, /* leu.h */ 264130561Sobrien {38,7,rr,S,S,0}, /* leu.w */ 265130561Sobrien {38,8,rr,S,S,0}, /* leu.l */ 266130561Sobrien {39,6,rr,A,A,0}, /* ltu.h */ 267130561Sobrien {39,7,rr,A,A,0}, /* ltu.w */ 268130561Sobrien {39,6,nr,A,0,0}, /* ltu.h */ 269130561Sobrien {39,7,nr,A,0,0}, /* ltu.w */ 270130561Sobrien {39,5,rr,S,S,0}, /* ltu.b */ 271130561Sobrien {39,6,rr,S,S,0}, /* ltu.h */ 272130561Sobrien {39,7,rr,S,S,0}, /* ltu.w */ 273130561Sobrien {39,8,rr,S,S,0}, /* ltu.l */ 274130561Sobrien {40,6,rr,A,A,0}, /* le.h */ 275130561Sobrien {40,7,rr,A,A,0}, /* le.w */ 276130561Sobrien {40,6,nr,A,0,0}, /* le.h */ 277130561Sobrien {40,7,nr,A,0,0}, /* le.w */ 278130561Sobrien {40,5,rr,S,S,0}, /* le.b */ 279130561Sobrien {40,6,rr,S,S,0}, /* le.h */ 280130561Sobrien {40,7,rr,S,S,0}, /* le.w */ 281130561Sobrien {40,8,rr,S,S,0}, /* le.l */ 282130561Sobrien {41,6,rr,A,A,0}, /* lt.h */ 283130561Sobrien {41,7,rr,A,A,0}, /* lt.w */ 284130561Sobrien {41,6,nr,A,0,0}, /* lt.h */ 285130561Sobrien {41,7,nr,A,0,0}, /* lt.w */ 286130561Sobrien {41,5,rr,S,S,0}, /* lt.b */ 287130561Sobrien {41,6,rr,S,S,0}, /* lt.h */ 288130561Sobrien {41,7,rr,S,S,0}, /* lt.w */ 289130561Sobrien {41,8,rr,S,S,0}, /* lt.l */ 290130561Sobrien {9,7,rr,S,A,0}, /* add.w */ 291130561Sobrien {8,0,rr,A,A,0}, /* shf */ 292130561Sobrien {0,0,rr,A,A,0}, /* mov */ 293130561Sobrien {0,0,rr,S,A,0}, /* mov */ 294130561Sobrien {0,7,rr,S,S,0}, /* mov.w */ 295130561Sobrien {8,0,rr,S,S,0}, /* shf */ 296130561Sobrien {0,0,rr,S,S,0}, /* mov */ 297130561Sobrien {0,0,rr,A,S,0}, /* mov */ 298130561Sobrien {5,0,rr,A,A,0}, /* and */ 299130561Sobrien {6,0,rr,A,A,0}, /* or */ 300130561Sobrien {7,0,rr,A,A,0}, /* xor */ 301130561Sobrien {42,0,rr,A,A,0}, /* not */ 302130561Sobrien {5,0,rr,S,S,0}, /* and */ 303130561Sobrien {6,0,rr,S,S,0}, /* or */ 304130561Sobrien {7,0,rr,S,S,0}, /* xor */ 305130561Sobrien {42,0,rr,S,S,0}, /* not */ 306130561Sobrien {40,3,rr,S,S,0}, /* le.s */ 307130561Sobrien {40,4,rr,S,S,0}, /* le.d */ 308130561Sobrien {41,3,rr,S,S,0}, /* lt.s */ 309130561Sobrien {41,4,rr,S,S,0}, /* lt.d */ 310130561Sobrien {9,3,rr,S,S,0}, /* add.s */ 311130561Sobrien {9,4,rr,S,S,0}, /* add.d */ 312130561Sobrien {10,3,rr,S,S,0}, /* sub.s */ 313130561Sobrien {10,4,rr,S,S,0}, /* sub.d */ 314130561Sobrien {37,3,rr,S,S,0}, /* eq.s */ 315130561Sobrien {37,4,rr,S,S,0}, /* eq.d */ 316130561Sobrien {43,6,rr,A,A,0}, /* neg.h */ 317130561Sobrien {43,7,rr,A,A,0}, /* neg.w */ 318130561Sobrien {3,3,rr,S,S,0}, /* mul.s */ 319130561Sobrien {3,4,rr,S,S,0}, /* mul.d */ 320130561Sobrien {4,3,rr,S,S,0}, /* div.s */ 321130561Sobrien {4,4,rr,S,S,0}, /* div.d */ 322130561Sobrien {9,6,rr,A,A,0}, /* add.h */ 323130561Sobrien {9,7,rr,A,A,0}, /* add.w */ 324130561Sobrien {9,6,nr,A,0,0}, /* add.h */ 325130561Sobrien {9,7,nr,A,0,0}, /* add.w */ 326130561Sobrien {9,5,rr,S,S,0}, /* add.b */ 327130561Sobrien {9,6,rr,S,S,0}, /* add.h */ 328130561Sobrien {9,7,rr,S,S,0}, /* add.w */ 329130561Sobrien {9,8,rr,S,S,0}, /* add.l */ 330130561Sobrien {10,6,rr,A,A,0}, /* sub.h */ 331130561Sobrien {10,7,rr,A,A,0}, /* sub.w */ 332130561Sobrien {10,6,nr,A,0,0}, /* sub.h */ 333130561Sobrien {10,7,nr,A,0,0}, /* sub.w */ 334130561Sobrien {10,5,rr,S,S,0}, /* sub.b */ 335130561Sobrien {10,6,rr,S,S,0}, /* sub.h */ 336130561Sobrien {10,7,rr,S,S,0}, /* sub.w */ 337130561Sobrien {10,8,rr,S,S,0}, /* sub.l */ 338130561Sobrien {3,6,rr,A,A,0}, /* mul.h */ 339130561Sobrien {3,7,rr,A,A,0}, /* mul.w */ 340130561Sobrien {3,6,nr,A,0,0}, /* mul.h */ 341130561Sobrien {3,7,nr,A,0,0}, /* mul.w */ 342130561Sobrien {3,5,rr,S,S,0}, /* mul.b */ 343130561Sobrien {3,6,rr,S,S,0}, /* mul.h */ 344130561Sobrien {3,7,rr,S,S,0}, /* mul.w */ 345130561Sobrien {3,8,rr,S,S,0}, /* mul.l */ 346130561Sobrien {4,6,rr,A,A,0}, /* div.h */ 347130561Sobrien {4,7,rr,A,A,0}, /* div.w */ 348130561Sobrien {4,6,nr,A,0,0}, /* div.h */ 349130561Sobrien {4,7,nr,A,0,0}, /* div.w */ 350130561Sobrien {4,5,rr,S,S,0}, /* div.b */ 351130561Sobrien {4,6,rr,S,S,0}, /* div.h */ 352130561Sobrien {4,7,rr,S,S,0}, /* div.w */ 353130561Sobrien {4,8,rr,S,S,0}, /* div.l */ 354130561Sobrien}; 355130561Sobrien 356130561Sobrienconst struct formstr format3[] = { 357130561Sobrien {32,3,rr,V,V,0}, /* cvtd.s */ 358130561Sobrien {31,4,rr,V,V,0}, /* cvts.d */ 359130561Sobrien {33,4,rr,V,V,0}, /* cvtl.d */ 360130561Sobrien {32,8,rr,V,V,0}, /* cvtd.l */ 361130561Sobrien {0,0,rrl,S,S,VM}, /* mov */ 362130561Sobrien {0,0,rlr,S,VM,S}, /* mov */ 363130561Sobrien {0,0,0,0,0,0}, 364130561Sobrien {44,0,rr,S,S,0}, /* lop */ 365130561Sobrien {36,0,rr,V,V,0}, /* tzc */ 366130561Sobrien {44,0,rr,V,V,0}, /* lop */ 367130561Sobrien {0,0,0,0,0,0}, 368130561Sobrien {42,0,rr,V,V,0}, /* not */ 369130561Sobrien {8,0,rr,S,V,0}, /* shf */ 370130561Sobrien {35,1,rr,V,V,0}, /* plc.t */ 371130561Sobrien {45,2,rr,V,V,0}, /* cprs.f */ 372130561Sobrien {45,1,rr,V,V,0}, /* cprs.t */ 373130561Sobrien {37,3,rr,V,V,0}, /* eq.s */ 374130561Sobrien {37,4,rr,V,V,0}, /* eq.d */ 375130561Sobrien {43,3,rr,V,V,0}, /* neg.s */ 376130561Sobrien {43,4,rr,V,V,0}, /* neg.d */ 377130561Sobrien {37,3,rr,S,V,0}, /* eq.s */ 378130561Sobrien {37,4,rr,S,V,0}, /* eq.d */ 379130561Sobrien {43,3,rr,S,S,0}, /* neg.s */ 380130561Sobrien {43,4,rr,S,S,0}, /* neg.d */ 381130561Sobrien {40,3,rr,V,V,0}, /* le.s */ 382130561Sobrien {40,4,rr,V,V,0}, /* le.d */ 383130561Sobrien {41,3,rr,V,V,0}, /* lt.s */ 384130561Sobrien {41,4,rr,V,V,0}, /* lt.d */ 385130561Sobrien {40,3,rr,S,V,0}, /* le.s */ 386130561Sobrien {40,4,rr,S,V,0}, /* le.d */ 387130561Sobrien {41,3,rr,S,V,0}, /* lt.s */ 388130561Sobrien {41,4,rr,S,V,0}, /* lt.d */ 389130561Sobrien {37,5,rr,V,V,0}, /* eq.b */ 390130561Sobrien {37,6,rr,V,V,0}, /* eq.h */ 391130561Sobrien {37,7,rr,V,V,0}, /* eq.w */ 392130561Sobrien {37,8,rr,V,V,0}, /* eq.l */ 393130561Sobrien {37,5,rr,S,V,0}, /* eq.b */ 394130561Sobrien {37,6,rr,S,V,0}, /* eq.h */ 395130561Sobrien {37,7,rr,S,V,0}, /* eq.w */ 396130561Sobrien {37,8,rr,S,V,0}, /* eq.l */ 397130561Sobrien {40,5,rr,V,V,0}, /* le.b */ 398130561Sobrien {40,6,rr,V,V,0}, /* le.h */ 399130561Sobrien {40,7,rr,V,V,0}, /* le.w */ 400130561Sobrien {40,8,rr,V,V,0}, /* le.l */ 401130561Sobrien {40,5,rr,S,V,0}, /* le.b */ 402130561Sobrien {40,6,rr,S,V,0}, /* le.h */ 403130561Sobrien {40,7,rr,S,V,0}, /* le.w */ 404130561Sobrien {40,8,rr,S,V,0}, /* le.l */ 405130561Sobrien {41,5,rr,V,V,0}, /* lt.b */ 406130561Sobrien {41,6,rr,V,V,0}, /* lt.h */ 407130561Sobrien {41,7,rr,V,V,0}, /* lt.w */ 408130561Sobrien {41,8,rr,V,V,0}, /* lt.l */ 409130561Sobrien {41,5,rr,S,V,0}, /* lt.b */ 410130561Sobrien {41,6,rr,S,V,0}, /* lt.h */ 411130561Sobrien {41,7,rr,S,V,0}, /* lt.w */ 412130561Sobrien {41,8,rr,S,V,0}, /* lt.l */ 413130561Sobrien {43,5,rr,V,V,0}, /* neg.b */ 414130561Sobrien {43,6,rr,V,V,0}, /* neg.h */ 415130561Sobrien {43,7,rr,V,V,0}, /* neg.w */ 416130561Sobrien {43,8,rr,V,V,0}, /* neg.l */ 417130561Sobrien {43,5,rr,S,S,0}, /* neg.b */ 418130561Sobrien {43,6,rr,S,S,0}, /* neg.h */ 419130561Sobrien {43,7,rr,S,S,0}, /* neg.w */ 420130561Sobrien {43,8,rr,S,S,0}, /* neg.l */ 421130561Sobrien}; 422130561Sobrien 423130561Sobrienconst struct formstr format4[] = { 424130561Sobrien {46,0,nops,0,0,0}, /* nop */ 425130561Sobrien {47,0,pcrel,0,0,0}, /* br */ 426130561Sobrien {48,2,pcrel,0,0,0}, /* bri.f */ 427130561Sobrien {48,1,pcrel,0,0,0}, /* bri.t */ 428130561Sobrien {49,2,pcrel,0,0,0}, /* bra.f */ 429130561Sobrien {49,1,pcrel,0,0,0}, /* bra.t */ 430130561Sobrien {50,2,pcrel,0,0,0}, /* brs.f */ 431130561Sobrien {50,1,pcrel,0,0,0}, /* brs.t */ 432130561Sobrien}; 433130561Sobrien 434130561Sobrienconst struct formstr format5[] = { 435130561Sobrien {51,5,rr,V,V,0}, /* ldvi.b */ 436130561Sobrien {51,6,rr,V,V,0}, /* ldvi.h */ 437130561Sobrien {51,7,rr,V,V,0}, /* ldvi.w */ 438130561Sobrien {51,8,rr,V,V,0}, /* ldvi.l */ 439130561Sobrien {28,3,rr,V,V,0}, /* cvtw.s */ 440130561Sobrien {31,7,rr,V,V,0}, /* cvts.w */ 441130561Sobrien {28,8,rr,V,V,0}, /* cvtw.l */ 442130561Sobrien {33,7,rr,V,V,0}, /* cvtl.w */ 443130561Sobrien {52,5,rxr,V,V,0}, /* stvi.b */ 444130561Sobrien {52,6,rxr,V,V,0}, /* stvi.h */ 445130561Sobrien {52,7,rxr,V,V,0}, /* stvi.w */ 446130561Sobrien {52,8,rxr,V,V,0}, /* stvi.l */ 447130561Sobrien {52,5,rxr,S,V,0}, /* stvi.b */ 448130561Sobrien {52,6,rxr,S,V,0}, /* stvi.h */ 449130561Sobrien {52,7,rxr,S,V,0}, /* stvi.w */ 450130561Sobrien {52,8,rxr,S,V,0}, /* stvi.l */ 451130561Sobrien}; 452130561Sobrien 453130561Sobrienconst struct formstr format6[] = { 454130561Sobrien {53,0,r,A,0,0}, /* ldsdr */ 455130561Sobrien {54,0,r,A,0,0}, /* ldkdr */ 456130561Sobrien {55,3,r,S,0,0}, /* ln.s */ 457130561Sobrien {55,4,r,S,0,0}, /* ln.d */ 458130561Sobrien {56,0,nops,0,0,0}, /* patu */ 459130561Sobrien {57,0,r,A,0,0}, /* pate */ 460130561Sobrien {58,0,nops,0,0,0}, /* pich */ 461130561Sobrien {59,0,nops,0,0,0}, /* plch */ 462130561Sobrien {0,0,lr,PSW,A,0}, /* mov */ 463130561Sobrien {0,0,rxl,A,PSW,0}, /* mov */ 464130561Sobrien {0,0,lr,PC,A,0}, /* mov */ 465130561Sobrien {60,0,r,S,0,0}, /* idle */ 466130561Sobrien {0,0,lr,ITR,S,0}, /* mov */ 467130561Sobrien {0,0,rxl,S,ITR,0}, /* mov */ 468130561Sobrien {0,0,0,0,0,0}, 469130561Sobrien {0,0,rxl,S,ITSR,0}, /* mov */ 470130561Sobrien {61,0,nops,0,0,0}, /* rtnq */ 471130561Sobrien {62,0,nops,0,0,0}, /* cfork */ 472130561Sobrien {63,0,nops,0,0,0}, /* rtn */ 473130561Sobrien {64,0,nops,0,0,0}, /* wfork */ 474130561Sobrien {65,0,nops,0,0,0}, /* join */ 475130561Sobrien {66,0,nops,0,0,0}, /* rtnc */ 476130561Sobrien {67,3,r,S,0,0}, /* exp.s */ 477130561Sobrien {67,4,r,S,0,0}, /* exp.d */ 478130561Sobrien {68,3,r,S,0,0}, /* sin.s */ 479130561Sobrien {68,4,r,S,0,0}, /* sin.d */ 480130561Sobrien {0,0,0,0,0,0}, 481130561Sobrien {0,0,0,0,0,0}, 482130561Sobrien {69,3,r,S,0,0}, /* cos.s */ 483130561Sobrien {69,4,r,S,0,0}, /* cos.d */ 484130561Sobrien {0,0,0,0,0,0}, 485130561Sobrien {0,0,0,0,0,0}, 486130561Sobrien {70,7,r,A,0,0}, /* psh.w */ 487130561Sobrien {0,0,0,0,0,0}, 488130561Sobrien {71,7,r,A,0,0}, /* pop.w */ 489130561Sobrien {0,0,0,0,0,0}, 490130561Sobrien {70,7,r,S,0,0}, /* psh.w */ 491130561Sobrien {70,8,r,S,0,0}, /* psh.l */ 492130561Sobrien {71,7,r,S,0,0}, /* pop.w */ 493130561Sobrien {71,8,r,S,0,0}, /* pop.l */ 494130561Sobrien {72,0,nops,0,0,0}, /* eni */ 495130561Sobrien {73,0,nops,0,0,0}, /* dsi */ 496130561Sobrien {74,0,nops,0,0,0}, /* bkpt */ 497130561Sobrien {75,0,nops,0,0,0}, /* msync */ 498130561Sobrien {76,0,r,S,0,0}, /* mski */ 499130561Sobrien {77,0,r,S,0,0}, /* xmti */ 500130561Sobrien {0,0,rxl,S,VV,0}, /* mov */ 501130561Sobrien {78,0,nops,0,0,0}, /* tstvv */ 502130561Sobrien {0,0,lr,VS,A,0}, /* mov */ 503130561Sobrien {0,0,rxl,A,VS,0}, /* mov */ 504130561Sobrien {0,0,lr,VL,A,0}, /* mov */ 505130561Sobrien {0,0,rxl,A,VL,0}, /* mov */ 506130561Sobrien {0,7,lr,VS,S,0}, /* mov.w */ 507130561Sobrien {0,7,rxl,S,VS,0}, /* mov.w */ 508130561Sobrien {0,7,lr,VL,S,0}, /* mov.w */ 509130561Sobrien {0,7,rxl,S,VL,0}, /* mov.w */ 510130561Sobrien {79,0,r,A,0,0}, /* diag */ 511130561Sobrien {80,0,nops,0,0,0}, /* pbkpt */ 512130561Sobrien {81,3,r,S,0,0}, /* sqrt.s */ 513130561Sobrien {81,4,r,S,0,0}, /* sqrt.d */ 514130561Sobrien {82,0,nops,0,0,0}, /* casr */ 515130561Sobrien {0,0,0,0,0,0}, 516130561Sobrien {83,3,r,S,0,0}, /* atan.s */ 517130561Sobrien {83,4,r,S,0,0}, /* atan.d */ 518130561Sobrien}; 519130561Sobrien 520130561Sobrienconst struct formstr format7[] = { 521130561Sobrien {84,5,r,V,0,0}, /* sum.b */ 522130561Sobrien {84,6,r,V,0,0}, /* sum.h */ 523130561Sobrien {84,7,r,V,0,0}, /* sum.w */ 524130561Sobrien {84,8,r,V,0,0}, /* sum.l */ 525130561Sobrien {85,0,r,V,0,0}, /* all */ 526130561Sobrien {86,0,r,V,0,0}, /* any */ 527130561Sobrien {87,0,r,V,0,0}, /* parity */ 528130561Sobrien {0,0,0,0,0,0}, 529130561Sobrien {88,5,r,V,0,0}, /* max.b */ 530130561Sobrien {88,6,r,V,0,0}, /* max.h */ 531130561Sobrien {88,7,r,V,0,0}, /* max.w */ 532130561Sobrien {88,8,r,V,0,0}, /* max.l */ 533130561Sobrien {89,5,r,V,0,0}, /* min.b */ 534130561Sobrien {89,6,r,V,0,0}, /* min.h */ 535130561Sobrien {89,7,r,V,0,0}, /* min.w */ 536130561Sobrien {89,8,r,V,0,0}, /* min.l */ 537130561Sobrien {84,3,r,V,0,0}, /* sum.s */ 538130561Sobrien {84,4,r,V,0,0}, /* sum.d */ 539130561Sobrien {90,3,r,V,0,0}, /* prod.s */ 540130561Sobrien {90,4,r,V,0,0}, /* prod.d */ 541130561Sobrien {88,3,r,V,0,0}, /* max.s */ 542130561Sobrien {88,4,r,V,0,0}, /* max.d */ 543130561Sobrien {89,3,r,V,0,0}, /* min.s */ 544130561Sobrien {89,4,r,V,0,0}, /* min.d */ 545130561Sobrien {90,5,r,V,0,0}, /* prod.b */ 546130561Sobrien {90,6,r,V,0,0}, /* prod.h */ 547130561Sobrien {90,7,r,V,0,0}, /* prod.w */ 548130561Sobrien {90,8,r,V,0,0}, /* prod.l */ 549130561Sobrien {35,2,lr,VM,S,0}, /* plc.f */ 550130561Sobrien {35,1,lr,VM,S,0}, /* plc.t */ 551130561Sobrien {0,0,0,0,0,0}, 552130561Sobrien {0,0,0,0,0,0}, 553130561Sobrien}; 554130561Sobrien 555130561Sobrienconst struct formstr formatx[] = { 556130561Sobrien {0,0,0,0,0,0}, 557130561Sobrien}; 558130561Sobrien 559130561Sobrienconst struct formstr format1a[] = { 560130561Sobrien {91,0,imr,A,0,0}, /* halt */ 561130561Sobrien {92,0,a4,0,0,0}, /* sysc */ 562130561Sobrien {18,6,imr,A,0,0}, /* ld.h */ 563130561Sobrien {18,7,imr,A,0,0}, /* ld.w */ 564130561Sobrien {5,0,imr,A,0,0}, /* and */ 565130561Sobrien {6,0,imr,A,0,0}, /* or */ 566130561Sobrien {7,0,imr,A,0,0}, /* xor */ 567130561Sobrien {8,0,imr,A,0,0}, /* shf */ 568130561Sobrien {9,6,imr,A,0,0}, /* add.h */ 569130561Sobrien {9,7,imr,A,0,0}, /* add.w */ 570130561Sobrien {10,6,imr,A,0,0}, /* sub.h */ 571130561Sobrien {10,7,imr,A,0,0}, /* sub.w */ 572130561Sobrien {3,6,imr,A,0,0}, /* mul.h */ 573130561Sobrien {3,7,imr,A,0,0}, /* mul.w */ 574130561Sobrien {4,6,imr,A,0,0}, /* div.h */ 575130561Sobrien {4,7,imr,A,0,0}, /* div.w */ 576130561Sobrien {18,7,iml,VL,0,0}, /* ld.w */ 577130561Sobrien {18,7,iml,VS,0,0}, /* ld.w */ 578130561Sobrien {0,0,0,0,0,0}, 579130561Sobrien {8,7,imr,S,0,0}, /* shf.w */ 580130561Sobrien {93,0,a5,0,0,0}, /* trap */ 581130561Sobrien {0,0,0,0,0,0}, 582130561Sobrien {37,6,imr,A,0,0}, /* eq.h */ 583130561Sobrien {37,7,imr,A,0,0}, /* eq.w */ 584130561Sobrien {38,6,imr,A,0,0}, /* leu.h */ 585130561Sobrien {38,7,imr,A,0,0}, /* leu.w */ 586130561Sobrien {39,6,imr,A,0,0}, /* ltu.h */ 587130561Sobrien {39,7,imr,A,0,0}, /* ltu.w */ 588130561Sobrien {40,6,imr,A,0,0}, /* le.h */ 589130561Sobrien {40,7,imr,A,0,0}, /* le.w */ 590130561Sobrien {41,6,imr,A,0,0}, /* lt.h */ 591130561Sobrien {41,7,imr,A,0,0}, /* lt.w */ 592130561Sobrien}; 593130561Sobrien 594130561Sobrienconst struct formstr format1b[] = { 595130561Sobrien {18,4,imr,S,0,0}, /* ld.d */ 596130561Sobrien {18,10,imr,S,0,0}, /* ld.u */ 597130561Sobrien {18,8,imr,S,0,0}, /* ld.l */ 598130561Sobrien {18,7,imr,S,0,0}, /* ld.w */ 599130561Sobrien {5,0,imr,S,0,0}, /* and */ 600130561Sobrien {6,0,imr,S,0,0}, /* or */ 601130561Sobrien {7,0,imr,S,0,0}, /* xor */ 602130561Sobrien {8,0,imr,S,0,0}, /* shf */ 603130561Sobrien {9,6,imr,S,0,0}, /* add.h */ 604130561Sobrien {9,7,imr,S,0,0}, /* add.w */ 605130561Sobrien {10,6,imr,S,0,0}, /* sub.h */ 606130561Sobrien {10,7,imr,S,0,0}, /* sub.w */ 607130561Sobrien {3,6,imr,S,0,0}, /* mul.h */ 608130561Sobrien {3,7,imr,S,0,0}, /* mul.w */ 609130561Sobrien {4,6,imr,S,0,0}, /* div.h */ 610130561Sobrien {4,7,imr,S,0,0}, /* div.w */ 611130561Sobrien {9,3,imr,S,0,0}, /* add.s */ 612130561Sobrien {10,3,imr,S,0,0}, /* sub.s */ 613130561Sobrien {3,3,imr,S,0,0}, /* mul.s */ 614130561Sobrien {4,3,imr,S,0,0}, /* div.s */ 615130561Sobrien {40,3,imr,S,0,0}, /* le.s */ 616130561Sobrien {41,3,imr,S,0,0}, /* lt.s */ 617130561Sobrien {37,6,imr,S,0,0}, /* eq.h */ 618130561Sobrien {37,7,imr,S,0,0}, /* eq.w */ 619130561Sobrien {38,6,imr,S,0,0}, /* leu.h */ 620130561Sobrien {38,7,imr,S,0,0}, /* leu.w */ 621130561Sobrien {39,6,imr,S,0,0}, /* ltu.h */ 622130561Sobrien {39,7,imr,S,0,0}, /* ltu.w */ 623130561Sobrien {40,6,imr,S,0,0}, /* le.h */ 624130561Sobrien {40,7,imr,S,0,0}, /* le.w */ 625130561Sobrien {41,6,imr,S,0,0}, /* lt.h */ 626130561Sobrien {41,7,imr,S,0,0}, /* lt.w */ 627130561Sobrien}; 628130561Sobrien 629130561Sobrienconst struct formstr e0_format0[] = { 630130561Sobrien {10,3,rrr,S,V,V}, /* sub.s */ 631130561Sobrien {10,4,rrr,S,V,V}, /* sub.d */ 632130561Sobrien {4,3,rrr,S,V,V}, /* div.s */ 633130561Sobrien {4,4,rrr,S,V,V}, /* div.d */ 634130561Sobrien {10,11,rrr,S,V,V}, /* sub.s.f */ 635130561Sobrien {10,12,rrr,S,V,V}, /* sub.d.f */ 636130561Sobrien {4,11,rrr,S,V,V}, /* div.s.f */ 637130561Sobrien {4,12,rrr,S,V,V}, /* div.d.f */ 638130561Sobrien {3,11,rrr,V,V,V}, /* mul.s.f */ 639130561Sobrien {3,12,rrr,V,V,V}, /* mul.d.f */ 640130561Sobrien {4,11,rrr,V,V,V}, /* div.s.f */ 641130561Sobrien {4,12,rrr,V,V,V}, /* div.d.f */ 642130561Sobrien {3,11,rrr,V,S,V}, /* mul.s.f */ 643130561Sobrien {3,12,rrr,V,S,V}, /* mul.d.f */ 644130561Sobrien {4,11,rrr,V,S,V}, /* div.s.f */ 645130561Sobrien {4,12,rrr,V,S,V}, /* div.d.f */ 646130561Sobrien {5,2,rrr,V,V,V}, /* and.f */ 647130561Sobrien {6,2,rrr,V,V,V}, /* or.f */ 648130561Sobrien {7,2,rrr,V,V,V}, /* xor.f */ 649130561Sobrien {8,2,rrr,V,V,V}, /* shf.f */ 650130561Sobrien {5,2,rrr,V,S,V}, /* and.f */ 651130561Sobrien {6,2,rrr,V,S,V}, /* or.f */ 652130561Sobrien {7,2,rrr,V,S,V}, /* xor.f */ 653130561Sobrien {8,2,rrr,V,S,V}, /* shf.f */ 654130561Sobrien {9,11,rrr,V,V,V}, /* add.s.f */ 655130561Sobrien {9,12,rrr,V,V,V}, /* add.d.f */ 656130561Sobrien {10,11,rrr,V,V,V}, /* sub.s.f */ 657130561Sobrien {10,12,rrr,V,V,V}, /* sub.d.f */ 658130561Sobrien {9,11,rrr,V,S,V}, /* add.s.f */ 659130561Sobrien {9,12,rrr,V,S,V}, /* add.d.f */ 660130561Sobrien {10,11,rrr,V,S,V}, /* sub.s.f */ 661130561Sobrien {10,12,rrr,V,S,V}, /* sub.d.f */ 662130561Sobrien {9,13,rrr,V,V,V}, /* add.b.f */ 663130561Sobrien {9,14,rrr,V,V,V}, /* add.h.f */ 664130561Sobrien {9,15,rrr,V,V,V}, /* add.w.f */ 665130561Sobrien {9,16,rrr,V,V,V}, /* add.l.f */ 666130561Sobrien {9,13,rrr,V,S,V}, /* add.b.f */ 667130561Sobrien {9,14,rrr,V,S,V}, /* add.h.f */ 668130561Sobrien {9,15,rrr,V,S,V}, /* add.w.f */ 669130561Sobrien {9,16,rrr,V,S,V}, /* add.l.f */ 670130561Sobrien {10,13,rrr,V,V,V}, /* sub.b.f */ 671130561Sobrien {10,14,rrr,V,V,V}, /* sub.h.f */ 672130561Sobrien {10,15,rrr,V,V,V}, /* sub.w.f */ 673130561Sobrien {10,16,rrr,V,V,V}, /* sub.l.f */ 674130561Sobrien {10,13,rrr,V,S,V}, /* sub.b.f */ 675130561Sobrien {10,14,rrr,V,S,V}, /* sub.h.f */ 676130561Sobrien {10,15,rrr,V,S,V}, /* sub.w.f */ 677130561Sobrien {10,16,rrr,V,S,V}, /* sub.l.f */ 678130561Sobrien {3,13,rrr,V,V,V}, /* mul.b.f */ 679130561Sobrien {3,14,rrr,V,V,V}, /* mul.h.f */ 680130561Sobrien {3,15,rrr,V,V,V}, /* mul.w.f */ 681130561Sobrien {3,16,rrr,V,V,V}, /* mul.l.f */ 682130561Sobrien {3,13,rrr,V,S,V}, /* mul.b.f */ 683130561Sobrien {3,14,rrr,V,S,V}, /* mul.h.f */ 684130561Sobrien {3,15,rrr,V,S,V}, /* mul.w.f */ 685130561Sobrien {3,16,rrr,V,S,V}, /* mul.l.f */ 686130561Sobrien {4,13,rrr,V,V,V}, /* div.b.f */ 687130561Sobrien {4,14,rrr,V,V,V}, /* div.h.f */ 688130561Sobrien {4,15,rrr,V,V,V}, /* div.w.f */ 689130561Sobrien {4,16,rrr,V,V,V}, /* div.l.f */ 690130561Sobrien {4,13,rrr,V,S,V}, /* div.b.f */ 691130561Sobrien {4,14,rrr,V,S,V}, /* div.h.f */ 692130561Sobrien {4,15,rrr,V,S,V}, /* div.w.f */ 693130561Sobrien {4,16,rrr,V,S,V}, /* div.l.f */ 694130561Sobrien}; 695130561Sobrien 696130561Sobrienconst struct formstr e0_format1[] = { 697130561Sobrien {0,0,0,0,0,0}, 698130561Sobrien {94,0,a3,0,0,0}, /* tst */ 699130561Sobrien {95,0,a3,0,0,0}, /* lck */ 700130561Sobrien {96,0,a3,0,0,0}, /* ulk */ 701130561Sobrien {17,0,a1r,S,0,0}, /* ldea */ 702130561Sobrien {97,0,a1r,A,0,0}, /* spawn */ 703130561Sobrien {98,0,a1r,A,0,0}, /* ldcmr */ 704130561Sobrien {99,0,a2r,A,0,0}, /* stcmr */ 705130561Sobrien {100,0,a1r,A,0,0}, /* popr */ 706130561Sobrien {101,0,a2r,A,0,0}, /* pshr */ 707130561Sobrien {102,7,a1r,A,0,0}, /* rcvr.w */ 708130561Sobrien {103,7,a2r,A,0,0}, /* matm.w */ 709130561Sobrien {104,7,a2r,A,0,0}, /* sndr.w */ 710130561Sobrien {104,8,a2r,S,0,0}, /* sndr.l */ 711130561Sobrien {102,8,a1r,S,0,0}, /* rcvr.l */ 712130561Sobrien {103,8,a2r,S,0,0}, /* matm.l */ 713130561Sobrien {0,0,0,0,0,0}, 714130561Sobrien {0,0,0,0,0,0}, 715130561Sobrien {0,0,0,0,0,0}, 716130561Sobrien {0,0,0,0,0,0}, 717130561Sobrien {0,0,0,0,0,0}, 718130561Sobrien {0,0,0,0,0,0}, 719130561Sobrien {0,0,0,0,0,0}, 720130561Sobrien {0,0,0,0,0,0}, 721130561Sobrien {0,0,0,0,0,0}, 722130561Sobrien {0,0,0,0,0,0}, 723130561Sobrien {0,0,0,0,0,0}, 724130561Sobrien {0,0,0,0,0,0}, 725130561Sobrien {0,0,0,0,0,0}, 726130561Sobrien {0,0,0,0,0,0}, 727130561Sobrien {0,0,0,0,0,0}, 728130561Sobrien {0,0,0,0,0,0}, 729130561Sobrien {105,7,a2r,A,0,0}, /* putr.w */ 730130561Sobrien {105,8,a2r,S,0,0}, /* putr.l */ 731130561Sobrien {106,7,a1r,A,0,0}, /* getr.w */ 732130561Sobrien {106,8,a1r,S,0,0}, /* getr.l */ 733130561Sobrien {26,13,a2r,S,0,0}, /* ste.b.f */ 734130561Sobrien {26,14,a2r,S,0,0}, /* ste.h.f */ 735130561Sobrien {26,15,a2r,S,0,0}, /* ste.w.f */ 736130561Sobrien {26,16,a2r,S,0,0}, /* ste.l.f */ 737130561Sobrien {107,7,a2r,A,0,0}, /* matr.w */ 738130561Sobrien {108,7,a2r,A,0,0}, /* mat.w */ 739130561Sobrien {109,7,a1r,A,0,0}, /* get.w */ 740130561Sobrien {110,7,a1r,A,0,0}, /* rcv.w */ 741130561Sobrien {0,0,0,0,0,0}, 742130561Sobrien {111,7,a1r,A,0,0}, /* inc.w */ 743130561Sobrien {112,7,a2r,A,0,0}, /* put.w */ 744130561Sobrien {113,7,a2r,A,0,0}, /* snd.w */ 745130561Sobrien {107,8,a2r,S,0,0}, /* matr.l */ 746130561Sobrien {108,8,a2r,S,0,0}, /* mat.l */ 747130561Sobrien {109,8,a1r,S,0,0}, /* get.l */ 748130561Sobrien {110,8,a1r,S,0,0}, /* rcv.l */ 749130561Sobrien {0,0,0,0,0,0}, 750130561Sobrien {111,8,a1r,S,0,0}, /* inc.l */ 751130561Sobrien {112,8,a2r,S,0,0}, /* put.l */ 752130561Sobrien {113,8,a2r,S,0,0}, /* snd.l */ 753130561Sobrien {18,13,a1r,V,0,0}, /* ld.b.f */ 754130561Sobrien {18,14,a1r,V,0,0}, /* ld.h.f */ 755130561Sobrien {18,15,a1r,V,0,0}, /* ld.w.f */ 756130561Sobrien {18,16,a1r,V,0,0}, /* ld.l.f */ 757130561Sobrien {21,13,a2r,V,0,0}, /* st.b.f */ 758130561Sobrien {21,14,a2r,V,0,0}, /* st.h.f */ 759130561Sobrien {21,15,a2r,V,0,0}, /* st.w.f */ 760130561Sobrien {21,16,a2r,V,0,0}, /* st.l.f */ 761130561Sobrien}; 762130561Sobrien 763130561Sobrienconst struct formstr e0_format2[] = { 764130561Sobrien {28,5,rr,V,V,0}, /* cvtw.b */ 765130561Sobrien {28,6,rr,V,V,0}, /* cvtw.h */ 766130561Sobrien {29,7,rr,V,V,0}, /* cvtb.w */ 767130561Sobrien {30,7,rr,V,V,0}, /* cvth.w */ 768130561Sobrien {28,13,rr,V,V,0}, /* cvtw.b.f */ 769130561Sobrien {28,14,rr,V,V,0}, /* cvtw.h.f */ 770130561Sobrien {29,15,rr,V,V,0}, /* cvtb.w.f */ 771130561Sobrien {30,15,rr,V,V,0}, /* cvth.w.f */ 772130561Sobrien {31,8,rr,V,V,0}, /* cvts.l */ 773130561Sobrien {32,7,rr,V,V,0}, /* cvtd.w */ 774130561Sobrien {33,3,rr,V,V,0}, /* cvtl.s */ 775130561Sobrien {28,4,rr,V,V,0}, /* cvtw.d */ 776130561Sobrien {31,16,rr,V,V,0}, /* cvts.l.f */ 777130561Sobrien {32,15,rr,V,V,0}, /* cvtd.w.f */ 778130561Sobrien {33,11,rr,V,V,0}, /* cvtl.s.f */ 779130561Sobrien {28,12,rr,V,V,0}, /* cvtw.d.f */ 780130561Sobrien {114,0,rr,S,S,0}, /* enal */ 781130561Sobrien {8,7,rr,S,S,0}, /* shf.w */ 782130561Sobrien {115,0,rr,S,S,0}, /* enag */ 783130561Sobrien {0,0,0,0,0,0}, 784130561Sobrien {28,4,rr,S,S,0}, /* cvtw.d */ 785130561Sobrien {32,7,rr,S,S,0}, /* cvtd.w */ 786130561Sobrien {0,0,0,0,0,0}, 787130561Sobrien {0,0,0,0,0,0}, 788130561Sobrien {0,0,0,0,0,0}, 789130561Sobrien {0,0,0,0,0,0}, 790130561Sobrien {0,0,0,0,0,0}, 791130561Sobrien {0,0,0,0,0,0}, 792130561Sobrien {116,3,rr,S,S,0}, /* frint.s */ 793130561Sobrien {116,4,rr,S,S,0}, /* frint.d */ 794130561Sobrien {0,0,0,0,0,0}, 795130561Sobrien {0,0,0,0,0,0}, 796130561Sobrien {0,0,0,0,0,0}, 797130561Sobrien {0,0,0,0,0,0}, 798130561Sobrien {0,0,0,0,0,0}, 799130561Sobrien {0,0,0,0,0,0}, 800130561Sobrien {0,0,0,0,0,0}, 801130561Sobrien {0,0,0,0,0,0}, 802130561Sobrien {0,0,0,0,0,0}, 803130561Sobrien {0,0,0,0,0,0}, 804130561Sobrien {0,0,0,0,0,0}, 805130561Sobrien {0,0,0,0,0,0}, 806130561Sobrien {0,0,0,0,0,0}, 807130561Sobrien {0,0,0,0,0,0}, 808130561Sobrien {0,0,0,0,0,0}, 809130561Sobrien {0,0,0,0,0,0}, 810130561Sobrien {0,0,0,0,0,0}, 811130561Sobrien {0,0,0,0,0,0}, 812130561Sobrien {0,0,0,0,0,0}, 813130561Sobrien {0,0,0,0,0,0}, 814130561Sobrien {0,0,0,0,0,0}, 815130561Sobrien {0,0,0,0,0,0}, 816130561Sobrien {0,0,0,0,0,0}, 817130561Sobrien {0,0,0,0,0,0}, 818130561Sobrien {0,0,0,0,0,0}, 819130561Sobrien {0,0,0,0,0,0}, 820130561Sobrien {0,0,0,0,0,0}, 821130561Sobrien {0,0,0,0,0,0}, 822130561Sobrien {0,0,0,0,0,0}, 823130561Sobrien {0,0,0,0,0,0}, 824130561Sobrien {0,0,0,0,0,0}, 825130561Sobrien {0,0,0,0,0,0}, 826130561Sobrien {0,0,0,0,0,0}, 827130561Sobrien {0,0,0,0,0,0}, 828130561Sobrien {0,0,0,0,0,0}, 829130561Sobrien {0,0,0,0,0,0}, 830130561Sobrien {0,0,0,0,0,0}, 831130561Sobrien {0,0,0,0,0,0}, 832130561Sobrien {0,0,0,0,0,0}, 833130561Sobrien {0,0,0,0,0,0}, 834130561Sobrien {0,0,0,0,0,0}, 835130561Sobrien {0,0,0,0,0,0}, 836130561Sobrien {0,0,0,0,0,0}, 837130561Sobrien {0,0,0,0,0,0}, 838130561Sobrien {0,0,0,0,0,0}, 839130561Sobrien {0,0,0,0,0,0}, 840130561Sobrien {0,0,0,0,0,0}, 841130561Sobrien {0,0,0,0,0,0}, 842130561Sobrien {0,0,0,0,0,0}, 843130561Sobrien {0,0,0,0,0,0}, 844130561Sobrien {0,0,0,0,0,0}, 845130561Sobrien {0,0,0,0,0,0}, 846130561Sobrien {0,0,0,0,0,0}, 847130561Sobrien {0,0,0,0,0,0}, 848130561Sobrien {0,0,0,0,0,0}, 849130561Sobrien {0,0,0,0,0,0}, 850130561Sobrien {0,0,0,0,0,0}, 851130561Sobrien {0,0,0,0,0,0}, 852130561Sobrien {0,0,0,0,0,0}, 853130561Sobrien {0,0,0,0,0,0}, 854130561Sobrien {0,0,0,0,0,0}, 855130561Sobrien {0,0,0,0,0,0}, 856130561Sobrien {0,0,0,0,0,0}, 857130561Sobrien {0,0,0,0,0,0}, 858130561Sobrien {0,0,0,0,0,0}, 859130561Sobrien {0,0,0,0,0,0}, 860130561Sobrien {0,0,0,0,0,0}, 861130561Sobrien {0,0,0,0,0,0}, 862130561Sobrien {116,3,rr,V,V,0}, /* frint.s */ 863130561Sobrien {116,4,rr,V,V,0}, /* frint.d */ 864130561Sobrien {0,0,0,0,0,0}, 865130561Sobrien {0,0,0,0,0,0}, 866130561Sobrien {116,11,rr,V,V,0}, /* frint.s.f */ 867130561Sobrien {116,12,rr,V,V,0}, /* frint.d.f */ 868130561Sobrien {0,0,0,0,0,0}, 869130561Sobrien {0,0,0,0,0,0}, 870130561Sobrien {0,0,0,0,0,0}, 871130561Sobrien {0,0,0,0,0,0}, 872130561Sobrien {0,0,0,0,0,0}, 873130561Sobrien {0,0,0,0,0,0}, 874130561Sobrien {0,0,0,0,0,0}, 875130561Sobrien {0,0,0,0,0,0}, 876130561Sobrien {0,0,0,0,0,0}, 877130561Sobrien {0,0,0,0,0,0}, 878130561Sobrien {0,0,0,0,0,0}, 879130561Sobrien {0,0,0,0,0,0}, 880130561Sobrien {81,3,rr,V,V,0}, /* sqrt.s */ 881130561Sobrien {81,4,rr,V,V,0}, /* sqrt.d */ 882130561Sobrien {0,0,0,0,0,0}, 883130561Sobrien {0,0,0,0,0,0}, 884130561Sobrien {0,0,0,0,0,0}, 885130561Sobrien {0,0,0,0,0,0}, 886130561Sobrien {0,0,0,0,0,0}, 887130561Sobrien {0,0,0,0,0,0}, 888130561Sobrien {81,11,rr,V,V,0}, /* sqrt.s.f */ 889130561Sobrien {81,12,rr,V,V,0}, /* sqrt.d.f */ 890130561Sobrien {0,0,0,0,0,0}, 891130561Sobrien {0,0,0,0,0,0}, 892130561Sobrien}; 893130561Sobrien 894130561Sobrienconst struct formstr e0_format3[] = { 895130561Sobrien {32,11,rr,V,V,0}, /* cvtd.s.f */ 896130561Sobrien {31,12,rr,V,V,0}, /* cvts.d.f */ 897130561Sobrien {33,12,rr,V,V,0}, /* cvtl.d.f */ 898130561Sobrien {32,16,rr,V,V,0}, /* cvtd.l.f */ 899130561Sobrien {0,0,0,0,0,0}, 900130561Sobrien {0,0,0,0,0,0}, 901130561Sobrien {0,0,0,0,0,0}, 902130561Sobrien {0,0,0,0,0,0}, 903130561Sobrien {36,2,rr,V,V,0}, /* tzc.f */ 904130561Sobrien {44,2,rr,V,V,0}, /* lop.f */ 905130561Sobrien {117,2,rr,V,V,0}, /* xpnd.f */ 906130561Sobrien {42,2,rr,V,V,0}, /* not.f */ 907130561Sobrien {8,2,rr,S,V,0}, /* shf.f */ 908130561Sobrien {35,17,rr,V,V,0}, /* plc.t.f */ 909130561Sobrien {0,0,0,0,0,0}, 910130561Sobrien {0,0,0,0,0,0}, 911130561Sobrien {37,11,rr,V,V,0}, /* eq.s.f */ 912130561Sobrien {37,12,rr,V,V,0}, /* eq.d.f */ 913130561Sobrien {43,11,rr,V,V,0}, /* neg.s.f */ 914130561Sobrien {43,12,rr,V,V,0}, /* neg.d.f */ 915130561Sobrien {37,11,rr,S,V,0}, /* eq.s.f */ 916130561Sobrien {37,12,rr,S,V,0}, /* eq.d.f */ 917130561Sobrien {0,0,0,0,0,0}, 918130561Sobrien {0,0,0,0,0,0}, 919130561Sobrien {40,11,rr,V,V,0}, /* le.s.f */ 920130561Sobrien {40,12,rr,V,V,0}, /* le.d.f */ 921130561Sobrien {41,11,rr,V,V,0}, /* lt.s.f */ 922130561Sobrien {41,12,rr,V,V,0}, /* lt.d.f */ 923130561Sobrien {40,11,rr,S,V,0}, /* le.s.f */ 924130561Sobrien {40,12,rr,S,V,0}, /* le.d.f */ 925130561Sobrien {41,11,rr,S,V,0}, /* lt.s.f */ 926130561Sobrien {41,12,rr,S,V,0}, /* lt.d.f */ 927130561Sobrien {37,13,rr,V,V,0}, /* eq.b.f */ 928130561Sobrien {37,14,rr,V,V,0}, /* eq.h.f */ 929130561Sobrien {37,15,rr,V,V,0}, /* eq.w.f */ 930130561Sobrien {37,16,rr,V,V,0}, /* eq.l.f */ 931130561Sobrien {37,13,rr,S,V,0}, /* eq.b.f */ 932130561Sobrien {37,14,rr,S,V,0}, /* eq.h.f */ 933130561Sobrien {37,15,rr,S,V,0}, /* eq.w.f */ 934130561Sobrien {37,16,rr,S,V,0}, /* eq.l.f */ 935130561Sobrien {40,13,rr,V,V,0}, /* le.b.f */ 936130561Sobrien {40,14,rr,V,V,0}, /* le.h.f */ 937130561Sobrien {40,15,rr,V,V,0}, /* le.w.f */ 938130561Sobrien {40,16,rr,V,V,0}, /* le.l.f */ 939130561Sobrien {40,13,rr,S,V,0}, /* le.b.f */ 940130561Sobrien {40,14,rr,S,V,0}, /* le.h.f */ 941130561Sobrien {40,15,rr,S,V,0}, /* le.w.f */ 942130561Sobrien {40,16,rr,S,V,0}, /* le.l.f */ 943130561Sobrien {41,13,rr,V,V,0}, /* lt.b.f */ 944130561Sobrien {41,14,rr,V,V,0}, /* lt.h.f */ 945130561Sobrien {41,15,rr,V,V,0}, /* lt.w.f */ 946130561Sobrien {41,16,rr,V,V,0}, /* lt.l.f */ 947130561Sobrien {41,13,rr,S,V,0}, /* lt.b.f */ 948130561Sobrien {41,14,rr,S,V,0}, /* lt.h.f */ 949130561Sobrien {41,15,rr,S,V,0}, /* lt.w.f */ 950130561Sobrien {41,16,rr,S,V,0}, /* lt.l.f */ 951130561Sobrien {43,13,rr,V,V,0}, /* neg.b.f */ 952130561Sobrien {43,14,rr,V,V,0}, /* neg.h.f */ 953130561Sobrien {43,15,rr,V,V,0}, /* neg.w.f */ 954130561Sobrien {43,16,rr,V,V,0}, /* neg.l.f */ 955130561Sobrien {0,0,0,0,0,0}, 956130561Sobrien {0,0,0,0,0,0}, 957130561Sobrien {0,0,0,0,0,0}, 958130561Sobrien {0,0,0,0,0,0}, 959130561Sobrien}; 960130561Sobrien 961130561Sobrienconst struct formstr e0_format4[] = { 962130561Sobrien {0,0,0,0,0,0}, 963130561Sobrien {0,0,0,0,0,0}, 964130561Sobrien {0,0,0,0,0,0}, 965130561Sobrien {0,0,0,0,0,0}, 966130561Sobrien {0,0,0,0,0,0}, 967130561Sobrien {0,0,0,0,0,0}, 968130561Sobrien {0,0,0,0,0,0}, 969130561Sobrien {0,0,0,0,0,0}, 970130561Sobrien}; 971130561Sobrien 972130561Sobrienconst struct formstr e0_format5[] = { 973130561Sobrien {51,13,rr,V,V,0}, /* ldvi.b.f */ 974130561Sobrien {51,14,rr,V,V,0}, /* ldvi.h.f */ 975130561Sobrien {51,15,rr,V,V,0}, /* ldvi.w.f */ 976130561Sobrien {51,16,rr,V,V,0}, /* ldvi.l.f */ 977130561Sobrien {28,11,rr,V,V,0}, /* cvtw.s.f */ 978130561Sobrien {31,15,rr,V,V,0}, /* cvts.w.f */ 979130561Sobrien {28,16,rr,V,V,0}, /* cvtw.l.f */ 980130561Sobrien {33,15,rr,V,V,0}, /* cvtl.w.f */ 981130561Sobrien {52,13,rxr,V,V,0}, /* stvi.b.f */ 982130561Sobrien {52,14,rxr,V,V,0}, /* stvi.h.f */ 983130561Sobrien {52,15,rxr,V,V,0}, /* stvi.w.f */ 984130561Sobrien {52,16,rxr,V,V,0}, /* stvi.l.f */ 985130561Sobrien {52,13,rxr,S,V,0}, /* stvi.b.f */ 986130561Sobrien {52,14,rxr,S,V,0}, /* stvi.h.f */ 987130561Sobrien {52,15,rxr,S,V,0}, /* stvi.w.f */ 988130561Sobrien {52,16,rxr,S,V,0}, /* stvi.l.f */ 989130561Sobrien}; 990130561Sobrien 991130561Sobrienconst struct formstr e0_format6[] = { 992130561Sobrien {0,0,rxl,S,CIR,0}, /* mov */ 993130561Sobrien {0,0,lr,CIR,S,0}, /* mov */ 994130561Sobrien {0,0,lr,TOC,S,0}, /* mov */ 995130561Sobrien {0,0,lr,CPUID,S,0}, /* mov */ 996130561Sobrien {0,0,rxl,S,TTR,0}, /* mov */ 997130561Sobrien {0,0,lr,TTR,S,0}, /* mov */ 998130561Sobrien {118,0,nops,0,0,0}, /* ctrsl */ 999130561Sobrien {119,0,nops,0,0,0}, /* ctrsg */ 1000130561Sobrien {0,0,rxl,S,VMU,0}, /* mov */ 1001130561Sobrien {0,0,lr,VMU,S,0}, /* mov */ 1002130561Sobrien {0,0,rxl,S,VML,0}, /* mov */ 1003130561Sobrien {0,0,lr,VML,S,0}, /* mov */ 1004130561Sobrien {0,0,rxl,S,ICR,0}, /* mov */ 1005130561Sobrien {0,0,lr,ICR,S,0}, /* mov */ 1006130561Sobrien {0,0,rxl,S,TCPU,0}, /* mov */ 1007130561Sobrien {0,0,lr,TCPU,S,0}, /* mov */ 1008130561Sobrien {0,0,0,0,0,0}, 1009130561Sobrien {0,0,0,0,0,0}, 1010130561Sobrien {0,0,0,0,0,0}, 1011130561Sobrien {0,0,0,0,0,0}, 1012130561Sobrien {120,0,nops,0,0,0}, /* stop */ 1013130561Sobrien {0,0,0,0,0,0}, 1014130561Sobrien {0,0,rxl,S,TID,0}, /* mov */ 1015130561Sobrien {0,0,lr,TID,S,0}, /* mov */ 1016130561Sobrien {0,0,0,0,0,0}, 1017130561Sobrien {0,0,0,0,0,0}, 1018130561Sobrien {0,0,0,0,0,0}, 1019130561Sobrien {0,0,0,0,0,0}, 1020130561Sobrien {0,0,0,0,0,0}, 1021130561Sobrien {0,0,0,0,0,0}, 1022130561Sobrien {0,0,0,0,0,0}, 1023130561Sobrien {0,0,0,0,0,0}, 1024130561Sobrien {0,0,0,0,0,0}, 1025130561Sobrien {0,0,0,0,0,0}, 1026130561Sobrien {0,0,0,0,0,0}, 1027130561Sobrien {0,0,0,0,0,0}, 1028130561Sobrien {0,0,0,0,0,0}, 1029130561Sobrien {0,0,0,0,0,0}, 1030130561Sobrien {0,0,0,0,0,0}, 1031130561Sobrien {0,0,0,0,0,0}, 1032130561Sobrien {0,0,0,0,0,0}, 1033130561Sobrien {0,0,0,0,0,0}, 1034130561Sobrien {0,0,0,0,0,0}, 1035130561Sobrien {0,0,0,0,0,0}, 1036130561Sobrien {0,0,0,0,0,0}, 1037130561Sobrien {0,0,0,0,0,0}, 1038130561Sobrien {0,0,0,0,0,0}, 1039130561Sobrien {0,0,0,0,0,0}, 1040130561Sobrien {0,0,0,0,0,0}, 1041130561Sobrien {0,0,0,0,0,0}, 1042130561Sobrien {0,0,0,0,0,0}, 1043130561Sobrien {0,0,0,0,0,0}, 1044130561Sobrien {0,0,0,0,0,0}, 1045130561Sobrien {0,0,0,0,0,0}, 1046130561Sobrien {0,0,0,0,0,0}, 1047130561Sobrien {0,0,0,0,0,0}, 1048130561Sobrien {0,0,0,0,0,0}, 1049130561Sobrien {0,0,0,0,0,0}, 1050130561Sobrien {0,0,0,0,0,0}, 1051130561Sobrien {0,0,0,0,0,0}, 1052130561Sobrien {0,0,0,0,0,0}, 1053130561Sobrien {0,0,0,0,0,0}, 1054130561Sobrien {0,0,0,0,0,0}, 1055130561Sobrien {0,0,0,0,0,0}, 1056130561Sobrien}; 1057130561Sobrien 1058130561Sobrienconst struct formstr e0_format7[] = { 1059130561Sobrien {84,13,r,V,0,0}, /* sum.b.f */ 1060130561Sobrien {84,14,r,V,0,0}, /* sum.h.f */ 1061130561Sobrien {84,15,r,V,0,0}, /* sum.w.f */ 1062130561Sobrien {84,16,r,V,0,0}, /* sum.l.f */ 1063130561Sobrien {85,2,r,V,0,0}, /* all.f */ 1064130561Sobrien {86,2,r,V,0,0}, /* any.f */ 1065130561Sobrien {87,2,r,V,0,0}, /* parity.f */ 1066130561Sobrien {0,0,0,0,0,0}, 1067130561Sobrien {88,13,r,V,0,0}, /* max.b.f */ 1068130561Sobrien {88,14,r,V,0,0}, /* max.h.f */ 1069130561Sobrien {88,15,r,V,0,0}, /* max.w.f */ 1070130561Sobrien {88,16,r,V,0,0}, /* max.l.f */ 1071130561Sobrien {89,13,r,V,0,0}, /* min.b.f */ 1072130561Sobrien {89,14,r,V,0,0}, /* min.h.f */ 1073130561Sobrien {89,15,r,V,0,0}, /* min.w.f */ 1074130561Sobrien {89,16,r,V,0,0}, /* min.l.f */ 1075130561Sobrien {84,11,r,V,0,0}, /* sum.s.f */ 1076130561Sobrien {84,12,r,V,0,0}, /* sum.d.f */ 1077130561Sobrien {90,11,r,V,0,0}, /* prod.s.f */ 1078130561Sobrien {90,12,r,V,0,0}, /* prod.d.f */ 1079130561Sobrien {88,11,r,V,0,0}, /* max.s.f */ 1080130561Sobrien {88,12,r,V,0,0}, /* max.d.f */ 1081130561Sobrien {89,11,r,V,0,0}, /* min.s.f */ 1082130561Sobrien {89,12,r,V,0,0}, /* min.d.f */ 1083130561Sobrien {90,13,r,V,0,0}, /* prod.b.f */ 1084130561Sobrien {90,14,r,V,0,0}, /* prod.h.f */ 1085130561Sobrien {90,15,r,V,0,0}, /* prod.w.f */ 1086130561Sobrien {90,16,r,V,0,0}, /* prod.l.f */ 1087130561Sobrien {0,0,0,0,0,0}, 1088130561Sobrien {0,0,0,0,0,0}, 1089130561Sobrien {0,0,0,0,0,0}, 1090130561Sobrien {0,0,0,0,0,0}, 1091130561Sobrien}; 1092130561Sobrien 1093130561Sobrienconst struct formstr e1_format0[] = { 1094130561Sobrien {0,0,0,0,0,0}, 1095130561Sobrien {0,0,0,0,0,0}, 1096130561Sobrien {0,0,0,0,0,0}, 1097130561Sobrien {0,0,0,0,0,0}, 1098130561Sobrien {10,18,rrr,S,V,V}, /* sub.s.t */ 1099130561Sobrien {10,19,rrr,S,V,V}, /* sub.d.t */ 1100130561Sobrien {4,18,rrr,S,V,V}, /* div.s.t */ 1101130561Sobrien {4,19,rrr,S,V,V}, /* div.d.t */ 1102130561Sobrien {3,18,rrr,V,V,V}, /* mul.s.t */ 1103130561Sobrien {3,19,rrr,V,V,V}, /* mul.d.t */ 1104130561Sobrien {4,18,rrr,V,V,V}, /* div.s.t */ 1105130561Sobrien {4,19,rrr,V,V,V}, /* div.d.t */ 1106130561Sobrien {3,18,rrr,V,S,V}, /* mul.s.t */ 1107130561Sobrien {3,19,rrr,V,S,V}, /* mul.d.t */ 1108130561Sobrien {4,18,rrr,V,S,V}, /* div.s.t */ 1109130561Sobrien {4,19,rrr,V,S,V}, /* div.d.t */ 1110130561Sobrien {5,1,rrr,V,V,V}, /* and.t */ 1111130561Sobrien {6,1,rrr,V,V,V}, /* or.t */ 1112130561Sobrien {7,1,rrr,V,V,V}, /* xor.t */ 1113130561Sobrien {8,1,rrr,V,V,V}, /* shf.t */ 1114130561Sobrien {5,1,rrr,V,S,V}, /* and.t */ 1115130561Sobrien {6,1,rrr,V,S,V}, /* or.t */ 1116130561Sobrien {7,1,rrr,V,S,V}, /* xor.t */ 1117130561Sobrien {8,1,rrr,V,S,V}, /* shf.t */ 1118130561Sobrien {9,18,rrr,V,V,V}, /* add.s.t */ 1119130561Sobrien {9,19,rrr,V,V,V}, /* add.d.t */ 1120130561Sobrien {10,18,rrr,V,V,V}, /* sub.s.t */ 1121130561Sobrien {10,19,rrr,V,V,V}, /* sub.d.t */ 1122130561Sobrien {9,18,rrr,V,S,V}, /* add.s.t */ 1123130561Sobrien {9,19,rrr,V,S,V}, /* add.d.t */ 1124130561Sobrien {10,18,rrr,V,S,V}, /* sub.s.t */ 1125130561Sobrien {10,19,rrr,V,S,V}, /* sub.d.t */ 1126130561Sobrien {9,20,rrr,V,V,V}, /* add.b.t */ 1127130561Sobrien {9,21,rrr,V,V,V}, /* add.h.t */ 1128130561Sobrien {9,22,rrr,V,V,V}, /* add.w.t */ 1129130561Sobrien {9,23,rrr,V,V,V}, /* add.l.t */ 1130130561Sobrien {9,20,rrr,V,S,V}, /* add.b.t */ 1131130561Sobrien {9,21,rrr,V,S,V}, /* add.h.t */ 1132130561Sobrien {9,22,rrr,V,S,V}, /* add.w.t */ 1133130561Sobrien {9,23,rrr,V,S,V}, /* add.l.t */ 1134130561Sobrien {10,20,rrr,V,V,V}, /* sub.b.t */ 1135130561Sobrien {10,21,rrr,V,V,V}, /* sub.h.t */ 1136130561Sobrien {10,22,rrr,V,V,V}, /* sub.w.t */ 1137130561Sobrien {10,23,rrr,V,V,V}, /* sub.l.t */ 1138130561Sobrien {10,20,rrr,V,S,V}, /* sub.b.t */ 1139130561Sobrien {10,21,rrr,V,S,V}, /* sub.h.t */ 1140130561Sobrien {10,22,rrr,V,S,V}, /* sub.w.t */ 1141130561Sobrien {10,23,rrr,V,S,V}, /* sub.l.t */ 1142130561Sobrien {3,20,rrr,V,V,V}, /* mul.b.t */ 1143130561Sobrien {3,21,rrr,V,V,V}, /* mul.h.t */ 1144130561Sobrien {3,22,rrr,V,V,V}, /* mul.w.t */ 1145130561Sobrien {3,23,rrr,V,V,V}, /* mul.l.t */ 1146130561Sobrien {3,20,rrr,V,S,V}, /* mul.b.t */ 1147130561Sobrien {3,21,rrr,V,S,V}, /* mul.h.t */ 1148130561Sobrien {3,22,rrr,V,S,V}, /* mul.w.t */ 1149130561Sobrien {3,23,rrr,V,S,V}, /* mul.l.t */ 1150130561Sobrien {4,20,rrr,V,V,V}, /* div.b.t */ 1151130561Sobrien {4,21,rrr,V,V,V}, /* div.h.t */ 1152130561Sobrien {4,22,rrr,V,V,V}, /* div.w.t */ 1153130561Sobrien {4,23,rrr,V,V,V}, /* div.l.t */ 1154130561Sobrien {4,20,rrr,V,S,V}, /* div.b.t */ 1155130561Sobrien {4,21,rrr,V,S,V}, /* div.h.t */ 1156130561Sobrien {4,22,rrr,V,S,V}, /* div.w.t */ 1157130561Sobrien {4,23,rrr,V,S,V}, /* div.l.t */ 1158130561Sobrien}; 1159130561Sobrien 1160130561Sobrienconst struct formstr e1_format1[] = { 1161130561Sobrien {0,0,0,0,0,0}, 1162130561Sobrien {0,0,0,0,0,0}, 1163130561Sobrien {0,0,0,0,0,0}, 1164130561Sobrien {0,0,0,0,0,0}, 1165130561Sobrien {0,0,0,0,0,0}, 1166130561Sobrien {0,0,0,0,0,0}, 1167130561Sobrien {0,0,0,0,0,0}, 1168130561Sobrien {0,0,0,0,0,0}, 1169130561Sobrien {0,0,0,0,0,0}, 1170130561Sobrien {0,0,0,0,0,0}, 1171130561Sobrien {0,0,0,0,0,0}, 1172130561Sobrien {0,0,0,0,0,0}, 1173130561Sobrien {0,0,0,0,0,0}, 1174130561Sobrien {0,0,0,0,0,0}, 1175130561Sobrien {0,0,0,0,0,0}, 1176130561Sobrien {0,0,0,0,0,0}, 1177130561Sobrien {0,0,0,0,0,0}, 1178130561Sobrien {0,0,0,0,0,0}, 1179130561Sobrien {0,0,0,0,0,0}, 1180130561Sobrien {0,0,0,0,0,0}, 1181130561Sobrien {0,0,0,0,0,0}, 1182130561Sobrien {0,0,0,0,0,0}, 1183130561Sobrien {0,0,0,0,0,0}, 1184130561Sobrien {0,0,0,0,0,0}, 1185130561Sobrien {0,0,0,0,0,0}, 1186130561Sobrien {0,0,0,0,0,0}, 1187130561Sobrien {0,0,0,0,0,0}, 1188130561Sobrien {0,0,0,0,0,0}, 1189130561Sobrien {0,0,0,0,0,0}, 1190130561Sobrien {0,0,0,0,0,0}, 1191130561Sobrien {0,0,0,0,0,0}, 1192130561Sobrien {0,0,0,0,0,0}, 1193130561Sobrien {0,0,0,0,0,0}, 1194130561Sobrien {0,0,0,0,0,0}, 1195130561Sobrien {0,0,0,0,0,0}, 1196130561Sobrien {0,0,0,0,0,0}, 1197130561Sobrien {26,20,a2r,S,0,0}, /* ste.b.t */ 1198130561Sobrien {26,21,a2r,S,0,0}, /* ste.h.t */ 1199130561Sobrien {26,22,a2r,S,0,0}, /* ste.w.t */ 1200130561Sobrien {26,23,a2r,S,0,0}, /* ste.l.t */ 1201130561Sobrien {0,0,0,0,0,0}, 1202130561Sobrien {0,0,0,0,0,0}, 1203130561Sobrien {0,0,0,0,0,0}, 1204130561Sobrien {0,0,0,0,0,0}, 1205130561Sobrien {0,0,0,0,0,0}, 1206130561Sobrien {0,0,0,0,0,0}, 1207130561Sobrien {0,0,0,0,0,0}, 1208130561Sobrien {0,0,0,0,0,0}, 1209130561Sobrien {0,0,0,0,0,0}, 1210130561Sobrien {0,0,0,0,0,0}, 1211130561Sobrien {0,0,0,0,0,0}, 1212130561Sobrien {0,0,0,0,0,0}, 1213130561Sobrien {0,0,0,0,0,0}, 1214130561Sobrien {0,0,0,0,0,0}, 1215130561Sobrien {0,0,0,0,0,0}, 1216130561Sobrien {0,0,0,0,0,0}, 1217130561Sobrien {18,20,a1r,V,0,0}, /* ld.b.t */ 1218130561Sobrien {18,21,a1r,V,0,0}, /* ld.h.t */ 1219130561Sobrien {18,22,a1r,V,0,0}, /* ld.w.t */ 1220130561Sobrien {18,23,a1r,V,0,0}, /* ld.l.t */ 1221130561Sobrien {21,20,a2r,V,0,0}, /* st.b.t */ 1222130561Sobrien {21,21,a2r,V,0,0}, /* st.h.t */ 1223130561Sobrien {21,22,a2r,V,0,0}, /* st.w.t */ 1224130561Sobrien {21,23,a2r,V,0,0}, /* st.l.t */ 1225130561Sobrien}; 1226130561Sobrien 1227130561Sobrienconst struct formstr e1_format2[] = { 1228130561Sobrien {0,0,0,0,0,0}, 1229130561Sobrien {0,0,0,0,0,0}, 1230130561Sobrien {0,0,0,0,0,0}, 1231130561Sobrien {0,0,0,0,0,0}, 1232130561Sobrien {28,20,rr,V,V,0}, /* cvtw.b.t */ 1233130561Sobrien {28,21,rr,V,V,0}, /* cvtw.h.t */ 1234130561Sobrien {29,22,rr,V,V,0}, /* cvtb.w.t */ 1235130561Sobrien {30,22,rr,V,V,0}, /* cvth.w.t */ 1236130561Sobrien {0,0,0,0,0,0}, 1237130561Sobrien {0,0,0,0,0,0}, 1238130561Sobrien {0,0,0,0,0,0}, 1239130561Sobrien {0,0,0,0,0,0}, 1240130561Sobrien {31,23,rr,V,V,0}, /* cvts.l.t */ 1241130561Sobrien {32,22,rr,V,V,0}, /* cvtd.w.t */ 1242130561Sobrien {33,18,rr,V,V,0}, /* cvtl.s.t */ 1243130561Sobrien {28,19,rr,V,V,0}, /* cvtw.d.t */ 1244130561Sobrien {0,0,0,0,0,0}, 1245130561Sobrien {0,0,0,0,0,0}, 1246130561Sobrien {0,0,0,0,0,0}, 1247130561Sobrien {0,0,0,0,0,0}, 1248130561Sobrien {0,0,0,0,0,0}, 1249130561Sobrien {0,0,0,0,0,0}, 1250130561Sobrien {0,0,0,0,0,0}, 1251130561Sobrien {0,0,0,0,0,0}, 1252130561Sobrien {0,0,0,0,0,0}, 1253130561Sobrien {0,0,0,0,0,0}, 1254130561Sobrien {0,0,0,0,0,0}, 1255130561Sobrien {0,0,0,0,0,0}, 1256130561Sobrien {0,0,0,0,0,0}, 1257130561Sobrien {0,0,0,0,0,0}, 1258130561Sobrien {0,0,0,0,0,0}, 1259130561Sobrien {0,0,0,0,0,0}, 1260130561Sobrien {0,0,0,0,0,0}, 1261130561Sobrien {0,0,0,0,0,0}, 1262130561Sobrien {0,0,0,0,0,0}, 1263130561Sobrien {0,0,0,0,0,0}, 1264130561Sobrien {0,0,0,0,0,0}, 1265130561Sobrien {0,0,0,0,0,0}, 1266130561Sobrien {0,0,0,0,0,0}, 1267130561Sobrien {0,0,0,0,0,0}, 1268130561Sobrien {0,0,0,0,0,0}, 1269130561Sobrien {0,0,0,0,0,0}, 1270130561Sobrien {0,0,0,0,0,0}, 1271130561Sobrien {0,0,0,0,0,0}, 1272130561Sobrien {0,0,0,0,0,0}, 1273130561Sobrien {0,0,0,0,0,0}, 1274130561Sobrien {0,0,0,0,0,0}, 1275130561Sobrien {0,0,0,0,0,0}, 1276130561Sobrien {0,0,0,0,0,0}, 1277130561Sobrien {0,0,0,0,0,0}, 1278130561Sobrien {0,0,0,0,0,0}, 1279130561Sobrien {0,0,0,0,0,0}, 1280130561Sobrien {0,0,0,0,0,0}, 1281130561Sobrien {0,0,0,0,0,0}, 1282130561Sobrien {0,0,0,0,0,0}, 1283130561Sobrien {0,0,0,0,0,0}, 1284130561Sobrien {0,0,0,0,0,0}, 1285130561Sobrien {0,0,0,0,0,0}, 1286130561Sobrien {0,0,0,0,0,0}, 1287130561Sobrien {0,0,0,0,0,0}, 1288130561Sobrien {0,0,0,0,0,0}, 1289130561Sobrien {0,0,0,0,0,0}, 1290130561Sobrien {0,0,0,0,0,0}, 1291130561Sobrien {0,0,0,0,0,0}, 1292130561Sobrien {0,0,0,0,0,0}, 1293130561Sobrien {0,0,0,0,0,0}, 1294130561Sobrien {0,0,0,0,0,0}, 1295130561Sobrien {0,0,0,0,0,0}, 1296130561Sobrien {0,0,0,0,0,0}, 1297130561Sobrien {0,0,0,0,0,0}, 1298130561Sobrien {0,0,0,0,0,0}, 1299130561Sobrien {0,0,0,0,0,0}, 1300130561Sobrien {0,0,0,0,0,0}, 1301130561Sobrien {0,0,0,0,0,0}, 1302130561Sobrien {0,0,0,0,0,0}, 1303130561Sobrien {0,0,0,0,0,0}, 1304130561Sobrien {0,0,0,0,0,0}, 1305130561Sobrien {0,0,0,0,0,0}, 1306130561Sobrien {0,0,0,0,0,0}, 1307130561Sobrien {0,0,0,0,0,0}, 1308130561Sobrien {0,0,0,0,0,0}, 1309130561Sobrien {0,0,0,0,0,0}, 1310130561Sobrien {0,0,0,0,0,0}, 1311130561Sobrien {0,0,0,0,0,0}, 1312130561Sobrien {0,0,0,0,0,0}, 1313130561Sobrien {0,0,0,0,0,0}, 1314130561Sobrien {0,0,0,0,0,0}, 1315130561Sobrien {0,0,0,0,0,0}, 1316130561Sobrien {0,0,0,0,0,0}, 1317130561Sobrien {0,0,0,0,0,0}, 1318130561Sobrien {0,0,0,0,0,0}, 1319130561Sobrien {0,0,0,0,0,0}, 1320130561Sobrien {0,0,0,0,0,0}, 1321130561Sobrien {0,0,0,0,0,0}, 1322130561Sobrien {0,0,0,0,0,0}, 1323130561Sobrien {0,0,0,0,0,0}, 1324130561Sobrien {0,0,0,0,0,0}, 1325130561Sobrien {0,0,0,0,0,0}, 1326130561Sobrien {0,0,0,0,0,0}, 1327130561Sobrien {0,0,0,0,0,0}, 1328130561Sobrien {0,0,0,0,0,0}, 1329130561Sobrien {0,0,0,0,0,0}, 1330130561Sobrien {116,18,rr,V,V,0}, /* frint.s.t */ 1331130561Sobrien {116,19,rr,V,V,0}, /* frint.d.t */ 1332130561Sobrien {0,0,0,0,0,0}, 1333130561Sobrien {0,0,0,0,0,0}, 1334130561Sobrien {0,0,0,0,0,0}, 1335130561Sobrien {0,0,0,0,0,0}, 1336130561Sobrien {0,0,0,0,0,0}, 1337130561Sobrien {0,0,0,0,0,0}, 1338130561Sobrien {0,0,0,0,0,0}, 1339130561Sobrien {0,0,0,0,0,0}, 1340130561Sobrien {0,0,0,0,0,0}, 1341130561Sobrien {0,0,0,0,0,0}, 1342130561Sobrien {0,0,0,0,0,0}, 1343130561Sobrien {0,0,0,0,0,0}, 1344130561Sobrien {0,0,0,0,0,0}, 1345130561Sobrien {0,0,0,0,0,0}, 1346130561Sobrien {0,0,0,0,0,0}, 1347130561Sobrien {0,0,0,0,0,0}, 1348130561Sobrien {0,0,0,0,0,0}, 1349130561Sobrien {0,0,0,0,0,0}, 1350130561Sobrien {0,0,0,0,0,0}, 1351130561Sobrien {0,0,0,0,0,0}, 1352130561Sobrien {81,18,rr,V,V,0}, /* sqrt.s.t */ 1353130561Sobrien {81,19,rr,V,V,0}, /* sqrt.d.t */ 1354130561Sobrien {0,0,0,0,0,0}, 1355130561Sobrien {0,0,0,0,0,0}, 1356130561Sobrien}; 1357130561Sobrien 1358130561Sobrienconst struct formstr e1_format3[] = { 1359130561Sobrien {32,18,rr,V,V,0}, /* cvtd.s.t */ 1360130561Sobrien {31,19,rr,V,V,0}, /* cvts.d.t */ 1361130561Sobrien {33,19,rr,V,V,0}, /* cvtl.d.t */ 1362130561Sobrien {32,23,rr,V,V,0}, /* cvtd.l.t */ 1363130561Sobrien {0,0,0,0,0,0}, 1364130561Sobrien {0,0,0,0,0,0}, 1365130561Sobrien {0,0,0,0,0,0}, 1366130561Sobrien {0,0,0,0,0,0}, 1367130561Sobrien {36,1,rr,V,V,0}, /* tzc.t */ 1368130561Sobrien {44,1,rr,V,V,0}, /* lop.t */ 1369130561Sobrien {117,1,rr,V,V,0}, /* xpnd.t */ 1370130561Sobrien {42,1,rr,V,V,0}, /* not.t */ 1371130561Sobrien {8,1,rr,S,V,0}, /* shf.t */ 1372130561Sobrien {35,24,rr,V,V,0}, /* plc.t.t */ 1373130561Sobrien {0,0,0,0,0,0}, 1374130561Sobrien {0,0,0,0,0,0}, 1375130561Sobrien {37,18,rr,V,V,0}, /* eq.s.t */ 1376130561Sobrien {37,19,rr,V,V,0}, /* eq.d.t */ 1377130561Sobrien {43,18,rr,V,V,0}, /* neg.s.t */ 1378130561Sobrien {43,19,rr,V,V,0}, /* neg.d.t */ 1379130561Sobrien {37,18,rr,S,V,0}, /* eq.s.t */ 1380130561Sobrien {37,19,rr,S,V,0}, /* eq.d.t */ 1381130561Sobrien {0,0,0,0,0,0}, 1382130561Sobrien {0,0,0,0,0,0}, 1383130561Sobrien {40,18,rr,V,V,0}, /* le.s.t */ 1384130561Sobrien {40,19,rr,V,V,0}, /* le.d.t */ 1385130561Sobrien {41,18,rr,V,V,0}, /* lt.s.t */ 1386130561Sobrien {41,19,rr,V,V,0}, /* lt.d.t */ 1387130561Sobrien {40,18,rr,S,V,0}, /* le.s.t */ 1388130561Sobrien {40,19,rr,S,V,0}, /* le.d.t */ 1389130561Sobrien {41,18,rr,S,V,0}, /* lt.s.t */ 1390130561Sobrien {41,19,rr,S,V,0}, /* lt.d.t */ 1391130561Sobrien {37,20,rr,V,V,0}, /* eq.b.t */ 1392130561Sobrien {37,21,rr,V,V,0}, /* eq.h.t */ 1393130561Sobrien {37,22,rr,V,V,0}, /* eq.w.t */ 1394130561Sobrien {37,23,rr,V,V,0}, /* eq.l.t */ 1395130561Sobrien {37,20,rr,S,V,0}, /* eq.b.t */ 1396130561Sobrien {37,21,rr,S,V,0}, /* eq.h.t */ 1397130561Sobrien {37,22,rr,S,V,0}, /* eq.w.t */ 1398130561Sobrien {37,23,rr,S,V,0}, /* eq.l.t */ 1399130561Sobrien {40,20,rr,V,V,0}, /* le.b.t */ 1400130561Sobrien {40,21,rr,V,V,0}, /* le.h.t */ 1401130561Sobrien {40,22,rr,V,V,0}, /* le.w.t */ 1402130561Sobrien {40,23,rr,V,V,0}, /* le.l.t */ 1403130561Sobrien {40,20,rr,S,V,0}, /* le.b.t */ 1404130561Sobrien {40,21,rr,S,V,0}, /* le.h.t */ 1405130561Sobrien {40,22,rr,S,V,0}, /* le.w.t */ 1406130561Sobrien {40,23,rr,S,V,0}, /* le.l.t */ 1407130561Sobrien {41,20,rr,V,V,0}, /* lt.b.t */ 1408130561Sobrien {41,21,rr,V,V,0}, /* lt.h.t */ 1409130561Sobrien {41,22,rr,V,V,0}, /* lt.w.t */ 1410130561Sobrien {41,23,rr,V,V,0}, /* lt.l.t */ 1411130561Sobrien {41,20,rr,S,V,0}, /* lt.b.t */ 1412130561Sobrien {41,21,rr,S,V,0}, /* lt.h.t */ 1413130561Sobrien {41,22,rr,S,V,0}, /* lt.w.t */ 1414130561Sobrien {41,23,rr,S,V,0}, /* lt.l.t */ 1415130561Sobrien {43,20,rr,V,V,0}, /* neg.b.t */ 1416130561Sobrien {43,21,rr,V,V,0}, /* neg.h.t */ 1417130561Sobrien {43,22,rr,V,V,0}, /* neg.w.t */ 1418130561Sobrien {43,23,rr,V,V,0}, /* neg.l.t */ 1419130561Sobrien {0,0,0,0,0,0}, 1420130561Sobrien {0,0,0,0,0,0}, 1421130561Sobrien {0,0,0,0,0,0}, 1422130561Sobrien {0,0,0,0,0,0}, 1423130561Sobrien}; 1424130561Sobrien 1425130561Sobrienconst struct formstr e1_format4[] = { 1426130561Sobrien {0,0,0,0,0,0}, 1427130561Sobrien {0,0,0,0,0,0}, 1428130561Sobrien {0,0,0,0,0,0}, 1429130561Sobrien {0,0,0,0,0,0}, 1430130561Sobrien {0,0,0,0,0,0}, 1431130561Sobrien {0,0,0,0,0,0}, 1432130561Sobrien {0,0,0,0,0,0}, 1433130561Sobrien {0,0,0,0,0,0}, 1434130561Sobrien}; 1435130561Sobrien 1436130561Sobrienconst struct formstr e1_format5[] = { 1437130561Sobrien {51,20,rr,V,V,0}, /* ldvi.b.t */ 1438130561Sobrien {51,21,rr,V,V,0}, /* ldvi.h.t */ 1439130561Sobrien {51,22,rr,V,V,0}, /* ldvi.w.t */ 1440130561Sobrien {51,23,rr,V,V,0}, /* ldvi.l.t */ 1441130561Sobrien {28,18,rr,V,V,0}, /* cvtw.s.t */ 1442130561Sobrien {31,22,rr,V,V,0}, /* cvts.w.t */ 1443130561Sobrien {28,23,rr,V,V,0}, /* cvtw.l.t */ 1444130561Sobrien {33,22,rr,V,V,0}, /* cvtl.w.t */ 1445130561Sobrien {52,20,rxr,V,V,0}, /* stvi.b.t */ 1446130561Sobrien {52,21,rxr,V,V,0}, /* stvi.h.t */ 1447130561Sobrien {52,22,rxr,V,V,0}, /* stvi.w.t */ 1448130561Sobrien {52,23,rxr,V,V,0}, /* stvi.l.t */ 1449130561Sobrien {52,20,rxr,S,V,0}, /* stvi.b.t */ 1450130561Sobrien {52,21,rxr,S,V,0}, /* stvi.h.t */ 1451130561Sobrien {52,22,rxr,S,V,0}, /* stvi.w.t */ 1452130561Sobrien {52,23,rxr,S,V,0}, /* stvi.l.t */ 1453130561Sobrien}; 1454130561Sobrien 1455130561Sobrienconst struct formstr e1_format6[] = { 1456130561Sobrien {0,0,0,0,0,0}, 1457130561Sobrien {0,0,0,0,0,0}, 1458130561Sobrien {0,0,0,0,0,0}, 1459130561Sobrien {0,0,0,0,0,0}, 1460130561Sobrien {0,0,0,0,0,0}, 1461130561Sobrien {0,0,0,0,0,0}, 1462130561Sobrien {0,0,0,0,0,0}, 1463130561Sobrien {0,0,0,0,0,0}, 1464130561Sobrien {0,0,0,0,0,0}, 1465130561Sobrien {0,0,0,0,0,0}, 1466130561Sobrien {0,0,0,0,0,0}, 1467130561Sobrien {0,0,0,0,0,0}, 1468130561Sobrien {0,0,0,0,0,0}, 1469130561Sobrien {0,0,0,0,0,0}, 1470130561Sobrien {0,0,0,0,0,0}, 1471130561Sobrien {0,0,0,0,0,0}, 1472130561Sobrien {0,0,0,0,0,0}, 1473130561Sobrien {0,0,0,0,0,0}, 1474130561Sobrien {0,0,0,0,0,0}, 1475130561Sobrien {0,0,0,0,0,0}, 1476130561Sobrien {0,0,0,0,0,0}, 1477130561Sobrien {0,0,0,0,0,0}, 1478130561Sobrien {0,0,0,0,0,0}, 1479130561Sobrien {0,0,0,0,0,0}, 1480130561Sobrien {0,0,0,0,0,0}, 1481130561Sobrien {0,0,0,0,0,0}, 1482130561Sobrien {0,0,0,0,0,0}, 1483130561Sobrien {0,0,0,0,0,0}, 1484130561Sobrien {0,0,0,0,0,0}, 1485130561Sobrien {0,0,0,0,0,0}, 1486130561Sobrien {0,0,0,0,0,0}, 1487130561Sobrien {0,0,0,0,0,0}, 1488130561Sobrien {0,0,0,0,0,0}, 1489130561Sobrien {0,0,0,0,0,0}, 1490130561Sobrien {0,0,0,0,0,0}, 1491130561Sobrien {0,0,0,0,0,0}, 1492130561Sobrien {0,0,0,0,0,0}, 1493130561Sobrien {0,0,0,0,0,0}, 1494130561Sobrien {0,0,0,0,0,0}, 1495130561Sobrien {0,0,0,0,0,0}, 1496130561Sobrien {0,0,0,0,0,0}, 1497130561Sobrien {0,0,0,0,0,0}, 1498130561Sobrien {0,0,0,0,0,0}, 1499130561Sobrien {0,0,0,0,0,0}, 1500130561Sobrien {0,0,0,0,0,0}, 1501130561Sobrien {0,0,0,0,0,0}, 1502130561Sobrien {0,0,0,0,0,0}, 1503130561Sobrien {0,0,0,0,0,0}, 1504130561Sobrien {0,0,0,0,0,0}, 1505130561Sobrien {0,0,0,0,0,0}, 1506130561Sobrien {0,0,0,0,0,0}, 1507130561Sobrien {0,0,0,0,0,0}, 1508130561Sobrien {0,0,0,0,0,0}, 1509130561Sobrien {0,0,0,0,0,0}, 1510130561Sobrien {0,0,0,0,0,0}, 1511130561Sobrien {0,0,0,0,0,0}, 1512130561Sobrien {0,0,0,0,0,0}, 1513130561Sobrien {0,0,0,0,0,0}, 1514130561Sobrien {0,0,0,0,0,0}, 1515130561Sobrien {0,0,0,0,0,0}, 1516130561Sobrien {0,0,0,0,0,0}, 1517130561Sobrien {0,0,0,0,0,0}, 1518130561Sobrien {0,0,0,0,0,0}, 1519130561Sobrien {0,0,0,0,0,0}, 1520130561Sobrien}; 1521130561Sobrien 1522130561Sobrienconst struct formstr e1_format7[] = { 1523130561Sobrien {84,20,r,V,0,0}, /* sum.b.t */ 1524130561Sobrien {84,21,r,V,0,0}, /* sum.h.t */ 1525130561Sobrien {84,22,r,V,0,0}, /* sum.w.t */ 1526130561Sobrien {84,23,r,V,0,0}, /* sum.l.t */ 1527130561Sobrien {85,1,r,V,0,0}, /* all.t */ 1528130561Sobrien {86,1,r,V,0,0}, /* any.t */ 1529130561Sobrien {87,1,r,V,0,0}, /* parity.t */ 1530130561Sobrien {0,0,0,0,0,0}, 1531130561Sobrien {88,20,r,V,0,0}, /* max.b.t */ 1532130561Sobrien {88,21,r,V,0,0}, /* max.h.t */ 1533130561Sobrien {88,22,r,V,0,0}, /* max.w.t */ 1534130561Sobrien {88,23,r,V,0,0}, /* max.l.t */ 1535130561Sobrien {89,20,r,V,0,0}, /* min.b.t */ 1536130561Sobrien {89,21,r,V,0,0}, /* min.h.t */ 1537130561Sobrien {89,22,r,V,0,0}, /* min.w.t */ 1538130561Sobrien {89,23,r,V,0,0}, /* min.l.t */ 1539130561Sobrien {84,18,r,V,0,0}, /* sum.s.t */ 1540130561Sobrien {84,19,r,V,0,0}, /* sum.d.t */ 1541130561Sobrien {90,18,r,V,0,0}, /* prod.s.t */ 1542130561Sobrien {90,19,r,V,0,0}, /* prod.d.t */ 1543130561Sobrien {88,18,r,V,0,0}, /* max.s.t */ 1544130561Sobrien {88,19,r,V,0,0}, /* max.d.t */ 1545130561Sobrien {89,18,r,V,0,0}, /* min.s.t */ 1546130561Sobrien {89,19,r,V,0,0}, /* min.d.t */ 1547130561Sobrien {90,20,r,V,0,0}, /* prod.b.t */ 1548130561Sobrien {90,21,r,V,0,0}, /* prod.h.t */ 1549130561Sobrien {90,22,r,V,0,0}, /* prod.w.t */ 1550130561Sobrien {90,23,r,V,0,0}, /* prod.l.t */ 1551130561Sobrien {0,0,0,0,0,0}, 1552130561Sobrien {0,0,0,0,0,0}, 1553130561Sobrien {0,0,0,0,0,0}, 1554130561Sobrien {0,0,0,0,0,0}, 1555130561Sobrien}; 1556130561Sobrien 1557130561Sobrienchar *lop[] = { 1558130561Sobrien "mov", /* 0 */ 1559130561Sobrien "merg", /* 1 */ 1560130561Sobrien "mask", /* 2 */ 1561130561Sobrien "mul", /* 3 */ 1562130561Sobrien "div", /* 4 */ 1563130561Sobrien "and", /* 5 */ 1564130561Sobrien "or", /* 6 */ 1565130561Sobrien "xor", /* 7 */ 1566130561Sobrien "shf", /* 8 */ 1567130561Sobrien "add", /* 9 */ 1568130561Sobrien "sub", /* 10 */ 1569130561Sobrien "exit", /* 11 */ 1570130561Sobrien "jmp", /* 12 */ 1571130561Sobrien "jmpi", /* 13 */ 1572130561Sobrien "jmpa", /* 14 */ 1573130561Sobrien "jmps", /* 15 */ 1574130561Sobrien "tac", /* 16 */ 1575130561Sobrien "ldea", /* 17 */ 1576130561Sobrien "ld", /* 18 */ 1577130561Sobrien "tas", /* 19 */ 1578130561Sobrien "pshea", /* 20 */ 1579130561Sobrien "st", /* 21 */ 1580130561Sobrien "call", /* 22 */ 1581130561Sobrien "calls", /* 23 */ 1582130561Sobrien "callq", /* 24 */ 1583130561Sobrien "pfork", /* 25 */ 1584130561Sobrien "ste", /* 26 */ 1585130561Sobrien "incr", /* 27 */ 1586130561Sobrien "cvtw", /* 28 */ 1587130561Sobrien "cvtb", /* 29 */ 1588130561Sobrien "cvth", /* 30 */ 1589130561Sobrien "cvts", /* 31 */ 1590130561Sobrien "cvtd", /* 32 */ 1591130561Sobrien "cvtl", /* 33 */ 1592130561Sobrien "ldpa", /* 34 */ 1593130561Sobrien "plc", /* 35 */ 1594130561Sobrien "tzc", /* 36 */ 1595130561Sobrien "eq", /* 37 */ 1596130561Sobrien "leu", /* 38 */ 1597130561Sobrien "ltu", /* 39 */ 1598130561Sobrien "le", /* 40 */ 1599130561Sobrien "lt", /* 41 */ 1600130561Sobrien "not", /* 42 */ 1601130561Sobrien "neg", /* 43 */ 1602130561Sobrien "lop", /* 44 */ 1603130561Sobrien "cprs", /* 45 */ 1604130561Sobrien "nop", /* 46 */ 1605130561Sobrien "br", /* 47 */ 1606130561Sobrien "bri", /* 48 */ 1607130561Sobrien "bra", /* 49 */ 1608130561Sobrien "brs", /* 50 */ 1609130561Sobrien "ldvi", /* 51 */ 1610130561Sobrien "stvi", /* 52 */ 1611130561Sobrien "ldsdr", /* 53 */ 1612130561Sobrien "ldkdr", /* 54 */ 1613130561Sobrien "ln", /* 55 */ 1614130561Sobrien "patu", /* 56 */ 1615130561Sobrien "pate", /* 57 */ 1616130561Sobrien "pich", /* 58 */ 1617130561Sobrien "plch", /* 59 */ 1618130561Sobrien "idle", /* 60 */ 1619130561Sobrien "rtnq", /* 61 */ 1620130561Sobrien "cfork", /* 62 */ 1621130561Sobrien "rtn", /* 63 */ 1622130561Sobrien "wfork", /* 64 */ 1623130561Sobrien "join", /* 65 */ 1624130561Sobrien "rtnc", /* 66 */ 1625130561Sobrien "exp", /* 67 */ 1626130561Sobrien "sin", /* 68 */ 1627130561Sobrien "cos", /* 69 */ 1628130561Sobrien "psh", /* 70 */ 1629130561Sobrien "pop", /* 71 */ 1630130561Sobrien "eni", /* 72 */ 1631130561Sobrien "dsi", /* 73 */ 1632130561Sobrien "bkpt", /* 74 */ 1633130561Sobrien "msync", /* 75 */ 1634130561Sobrien "mski", /* 76 */ 1635130561Sobrien "xmti", /* 77 */ 1636130561Sobrien "tstvv", /* 78 */ 1637130561Sobrien "diag", /* 79 */ 1638130561Sobrien "pbkpt", /* 80 */ 1639130561Sobrien "sqrt", /* 81 */ 1640130561Sobrien "casr", /* 82 */ 1641130561Sobrien "atan", /* 83 */ 1642130561Sobrien "sum", /* 84 */ 1643130561Sobrien "all", /* 85 */ 1644130561Sobrien "any", /* 86 */ 1645130561Sobrien "parity", /* 87 */ 1646130561Sobrien "max", /* 88 */ 1647130561Sobrien "min", /* 89 */ 1648130561Sobrien "prod", /* 90 */ 1649130561Sobrien "halt", /* 91 */ 1650130561Sobrien "sysc", /* 92 */ 1651130561Sobrien "trap", /* 93 */ 1652130561Sobrien "tst", /* 94 */ 1653130561Sobrien "lck", /* 95 */ 1654130561Sobrien "ulk", /* 96 */ 1655130561Sobrien "spawn", /* 97 */ 1656130561Sobrien "ldcmr", /* 98 */ 1657130561Sobrien "stcmr", /* 99 */ 1658130561Sobrien "popr", /* 100 */ 1659130561Sobrien "pshr", /* 101 */ 1660130561Sobrien "rcvr", /* 102 */ 1661130561Sobrien "matm", /* 103 */ 1662130561Sobrien "sndr", /* 104 */ 1663130561Sobrien "putr", /* 105 */ 1664130561Sobrien "getr", /* 106 */ 1665130561Sobrien "matr", /* 107 */ 1666130561Sobrien "mat", /* 108 */ 1667130561Sobrien "get", /* 109 */ 1668130561Sobrien "rcv", /* 110 */ 1669130561Sobrien "inc", /* 111 */ 1670130561Sobrien "put", /* 112 */ 1671130561Sobrien "snd", /* 113 */ 1672130561Sobrien "enal", /* 114 */ 1673130561Sobrien "enag", /* 115 */ 1674130561Sobrien "frint", /* 116 */ 1675130561Sobrien "xpnd", /* 117 */ 1676130561Sobrien "ctrsl", /* 118 */ 1677130561Sobrien "ctrsg", /* 119 */ 1678130561Sobrien "stop", /* 120 */ 1679130561Sobrien}; 1680130561Sobrien 1681130561Sobrienchar *rop[] = { 1682130561Sobrien "", /* 0 */ 1683130561Sobrien ".t", /* 1 */ 1684130561Sobrien ".f", /* 2 */ 1685130561Sobrien ".s", /* 3 */ 1686130561Sobrien ".d", /* 4 */ 1687130561Sobrien ".b", /* 5 */ 1688130561Sobrien ".h", /* 6 */ 1689130561Sobrien ".w", /* 7 */ 1690130561Sobrien ".l", /* 8 */ 1691130561Sobrien ".x", /* 9 */ 1692130561Sobrien ".u", /* 10 */ 1693130561Sobrien ".s.f", /* 11 */ 1694130561Sobrien ".d.f", /* 12 */ 1695130561Sobrien ".b.f", /* 13 */ 1696130561Sobrien ".h.f", /* 14 */ 1697130561Sobrien ".w.f", /* 15 */ 1698130561Sobrien ".l.f", /* 16 */ 1699130561Sobrien ".t.f", /* 17 */ 1700130561Sobrien ".s.t", /* 18 */ 1701130561Sobrien ".d.t", /* 19 */ 1702130561Sobrien ".b.t", /* 20 */ 1703130561Sobrien ".h.t", /* 21 */ 1704130561Sobrien ".w.t", /* 22 */ 1705130561Sobrien ".l.t", /* 23 */ 1706130561Sobrien ".t.t", /* 24 */ 1707130561Sobrien}; 1708