1145519Sdarrenr/* Information for instruction disassembly on the Convex. 2145510Sdarrenr Copyright (C) 1989-2017 Free Software Foundation, Inc. 3145510Sdarrenr 4255332Scy This file is part of GDB. 5145510Sdarrenr 6145510Sdarrenr This program is free software; you can redistribute it and/or modify 7145510Sdarrenr it under the terms of the GNU General Public License as published by 8145510Sdarrenr the Free Software Foundation; either version 3 of the License, or 9145510Sdarrenr (at your option) any later version. 10145510Sdarrenr 11145510Sdarrenr This program is distributed in the hope that it will be useful, 12145510Sdarrenr but WITHOUT ANY WARRANTY; without even the implied warranty of 13145510Sdarrenr MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14145510Sdarrenr GNU General Public License for more details. 15145510Sdarrenr 16145510Sdarrenr You should have received a copy of the GNU General Public License 17145510Sdarrenr along with this program; if not, write to the Free Software 18145510Sdarrenr Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, 19145510Sdarrenr MA 02110-1301, USA. */ 20145510Sdarrenr 21145510Sdarrenr#define xxx 0 22145510Sdarrenr#define rrr 1 23145510Sdarrenr#define rr 2 24145510Sdarrenr#define rxr 3 25145510Sdarrenr#define r 4 26145510Sdarrenr#define nops 5 27145510Sdarrenr#define nr 6 28145510Sdarrenr#define pcrel 7 29145510Sdarrenr#define lr 8 30145510Sdarrenr#define rxl 9 31145510Sdarrenr#define rlr 10 32145510Sdarrenr#define rrl 11 33145510Sdarrenr#define iml 12 34145510Sdarrenr#define imr 13 35145510Sdarrenr#define a1r 14 36145510Sdarrenr#define a1l 15 37145510Sdarrenr#define a2r 16 38145510Sdarrenr#define a2l 17 39145510Sdarrenr#define a3 18 40145510Sdarrenr#define a4 19 41145510Sdarrenr#define a5 20 42145510Sdarrenr#define V 1 43145510Sdarrenr#define S 2 44145510Sdarrenr#define VM 3 45145510Sdarrenr#define A 4 46145510Sdarrenr#define VL 5 47145510Sdarrenr#define VS 6 48145510Sdarrenr#define VLS 7 49145510Sdarrenr#define PSW 8 50145510Sdarrenr/* Prevent an error during "make depend". */ 51145510Sdarrenr#if !defined (PC) 52145510Sdarrenr#define PC 9 53145510Sdarrenr#endif 54145554Sdarrenr#define ITR 10 55145510Sdarrenr#define VV 11 56145510Sdarrenr#define ITSR 12 57145510Sdarrenr#define TOC 13 58145510Sdarrenr#define CIR 14 59145510Sdarrenr#define TTR 15 60145510Sdarrenr#define VMU 16 61145510Sdarrenr#define VML 17 62145510Sdarrenr#define ICR 18 63145510Sdarrenr#define TCPU 19 64145510Sdarrenr#define CPUID 20 65145510Sdarrenr#define TID 21 66145510Sdarrenr 67145510Sdarrenrconst char *op[] = { 68145510Sdarrenr "", 69145510Sdarrenr "v0\0v1\0v2\0v3\0v4\0v5\0v6\0v7", 70255332Scy "s0\0s1\0s2\0s3\0s4\0s5\0s6\0s7", 71145510Sdarrenr "vm", 72145510Sdarrenr "sp\0a1\0a2\0a3\0a4\0a5\0ap\0fp", 73145510Sdarrenr "vl", 74145510Sdarrenr "vs", 75145510Sdarrenr "vls", 76145510Sdarrenr "psw", 77145510Sdarrenr "pc", 78145510Sdarrenr "itr", 79145510Sdarrenr "vv", 80145510Sdarrenr "itsr", 81145510Sdarrenr "toc", 82255332Scy "cir", 83255332Scy "ttr", 84255332Scy "vmu", 85145510Sdarrenr "vml", 86145510Sdarrenr "icr", 87145510Sdarrenr "tcpu", 88145510Sdarrenr "cpuid", 89255332Scy "tid", 90170268Sdarrenr}; 91170268Sdarrenr 92255332Scyconst struct formstr format0[] = { 93255332Scy {0,0,rrr,V,S,S}, /* mov */ 94145510Sdarrenr {0,0,rrr,S,S,V}, /* mov */ 95255332Scy {1,1,rrr,V,V,V}, /* merg.t */ 96255332Scy {2,1,rrr,V,V,V}, /* mask.t */ 97255332Scy {1,2,rrr,V,S,V}, /* merg.f */ 98145510Sdarrenr {2,2,rrr,V,S,V}, /* mask.f */ 99145510Sdarrenr {1,1,rrr,V,S,V}, /* merg.t */ 100255332Scy {2,1,rrr,V,S,V}, /* mask.t */ 101145510Sdarrenr {3,3,rrr,V,V,V}, /* mul.s */ 102145510Sdarrenr {3,4,rrr,V,V,V}, /* mul.d */ 103145510Sdarrenr {4,3,rrr,V,V,V}, /* div.s */ 104145510Sdarrenr {4,4,rrr,V,V,V}, /* div.d */ 105145510Sdarrenr {3,3,rrr,V,S,V}, /* mul.s */ 106145510Sdarrenr {3,4,rrr,V,S,V}, /* mul.d */ 107145510Sdarrenr {4,3,rrr,V,S,V}, /* div.s */ 108255332Scy {4,4,rrr,V,S,V}, /* div.d */ 109255332Scy {5,0,rrr,V,V,V}, /* and */ 110145510Sdarrenr {6,0,rrr,V,V,V}, /* or */ 111255332Scy {7,0,rrr,V,V,V}, /* xor */ 112145510Sdarrenr {8,0,rrr,V,V,V}, /* shf */ 113145510Sdarrenr {5,0,rrr,V,S,V}, /* and */ 114145510Sdarrenr {6,0,rrr,V,S,V}, /* or */ 115145510Sdarrenr {7,0,rrr,V,S,V}, /* xor */ 116145510Sdarrenr {8,0,rrr,V,S,V}, /* shf */ 117145510Sdarrenr {9,3,rrr,V,V,V}, /* add.s */ 118145510Sdarrenr {9,4,rrr,V,V,V}, /* add.d */ 119145510Sdarrenr {10,3,rrr,V,V,V}, /* sub.s */ 120145510Sdarrenr {10,4,rrr,V,V,V}, /* sub.d */ 121145510Sdarrenr {9,3,rrr,V,S,V}, /* add.s */ 122145510Sdarrenr {9,4,rrr,V,S,V}, /* add.d */ 123255332Scy {10,3,rrr,V,S,V}, /* sub.s */ 124145510Sdarrenr {10,4,rrr,V,S,V}, /* sub.d */ 125255332Scy {9,5,rrr,V,V,V}, /* add.b */ 126255332Scy {9,6,rrr,V,V,V}, /* add.h */ 127255332Scy {9,7,rrr,V,V,V}, /* add.w */ 128145510Sdarrenr {9,8,rrr,V,V,V}, /* add.l */ 129145510Sdarrenr {9,5,rrr,V,S,V}, /* add.b */ 130145510Sdarrenr {9,6,rrr,V,S,V}, /* add.h */ 131145510Sdarrenr {9,7,rrr,V,S,V}, /* add.w */ 132145510Sdarrenr {9,8,rrr,V,S,V}, /* add.l */ 133145510Sdarrenr {10,5,rrr,V,V,V}, /* sub.b */ 134145510Sdarrenr {10,6,rrr,V,V,V}, /* sub.h */ 135145510Sdarrenr {10,7,rrr,V,V,V}, /* sub.w */ 136145510Sdarrenr {10,8,rrr,V,V,V}, /* sub.l */ 137145510Sdarrenr {10,5,rrr,V,S,V}, /* sub.b */ 138145510Sdarrenr {10,6,rrr,V,S,V}, /* sub.h */ 139145510Sdarrenr {10,7,rrr,V,S,V}, /* sub.w */ 140145510Sdarrenr {10,8,rrr,V,S,V}, /* sub.l */ 141145510Sdarrenr {3,5,rrr,V,V,V}, /* mul.b */ 142145510Sdarrenr {3,6,rrr,V,V,V}, /* mul.h */ 143145510Sdarrenr {3,7,rrr,V,V,V}, /* mul.w */ 144145510Sdarrenr {3,8,rrr,V,V,V}, /* mul.l */ 145145510Sdarrenr {3,5,rrr,V,S,V}, /* mul.b */ 146145510Sdarrenr {3,6,rrr,V,S,V}, /* mul.h */ 147145510Sdarrenr {3,7,rrr,V,S,V}, /* mul.w */ 148145510Sdarrenr {3,8,rrr,V,S,V}, /* mul.l */ 149255332Scy {4,5,rrr,V,V,V}, /* div.b */ 150255332Scy {4,6,rrr,V,V,V}, /* div.h */ 151255332Scy {4,7,rrr,V,V,V}, /* div.w */ 152145510Sdarrenr {4,8,rrr,V,V,V}, /* div.l */ 153145510Sdarrenr {4,5,rrr,V,S,V}, /* div.b */ 154145510Sdarrenr {4,6,rrr,V,S,V}, /* div.h */ 155145510Sdarrenr {4,7,rrr,V,S,V}, /* div.w */ 156145510Sdarrenr {4,8,rrr,V,S,V}, /* div.l */ 157145510Sdarrenr}; 158145510Sdarrenr 159255332Scyconst struct formstr format1[] = { 160145510Sdarrenr {11,0,xxx,0,0,0}, /* exit */ 161145510Sdarrenr {12,0,a3,0,0,0}, /* jmp */ 162255332Scy {13,2,a3,0,0,0}, /* jmpi.f */ 163255332Scy {13,1,a3,0,0,0}, /* jmpi.t */ 164255332Scy {14,2,a3,0,0,0}, /* jmpa.f */ 165255332Scy {14,1,a3,0,0,0}, /* jmpa.t */ 166255332Scy {15,2,a3,0,0,0}, /* jmps.f */ 167255332Scy {15,1,a3,0,0,0}, /* jmps.t */ 168145510Sdarrenr {16,0,a3,0,0,0}, /* tac */ 169145510Sdarrenr {17,0,a1r,A,0,0}, /* ldea */ 170145510Sdarrenr {18,8,a1l,VLS,0,0}, /* ld.l */ 171145510Sdarrenr {18,9,a1l,VM,0,0}, /* ld.x */ 172145510Sdarrenr {19,0,a3,0,0,0}, /* tas */ 173145510Sdarrenr {20,0,a3,0,0,0}, /* pshea */ 174145510Sdarrenr {21,8,a2l,VLS,0,0}, /* st.l */ 175145510Sdarrenr {21,9,a2l,VM,0,0}, /* st.x */ 176145510Sdarrenr {0,0,0,0,0,0}, 177145510Sdarrenr {0,0,0,0,0,0}, 178145510Sdarrenr {0,0,0,0,0,0}, 179145510Sdarrenr {0,0,0,0,0,0}, 180145510Sdarrenr {0,0,0,0,0,0}, 181145510Sdarrenr {0,0,0,0,0,0}, 182145510Sdarrenr {0,0,0,0,0,0}, 183145510Sdarrenr {0,0,0,0,0,0}, 184145510Sdarrenr {0,0,0,0,0,0}, 185255332Scy {0,0,0,0,0,0}, 186255332Scy {0,0,0,0,0,0}, 187255332Scy {0,0,0,0,0,0}, 188255332Scy {0,0,0,0,0,0}, 189255332Scy {0,0,0,0,0,0}, 190255332Scy {0,0,0,0,0,0}, 191145510Sdarrenr {0,0,0,0,0,0}, 192145510Sdarrenr {22,0,a3,0,0,0}, /* call */ 193145510Sdarrenr {23,0,a3,0,0,0}, /* calls */ 194145510Sdarrenr {24,0,a3,0,0,0}, /* callq */ 195145510Sdarrenr {25,0,a1r,A,0,0}, /* pfork */ 196145510Sdarrenr {26,5,a2r,S,0,0}, /* ste.b */ 197145510Sdarrenr {26,6,a2r,S,0,0}, /* ste.h */ 198170268Sdarrenr {26,7,a2r,S,0,0}, /* ste.w */ 199170268Sdarrenr {26,8,a2r,S,0,0}, /* ste.l */ 200170268Sdarrenr {18,5,a1r,A,0,0}, /* ld.b */ 201170268Sdarrenr {18,6,a1r,A,0,0}, /* ld.h */ 202170268Sdarrenr {18,7,a1r,A,0,0}, /* ld.w */ 203170268Sdarrenr {27,7,a1r,A,0,0}, /* incr.w */ 204170268Sdarrenr {21,5,a2r,A,0,0}, /* st.b */ 205170268Sdarrenr {21,6,a2r,A,0,0}, /* st.h */ 206170268Sdarrenr {21,7,a2r,A,0,0}, /* st.w */ 207145510Sdarrenr {27,8,a1r,S,0,0}, /* incr.l */ 208145510Sdarrenr {18,5,a1r,S,0,0}, /* ld.b */ 209145510Sdarrenr {18,6,a1r,S,0,0}, /* ld.h */ 210145510Sdarrenr {18,7,a1r,S,0,0}, /* ld.w */ 211145510Sdarrenr {18,8,a1r,S,0,0}, /* ld.l */ 212145510Sdarrenr {21,5,a2r,S,0,0}, /* st.b */ 213145510Sdarrenr {21,6,a2r,S,0,0}, /* st.h */ 214145510Sdarrenr {21,7,a2r,S,0,0}, /* st.w */ 215145510Sdarrenr {21,8,a2r,S,0,0}, /* st.l */ 216145510Sdarrenr {18,5,a1r,V,0,0}, /* ld.b */ 217145510Sdarrenr {18,6,a1r,V,0,0}, /* ld.h */ 218145510Sdarrenr {18,7,a1r,V,0,0}, /* ld.w */ 219170268Sdarrenr {18,8,a1r,V,0,0}, /* ld.l */ 220145510Sdarrenr {21,5,a2r,V,0,0}, /* st.b */ 221145510Sdarrenr {21,6,a2r,V,0,0}, /* st.h */ 222145510Sdarrenr {21,7,a2r,V,0,0}, /* st.w */ 223255332Scy {21,8,a2r,V,0,0}, /* st.l */ 224145510Sdarrenr}; 225145510Sdarrenr 226145510Sdarrenrconst struct formstr format2[] = { 227145510Sdarrenr {28,5,rr,A,A,0}, /* cvtw.b */ 228145510Sdarrenr {28,6,rr,A,A,0}, /* cvtw.h */ 229145510Sdarrenr {29,7,rr,A,A,0}, /* cvtb.w */ 230145510Sdarrenr {30,7,rr,A,A,0}, /* cvth.w */ 231145510Sdarrenr {28,5,rr,S,S,0}, /* cvtw.b */ 232145510Sdarrenr {28,6,rr,S,S,0}, /* cvtw.h */ 233145510Sdarrenr {29,7,rr,S,S,0}, /* cvtb.w */ 234255332Scy {30,7,rr,S,S,0}, /* cvth.w */ 235145510Sdarrenr {28,3,rr,S,S,0}, /* cvtw.s */ 236145510Sdarrenr {31,7,rr,S,S,0}, /* cvts.w */ 237145510Sdarrenr {32,3,rr,S,S,0}, /* cvtd.s */ 238145510Sdarrenr {31,4,rr,S,S,0}, /* cvts.d */ 239255332Scy {31,8,rr,S,S,0}, /* cvts.l */ 240145510Sdarrenr {32,8,rr,S,S,0}, /* cvtd.l */ 241255332Scy {33,3,rr,S,S,0}, /* cvtl.s */ 242145510Sdarrenr {33,4,rr,S,S,0}, /* cvtl.d */ 243145510Sdarrenr {34,0,rr,A,A,0}, /* ldpa */ 244255332Scy {8,0,nr,A,0,0}, /* shf */ 245145510Sdarrenr {18,6,nr,A,0,0}, /* ld.h */ 246145510Sdarrenr {18,7,nr,A,0,0}, /* ld.w */ 247145510Sdarrenr {33,7,rr,S,S,0}, /* cvtl.w */ 248145510Sdarrenr {28,8,rr,S,S,0}, /* cvtw.l */ 249145510Sdarrenr {35,1,rr,S,S,0}, /* plc.t */ 250145510Sdarrenr {36,0,rr,S,S,0}, /* tzc */ 251145510Sdarrenr {37,6,rr,A,A,0}, /* eq.h */ 252145510Sdarrenr {37,7,rr,A,A,0}, /* eq.w */ 253145510Sdarrenr {37,6,nr,A,0,0}, /* eq.h */ 254255332Scy {37,7,nr,A,0,0}, /* eq.w */ 255255332Scy {37,5,rr,S,S,0}, /* eq.b */ 256145510Sdarrenr {37,6,rr,S,S,0}, /* eq.h */ 257145510Sdarrenr {37,7,rr,S,S,0}, /* eq.w */ 258145510Sdarrenr {37,8,rr,S,S,0}, /* eq.l */ 259145510Sdarrenr {38,6,rr,A,A,0}, /* leu.h */ 260145510Sdarrenr {38,7,rr,A,A,0}, /* leu.w */ 261145510Sdarrenr {38,6,nr,A,0,0}, /* leu.h */ 262145510Sdarrenr {38,7,nr,A,0,0}, /* leu.w */ 263145510Sdarrenr {38,5,rr,S,S,0}, /* leu.b */ 264145510Sdarrenr {38,6,rr,S,S,0}, /* leu.h */ 265145510Sdarrenr {38,7,rr,S,S,0}, /* leu.w */ 266145510Sdarrenr {38,8,rr,S,S,0}, /* leu.l */ 267145510Sdarrenr {39,6,rr,A,A,0}, /* ltu.h */ 268145510Sdarrenr {39,7,rr,A,A,0}, /* ltu.w */ 269145510Sdarrenr {39,6,nr,A,0,0}, /* ltu.h */ 270145510Sdarrenr {39,7,nr,A,0,0}, /* ltu.w */ 271145510Sdarrenr {39,5,rr,S,S,0}, /* ltu.b */ 272145510Sdarrenr {39,6,rr,S,S,0}, /* ltu.h */ 273145510Sdarrenr {39,7,rr,S,S,0}, /* ltu.w */ 274145510Sdarrenr {39,8,rr,S,S,0}, /* ltu.l */ 275145510Sdarrenr {40,6,rr,A,A,0}, /* le.h */ 276145510Sdarrenr {40,7,rr,A,A,0}, /* le.w */ 277145510Sdarrenr {40,6,nr,A,0,0}, /* le.h */ 278145510Sdarrenr {40,7,nr,A,0,0}, /* le.w */ 279145510Sdarrenr {40,5,rr,S,S,0}, /* le.b */ 280145510Sdarrenr {40,6,rr,S,S,0}, /* le.h */ 281255332Scy {40,7,rr,S,S,0}, /* le.w */ 282255332Scy {40,8,rr,S,S,0}, /* le.l */ 283145510Sdarrenr {41,6,rr,A,A,0}, /* lt.h */ 284145510Sdarrenr {41,7,rr,A,A,0}, /* lt.w */ 285145510Sdarrenr {41,6,nr,A,0,0}, /* lt.h */ 286145510Sdarrenr {41,7,nr,A,0,0}, /* lt.w */ 287145510Sdarrenr {41,5,rr,S,S,0}, /* lt.b */ 288145510Sdarrenr {41,6,rr,S,S,0}, /* lt.h */ 289145510Sdarrenr {41,7,rr,S,S,0}, /* lt.w */ 290145510Sdarrenr {41,8,rr,S,S,0}, /* lt.l */ 291145510Sdarrenr {9,7,rr,S,A,0}, /* add.w */ 292145510Sdarrenr {8,0,rr,A,A,0}, /* shf */ 293145510Sdarrenr {0,0,rr,A,A,0}, /* mov */ 294145510Sdarrenr {0,0,rr,S,A,0}, /* mov */ 295145510Sdarrenr {0,7,rr,S,S,0}, /* mov.w */ 296145510Sdarrenr {8,0,rr,S,S,0}, /* shf */ 297145510Sdarrenr {0,0,rr,S,S,0}, /* mov */ 298145510Sdarrenr {0,0,rr,A,S,0}, /* mov */ 299145510Sdarrenr {5,0,rr,A,A,0}, /* and */ 300145510Sdarrenr {6,0,rr,A,A,0}, /* or */ 301145510Sdarrenr {7,0,rr,A,A,0}, /* xor */ 302170268Sdarrenr {42,0,rr,A,A,0}, /* not */ 303170268Sdarrenr {5,0,rr,S,S,0}, /* and */ 304170268Sdarrenr {6,0,rr,S,S,0}, /* or */ 305255332Scy {7,0,rr,S,S,0}, /* xor */ 306255332Scy {42,0,rr,S,S,0}, /* not */ 307170268Sdarrenr {40,3,rr,S,S,0}, /* le.s */ 308170268Sdarrenr {40,4,rr,S,S,0}, /* le.d */ 309170268Sdarrenr {41,3,rr,S,S,0}, /* lt.s */ 310170268Sdarrenr {41,4,rr,S,S,0}, /* lt.d */ 311170268Sdarrenr {9,3,rr,S,S,0}, /* add.s */ 312255332Scy {9,4,rr,S,S,0}, /* add.d */ 313255332Scy {10,3,rr,S,S,0}, /* sub.s */ 314255332Scy {10,4,rr,S,S,0}, /* sub.d */ 315255332Scy {37,3,rr,S,S,0}, /* eq.s */ 316255332Scy {37,4,rr,S,S,0}, /* eq.d */ 317255332Scy {43,6,rr,A,A,0}, /* neg.h */ 318255332Scy {43,7,rr,A,A,0}, /* neg.w */ 319255332Scy {3,3,rr,S,S,0}, /* mul.s */ 320255332Scy {3,4,rr,S,S,0}, /* mul.d */ 321255332Scy {4,3,rr,S,S,0}, /* div.s */ 322255332Scy {4,4,rr,S,S,0}, /* div.d */ 323255332Scy {9,6,rr,A,A,0}, /* add.h */ 324255332Scy {9,7,rr,A,A,0}, /* add.w */ 325255332Scy {9,6,nr,A,0,0}, /* add.h */ 326255332Scy {9,7,nr,A,0,0}, /* add.w */ 327255332Scy {9,5,rr,S,S,0}, /* add.b */ 328255332Scy {9,6,rr,S,S,0}, /* add.h */ 329255332Scy {9,7,rr,S,S,0}, /* add.w */ 330255332Scy {9,8,rr,S,S,0}, /* add.l */ 331255332Scy {10,6,rr,A,A,0}, /* sub.h */ 332170268Sdarrenr {10,7,rr,A,A,0}, /* sub.w */ 333170268Sdarrenr {10,6,nr,A,0,0}, /* sub.h */ 334170268Sdarrenr {10,7,nr,A,0,0}, /* sub.w */ 335170268Sdarrenr {10,5,rr,S,S,0}, /* sub.b */ 336170268Sdarrenr {10,6,rr,S,S,0}, /* sub.h */ 337170268Sdarrenr {10,7,rr,S,S,0}, /* sub.w */ 338255332Scy {10,8,rr,S,S,0}, /* sub.l */ 339170268Sdarrenr {3,6,rr,A,A,0}, /* mul.h */ 340170268Sdarrenr {3,7,rr,A,A,0}, /* mul.w */ 341170268Sdarrenr {3,6,nr,A,0,0}, /* mul.h */ 342170268Sdarrenr {3,7,nr,A,0,0}, /* mul.w */ 343170268Sdarrenr {3,5,rr,S,S,0}, /* mul.b */ 344170268Sdarrenr {3,6,rr,S,S,0}, /* mul.h */ 345170268Sdarrenr {3,7,rr,S,S,0}, /* mul.w */ 346145510Sdarrenr {3,8,rr,S,S,0}, /* mul.l */ 347145510Sdarrenr {4,6,rr,A,A,0}, /* div.h */ 348255332Scy {4,7,rr,A,A,0}, /* div.w */ 349255332Scy {4,6,nr,A,0,0}, /* div.h */ 350255332Scy {4,7,nr,A,0,0}, /* div.w */ 351145510Sdarrenr {4,5,rr,S,S,0}, /* div.b */ 352145510Sdarrenr {4,6,rr,S,S,0}, /* div.h */ 353145510Sdarrenr {4,7,rr,S,S,0}, /* div.w */ 354255332Scy {4,8,rr,S,S,0}, /* div.l */ 355145510Sdarrenr}; 356255332Scy 357255332Scyconst struct formstr format3[] = { 358255332Scy {32,3,rr,V,V,0}, /* cvtd.s */ 359255332Scy {31,4,rr,V,V,0}, /* cvts.d */ 360255332Scy {33,4,rr,V,V,0}, /* cvtl.d */ 361255332Scy {32,8,rr,V,V,0}, /* cvtd.l */ 362255332Scy {0,0,rrl,S,S,VM}, /* mov */ 363255332Scy {0,0,rlr,S,VM,S}, /* mov */ 364255332Scy {0,0,0,0,0,0}, 365255332Scy {44,0,rr,S,S,0}, /* lop */ 366255332Scy {36,0,rr,V,V,0}, /* tzc */ 367255332Scy {44,0,rr,V,V,0}, /* lop */ 368170268Sdarrenr {0,0,0,0,0,0}, 369170268Sdarrenr {42,0,rr,V,V,0}, /* not */ 370170268Sdarrenr {8,0,rr,S,V,0}, /* shf */ 371255332Scy {35,1,rr,V,V,0}, /* plc.t */ 372255332Scy {45,2,rr,V,V,0}, /* cprs.f */ 373170268Sdarrenr {45,1,rr,V,V,0}, /* cprs.t */ 374255332Scy {37,3,rr,V,V,0}, /* eq.s */ 375255332Scy {37,4,rr,V,V,0}, /* eq.d */ 376255332Scy {43,3,rr,V,V,0}, /* neg.s */ 377255332Scy {43,4,rr,V,V,0}, /* neg.d */ 378255332Scy {37,3,rr,S,V,0}, /* eq.s */ 379255332Scy {37,4,rr,S,V,0}, /* eq.d */ 380255332Scy {43,3,rr,S,S,0}, /* neg.s */ 381255332Scy {43,4,rr,S,S,0}, /* neg.d */ 382255332Scy {40,3,rr,V,V,0}, /* le.s */ 383170268Sdarrenr {40,4,rr,V,V,0}, /* le.d */ 384170268Sdarrenr {41,3,rr,V,V,0}, /* lt.s */ 385170268Sdarrenr {41,4,rr,V,V,0}, /* lt.d */ 386255332Scy {40,3,rr,S,V,0}, /* le.s */ 387255332Scy {40,4,rr,S,V,0}, /* le.d */ 388255332Scy {41,3,rr,S,V,0}, /* lt.s */ 389255332Scy {41,4,rr,S,V,0}, /* lt.d */ 390255332Scy {37,5,rr,V,V,0}, /* eq.b */ 391255332Scy {37,6,rr,V,V,0}, /* eq.h */ 392255332Scy {37,7,rr,V,V,0}, /* eq.w */ 393255332Scy {37,8,rr,V,V,0}, /* eq.l */ 394255332Scy {37,5,rr,S,V,0}, /* eq.b */ 395255332Scy {37,6,rr,S,V,0}, /* eq.h */ 396255332Scy {37,7,rr,S,V,0}, /* eq.w */ 397255332Scy {37,8,rr,S,V,0}, /* eq.l */ 398255332Scy {40,5,rr,V,V,0}, /* le.b */ 399255332Scy {40,6,rr,V,V,0}, /* le.h */ 400255332Scy {40,7,rr,V,V,0}, /* le.w */ 401255332Scy {40,8,rr,V,V,0}, /* le.l */ 402255332Scy {40,5,rr,S,V,0}, /* le.b */ 403255332Scy {40,6,rr,S,V,0}, /* le.h */ 404255332Scy {40,7,rr,S,V,0}, /* le.w */ 405255332Scy {40,8,rr,S,V,0}, /* le.l */ 406255332Scy {41,5,rr,V,V,0}, /* lt.b */ 407170268Sdarrenr {41,6,rr,V,V,0}, /* lt.h */ 408170268Sdarrenr {41,7,rr,V,V,0}, /* lt.w */ 409170268Sdarrenr {41,8,rr,V,V,0}, /* lt.l */ 410170268Sdarrenr {41,5,rr,S,V,0}, /* lt.b */ 411170268Sdarrenr {41,6,rr,S,V,0}, /* lt.h */ 412170268Sdarrenr {41,7,rr,S,V,0}, /* lt.w */ 413170268Sdarrenr {41,8,rr,S,V,0}, /* lt.l */ 414255332Scy {43,5,rr,V,V,0}, /* neg.b */ 415255332Scy {43,6,rr,V,V,0}, /* neg.h */ 416255332Scy {43,7,rr,V,V,0}, /* neg.w */ 417255332Scy {43,8,rr,V,V,0}, /* neg.l */ 418170268Sdarrenr {43,5,rr,S,S,0}, /* neg.b */ 419255332Scy {43,6,rr,S,S,0}, /* neg.h */ 420172776Sdarrenr {43,7,rr,S,S,0}, /* neg.w */ 421255332Scy {43,8,rr,S,S,0}, /* neg.l */ 422172776Sdarrenr}; 423172776Sdarrenr 424172776Sdarrenrconst struct formstr format4[] = { 425255332Scy {46,0,nops,0,0,0}, /* nop */ 426255332Scy {47,0,pcrel,0,0,0}, /* br */ 427255332Scy {48,2,pcrel,0,0,0}, /* bri.f */ 428255332Scy {48,1,pcrel,0,0,0}, /* bri.t */ 429255332Scy {49,2,pcrel,0,0,0}, /* bra.f */ 430255332Scy {49,1,pcrel,0,0,0}, /* bra.t */ 431172776Sdarrenr {50,2,pcrel,0,0,0}, /* brs.f */ 432172776Sdarrenr {50,1,pcrel,0,0,0}, /* brs.t */ 433172776Sdarrenr}; 434172776Sdarrenr 435172776Sdarrenrconst struct formstr format5[] = { 436172776Sdarrenr {51,5,rr,V,V,0}, /* ldvi.b */ 437255332Scy {51,6,rr,V,V,0}, /* ldvi.h */ 438255332Scy {51,7,rr,V,V,0}, /* ldvi.w */ 439255332Scy {51,8,rr,V,V,0}, /* ldvi.l */ 440255332Scy {28,3,rr,V,V,0}, /* cvtw.s */ 441255332Scy {31,7,rr,V,V,0}, /* cvts.w */ 442172776Sdarrenr {28,8,rr,V,V,0}, /* cvtw.l */ 443172776Sdarrenr {33,7,rr,V,V,0}, /* cvtl.w */ 444172776Sdarrenr {52,5,rxr,V,V,0}, /* stvi.b */ 445172776Sdarrenr {52,6,rxr,V,V,0}, /* stvi.h */ 446255332Scy {52,7,rxr,V,V,0}, /* stvi.w */ 447172776Sdarrenr {52,8,rxr,V,V,0}, /* stvi.l */ 448172776Sdarrenr {52,5,rxr,S,V,0}, /* stvi.b */ 449172776Sdarrenr {52,6,rxr,S,V,0}, /* stvi.h */ 450172776Sdarrenr {52,7,rxr,S,V,0}, /* stvi.w */ 451172776Sdarrenr {52,8,rxr,S,V,0}, /* stvi.l */ 452172776Sdarrenr}; 453172776Sdarrenr 454172776Sdarrenrconst struct formstr format6[] = { 455172776Sdarrenr {53,0,r,A,0,0}, /* ldsdr */ 456172776Sdarrenr {54,0,r,A,0,0}, /* ldkdr */ 457255332Scy {55,3,r,S,0,0}, /* ln.s */ 458172776Sdarrenr {55,4,r,S,0,0}, /* ln.d */ 459172776Sdarrenr {56,0,nops,0,0,0}, /* patu */ 460172776Sdarrenr {57,0,r,A,0,0}, /* pate */ 461172776Sdarrenr {58,0,nops,0,0,0}, /* pich */ 462172776Sdarrenr {59,0,nops,0,0,0}, /* plch */ 463172776Sdarrenr {0,0,lr,PSW,A,0}, /* mov */ 464172776Sdarrenr {0,0,rxl,A,PSW,0}, /* mov */ 465172776Sdarrenr {0,0,lr,PC,A,0}, /* mov */ 466172776Sdarrenr {60,0,r,S,0,0}, /* idle */ 467172776Sdarrenr {0,0,lr,ITR,S,0}, /* mov */ 468172776Sdarrenr {0,0,rxl,S,ITR,0}, /* mov */ 469172776Sdarrenr {0,0,0,0,0,0}, 470172776Sdarrenr {0,0,rxl,S,ITSR,0}, /* mov */ 471172776Sdarrenr {61,0,nops,0,0,0}, /* rtnq */ 472255332Scy {62,0,nops,0,0,0}, /* cfork */ 473255332Scy {63,0,nops,0,0,0}, /* rtn */ 474255332Scy {64,0,nops,0,0,0}, /* wfork */ 475255332Scy {65,0,nops,0,0,0}, /* join */ 476255332Scy {66,0,nops,0,0,0}, /* rtnc */ 477255332Scy {67,3,r,S,0,0}, /* exp.s */ 478255332Scy {67,4,r,S,0,0}, /* exp.d */ 479255332Scy {68,3,r,S,0,0}, /* sin.s */ 480255332Scy {68,4,r,S,0,0}, /* sin.d */ 481255332Scy {0,0,0,0,0,0}, 482172776Sdarrenr {0,0,0,0,0,0}, 483172776Sdarrenr {69,3,r,S,0,0}, /* cos.s */ 484172776Sdarrenr {69,4,r,S,0,0}, /* cos.d */ 485255332Scy {0,0,0,0,0,0}, 486255332Scy {0,0,0,0,0,0}, 487255332Scy {70,7,r,A,0,0}, /* psh.w */ 488255332Scy {0,0,0,0,0,0}, 489255332Scy {71,7,r,A,0,0}, /* pop.w */ 490255332Scy {0,0,0,0,0,0}, 491255332Scy {70,7,r,S,0,0}, /* psh.w */ 492255332Scy {70,8,r,S,0,0}, /* psh.l */ 493255332Scy {71,7,r,S,0,0}, /* pop.w */ 494255332Scy {71,8,r,S,0,0}, /* pop.l */ 495255332Scy {72,0,nops,0,0,0}, /* eni */ 496255332Scy {73,0,nops,0,0,0}, /* dsi */ 497255332Scy {74,0,nops,0,0,0}, /* bkpt */ 498255332Scy {75,0,nops,0,0,0}, /* msync */ 499255332Scy {76,0,r,S,0,0}, /* mski */ 500255332Scy {77,0,r,S,0,0}, /* xmti */ 501255332Scy {0,0,rxl,S,VV,0}, /* mov */ 502255332Scy {78,0,nops,0,0,0}, /* tstvv */ 503255332Scy {0,0,lr,VS,A,0}, /* mov */ 504255332Scy {0,0,rxl,A,VS,0}, /* mov */ 505255332Scy {0,0,lr,VL,A,0}, /* mov */ 506255332Scy {0,0,rxl,A,VL,0}, /* mov */ 507255332Scy {0,7,lr,VS,S,0}, /* mov.w */ 508255332Scy {0,7,rxl,S,VS,0}, /* mov.w */ 509255332Scy {0,7,lr,VL,S,0}, /* mov.w */ 510255332Scy {0,7,rxl,S,VL,0}, /* mov.w */ 511255332Scy {79,0,r,A,0,0}, /* diag */ 512255332Scy {80,0,nops,0,0,0}, /* pbkpt */ 513255332Scy {81,3,r,S,0,0}, /* sqrt.s */ 514255332Scy {81,4,r,S,0,0}, /* sqrt.d */ 515255332Scy {82,0,nops,0,0,0}, /* casr */ 516255332Scy {0,0,0,0,0,0}, 517255332Scy {83,3,r,S,0,0}, /* atan.s */ 518255332Scy {83,4,r,S,0,0}, /* atan.d */ 519255332Scy}; 520255332Scy 521255332Scyconst struct formstr format7[] = { 522255332Scy {84,5,r,V,0,0}, /* sum.b */ 523255332Scy {84,6,r,V,0,0}, /* sum.h */ 524255332Scy {84,7,r,V,0,0}, /* sum.w */ 525255332Scy {84,8,r,V,0,0}, /* sum.l */ 526255332Scy {85,0,r,V,0,0}, /* all */ 527255332Scy {86,0,r,V,0,0}, /* any */ 528255332Scy {87,0,r,V,0,0}, /* parity */ 529255332Scy {0,0,0,0,0,0}, 530255332Scy {88,5,r,V,0,0}, /* max.b */ 531255332Scy {88,6,r,V,0,0}, /* max.h */ 532255332Scy {88,7,r,V,0,0}, /* max.w */ 533255332Scy {88,8,r,V,0,0}, /* max.l */ 534255332Scy {89,5,r,V,0,0}, /* min.b */ 535255332Scy {89,6,r,V,0,0}, /* min.h */ 536255332Scy {89,7,r,V,0,0}, /* min.w */ 537170268Sdarrenr {89,8,r,V,0,0}, /* min.l */ 538170268Sdarrenr {84,3,r,V,0,0}, /* sum.s */ 539170268Sdarrenr {84,4,r,V,0,0}, /* sum.d */ 540255332Scy {90,3,r,V,0,0}, /* prod.s */ 541255332Scy {90,4,r,V,0,0}, /* prod.d */ 542255332Scy {88,3,r,V,0,0}, /* max.s */ 543170268Sdarrenr {88,4,r,V,0,0}, /* max.d */ 544170268Sdarrenr {89,3,r,V,0,0}, /* min.s */ 545255332Scy {89,4,r,V,0,0}, /* min.d */ 546170268Sdarrenr {90,5,r,V,0,0}, /* prod.b */ 547255332Scy {90,6,r,V,0,0}, /* prod.h */ 548170268Sdarrenr {90,7,r,V,0,0}, /* prod.w */ 549255332Scy {90,8,r,V,0,0}, /* prod.l */ 550170268Sdarrenr {35,2,lr,VM,S,0}, /* plc.f */ 551170268Sdarrenr {35,1,lr,VM,S,0}, /* plc.t */ 552170268Sdarrenr {0,0,0,0,0,0}, 553170268Sdarrenr {0,0,0,0,0,0}, 554170268Sdarrenr}; 555170268Sdarrenr 556170268Sdarrenrconst struct formstr formatx[] = { 557170268Sdarrenr {0,0,0,0,0,0}, 558170268Sdarrenr}; 559255332Scy 560255332Scyconst struct formstr format1a[] = { 561170268Sdarrenr {91,0,imr,A,0,0}, /* halt */ 562145510Sdarrenr {92,0,a4,0,0,0}, /* sysc */ 563145510Sdarrenr {18,6,imr,A,0,0}, /* ld.h */ 564145510Sdarrenr {18,7,imr,A,0,0}, /* ld.w */ 565255332Scy {5,0,imr,A,0,0}, /* and */ 566255332Scy {6,0,imr,A,0,0}, /* or */ 567255332Scy {7,0,imr,A,0,0}, /* xor */ 568255332Scy {8,0,imr,A,0,0}, /* shf */ 569255332Scy {9,6,imr,A,0,0}, /* add.h */ 570255332Scy {9,7,imr,A,0,0}, /* add.w */ 571255332Scy {10,6,imr,A,0,0}, /* sub.h */ 572255332Scy {10,7,imr,A,0,0}, /* sub.w */ 573255332Scy {3,6,imr,A,0,0}, /* mul.h */ 574255332Scy {3,7,imr,A,0,0}, /* mul.w */ 575170268Sdarrenr {4,6,imr,A,0,0}, /* div.h */ 576145510Sdarrenr {4,7,imr,A,0,0}, /* div.w */ 577255332Scy {18,7,iml,VL,0,0}, /* ld.w */ 578255332Scy {18,7,iml,VS,0,0}, /* ld.w */ 579145510Sdarrenr {0,0,0,0,0,0}, 580255332Scy {8,7,imr,S,0,0}, /* shf.w */ 581255332Scy {93,0,a5,0,0,0}, /* trap */ 582255332Scy {0,0,0,0,0,0}, 583255332Scy {37,6,imr,A,0,0}, /* eq.h */ 584255332Scy {37,7,imr,A,0,0}, /* eq.w */ 585255332Scy {38,6,imr,A,0,0}, /* leu.h */ 586255332Scy {38,7,imr,A,0,0}, /* leu.w */ 587255332Scy {39,6,imr,A,0,0}, /* ltu.h */ 588255332Scy {39,7,imr,A,0,0}, /* ltu.w */ 589255332Scy {40,6,imr,A,0,0}, /* le.h */ 590255332Scy {40,7,imr,A,0,0}, /* le.w */ 591255332Scy {41,6,imr,A,0,0}, /* lt.h */ 592255332Scy {41,7,imr,A,0,0}, /* lt.w */ 593170268Sdarrenr}; 594170268Sdarrenr 595170268Sdarrenrconst struct formstr format1b[] = { 596145510Sdarrenr {18,4,imr,S,0,0}, /* ld.d */ 597170268Sdarrenr {18,10,imr,S,0,0}, /* ld.u */ 598170268Sdarrenr {18,8,imr,S,0,0}, /* ld.l */ 599170268Sdarrenr {18,7,imr,S,0,0}, /* ld.w */ 600255332Scy {5,0,imr,S,0,0}, /* and */ 601255332Scy {6,0,imr,S,0,0}, /* or */ 602255332Scy {7,0,imr,S,0,0}, /* xor */ 603255332Scy {8,0,imr,S,0,0}, /* shf */ 604255332Scy {9,6,imr,S,0,0}, /* add.h */ 605255332Scy {9,7,imr,S,0,0}, /* add.w */ 606255332Scy {10,6,imr,S,0,0}, /* sub.h */ 607255332Scy {10,7,imr,S,0,0}, /* sub.w */ 608255332Scy {3,6,imr,S,0,0}, /* mul.h */ 609255332Scy {3,7,imr,S,0,0}, /* mul.w */ 610255332Scy {4,6,imr,S,0,0}, /* div.h */ 611255332Scy {4,7,imr,S,0,0}, /* div.w */ 612255332Scy {9,3,imr,S,0,0}, /* add.s */ 613255332Scy {10,3,imr,S,0,0}, /* sub.s */ 614255332Scy {3,3,imr,S,0,0}, /* mul.s */ 615255332Scy {4,3,imr,S,0,0}, /* div.s */ 616255332Scy {40,3,imr,S,0,0}, /* le.s */ 617255332Scy {41,3,imr,S,0,0}, /* lt.s */ 618255332Scy {37,6,imr,S,0,0}, /* eq.h */ 619255332Scy {37,7,imr,S,0,0}, /* eq.w */ 620255332Scy {38,6,imr,S,0,0}, /* leu.h */ 621170268Sdarrenr {38,7,imr,S,0,0}, /* leu.w */ 622145510Sdarrenr {39,6,imr,S,0,0}, /* ltu.h */ 623170268Sdarrenr {39,7,imr,S,0,0}, /* ltu.w */ 624170268Sdarrenr {40,6,imr,S,0,0}, /* le.h */ 625170268Sdarrenr {40,7,imr,S,0,0}, /* le.w */ 626255332Scy {41,6,imr,S,0,0}, /* lt.h */ 627255332Scy {41,7,imr,S,0,0}, /* lt.w */ 628255332Scy}; 629145510Sdarrenr 630145510Sdarrenrconst struct formstr e0_format0[] = { 631145510Sdarrenr {10,3,rrr,S,V,V}, /* sub.s */ 632145510Sdarrenr {10,4,rrr,S,V,V}, /* sub.d */ 633145510Sdarrenr {4,3,rrr,S,V,V}, /* div.s */ 634145510Sdarrenr {4,4,rrr,S,V,V}, /* div.d */ 635170268Sdarrenr {10,11,rrr,S,V,V}, /* sub.s.f */ 636255332Scy {10,12,rrr,S,V,V}, /* sub.d.f */ 637145510Sdarrenr {4,11,rrr,S,V,V}, /* div.s.f */ 638145510Sdarrenr {4,12,rrr,S,V,V}, /* div.d.f */ 639145510Sdarrenr {3,11,rrr,V,V,V}, /* mul.s.f */ 640145510Sdarrenr {3,12,rrr,V,V,V}, /* mul.d.f */ 641145510Sdarrenr {4,11,rrr,V,V,V}, /* div.s.f */ 642145510Sdarrenr {4,12,rrr,V,V,V}, /* div.d.f */ 643145510Sdarrenr {3,11,rrr,V,S,V}, /* mul.s.f */ 644145510Sdarrenr {3,12,rrr,V,S,V}, /* mul.d.f */ 645145510Sdarrenr {4,11,rrr,V,S,V}, /* div.s.f */ 646145510Sdarrenr {4,12,rrr,V,S,V}, /* div.d.f */ 647145510Sdarrenr {5,2,rrr,V,V,V}, /* and.f */ 648145510Sdarrenr {6,2,rrr,V,V,V}, /* or.f */ 649145510Sdarrenr {7,2,rrr,V,V,V}, /* xor.f */ 650145510Sdarrenr {8,2,rrr,V,V,V}, /* shf.f */ 651145510Sdarrenr {5,2,rrr,V,S,V}, /* and.f */ 652145510Sdarrenr {6,2,rrr,V,S,V}, /* or.f */ 653145510Sdarrenr {7,2,rrr,V,S,V}, /* xor.f */ 654145510Sdarrenr {8,2,rrr,V,S,V}, /* shf.f */ 655145510Sdarrenr {9,11,rrr,V,V,V}, /* add.s.f */ 656145510Sdarrenr {9,12,rrr,V,V,V}, /* add.d.f */ 657145510Sdarrenr {10,11,rrr,V,V,V}, /* sub.s.f */ 658145510Sdarrenr {10,12,rrr,V,V,V}, /* sub.d.f */ 659145510Sdarrenr {9,11,rrr,V,S,V}, /* add.s.f */ 660145510Sdarrenr {9,12,rrr,V,S,V}, /* add.d.f */ 661145510Sdarrenr {10,11,rrr,V,S,V}, /* sub.s.f */ 662145510Sdarrenr {10,12,rrr,V,S,V}, /* sub.d.f */ 663145510Sdarrenr {9,13,rrr,V,V,V}, /* add.b.f */ 664145510Sdarrenr {9,14,rrr,V,V,V}, /* add.h.f */ 665145510Sdarrenr {9,15,rrr,V,V,V}, /* add.w.f */ 666145510Sdarrenr {9,16,rrr,V,V,V}, /* add.l.f */ 667145510Sdarrenr {9,13,rrr,V,S,V}, /* add.b.f */ 668145510Sdarrenr {9,14,rrr,V,S,V}, /* add.h.f */ 669170268Sdarrenr {9,15,rrr,V,S,V}, /* add.w.f */ 670145510Sdarrenr {9,16,rrr,V,S,V}, /* add.l.f */ 671170268Sdarrenr {10,13,rrr,V,V,V}, /* sub.b.f */ 672255332Scy {10,14,rrr,V,V,V}, /* sub.h.f */ 673255332Scy {10,15,rrr,V,V,V}, /* sub.w.f */ 674145510Sdarrenr {10,16,rrr,V,V,V}, /* sub.l.f */ 675170268Sdarrenr {10,13,rrr,V,S,V}, /* sub.b.f */ 676170268Sdarrenr {10,14,rrr,V,S,V}, /* sub.h.f */ 677170268Sdarrenr {10,15,rrr,V,S,V}, /* sub.w.f */ 678255332Scy {10,16,rrr,V,S,V}, /* sub.l.f */ 679145510Sdarrenr {3,13,rrr,V,V,V}, /* mul.b.f */ 680170268Sdarrenr {3,14,rrr,V,V,V}, /* mul.h.f */ 681170268Sdarrenr {3,15,rrr,V,V,V}, /* mul.w.f */ 682170268Sdarrenr {3,16,rrr,V,V,V}, /* mul.l.f */ 683170268Sdarrenr {3,13,rrr,V,S,V}, /* mul.b.f */ 684170268Sdarrenr {3,14,rrr,V,S,V}, /* mul.h.f */ 685170268Sdarrenr {3,15,rrr,V,S,V}, /* mul.w.f */ 686170268Sdarrenr {3,16,rrr,V,S,V}, /* mul.l.f */ 687170268Sdarrenr {4,13,rrr,V,V,V}, /* div.b.f */ 688170268Sdarrenr {4,14,rrr,V,V,V}, /* div.h.f */ 689170268Sdarrenr {4,15,rrr,V,V,V}, /* div.w.f */ 690170268Sdarrenr {4,16,rrr,V,V,V}, /* div.l.f */ 691170268Sdarrenr {4,13,rrr,V,S,V}, /* div.b.f */ 692170268Sdarrenr {4,14,rrr,V,S,V}, /* div.h.f */ 693170268Sdarrenr {4,15,rrr,V,S,V}, /* div.w.f */ 694170268Sdarrenr {4,16,rrr,V,S,V}, /* div.l.f */ 695255332Scy}; 696170268Sdarrenr 697145510Sdarrenrconst struct formstr e0_format1[] = { 698255332Scy {0,0,0,0,0,0}, 699255332Scy {94,0,a3,0,0,0}, /* tst */ 700255332Scy {95,0,a3,0,0,0}, /* lck */ 701170268Sdarrenr {96,0,a3,0,0,0}, /* ulk */ 702145510Sdarrenr {17,0,a1r,S,0,0}, /* ldea */ 703170268Sdarrenr {97,0,a1r,A,0,0}, /* spawn */ 704255332Scy {98,0,a1r,A,0,0}, /* ldcmr */ 705255332Scy {99,0,a2r,A,0,0}, /* stcmr */ 706255332Scy {100,0,a1r,A,0,0}, /* popr */ 707170268Sdarrenr {101,0,a2r,A,0,0}, /* pshr */ 708255332Scy {102,7,a1r,A,0,0}, /* rcvr.w */ 709255332Scy {103,7,a2r,A,0,0}, /* matm.w */ 710170268Sdarrenr {104,7,a2r,A,0,0}, /* sndr.w */ 711255332Scy {104,8,a2r,S,0,0}, /* sndr.l */ 712255332Scy {102,8,a1r,S,0,0}, /* rcvr.l */ 713255332Scy {103,8,a2r,S,0,0}, /* matm.l */ 714170268Sdarrenr {0,0,0,0,0,0}, 715255332Scy {0,0,0,0,0,0}, 716255332Scy {0,0,0,0,0,0}, 717255332Scy {0,0,0,0,0,0}, 718255332Scy {0,0,0,0,0,0}, 719255332Scy {0,0,0,0,0,0}, 720255332Scy {0,0,0,0,0,0}, 721255332Scy {0,0,0,0,0,0}, 722255332Scy {0,0,0,0,0,0}, 723255332Scy {0,0,0,0,0,0}, 724255332Scy {0,0,0,0,0,0}, 725255332Scy {0,0,0,0,0,0}, 726255332Scy {0,0,0,0,0,0}, 727255332Scy {0,0,0,0,0,0}, 728255332Scy {0,0,0,0,0,0}, 729255332Scy {0,0,0,0,0,0}, 730255332Scy {105,7,a2r,A,0,0}, /* putr.w */ 731255332Scy {105,8,a2r,S,0,0}, /* putr.l */ 732255332Scy {106,7,a1r,A,0,0}, /* getr.w */ 733255332Scy {106,8,a1r,S,0,0}, /* getr.l */ 734255332Scy {26,13,a2r,S,0,0}, /* ste.b.f */ 735255332Scy {26,14,a2r,S,0,0}, /* ste.h.f */ 736255332Scy {26,15,a2r,S,0,0}, /* ste.w.f */ 737255332Scy {26,16,a2r,S,0,0}, /* ste.l.f */ 738255332Scy {107,7,a2r,A,0,0}, /* matr.w */ 739255332Scy {108,7,a2r,A,0,0}, /* mat.w */ 740255332Scy {109,7,a1r,A,0,0}, /* get.w */ 741255332Scy {110,7,a1r,A,0,0}, /* rcv.w */ 742255332Scy {0,0,0,0,0,0}, 743255332Scy {111,7,a1r,A,0,0}, /* inc.w */ 744255332Scy {112,7,a2r,A,0,0}, /* put.w */ 745255332Scy {113,7,a2r,A,0,0}, /* snd.w */ 746255332Scy {107,8,a2r,S,0,0}, /* matr.l */ 747255332Scy {108,8,a2r,S,0,0}, /* mat.l */ 748255332Scy {109,8,a1r,S,0,0}, /* get.l */ 749255332Scy {110,8,a1r,S,0,0}, /* rcv.l */ 750255332Scy {0,0,0,0,0,0}, 751255332Scy {111,8,a1r,S,0,0}, /* inc.l */ 752255332Scy {112,8,a2r,S,0,0}, /* put.l */ 753255332Scy {113,8,a2r,S,0,0}, /* snd.l */ 754255332Scy {18,13,a1r,V,0,0}, /* ld.b.f */ 755255332Scy {18,14,a1r,V,0,0}, /* ld.h.f */ 756255332Scy {18,15,a1r,V,0,0}, /* ld.w.f */ 757255332Scy {18,16,a1r,V,0,0}, /* ld.l.f */ 758255332Scy {21,13,a2r,V,0,0}, /* st.b.f */ 759255332Scy {21,14,a2r,V,0,0}, /* st.h.f */ 760255332Scy {21,15,a2r,V,0,0}, /* st.w.f */ 761255332Scy {21,16,a2r,V,0,0}, /* st.l.f */ 762255332Scy}; 763255332Scy 764255332Scyconst struct formstr e0_format2[] = { 765255332Scy {28,5,rr,V,V,0}, /* cvtw.b */ 766255332Scy {28,6,rr,V,V,0}, /* cvtw.h */ 767255332Scy {29,7,rr,V,V,0}, /* cvtb.w */ 768255332Scy {30,7,rr,V,V,0}, /* cvth.w */ 769255332Scy {28,13,rr,V,V,0}, /* cvtw.b.f */ 770255332Scy {28,14,rr,V,V,0}, /* cvtw.h.f */ 771255332Scy {29,15,rr,V,V,0}, /* cvtb.w.f */ 772255332Scy {30,15,rr,V,V,0}, /* cvth.w.f */ 773255332Scy {31,8,rr,V,V,0}, /* cvts.l */ 774255332Scy {32,7,rr,V,V,0}, /* cvtd.w */ 775255332Scy {33,3,rr,V,V,0}, /* cvtl.s */ 776255332Scy {28,4,rr,V,V,0}, /* cvtw.d */ 777255332Scy {31,16,rr,V,V,0}, /* cvts.l.f */ 778255332Scy {32,15,rr,V,V,0}, /* cvtd.w.f */ 779255332Scy {33,11,rr,V,V,0}, /* cvtl.s.f */ 780255332Scy {28,12,rr,V,V,0}, /* cvtw.d.f */ 781255332Scy {114,0,rr,S,S,0}, /* enal */ 782255332Scy {8,7,rr,S,S,0}, /* shf.w */ 783255332Scy {115,0,rr,S,S,0}, /* enag */ 784255332Scy {0,0,0,0,0,0}, 785255332Scy {28,4,rr,S,S,0}, /* cvtw.d */ 786255332Scy {32,7,rr,S,S,0}, /* cvtd.w */ 787255332Scy {0,0,0,0,0,0}, 788255332Scy {0,0,0,0,0,0}, 789255332Scy {0,0,0,0,0,0}, 790255332Scy {0,0,0,0,0,0}, 791255332Scy {0,0,0,0,0,0}, 792255332Scy {0,0,0,0,0,0}, 793255332Scy {116,3,rr,S,S,0}, /* frint.s */ 794255332Scy {116,4,rr,S,S,0}, /* frint.d */ 795255332Scy {0,0,0,0,0,0}, 796255332Scy {0,0,0,0,0,0}, 797255332Scy {0,0,0,0,0,0}, 798255332Scy {0,0,0,0,0,0}, 799255332Scy {0,0,0,0,0,0}, 800255332Scy {0,0,0,0,0,0}, 801255332Scy {0,0,0,0,0,0}, 802255332Scy {0,0,0,0,0,0}, 803255332Scy {0,0,0,0,0,0}, 804255332Scy {0,0,0,0,0,0}, 805255332Scy {0,0,0,0,0,0}, 806255332Scy {0,0,0,0,0,0}, 807255332Scy {0,0,0,0,0,0}, 808255332Scy {0,0,0,0,0,0}, 809255332Scy {0,0,0,0,0,0}, 810255332Scy {0,0,0,0,0,0}, 811255332Scy {0,0,0,0,0,0}, 812255332Scy {0,0,0,0,0,0}, 813255332Scy {0,0,0,0,0,0}, 814255332Scy {0,0,0,0,0,0}, 815255332Scy {0,0,0,0,0,0}, 816255332Scy {0,0,0,0,0,0}, 817255332Scy {0,0,0,0,0,0}, 818255332Scy {0,0,0,0,0,0}, 819255332Scy {0,0,0,0,0,0}, 820255332Scy {0,0,0,0,0,0}, 821255332Scy {0,0,0,0,0,0}, 822255332Scy {0,0,0,0,0,0}, 823255332Scy {0,0,0,0,0,0}, 824255332Scy {0,0,0,0,0,0}, 825255332Scy {0,0,0,0,0,0}, 826255332Scy {0,0,0,0,0,0}, 827255332Scy {0,0,0,0,0,0}, 828255332Scy {0,0,0,0,0,0}, 829255332Scy {0,0,0,0,0,0}, 830255332Scy {0,0,0,0,0,0}, 831255332Scy {0,0,0,0,0,0}, 832255332Scy {0,0,0,0,0,0}, 833255332Scy {0,0,0,0,0,0}, 834255332Scy {0,0,0,0,0,0}, 835255332Scy {0,0,0,0,0,0}, 836255332Scy {0,0,0,0,0,0}, 837255332Scy {0,0,0,0,0,0}, 838255332Scy {0,0,0,0,0,0}, 839255332Scy {0,0,0,0,0,0}, 840255332Scy {0,0,0,0,0,0}, 841255332Scy {0,0,0,0,0,0}, 842255332Scy {0,0,0,0,0,0}, 843255332Scy {0,0,0,0,0,0}, 844255332Scy {0,0,0,0,0,0}, 845255332Scy {0,0,0,0,0,0}, 846255332Scy {0,0,0,0,0,0}, 847255332Scy {0,0,0,0,0,0}, 848255332Scy {0,0,0,0,0,0}, 849255332Scy {0,0,0,0,0,0}, 850255332Scy {0,0,0,0,0,0}, 851255332Scy {0,0,0,0,0,0}, 852255332Scy {0,0,0,0,0,0}, 853255332Scy {0,0,0,0,0,0}, 854255332Scy {0,0,0,0,0,0}, 855145510Sdarrenr {0,0,0,0,0,0}, 856255332Scy {0,0,0,0,0,0}, 857255332Scy {0,0,0,0,0,0}, 858145510Sdarrenr {0,0,0,0,0,0}, 859 {0,0,0,0,0,0}, 860 {0,0,0,0,0,0}, 861 {0,0,0,0,0,0}, 862 {0,0,0,0,0,0}, 863 {116,3,rr,V,V,0}, /* frint.s */ 864 {116,4,rr,V,V,0}, /* frint.d */ 865 {0,0,0,0,0,0}, 866 {0,0,0,0,0,0}, 867 {116,11,rr,V,V,0}, /* frint.s.f */ 868 {116,12,rr,V,V,0}, /* frint.d.f */ 869 {0,0,0,0,0,0}, 870 {0,0,0,0,0,0}, 871 {0,0,0,0,0,0}, 872 {0,0,0,0,0,0}, 873 {0,0,0,0,0,0}, 874 {0,0,0,0,0,0}, 875 {0,0,0,0,0,0}, 876 {0,0,0,0,0,0}, 877 {0,0,0,0,0,0}, 878 {0,0,0,0,0,0}, 879 {0,0,0,0,0,0}, 880 {0,0,0,0,0,0}, 881 {81,3,rr,V,V,0}, /* sqrt.s */ 882 {81,4,rr,V,V,0}, /* sqrt.d */ 883 {0,0,0,0,0,0}, 884 {0,0,0,0,0,0}, 885 {0,0,0,0,0,0}, 886 {0,0,0,0,0,0}, 887 {0,0,0,0,0,0}, 888 {0,0,0,0,0,0}, 889 {81,11,rr,V,V,0}, /* sqrt.s.f */ 890 {81,12,rr,V,V,0}, /* sqrt.d.f */ 891 {0,0,0,0,0,0}, 892 {0,0,0,0,0,0}, 893}; 894 895const struct formstr e0_format3[] = { 896 {32,11,rr,V,V,0}, /* cvtd.s.f */ 897 {31,12,rr,V,V,0}, /* cvts.d.f */ 898 {33,12,rr,V,V,0}, /* cvtl.d.f */ 899 {32,16,rr,V,V,0}, /* cvtd.l.f */ 900 {0,0,0,0,0,0}, 901 {0,0,0,0,0,0}, 902 {0,0,0,0,0,0}, 903 {0,0,0,0,0,0}, 904 {36,2,rr,V,V,0}, /* tzc.f */ 905 {44,2,rr,V,V,0}, /* lop.f */ 906 {117,2,rr,V,V,0}, /* xpnd.f */ 907 {42,2,rr,V,V,0}, /* not.f */ 908 {8,2,rr,S,V,0}, /* shf.f */ 909 {35,17,rr,V,V,0}, /* plc.t.f */ 910 {0,0,0,0,0,0}, 911 {0,0,0,0,0,0}, 912 {37,11,rr,V,V,0}, /* eq.s.f */ 913 {37,12,rr,V,V,0}, /* eq.d.f */ 914 {43,11,rr,V,V,0}, /* neg.s.f */ 915 {43,12,rr,V,V,0}, /* neg.d.f */ 916 {37,11,rr,S,V,0}, /* eq.s.f */ 917 {37,12,rr,S,V,0}, /* eq.d.f */ 918 {0,0,0,0,0,0}, 919 {0,0,0,0,0,0}, 920 {40,11,rr,V,V,0}, /* le.s.f */ 921 {40,12,rr,V,V,0}, /* le.d.f */ 922 {41,11,rr,V,V,0}, /* lt.s.f */ 923 {41,12,rr,V,V,0}, /* lt.d.f */ 924 {40,11,rr,S,V,0}, /* le.s.f */ 925 {40,12,rr,S,V,0}, /* le.d.f */ 926 {41,11,rr,S,V,0}, /* lt.s.f */ 927 {41,12,rr,S,V,0}, /* lt.d.f */ 928 {37,13,rr,V,V,0}, /* eq.b.f */ 929 {37,14,rr,V,V,0}, /* eq.h.f */ 930 {37,15,rr,V,V,0}, /* eq.w.f */ 931 {37,16,rr,V,V,0}, /* eq.l.f */ 932 {37,13,rr,S,V,0}, /* eq.b.f */ 933 {37,14,rr,S,V,0}, /* eq.h.f */ 934 {37,15,rr,S,V,0}, /* eq.w.f */ 935 {37,16,rr,S,V,0}, /* eq.l.f */ 936 {40,13,rr,V,V,0}, /* le.b.f */ 937 {40,14,rr,V,V,0}, /* le.h.f */ 938 {40,15,rr,V,V,0}, /* le.w.f */ 939 {40,16,rr,V,V,0}, /* le.l.f */ 940 {40,13,rr,S,V,0}, /* le.b.f */ 941 {40,14,rr,S,V,0}, /* le.h.f */ 942 {40,15,rr,S,V,0}, /* le.w.f */ 943 {40,16,rr,S,V,0}, /* le.l.f */ 944 {41,13,rr,V,V,0}, /* lt.b.f */ 945 {41,14,rr,V,V,0}, /* lt.h.f */ 946 {41,15,rr,V,V,0}, /* lt.w.f */ 947 {41,16,rr,V,V,0}, /* lt.l.f */ 948 {41,13,rr,S,V,0}, /* lt.b.f */ 949 {41,14,rr,S,V,0}, /* lt.h.f */ 950 {41,15,rr,S,V,0}, /* lt.w.f */ 951 {41,16,rr,S,V,0}, /* lt.l.f */ 952 {43,13,rr,V,V,0}, /* neg.b.f */ 953 {43,14,rr,V,V,0}, /* neg.h.f */ 954 {43,15,rr,V,V,0}, /* neg.w.f */ 955 {43,16,rr,V,V,0}, /* neg.l.f */ 956 {0,0,0,0,0,0}, 957 {0,0,0,0,0,0}, 958 {0,0,0,0,0,0}, 959 {0,0,0,0,0,0}, 960}; 961 962const struct formstr e0_format4[] = { 963 {0,0,0,0,0,0}, 964 {0,0,0,0,0,0}, 965 {0,0,0,0,0,0}, 966 {0,0,0,0,0,0}, 967 {0,0,0,0,0,0}, 968 {0,0,0,0,0,0}, 969 {0,0,0,0,0,0}, 970 {0,0,0,0,0,0}, 971}; 972 973const struct formstr e0_format5[] = { 974 {51,13,rr,V,V,0}, /* ldvi.b.f */ 975 {51,14,rr,V,V,0}, /* ldvi.h.f */ 976 {51,15,rr,V,V,0}, /* ldvi.w.f */ 977 {51,16,rr,V,V,0}, /* ldvi.l.f */ 978 {28,11,rr,V,V,0}, /* cvtw.s.f */ 979 {31,15,rr,V,V,0}, /* cvts.w.f */ 980 {28,16,rr,V,V,0}, /* cvtw.l.f */ 981 {33,15,rr,V,V,0}, /* cvtl.w.f */ 982 {52,13,rxr,V,V,0}, /* stvi.b.f */ 983 {52,14,rxr,V,V,0}, /* stvi.h.f */ 984 {52,15,rxr,V,V,0}, /* stvi.w.f */ 985 {52,16,rxr,V,V,0}, /* stvi.l.f */ 986 {52,13,rxr,S,V,0}, /* stvi.b.f */ 987 {52,14,rxr,S,V,0}, /* stvi.h.f */ 988 {52,15,rxr,S,V,0}, /* stvi.w.f */ 989 {52,16,rxr,S,V,0}, /* stvi.l.f */ 990}; 991 992const struct formstr e0_format6[] = { 993 {0,0,rxl,S,CIR,0}, /* mov */ 994 {0,0,lr,CIR,S,0}, /* mov */ 995 {0,0,lr,TOC,S,0}, /* mov */ 996 {0,0,lr,CPUID,S,0}, /* mov */ 997 {0,0,rxl,S,TTR,0}, /* mov */ 998 {0,0,lr,TTR,S,0}, /* mov */ 999 {118,0,nops,0,0,0}, /* ctrsl */ 1000 {119,0,nops,0,0,0}, /* ctrsg */ 1001 {0,0,rxl,S,VMU,0}, /* mov */ 1002 {0,0,lr,VMU,S,0}, /* mov */ 1003 {0,0,rxl,S,VML,0}, /* mov */ 1004 {0,0,lr,VML,S,0}, /* mov */ 1005 {0,0,rxl,S,ICR,0}, /* mov */ 1006 {0,0,lr,ICR,S,0}, /* mov */ 1007 {0,0,rxl,S,TCPU,0}, /* mov */ 1008 {0,0,lr,TCPU,S,0}, /* mov */ 1009 {0,0,0,0,0,0}, 1010 {0,0,0,0,0,0}, 1011 {0,0,0,0,0,0}, 1012 {0,0,0,0,0,0}, 1013 {120,0,nops,0,0,0}, /* stop */ 1014 {0,0,0,0,0,0}, 1015 {0,0,rxl,S,TID,0}, /* mov */ 1016 {0,0,lr,TID,S,0}, /* mov */ 1017 {0,0,0,0,0,0}, 1018 {0,0,0,0,0,0}, 1019 {0,0,0,0,0,0}, 1020 {0,0,0,0,0,0}, 1021 {0,0,0,0,0,0}, 1022 {0,0,0,0,0,0}, 1023 {0,0,0,0,0,0}, 1024 {0,0,0,0,0,0}, 1025 {0,0,0,0,0,0}, 1026 {0,0,0,0,0,0}, 1027 {0,0,0,0,0,0}, 1028 {0,0,0,0,0,0}, 1029 {0,0,0,0,0,0}, 1030 {0,0,0,0,0,0}, 1031 {0,0,0,0,0,0}, 1032 {0,0,0,0,0,0}, 1033 {0,0,0,0,0,0}, 1034 {0,0,0,0,0,0}, 1035 {0,0,0,0,0,0}, 1036 {0,0,0,0,0,0}, 1037 {0,0,0,0,0,0}, 1038 {0,0,0,0,0,0}, 1039 {0,0,0,0,0,0}, 1040 {0,0,0,0,0,0}, 1041 {0,0,0,0,0,0}, 1042 {0,0,0,0,0,0}, 1043 {0,0,0,0,0,0}, 1044 {0,0,0,0,0,0}, 1045 {0,0,0,0,0,0}, 1046 {0,0,0,0,0,0}, 1047 {0,0,0,0,0,0}, 1048 {0,0,0,0,0,0}, 1049 {0,0,0,0,0,0}, 1050 {0,0,0,0,0,0}, 1051 {0,0,0,0,0,0}, 1052 {0,0,0,0,0,0}, 1053 {0,0,0,0,0,0}, 1054 {0,0,0,0,0,0}, 1055 {0,0,0,0,0,0}, 1056 {0,0,0,0,0,0}, 1057}; 1058 1059const struct formstr e0_format7[] = { 1060 {84,13,r,V,0,0}, /* sum.b.f */ 1061 {84,14,r,V,0,0}, /* sum.h.f */ 1062 {84,15,r,V,0,0}, /* sum.w.f */ 1063 {84,16,r,V,0,0}, /* sum.l.f */ 1064 {85,2,r,V,0,0}, /* all.f */ 1065 {86,2,r,V,0,0}, /* any.f */ 1066 {87,2,r,V,0,0}, /* parity.f */ 1067 {0,0,0,0,0,0}, 1068 {88,13,r,V,0,0}, /* max.b.f */ 1069 {88,14,r,V,0,0}, /* max.h.f */ 1070 {88,15,r,V,0,0}, /* max.w.f */ 1071 {88,16,r,V,0,0}, /* max.l.f */ 1072 {89,13,r,V,0,0}, /* min.b.f */ 1073 {89,14,r,V,0,0}, /* min.h.f */ 1074 {89,15,r,V,0,0}, /* min.w.f */ 1075 {89,16,r,V,0,0}, /* min.l.f */ 1076 {84,11,r,V,0,0}, /* sum.s.f */ 1077 {84,12,r,V,0,0}, /* sum.d.f */ 1078 {90,11,r,V,0,0}, /* prod.s.f */ 1079 {90,12,r,V,0,0}, /* prod.d.f */ 1080 {88,11,r,V,0,0}, /* max.s.f */ 1081 {88,12,r,V,0,0}, /* max.d.f */ 1082 {89,11,r,V,0,0}, /* min.s.f */ 1083 {89,12,r,V,0,0}, /* min.d.f */ 1084 {90,13,r,V,0,0}, /* prod.b.f */ 1085 {90,14,r,V,0,0}, /* prod.h.f */ 1086 {90,15,r,V,0,0}, /* prod.w.f */ 1087 {90,16,r,V,0,0}, /* prod.l.f */ 1088 {0,0,0,0,0,0}, 1089 {0,0,0,0,0,0}, 1090 {0,0,0,0,0,0}, 1091 {0,0,0,0,0,0}, 1092}; 1093 1094const struct formstr e1_format0[] = { 1095 {0,0,0,0,0,0}, 1096 {0,0,0,0,0,0}, 1097 {0,0,0,0,0,0}, 1098 {0,0,0,0,0,0}, 1099 {10,18,rrr,S,V,V}, /* sub.s.t */ 1100 {10,19,rrr,S,V,V}, /* sub.d.t */ 1101 {4,18,rrr,S,V,V}, /* div.s.t */ 1102 {4,19,rrr,S,V,V}, /* div.d.t */ 1103 {3,18,rrr,V,V,V}, /* mul.s.t */ 1104 {3,19,rrr,V,V,V}, /* mul.d.t */ 1105 {4,18,rrr,V,V,V}, /* div.s.t */ 1106 {4,19,rrr,V,V,V}, /* div.d.t */ 1107 {3,18,rrr,V,S,V}, /* mul.s.t */ 1108 {3,19,rrr,V,S,V}, /* mul.d.t */ 1109 {4,18,rrr,V,S,V}, /* div.s.t */ 1110 {4,19,rrr,V,S,V}, /* div.d.t */ 1111 {5,1,rrr,V,V,V}, /* and.t */ 1112 {6,1,rrr,V,V,V}, /* or.t */ 1113 {7,1,rrr,V,V,V}, /* xor.t */ 1114 {8,1,rrr,V,V,V}, /* shf.t */ 1115 {5,1,rrr,V,S,V}, /* and.t */ 1116 {6,1,rrr,V,S,V}, /* or.t */ 1117 {7,1,rrr,V,S,V}, /* xor.t */ 1118 {8,1,rrr,V,S,V}, /* shf.t */ 1119 {9,18,rrr,V,V,V}, /* add.s.t */ 1120 {9,19,rrr,V,V,V}, /* add.d.t */ 1121 {10,18,rrr,V,V,V}, /* sub.s.t */ 1122 {10,19,rrr,V,V,V}, /* sub.d.t */ 1123 {9,18,rrr,V,S,V}, /* add.s.t */ 1124 {9,19,rrr,V,S,V}, /* add.d.t */ 1125 {10,18,rrr,V,S,V}, /* sub.s.t */ 1126 {10,19,rrr,V,S,V}, /* sub.d.t */ 1127 {9,20,rrr,V,V,V}, /* add.b.t */ 1128 {9,21,rrr,V,V,V}, /* add.h.t */ 1129 {9,22,rrr,V,V,V}, /* add.w.t */ 1130 {9,23,rrr,V,V,V}, /* add.l.t */ 1131 {9,20,rrr,V,S,V}, /* add.b.t */ 1132 {9,21,rrr,V,S,V}, /* add.h.t */ 1133 {9,22,rrr,V,S,V}, /* add.w.t */ 1134 {9,23,rrr,V,S,V}, /* add.l.t */ 1135 {10,20,rrr,V,V,V}, /* sub.b.t */ 1136 {10,21,rrr,V,V,V}, /* sub.h.t */ 1137 {10,22,rrr,V,V,V}, /* sub.w.t */ 1138 {10,23,rrr,V,V,V}, /* sub.l.t */ 1139 {10,20,rrr,V,S,V}, /* sub.b.t */ 1140 {10,21,rrr,V,S,V}, /* sub.h.t */ 1141 {10,22,rrr,V,S,V}, /* sub.w.t */ 1142 {10,23,rrr,V,S,V}, /* sub.l.t */ 1143 {3,20,rrr,V,V,V}, /* mul.b.t */ 1144 {3,21,rrr,V,V,V}, /* mul.h.t */ 1145 {3,22,rrr,V,V,V}, /* mul.w.t */ 1146 {3,23,rrr,V,V,V}, /* mul.l.t */ 1147 {3,20,rrr,V,S,V}, /* mul.b.t */ 1148 {3,21,rrr,V,S,V}, /* mul.h.t */ 1149 {3,22,rrr,V,S,V}, /* mul.w.t */ 1150 {3,23,rrr,V,S,V}, /* mul.l.t */ 1151 {4,20,rrr,V,V,V}, /* div.b.t */ 1152 {4,21,rrr,V,V,V}, /* div.h.t */ 1153 {4,22,rrr,V,V,V}, /* div.w.t */ 1154 {4,23,rrr,V,V,V}, /* div.l.t */ 1155 {4,20,rrr,V,S,V}, /* div.b.t */ 1156 {4,21,rrr,V,S,V}, /* div.h.t */ 1157 {4,22,rrr,V,S,V}, /* div.w.t */ 1158 {4,23,rrr,V,S,V}, /* div.l.t */ 1159}; 1160 1161const struct formstr e1_format1[] = { 1162 {0,0,0,0,0,0}, 1163 {0,0,0,0,0,0}, 1164 {0,0,0,0,0,0}, 1165 {0,0,0,0,0,0}, 1166 {0,0,0,0,0,0}, 1167 {0,0,0,0,0,0}, 1168 {0,0,0,0,0,0}, 1169 {0,0,0,0,0,0}, 1170 {0,0,0,0,0,0}, 1171 {0,0,0,0,0,0}, 1172 {0,0,0,0,0,0}, 1173 {0,0,0,0,0,0}, 1174 {0,0,0,0,0,0}, 1175 {0,0,0,0,0,0}, 1176 {0,0,0,0,0,0}, 1177 {0,0,0,0,0,0}, 1178 {0,0,0,0,0,0}, 1179 {0,0,0,0,0,0}, 1180 {0,0,0,0,0,0}, 1181 {0,0,0,0,0,0}, 1182 {0,0,0,0,0,0}, 1183 {0,0,0,0,0,0}, 1184 {0,0,0,0,0,0}, 1185 {0,0,0,0,0,0}, 1186 {0,0,0,0,0,0}, 1187 {0,0,0,0,0,0}, 1188 {0,0,0,0,0,0}, 1189 {0,0,0,0,0,0}, 1190 {0,0,0,0,0,0}, 1191 {0,0,0,0,0,0}, 1192 {0,0,0,0,0,0}, 1193 {0,0,0,0,0,0}, 1194 {0,0,0,0,0,0}, 1195 {0,0,0,0,0,0}, 1196 {0,0,0,0,0,0}, 1197 {0,0,0,0,0,0}, 1198 {26,20,a2r,S,0,0}, /* ste.b.t */ 1199 {26,21,a2r,S,0,0}, /* ste.h.t */ 1200 {26,22,a2r,S,0,0}, /* ste.w.t */ 1201 {26,23,a2r,S,0,0}, /* ste.l.t */ 1202 {0,0,0,0,0,0}, 1203 {0,0,0,0,0,0}, 1204 {0,0,0,0,0,0}, 1205 {0,0,0,0,0,0}, 1206 {0,0,0,0,0,0}, 1207 {0,0,0,0,0,0}, 1208 {0,0,0,0,0,0}, 1209 {0,0,0,0,0,0}, 1210 {0,0,0,0,0,0}, 1211 {0,0,0,0,0,0}, 1212 {0,0,0,0,0,0}, 1213 {0,0,0,0,0,0}, 1214 {0,0,0,0,0,0}, 1215 {0,0,0,0,0,0}, 1216 {0,0,0,0,0,0}, 1217 {0,0,0,0,0,0}, 1218 {18,20,a1r,V,0,0}, /* ld.b.t */ 1219 {18,21,a1r,V,0,0}, /* ld.h.t */ 1220 {18,22,a1r,V,0,0}, /* ld.w.t */ 1221 {18,23,a1r,V,0,0}, /* ld.l.t */ 1222 {21,20,a2r,V,0,0}, /* st.b.t */ 1223 {21,21,a2r,V,0,0}, /* st.h.t */ 1224 {21,22,a2r,V,0,0}, /* st.w.t */ 1225 {21,23,a2r,V,0,0}, /* st.l.t */ 1226}; 1227 1228const struct formstr e1_format2[] = { 1229 {0,0,0,0,0,0}, 1230 {0,0,0,0,0,0}, 1231 {0,0,0,0,0,0}, 1232 {0,0,0,0,0,0}, 1233 {28,20,rr,V,V,0}, /* cvtw.b.t */ 1234 {28,21,rr,V,V,0}, /* cvtw.h.t */ 1235 {29,22,rr,V,V,0}, /* cvtb.w.t */ 1236 {30,22,rr,V,V,0}, /* cvth.w.t */ 1237 {0,0,0,0,0,0}, 1238 {0,0,0,0,0,0}, 1239 {0,0,0,0,0,0}, 1240 {0,0,0,0,0,0}, 1241 {31,23,rr,V,V,0}, /* cvts.l.t */ 1242 {32,22,rr,V,V,0}, /* cvtd.w.t */ 1243 {33,18,rr,V,V,0}, /* cvtl.s.t */ 1244 {28,19,rr,V,V,0}, /* cvtw.d.t */ 1245 {0,0,0,0,0,0}, 1246 {0,0,0,0,0,0}, 1247 {0,0,0,0,0,0}, 1248 {0,0,0,0,0,0}, 1249 {0,0,0,0,0,0}, 1250 {0,0,0,0,0,0}, 1251 {0,0,0,0,0,0}, 1252 {0,0,0,0,0,0}, 1253 {0,0,0,0,0,0}, 1254 {0,0,0,0,0,0}, 1255 {0,0,0,0,0,0}, 1256 {0,0,0,0,0,0}, 1257 {0,0,0,0,0,0}, 1258 {0,0,0,0,0,0}, 1259 {0,0,0,0,0,0}, 1260 {0,0,0,0,0,0}, 1261 {0,0,0,0,0,0}, 1262 {0,0,0,0,0,0}, 1263 {0,0,0,0,0,0}, 1264 {0,0,0,0,0,0}, 1265 {0,0,0,0,0,0}, 1266 {0,0,0,0,0,0}, 1267 {0,0,0,0,0,0}, 1268 {0,0,0,0,0,0}, 1269 {0,0,0,0,0,0}, 1270 {0,0,0,0,0,0}, 1271 {0,0,0,0,0,0}, 1272 {0,0,0,0,0,0}, 1273 {0,0,0,0,0,0}, 1274 {0,0,0,0,0,0}, 1275 {0,0,0,0,0,0}, 1276 {0,0,0,0,0,0}, 1277 {0,0,0,0,0,0}, 1278 {0,0,0,0,0,0}, 1279 {0,0,0,0,0,0}, 1280 {0,0,0,0,0,0}, 1281 {0,0,0,0,0,0}, 1282 {0,0,0,0,0,0}, 1283 {0,0,0,0,0,0}, 1284 {0,0,0,0,0,0}, 1285 {0,0,0,0,0,0}, 1286 {0,0,0,0,0,0}, 1287 {0,0,0,0,0,0}, 1288 {0,0,0,0,0,0}, 1289 {0,0,0,0,0,0}, 1290 {0,0,0,0,0,0}, 1291 {0,0,0,0,0,0}, 1292 {0,0,0,0,0,0}, 1293 {0,0,0,0,0,0}, 1294 {0,0,0,0,0,0}, 1295 {0,0,0,0,0,0}, 1296 {0,0,0,0,0,0}, 1297 {0,0,0,0,0,0}, 1298 {0,0,0,0,0,0}, 1299 {0,0,0,0,0,0}, 1300 {0,0,0,0,0,0}, 1301 {0,0,0,0,0,0}, 1302 {0,0,0,0,0,0}, 1303 {0,0,0,0,0,0}, 1304 {0,0,0,0,0,0}, 1305 {0,0,0,0,0,0}, 1306 {0,0,0,0,0,0}, 1307 {0,0,0,0,0,0}, 1308 {0,0,0,0,0,0}, 1309 {0,0,0,0,0,0}, 1310 {0,0,0,0,0,0}, 1311 {0,0,0,0,0,0}, 1312 {0,0,0,0,0,0}, 1313 {0,0,0,0,0,0}, 1314 {0,0,0,0,0,0}, 1315 {0,0,0,0,0,0}, 1316 {0,0,0,0,0,0}, 1317 {0,0,0,0,0,0}, 1318 {0,0,0,0,0,0}, 1319 {0,0,0,0,0,0}, 1320 {0,0,0,0,0,0}, 1321 {0,0,0,0,0,0}, 1322 {0,0,0,0,0,0}, 1323 {0,0,0,0,0,0}, 1324 {0,0,0,0,0,0}, 1325 {0,0,0,0,0,0}, 1326 {0,0,0,0,0,0}, 1327 {0,0,0,0,0,0}, 1328 {0,0,0,0,0,0}, 1329 {0,0,0,0,0,0}, 1330 {0,0,0,0,0,0}, 1331 {116,18,rr,V,V,0}, /* frint.s.t */ 1332 {116,19,rr,V,V,0}, /* frint.d.t */ 1333 {0,0,0,0,0,0}, 1334 {0,0,0,0,0,0}, 1335 {0,0,0,0,0,0}, 1336 {0,0,0,0,0,0}, 1337 {0,0,0,0,0,0}, 1338 {0,0,0,0,0,0}, 1339 {0,0,0,0,0,0}, 1340 {0,0,0,0,0,0}, 1341 {0,0,0,0,0,0}, 1342 {0,0,0,0,0,0}, 1343 {0,0,0,0,0,0}, 1344 {0,0,0,0,0,0}, 1345 {0,0,0,0,0,0}, 1346 {0,0,0,0,0,0}, 1347 {0,0,0,0,0,0}, 1348 {0,0,0,0,0,0}, 1349 {0,0,0,0,0,0}, 1350 {0,0,0,0,0,0}, 1351 {0,0,0,0,0,0}, 1352 {0,0,0,0,0,0}, 1353 {81,18,rr,V,V,0}, /* sqrt.s.t */ 1354 {81,19,rr,V,V,0}, /* sqrt.d.t */ 1355 {0,0,0,0,0,0}, 1356 {0,0,0,0,0,0}, 1357}; 1358 1359const struct formstr e1_format3[] = { 1360 {32,18,rr,V,V,0}, /* cvtd.s.t */ 1361 {31,19,rr,V,V,0}, /* cvts.d.t */ 1362 {33,19,rr,V,V,0}, /* cvtl.d.t */ 1363 {32,23,rr,V,V,0}, /* cvtd.l.t */ 1364 {0,0,0,0,0,0}, 1365 {0,0,0,0,0,0}, 1366 {0,0,0,0,0,0}, 1367 {0,0,0,0,0,0}, 1368 {36,1,rr,V,V,0}, /* tzc.t */ 1369 {44,1,rr,V,V,0}, /* lop.t */ 1370 {117,1,rr,V,V,0}, /* xpnd.t */ 1371 {42,1,rr,V,V,0}, /* not.t */ 1372 {8,1,rr,S,V,0}, /* shf.t */ 1373 {35,24,rr,V,V,0}, /* plc.t.t */ 1374 {0,0,0,0,0,0}, 1375 {0,0,0,0,0,0}, 1376 {37,18,rr,V,V,0}, /* eq.s.t */ 1377 {37,19,rr,V,V,0}, /* eq.d.t */ 1378 {43,18,rr,V,V,0}, /* neg.s.t */ 1379 {43,19,rr,V,V,0}, /* neg.d.t */ 1380 {37,18,rr,S,V,0}, /* eq.s.t */ 1381 {37,19,rr,S,V,0}, /* eq.d.t */ 1382 {0,0,0,0,0,0}, 1383 {0,0,0,0,0,0}, 1384 {40,18,rr,V,V,0}, /* le.s.t */ 1385 {40,19,rr,V,V,0}, /* le.d.t */ 1386 {41,18,rr,V,V,0}, /* lt.s.t */ 1387 {41,19,rr,V,V,0}, /* lt.d.t */ 1388 {40,18,rr,S,V,0}, /* le.s.t */ 1389 {40,19,rr,S,V,0}, /* le.d.t */ 1390 {41,18,rr,S,V,0}, /* lt.s.t */ 1391 {41,19,rr,S,V,0}, /* lt.d.t */ 1392 {37,20,rr,V,V,0}, /* eq.b.t */ 1393 {37,21,rr,V,V,0}, /* eq.h.t */ 1394 {37,22,rr,V,V,0}, /* eq.w.t */ 1395 {37,23,rr,V,V,0}, /* eq.l.t */ 1396 {37,20,rr,S,V,0}, /* eq.b.t */ 1397 {37,21,rr,S,V,0}, /* eq.h.t */ 1398 {37,22,rr,S,V,0}, /* eq.w.t */ 1399 {37,23,rr,S,V,0}, /* eq.l.t */ 1400 {40,20,rr,V,V,0}, /* le.b.t */ 1401 {40,21,rr,V,V,0}, /* le.h.t */ 1402 {40,22,rr,V,V,0}, /* le.w.t */ 1403 {40,23,rr,V,V,0}, /* le.l.t */ 1404 {40,20,rr,S,V,0}, /* le.b.t */ 1405 {40,21,rr,S,V,0}, /* le.h.t */ 1406 {40,22,rr,S,V,0}, /* le.w.t */ 1407 {40,23,rr,S,V,0}, /* le.l.t */ 1408 {41,20,rr,V,V,0}, /* lt.b.t */ 1409 {41,21,rr,V,V,0}, /* lt.h.t */ 1410 {41,22,rr,V,V,0}, /* lt.w.t */ 1411 {41,23,rr,V,V,0}, /* lt.l.t */ 1412 {41,20,rr,S,V,0}, /* lt.b.t */ 1413 {41,21,rr,S,V,0}, /* lt.h.t */ 1414 {41,22,rr,S,V,0}, /* lt.w.t */ 1415 {41,23,rr,S,V,0}, /* lt.l.t */ 1416 {43,20,rr,V,V,0}, /* neg.b.t */ 1417 {43,21,rr,V,V,0}, /* neg.h.t */ 1418 {43,22,rr,V,V,0}, /* neg.w.t */ 1419 {43,23,rr,V,V,0}, /* neg.l.t */ 1420 {0,0,0,0,0,0}, 1421 {0,0,0,0,0,0}, 1422 {0,0,0,0,0,0}, 1423 {0,0,0,0,0,0}, 1424}; 1425 1426const struct formstr e1_format4[] = { 1427 {0,0,0,0,0,0}, 1428 {0,0,0,0,0,0}, 1429 {0,0,0,0,0,0}, 1430 {0,0,0,0,0,0}, 1431 {0,0,0,0,0,0}, 1432 {0,0,0,0,0,0}, 1433 {0,0,0,0,0,0}, 1434 {0,0,0,0,0,0}, 1435}; 1436 1437const struct formstr e1_format5[] = { 1438 {51,20,rr,V,V,0}, /* ldvi.b.t */ 1439 {51,21,rr,V,V,0}, /* ldvi.h.t */ 1440 {51,22,rr,V,V,0}, /* ldvi.w.t */ 1441 {51,23,rr,V,V,0}, /* ldvi.l.t */ 1442 {28,18,rr,V,V,0}, /* cvtw.s.t */ 1443 {31,22,rr,V,V,0}, /* cvts.w.t */ 1444 {28,23,rr,V,V,0}, /* cvtw.l.t */ 1445 {33,22,rr,V,V,0}, /* cvtl.w.t */ 1446 {52,20,rxr,V,V,0}, /* stvi.b.t */ 1447 {52,21,rxr,V,V,0}, /* stvi.h.t */ 1448 {52,22,rxr,V,V,0}, /* stvi.w.t */ 1449 {52,23,rxr,V,V,0}, /* stvi.l.t */ 1450 {52,20,rxr,S,V,0}, /* stvi.b.t */ 1451 {52,21,rxr,S,V,0}, /* stvi.h.t */ 1452 {52,22,rxr,S,V,0}, /* stvi.w.t */ 1453 {52,23,rxr,S,V,0}, /* stvi.l.t */ 1454}; 1455 1456const struct formstr e1_format6[] = { 1457 {0,0,0,0,0,0}, 1458 {0,0,0,0,0,0}, 1459 {0,0,0,0,0,0}, 1460 {0,0,0,0,0,0}, 1461 {0,0,0,0,0,0}, 1462 {0,0,0,0,0,0}, 1463 {0,0,0,0,0,0}, 1464 {0,0,0,0,0,0}, 1465 {0,0,0,0,0,0}, 1466 {0,0,0,0,0,0}, 1467 {0,0,0,0,0,0}, 1468 {0,0,0,0,0,0}, 1469 {0,0,0,0,0,0}, 1470 {0,0,0,0,0,0}, 1471 {0,0,0,0,0,0}, 1472 {0,0,0,0,0,0}, 1473 {0,0,0,0,0,0}, 1474 {0,0,0,0,0,0}, 1475 {0,0,0,0,0,0}, 1476 {0,0,0,0,0,0}, 1477 {0,0,0,0,0,0}, 1478 {0,0,0,0,0,0}, 1479 {0,0,0,0,0,0}, 1480 {0,0,0,0,0,0}, 1481 {0,0,0,0,0,0}, 1482 {0,0,0,0,0,0}, 1483 {0,0,0,0,0,0}, 1484 {0,0,0,0,0,0}, 1485 {0,0,0,0,0,0}, 1486 {0,0,0,0,0,0}, 1487 {0,0,0,0,0,0}, 1488 {0,0,0,0,0,0}, 1489 {0,0,0,0,0,0}, 1490 {0,0,0,0,0,0}, 1491 {0,0,0,0,0,0}, 1492 {0,0,0,0,0,0}, 1493 {0,0,0,0,0,0}, 1494 {0,0,0,0,0,0}, 1495 {0,0,0,0,0,0}, 1496 {0,0,0,0,0,0}, 1497 {0,0,0,0,0,0}, 1498 {0,0,0,0,0,0}, 1499 {0,0,0,0,0,0}, 1500 {0,0,0,0,0,0}, 1501 {0,0,0,0,0,0}, 1502 {0,0,0,0,0,0}, 1503 {0,0,0,0,0,0}, 1504 {0,0,0,0,0,0}, 1505 {0,0,0,0,0,0}, 1506 {0,0,0,0,0,0}, 1507 {0,0,0,0,0,0}, 1508 {0,0,0,0,0,0}, 1509 {0,0,0,0,0,0}, 1510 {0,0,0,0,0,0}, 1511 {0,0,0,0,0,0}, 1512 {0,0,0,0,0,0}, 1513 {0,0,0,0,0,0}, 1514 {0,0,0,0,0,0}, 1515 {0,0,0,0,0,0}, 1516 {0,0,0,0,0,0}, 1517 {0,0,0,0,0,0}, 1518 {0,0,0,0,0,0}, 1519 {0,0,0,0,0,0}, 1520 {0,0,0,0,0,0}, 1521}; 1522 1523const struct formstr e1_format7[] = { 1524 {84,20,r,V,0,0}, /* sum.b.t */ 1525 {84,21,r,V,0,0}, /* sum.h.t */ 1526 {84,22,r,V,0,0}, /* sum.w.t */ 1527 {84,23,r,V,0,0}, /* sum.l.t */ 1528 {85,1,r,V,0,0}, /* all.t */ 1529 {86,1,r,V,0,0}, /* any.t */ 1530 {87,1,r,V,0,0}, /* parity.t */ 1531 {0,0,0,0,0,0}, 1532 {88,20,r,V,0,0}, /* max.b.t */ 1533 {88,21,r,V,0,0}, /* max.h.t */ 1534 {88,22,r,V,0,0}, /* max.w.t */ 1535 {88,23,r,V,0,0}, /* max.l.t */ 1536 {89,20,r,V,0,0}, /* min.b.t */ 1537 {89,21,r,V,0,0}, /* min.h.t */ 1538 {89,22,r,V,0,0}, /* min.w.t */ 1539 {89,23,r,V,0,0}, /* min.l.t */ 1540 {84,18,r,V,0,0}, /* sum.s.t */ 1541 {84,19,r,V,0,0}, /* sum.d.t */ 1542 {90,18,r,V,0,0}, /* prod.s.t */ 1543 {90,19,r,V,0,0}, /* prod.d.t */ 1544 {88,18,r,V,0,0}, /* max.s.t */ 1545 {88,19,r,V,0,0}, /* max.d.t */ 1546 {89,18,r,V,0,0}, /* min.s.t */ 1547 {89,19,r,V,0,0}, /* min.d.t */ 1548 {90,20,r,V,0,0}, /* prod.b.t */ 1549 {90,21,r,V,0,0}, /* prod.h.t */ 1550 {90,22,r,V,0,0}, /* prod.w.t */ 1551 {90,23,r,V,0,0}, /* prod.l.t */ 1552 {0,0,0,0,0,0}, 1553 {0,0,0,0,0,0}, 1554 {0,0,0,0,0,0}, 1555 {0,0,0,0,0,0}, 1556}; 1557 1558char *lop[] = { 1559 "mov", /* 0 */ 1560 "merg", /* 1 */ 1561 "mask", /* 2 */ 1562 "mul", /* 3 */ 1563 "div", /* 4 */ 1564 "and", /* 5 */ 1565 "or", /* 6 */ 1566 "xor", /* 7 */ 1567 "shf", /* 8 */ 1568 "add", /* 9 */ 1569 "sub", /* 10 */ 1570 "exit", /* 11 */ 1571 "jmp", /* 12 */ 1572 "jmpi", /* 13 */ 1573 "jmpa", /* 14 */ 1574 "jmps", /* 15 */ 1575 "tac", /* 16 */ 1576 "ldea", /* 17 */ 1577 "ld", /* 18 */ 1578 "tas", /* 19 */ 1579 "pshea", /* 20 */ 1580 "st", /* 21 */ 1581 "call", /* 22 */ 1582 "calls", /* 23 */ 1583 "callq", /* 24 */ 1584 "pfork", /* 25 */ 1585 "ste", /* 26 */ 1586 "incr", /* 27 */ 1587 "cvtw", /* 28 */ 1588 "cvtb", /* 29 */ 1589 "cvth", /* 30 */ 1590 "cvts", /* 31 */ 1591 "cvtd", /* 32 */ 1592 "cvtl", /* 33 */ 1593 "ldpa", /* 34 */ 1594 "plc", /* 35 */ 1595 "tzc", /* 36 */ 1596 "eq", /* 37 */ 1597 "leu", /* 38 */ 1598 "ltu", /* 39 */ 1599 "le", /* 40 */ 1600 "lt", /* 41 */ 1601 "not", /* 42 */ 1602 "neg", /* 43 */ 1603 "lop", /* 44 */ 1604 "cprs", /* 45 */ 1605 "nop", /* 46 */ 1606 "br", /* 47 */ 1607 "bri", /* 48 */ 1608 "bra", /* 49 */ 1609 "brs", /* 50 */ 1610 "ldvi", /* 51 */ 1611 "stvi", /* 52 */ 1612 "ldsdr", /* 53 */ 1613 "ldkdr", /* 54 */ 1614 "ln", /* 55 */ 1615 "patu", /* 56 */ 1616 "pate", /* 57 */ 1617 "pich", /* 58 */ 1618 "plch", /* 59 */ 1619 "idle", /* 60 */ 1620 "rtnq", /* 61 */ 1621 "cfork", /* 62 */ 1622 "rtn", /* 63 */ 1623 "wfork", /* 64 */ 1624 "join", /* 65 */ 1625 "rtnc", /* 66 */ 1626 "exp", /* 67 */ 1627 "sin", /* 68 */ 1628 "cos", /* 69 */ 1629 "psh", /* 70 */ 1630 "pop", /* 71 */ 1631 "eni", /* 72 */ 1632 "dsi", /* 73 */ 1633 "bkpt", /* 74 */ 1634 "msync", /* 75 */ 1635 "mski", /* 76 */ 1636 "xmti", /* 77 */ 1637 "tstvv", /* 78 */ 1638 "diag", /* 79 */ 1639 "pbkpt", /* 80 */ 1640 "sqrt", /* 81 */ 1641 "casr", /* 82 */ 1642 "atan", /* 83 */ 1643 "sum", /* 84 */ 1644 "all", /* 85 */ 1645 "any", /* 86 */ 1646 "parity", /* 87 */ 1647 "max", /* 88 */ 1648 "min", /* 89 */ 1649 "prod", /* 90 */ 1650 "halt", /* 91 */ 1651 "sysc", /* 92 */ 1652 "trap", /* 93 */ 1653 "tst", /* 94 */ 1654 "lck", /* 95 */ 1655 "ulk", /* 96 */ 1656 "spawn", /* 97 */ 1657 "ldcmr", /* 98 */ 1658 "stcmr", /* 99 */ 1659 "popr", /* 100 */ 1660 "pshr", /* 101 */ 1661 "rcvr", /* 102 */ 1662 "matm", /* 103 */ 1663 "sndr", /* 104 */ 1664 "putr", /* 105 */ 1665 "getr", /* 106 */ 1666 "matr", /* 107 */ 1667 "mat", /* 108 */ 1668 "get", /* 109 */ 1669 "rcv", /* 110 */ 1670 "inc", /* 111 */ 1671 "put", /* 112 */ 1672 "snd", /* 113 */ 1673 "enal", /* 114 */ 1674 "enag", /* 115 */ 1675 "frint", /* 116 */ 1676 "xpnd", /* 117 */ 1677 "ctrsl", /* 118 */ 1678 "ctrsg", /* 119 */ 1679 "stop", /* 120 */ 1680}; 1681 1682char *rop[] = { 1683 "", /* 0 */ 1684 ".t", /* 1 */ 1685 ".f", /* 2 */ 1686 ".s", /* 3 */ 1687 ".d", /* 4 */ 1688 ".b", /* 5 */ 1689 ".h", /* 6 */ 1690 ".w", /* 7 */ 1691 ".l", /* 8 */ 1692 ".x", /* 9 */ 1693 ".u", /* 10 */ 1694 ".s.f", /* 11 */ 1695 ".d.f", /* 12 */ 1696 ".b.f", /* 13 */ 1697 ".h.f", /* 14 */ 1698 ".w.f", /* 15 */ 1699 ".l.f", /* 16 */ 1700 ".t.f", /* 17 */ 1701 ".s.t", /* 18 */ 1702 ".d.t", /* 19 */ 1703 ".b.t", /* 20 */ 1704 ".h.t", /* 21 */ 1705 ".w.t", /* 22 */ 1706 ".l.t", /* 23 */ 1707 ".t.t", /* 24 */ 1708}; 1709