198b9484cSchristos /* Information for instruction disassembly on the Convex. 2*aab831ceSchristos Copyright (C) 1989-2024 Free Software Foundation, Inc. 398b9484cSchristos 498b9484cSchristos This file is part of GDB. 598b9484cSchristos 698b9484cSchristos This program is free software; you can redistribute it and/or modify 798b9484cSchristos it under the terms of the GNU General Public License as published by 898b9484cSchristos the Free Software Foundation; either version 3 of the License, or 998b9484cSchristos (at your option) any later version. 1098b9484cSchristos 1198b9484cSchristos This program is distributed in the hope that it will be useful, 1298b9484cSchristos but WITHOUT ANY WARRANTY; without even the implied warranty of 1398b9484cSchristos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1498b9484cSchristos GNU General Public License for more details. 1598b9484cSchristos 1698b9484cSchristos You should have received a copy of the GNU General Public License 1798b9484cSchristos along with this program; if not, write to the Free Software 1898b9484cSchristos Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, 1998b9484cSchristos MA 02110-1301, USA. */ 2098b9484cSchristos 2198b9484cSchristos #define xxx 0 2298b9484cSchristos #define rrr 1 2398b9484cSchristos #define rr 2 2498b9484cSchristos #define rxr 3 2598b9484cSchristos #define r 4 2698b9484cSchristos #define nops 5 2798b9484cSchristos #define nr 6 2898b9484cSchristos #define pcrel 7 2998b9484cSchristos #define lr 8 3098b9484cSchristos #define rxl 9 3198b9484cSchristos #define rlr 10 3298b9484cSchristos #define rrl 11 3398b9484cSchristos #define iml 12 3498b9484cSchristos #define imr 13 3598b9484cSchristos #define a1r 14 3698b9484cSchristos #define a1l 15 3798b9484cSchristos #define a2r 16 3898b9484cSchristos #define a2l 17 3998b9484cSchristos #define a3 18 4098b9484cSchristos #define a4 19 4198b9484cSchristos #define a5 20 4298b9484cSchristos #define V 1 4398b9484cSchristos #define S 2 4498b9484cSchristos #define VM 3 4598b9484cSchristos #define A 4 4698b9484cSchristos #define VL 5 4798b9484cSchristos #define VS 6 4898b9484cSchristos #define VLS 7 4998b9484cSchristos #define PSW 8 5098b9484cSchristos /* Prevent an error during "make depend". */ 5198b9484cSchristos #if !defined (PC) 5298b9484cSchristos #define PC 9 5398b9484cSchristos #endif 5498b9484cSchristos #define ITR 10 5598b9484cSchristos #define VV 11 5698b9484cSchristos #define ITSR 12 5798b9484cSchristos #define TOC 13 5898b9484cSchristos #define CIR 14 5998b9484cSchristos #define TTR 15 6098b9484cSchristos #define VMU 16 6198b9484cSchristos #define VML 17 6298b9484cSchristos #define ICR 18 6398b9484cSchristos #define TCPU 19 6498b9484cSchristos #define CPUID 20 6598b9484cSchristos #define TID 21 6698b9484cSchristos 6798b9484cSchristos const char *op[] = { 6898b9484cSchristos "", 6998b9484cSchristos "v0\0v1\0v2\0v3\0v4\0v5\0v6\0v7", 7098b9484cSchristos "s0\0s1\0s2\0s3\0s4\0s5\0s6\0s7", 7198b9484cSchristos "vm", 7298b9484cSchristos "sp\0a1\0a2\0a3\0a4\0a5\0ap\0fp", 7398b9484cSchristos "vl", 7498b9484cSchristos "vs", 7598b9484cSchristos "vls", 7698b9484cSchristos "psw", 7798b9484cSchristos "pc", 7898b9484cSchristos "itr", 7998b9484cSchristos "vv", 8098b9484cSchristos "itsr", 8198b9484cSchristos "toc", 8298b9484cSchristos "cir", 8398b9484cSchristos "ttr", 8498b9484cSchristos "vmu", 8598b9484cSchristos "vml", 8698b9484cSchristos "icr", 8798b9484cSchristos "tcpu", 8898b9484cSchristos "cpuid", 8998b9484cSchristos "tid", 9098b9484cSchristos }; 9198b9484cSchristos 9298b9484cSchristos const struct formstr format0[] = { 9398b9484cSchristos {0,0,rrr,V,S,S}, /* mov */ 9498b9484cSchristos {0,0,rrr,S,S,V}, /* mov */ 9598b9484cSchristos {1,1,rrr,V,V,V}, /* merg.t */ 9698b9484cSchristos {2,1,rrr,V,V,V}, /* mask.t */ 9798b9484cSchristos {1,2,rrr,V,S,V}, /* merg.f */ 9898b9484cSchristos {2,2,rrr,V,S,V}, /* mask.f */ 9998b9484cSchristos {1,1,rrr,V,S,V}, /* merg.t */ 10098b9484cSchristos {2,1,rrr,V,S,V}, /* mask.t */ 10198b9484cSchristos {3,3,rrr,V,V,V}, /* mul.s */ 10298b9484cSchristos {3,4,rrr,V,V,V}, /* mul.d */ 10398b9484cSchristos {4,3,rrr,V,V,V}, /* div.s */ 10498b9484cSchristos {4,4,rrr,V,V,V}, /* div.d */ 10598b9484cSchristos {3,3,rrr,V,S,V}, /* mul.s */ 10698b9484cSchristos {3,4,rrr,V,S,V}, /* mul.d */ 10798b9484cSchristos {4,3,rrr,V,S,V}, /* div.s */ 10898b9484cSchristos {4,4,rrr,V,S,V}, /* div.d */ 10998b9484cSchristos {5,0,rrr,V,V,V}, /* and */ 11098b9484cSchristos {6,0,rrr,V,V,V}, /* or */ 11198b9484cSchristos {7,0,rrr,V,V,V}, /* xor */ 11298b9484cSchristos {8,0,rrr,V,V,V}, /* shf */ 11398b9484cSchristos {5,0,rrr,V,S,V}, /* and */ 11498b9484cSchristos {6,0,rrr,V,S,V}, /* or */ 11598b9484cSchristos {7,0,rrr,V,S,V}, /* xor */ 11698b9484cSchristos {8,0,rrr,V,S,V}, /* shf */ 11798b9484cSchristos {9,3,rrr,V,V,V}, /* add.s */ 11898b9484cSchristos {9,4,rrr,V,V,V}, /* add.d */ 11998b9484cSchristos {10,3,rrr,V,V,V}, /* sub.s */ 12098b9484cSchristos {10,4,rrr,V,V,V}, /* sub.d */ 12198b9484cSchristos {9,3,rrr,V,S,V}, /* add.s */ 12298b9484cSchristos {9,4,rrr,V,S,V}, /* add.d */ 12398b9484cSchristos {10,3,rrr,V,S,V}, /* sub.s */ 12498b9484cSchristos {10,4,rrr,V,S,V}, /* sub.d */ 12598b9484cSchristos {9,5,rrr,V,V,V}, /* add.b */ 12698b9484cSchristos {9,6,rrr,V,V,V}, /* add.h */ 12798b9484cSchristos {9,7,rrr,V,V,V}, /* add.w */ 12898b9484cSchristos {9,8,rrr,V,V,V}, /* add.l */ 12998b9484cSchristos {9,5,rrr,V,S,V}, /* add.b */ 13098b9484cSchristos {9,6,rrr,V,S,V}, /* add.h */ 13198b9484cSchristos {9,7,rrr,V,S,V}, /* add.w */ 13298b9484cSchristos {9,8,rrr,V,S,V}, /* add.l */ 13398b9484cSchristos {10,5,rrr,V,V,V}, /* sub.b */ 13498b9484cSchristos {10,6,rrr,V,V,V}, /* sub.h */ 13598b9484cSchristos {10,7,rrr,V,V,V}, /* sub.w */ 13698b9484cSchristos {10,8,rrr,V,V,V}, /* sub.l */ 13798b9484cSchristos {10,5,rrr,V,S,V}, /* sub.b */ 13898b9484cSchristos {10,6,rrr,V,S,V}, /* sub.h */ 13998b9484cSchristos {10,7,rrr,V,S,V}, /* sub.w */ 14098b9484cSchristos {10,8,rrr,V,S,V}, /* sub.l */ 14198b9484cSchristos {3,5,rrr,V,V,V}, /* mul.b */ 14298b9484cSchristos {3,6,rrr,V,V,V}, /* mul.h */ 14398b9484cSchristos {3,7,rrr,V,V,V}, /* mul.w */ 14498b9484cSchristos {3,8,rrr,V,V,V}, /* mul.l */ 14598b9484cSchristos {3,5,rrr,V,S,V}, /* mul.b */ 14698b9484cSchristos {3,6,rrr,V,S,V}, /* mul.h */ 14798b9484cSchristos {3,7,rrr,V,S,V}, /* mul.w */ 14898b9484cSchristos {3,8,rrr,V,S,V}, /* mul.l */ 14998b9484cSchristos {4,5,rrr,V,V,V}, /* div.b */ 15098b9484cSchristos {4,6,rrr,V,V,V}, /* div.h */ 15198b9484cSchristos {4,7,rrr,V,V,V}, /* div.w */ 15298b9484cSchristos {4,8,rrr,V,V,V}, /* div.l */ 15398b9484cSchristos {4,5,rrr,V,S,V}, /* div.b */ 15498b9484cSchristos {4,6,rrr,V,S,V}, /* div.h */ 15598b9484cSchristos {4,7,rrr,V,S,V}, /* div.w */ 15698b9484cSchristos {4,8,rrr,V,S,V}, /* div.l */ 15798b9484cSchristos }; 15898b9484cSchristos 15998b9484cSchristos const struct formstr format1[] = { 16098b9484cSchristos {11,0,xxx,0,0,0}, /* exit */ 16198b9484cSchristos {12,0,a3,0,0,0}, /* jmp */ 16298b9484cSchristos {13,2,a3,0,0,0}, /* jmpi.f */ 16398b9484cSchristos {13,1,a3,0,0,0}, /* jmpi.t */ 16498b9484cSchristos {14,2,a3,0,0,0}, /* jmpa.f */ 16598b9484cSchristos {14,1,a3,0,0,0}, /* jmpa.t */ 16698b9484cSchristos {15,2,a3,0,0,0}, /* jmps.f */ 16798b9484cSchristos {15,1,a3,0,0,0}, /* jmps.t */ 16898b9484cSchristos {16,0,a3,0,0,0}, /* tac */ 16998b9484cSchristos {17,0,a1r,A,0,0}, /* ldea */ 17098b9484cSchristos {18,8,a1l,VLS,0,0}, /* ld.l */ 17198b9484cSchristos {18,9,a1l,VM,0,0}, /* ld.x */ 17298b9484cSchristos {19,0,a3,0,0,0}, /* tas */ 17398b9484cSchristos {20,0,a3,0,0,0}, /* pshea */ 17498b9484cSchristos {21,8,a2l,VLS,0,0}, /* st.l */ 17598b9484cSchristos {21,9,a2l,VM,0,0}, /* st.x */ 17698b9484cSchristos {0,0,0,0,0,0}, 17798b9484cSchristos {0,0,0,0,0,0}, 17898b9484cSchristos {0,0,0,0,0,0}, 17998b9484cSchristos {0,0,0,0,0,0}, 18098b9484cSchristos {0,0,0,0,0,0}, 18198b9484cSchristos {0,0,0,0,0,0}, 18298b9484cSchristos {0,0,0,0,0,0}, 18398b9484cSchristos {0,0,0,0,0,0}, 18498b9484cSchristos {0,0,0,0,0,0}, 18598b9484cSchristos {0,0,0,0,0,0}, 18698b9484cSchristos {0,0,0,0,0,0}, 18798b9484cSchristos {0,0,0,0,0,0}, 18898b9484cSchristos {0,0,0,0,0,0}, 18998b9484cSchristos {0,0,0,0,0,0}, 19098b9484cSchristos {0,0,0,0,0,0}, 19198b9484cSchristos {0,0,0,0,0,0}, 19298b9484cSchristos {22,0,a3,0,0,0}, /* call */ 19398b9484cSchristos {23,0,a3,0,0,0}, /* calls */ 19498b9484cSchristos {24,0,a3,0,0,0}, /* callq */ 19598b9484cSchristos {25,0,a1r,A,0,0}, /* pfork */ 19698b9484cSchristos {26,5,a2r,S,0,0}, /* ste.b */ 19798b9484cSchristos {26,6,a2r,S,0,0}, /* ste.h */ 19898b9484cSchristos {26,7,a2r,S,0,0}, /* ste.w */ 19998b9484cSchristos {26,8,a2r,S,0,0}, /* ste.l */ 20098b9484cSchristos {18,5,a1r,A,0,0}, /* ld.b */ 20198b9484cSchristos {18,6,a1r,A,0,0}, /* ld.h */ 20298b9484cSchristos {18,7,a1r,A,0,0}, /* ld.w */ 20398b9484cSchristos {27,7,a1r,A,0,0}, /* incr.w */ 20498b9484cSchristos {21,5,a2r,A,0,0}, /* st.b */ 20598b9484cSchristos {21,6,a2r,A,0,0}, /* st.h */ 20698b9484cSchristos {21,7,a2r,A,0,0}, /* st.w */ 20798b9484cSchristos {27,8,a1r,S,0,0}, /* incr.l */ 20898b9484cSchristos {18,5,a1r,S,0,0}, /* ld.b */ 20998b9484cSchristos {18,6,a1r,S,0,0}, /* ld.h */ 21098b9484cSchristos {18,7,a1r,S,0,0}, /* ld.w */ 21198b9484cSchristos {18,8,a1r,S,0,0}, /* ld.l */ 21298b9484cSchristos {21,5,a2r,S,0,0}, /* st.b */ 21398b9484cSchristos {21,6,a2r,S,0,0}, /* st.h */ 21498b9484cSchristos {21,7,a2r,S,0,0}, /* st.w */ 21598b9484cSchristos {21,8,a2r,S,0,0}, /* st.l */ 21698b9484cSchristos {18,5,a1r,V,0,0}, /* ld.b */ 21798b9484cSchristos {18,6,a1r,V,0,0}, /* ld.h */ 21898b9484cSchristos {18,7,a1r,V,0,0}, /* ld.w */ 21998b9484cSchristos {18,8,a1r,V,0,0}, /* ld.l */ 22098b9484cSchristos {21,5,a2r,V,0,0}, /* st.b */ 22198b9484cSchristos {21,6,a2r,V,0,0}, /* st.h */ 22298b9484cSchristos {21,7,a2r,V,0,0}, /* st.w */ 22398b9484cSchristos {21,8,a2r,V,0,0}, /* st.l */ 22498b9484cSchristos }; 22598b9484cSchristos 22698b9484cSchristos const struct formstr format2[] = { 22798b9484cSchristos {28,5,rr,A,A,0}, /* cvtw.b */ 22898b9484cSchristos {28,6,rr,A,A,0}, /* cvtw.h */ 22998b9484cSchristos {29,7,rr,A,A,0}, /* cvtb.w */ 23098b9484cSchristos {30,7,rr,A,A,0}, /* cvth.w */ 23198b9484cSchristos {28,5,rr,S,S,0}, /* cvtw.b */ 23298b9484cSchristos {28,6,rr,S,S,0}, /* cvtw.h */ 23398b9484cSchristos {29,7,rr,S,S,0}, /* cvtb.w */ 23498b9484cSchristos {30,7,rr,S,S,0}, /* cvth.w */ 23598b9484cSchristos {28,3,rr,S,S,0}, /* cvtw.s */ 23698b9484cSchristos {31,7,rr,S,S,0}, /* cvts.w */ 23798b9484cSchristos {32,3,rr,S,S,0}, /* cvtd.s */ 23898b9484cSchristos {31,4,rr,S,S,0}, /* cvts.d */ 23998b9484cSchristos {31,8,rr,S,S,0}, /* cvts.l */ 24098b9484cSchristos {32,8,rr,S,S,0}, /* cvtd.l */ 24198b9484cSchristos {33,3,rr,S,S,0}, /* cvtl.s */ 24298b9484cSchristos {33,4,rr,S,S,0}, /* cvtl.d */ 24398b9484cSchristos {34,0,rr,A,A,0}, /* ldpa */ 24498b9484cSchristos {8,0,nr,A,0,0}, /* shf */ 24598b9484cSchristos {18,6,nr,A,0,0}, /* ld.h */ 24698b9484cSchristos {18,7,nr,A,0,0}, /* ld.w */ 24798b9484cSchristos {33,7,rr,S,S,0}, /* cvtl.w */ 24898b9484cSchristos {28,8,rr,S,S,0}, /* cvtw.l */ 24998b9484cSchristos {35,1,rr,S,S,0}, /* plc.t */ 25098b9484cSchristos {36,0,rr,S,S,0}, /* tzc */ 25198b9484cSchristos {37,6,rr,A,A,0}, /* eq.h */ 25298b9484cSchristos {37,7,rr,A,A,0}, /* eq.w */ 25398b9484cSchristos {37,6,nr,A,0,0}, /* eq.h */ 25498b9484cSchristos {37,7,nr,A,0,0}, /* eq.w */ 25598b9484cSchristos {37,5,rr,S,S,0}, /* eq.b */ 25698b9484cSchristos {37,6,rr,S,S,0}, /* eq.h */ 25798b9484cSchristos {37,7,rr,S,S,0}, /* eq.w */ 25898b9484cSchristos {37,8,rr,S,S,0}, /* eq.l */ 25998b9484cSchristos {38,6,rr,A,A,0}, /* leu.h */ 26098b9484cSchristos {38,7,rr,A,A,0}, /* leu.w */ 26198b9484cSchristos {38,6,nr,A,0,0}, /* leu.h */ 26298b9484cSchristos {38,7,nr,A,0,0}, /* leu.w */ 26398b9484cSchristos {38,5,rr,S,S,0}, /* leu.b */ 26498b9484cSchristos {38,6,rr,S,S,0}, /* leu.h */ 26598b9484cSchristos {38,7,rr,S,S,0}, /* leu.w */ 26698b9484cSchristos {38,8,rr,S,S,0}, /* leu.l */ 26798b9484cSchristos {39,6,rr,A,A,0}, /* ltu.h */ 26898b9484cSchristos {39,7,rr,A,A,0}, /* ltu.w */ 26998b9484cSchristos {39,6,nr,A,0,0}, /* ltu.h */ 27098b9484cSchristos {39,7,nr,A,0,0}, /* ltu.w */ 27198b9484cSchristos {39,5,rr,S,S,0}, /* ltu.b */ 27298b9484cSchristos {39,6,rr,S,S,0}, /* ltu.h */ 27398b9484cSchristos {39,7,rr,S,S,0}, /* ltu.w */ 27498b9484cSchristos {39,8,rr,S,S,0}, /* ltu.l */ 27598b9484cSchristos {40,6,rr,A,A,0}, /* le.h */ 27698b9484cSchristos {40,7,rr,A,A,0}, /* le.w */ 27798b9484cSchristos {40,6,nr,A,0,0}, /* le.h */ 27898b9484cSchristos {40,7,nr,A,0,0}, /* le.w */ 27998b9484cSchristos {40,5,rr,S,S,0}, /* le.b */ 28098b9484cSchristos {40,6,rr,S,S,0}, /* le.h */ 28198b9484cSchristos {40,7,rr,S,S,0}, /* le.w */ 28298b9484cSchristos {40,8,rr,S,S,0}, /* le.l */ 28398b9484cSchristos {41,6,rr,A,A,0}, /* lt.h */ 28498b9484cSchristos {41,7,rr,A,A,0}, /* lt.w */ 28598b9484cSchristos {41,6,nr,A,0,0}, /* lt.h */ 28698b9484cSchristos {41,7,nr,A,0,0}, /* lt.w */ 28798b9484cSchristos {41,5,rr,S,S,0}, /* lt.b */ 28898b9484cSchristos {41,6,rr,S,S,0}, /* lt.h */ 28998b9484cSchristos {41,7,rr,S,S,0}, /* lt.w */ 29098b9484cSchristos {41,8,rr,S,S,0}, /* lt.l */ 29198b9484cSchristos {9,7,rr,S,A,0}, /* add.w */ 29298b9484cSchristos {8,0,rr,A,A,0}, /* shf */ 29398b9484cSchristos {0,0,rr,A,A,0}, /* mov */ 29498b9484cSchristos {0,0,rr,S,A,0}, /* mov */ 29598b9484cSchristos {0,7,rr,S,S,0}, /* mov.w */ 29698b9484cSchristos {8,0,rr,S,S,0}, /* shf */ 29798b9484cSchristos {0,0,rr,S,S,0}, /* mov */ 29898b9484cSchristos {0,0,rr,A,S,0}, /* mov */ 29998b9484cSchristos {5,0,rr,A,A,0}, /* and */ 30098b9484cSchristos {6,0,rr,A,A,0}, /* or */ 30198b9484cSchristos {7,0,rr,A,A,0}, /* xor */ 30298b9484cSchristos {42,0,rr,A,A,0}, /* not */ 30398b9484cSchristos {5,0,rr,S,S,0}, /* and */ 30498b9484cSchristos {6,0,rr,S,S,0}, /* or */ 30598b9484cSchristos {7,0,rr,S,S,0}, /* xor */ 30698b9484cSchristos {42,0,rr,S,S,0}, /* not */ 30798b9484cSchristos {40,3,rr,S,S,0}, /* le.s */ 30898b9484cSchristos {40,4,rr,S,S,0}, /* le.d */ 30998b9484cSchristos {41,3,rr,S,S,0}, /* lt.s */ 31098b9484cSchristos {41,4,rr,S,S,0}, /* lt.d */ 31198b9484cSchristos {9,3,rr,S,S,0}, /* add.s */ 31298b9484cSchristos {9,4,rr,S,S,0}, /* add.d */ 31398b9484cSchristos {10,3,rr,S,S,0}, /* sub.s */ 31498b9484cSchristos {10,4,rr,S,S,0}, /* sub.d */ 31598b9484cSchristos {37,3,rr,S,S,0}, /* eq.s */ 31698b9484cSchristos {37,4,rr,S,S,0}, /* eq.d */ 31798b9484cSchristos {43,6,rr,A,A,0}, /* neg.h */ 31898b9484cSchristos {43,7,rr,A,A,0}, /* neg.w */ 31998b9484cSchristos {3,3,rr,S,S,0}, /* mul.s */ 32098b9484cSchristos {3,4,rr,S,S,0}, /* mul.d */ 32198b9484cSchristos {4,3,rr,S,S,0}, /* div.s */ 32298b9484cSchristos {4,4,rr,S,S,0}, /* div.d */ 32398b9484cSchristos {9,6,rr,A,A,0}, /* add.h */ 32498b9484cSchristos {9,7,rr,A,A,0}, /* add.w */ 32598b9484cSchristos {9,6,nr,A,0,0}, /* add.h */ 32698b9484cSchristos {9,7,nr,A,0,0}, /* add.w */ 32798b9484cSchristos {9,5,rr,S,S,0}, /* add.b */ 32898b9484cSchristos {9,6,rr,S,S,0}, /* add.h */ 32998b9484cSchristos {9,7,rr,S,S,0}, /* add.w */ 33098b9484cSchristos {9,8,rr,S,S,0}, /* add.l */ 33198b9484cSchristos {10,6,rr,A,A,0}, /* sub.h */ 33298b9484cSchristos {10,7,rr,A,A,0}, /* sub.w */ 33398b9484cSchristos {10,6,nr,A,0,0}, /* sub.h */ 33498b9484cSchristos {10,7,nr,A,0,0}, /* sub.w */ 33598b9484cSchristos {10,5,rr,S,S,0}, /* sub.b */ 33698b9484cSchristos {10,6,rr,S,S,0}, /* sub.h */ 33798b9484cSchristos {10,7,rr,S,S,0}, /* sub.w */ 33898b9484cSchristos {10,8,rr,S,S,0}, /* sub.l */ 33998b9484cSchristos {3,6,rr,A,A,0}, /* mul.h */ 34098b9484cSchristos {3,7,rr,A,A,0}, /* mul.w */ 34198b9484cSchristos {3,6,nr,A,0,0}, /* mul.h */ 34298b9484cSchristos {3,7,nr,A,0,0}, /* mul.w */ 34398b9484cSchristos {3,5,rr,S,S,0}, /* mul.b */ 34498b9484cSchristos {3,6,rr,S,S,0}, /* mul.h */ 34598b9484cSchristos {3,7,rr,S,S,0}, /* mul.w */ 34698b9484cSchristos {3,8,rr,S,S,0}, /* mul.l */ 34798b9484cSchristos {4,6,rr,A,A,0}, /* div.h */ 34898b9484cSchristos {4,7,rr,A,A,0}, /* div.w */ 34998b9484cSchristos {4,6,nr,A,0,0}, /* div.h */ 35098b9484cSchristos {4,7,nr,A,0,0}, /* div.w */ 35198b9484cSchristos {4,5,rr,S,S,0}, /* div.b */ 35298b9484cSchristos {4,6,rr,S,S,0}, /* div.h */ 35398b9484cSchristos {4,7,rr,S,S,0}, /* div.w */ 35498b9484cSchristos {4,8,rr,S,S,0}, /* div.l */ 35598b9484cSchristos }; 35698b9484cSchristos 35798b9484cSchristos const struct formstr format3[] = { 35898b9484cSchristos {32,3,rr,V,V,0}, /* cvtd.s */ 35998b9484cSchristos {31,4,rr,V,V,0}, /* cvts.d */ 36098b9484cSchristos {33,4,rr,V,V,0}, /* cvtl.d */ 36198b9484cSchristos {32,8,rr,V,V,0}, /* cvtd.l */ 36298b9484cSchristos {0,0,rrl,S,S,VM}, /* mov */ 36398b9484cSchristos {0,0,rlr,S,VM,S}, /* mov */ 36498b9484cSchristos {0,0,0,0,0,0}, 36598b9484cSchristos {44,0,rr,S,S,0}, /* lop */ 36698b9484cSchristos {36,0,rr,V,V,0}, /* tzc */ 36798b9484cSchristos {44,0,rr,V,V,0}, /* lop */ 36898b9484cSchristos {0,0,0,0,0,0}, 36998b9484cSchristos {42,0,rr,V,V,0}, /* not */ 37098b9484cSchristos {8,0,rr,S,V,0}, /* shf */ 37198b9484cSchristos {35,1,rr,V,V,0}, /* plc.t */ 37298b9484cSchristos {45,2,rr,V,V,0}, /* cprs.f */ 37398b9484cSchristos {45,1,rr,V,V,0}, /* cprs.t */ 37498b9484cSchristos {37,3,rr,V,V,0}, /* eq.s */ 37598b9484cSchristos {37,4,rr,V,V,0}, /* eq.d */ 37698b9484cSchristos {43,3,rr,V,V,0}, /* neg.s */ 37798b9484cSchristos {43,4,rr,V,V,0}, /* neg.d */ 37898b9484cSchristos {37,3,rr,S,V,0}, /* eq.s */ 37998b9484cSchristos {37,4,rr,S,V,0}, /* eq.d */ 38098b9484cSchristos {43,3,rr,S,S,0}, /* neg.s */ 38198b9484cSchristos {43,4,rr,S,S,0}, /* neg.d */ 38298b9484cSchristos {40,3,rr,V,V,0}, /* le.s */ 38398b9484cSchristos {40,4,rr,V,V,0}, /* le.d */ 38498b9484cSchristos {41,3,rr,V,V,0}, /* lt.s */ 38598b9484cSchristos {41,4,rr,V,V,0}, /* lt.d */ 38698b9484cSchristos {40,3,rr,S,V,0}, /* le.s */ 38798b9484cSchristos {40,4,rr,S,V,0}, /* le.d */ 38898b9484cSchristos {41,3,rr,S,V,0}, /* lt.s */ 38998b9484cSchristos {41,4,rr,S,V,0}, /* lt.d */ 39098b9484cSchristos {37,5,rr,V,V,0}, /* eq.b */ 39198b9484cSchristos {37,6,rr,V,V,0}, /* eq.h */ 39298b9484cSchristos {37,7,rr,V,V,0}, /* eq.w */ 39398b9484cSchristos {37,8,rr,V,V,0}, /* eq.l */ 39498b9484cSchristos {37,5,rr,S,V,0}, /* eq.b */ 39598b9484cSchristos {37,6,rr,S,V,0}, /* eq.h */ 39698b9484cSchristos {37,7,rr,S,V,0}, /* eq.w */ 39798b9484cSchristos {37,8,rr,S,V,0}, /* eq.l */ 39898b9484cSchristos {40,5,rr,V,V,0}, /* le.b */ 39998b9484cSchristos {40,6,rr,V,V,0}, /* le.h */ 40098b9484cSchristos {40,7,rr,V,V,0}, /* le.w */ 40198b9484cSchristos {40,8,rr,V,V,0}, /* le.l */ 40298b9484cSchristos {40,5,rr,S,V,0}, /* le.b */ 40398b9484cSchristos {40,6,rr,S,V,0}, /* le.h */ 40498b9484cSchristos {40,7,rr,S,V,0}, /* le.w */ 40598b9484cSchristos {40,8,rr,S,V,0}, /* le.l */ 40698b9484cSchristos {41,5,rr,V,V,0}, /* lt.b */ 40798b9484cSchristos {41,6,rr,V,V,0}, /* lt.h */ 40898b9484cSchristos {41,7,rr,V,V,0}, /* lt.w */ 40998b9484cSchristos {41,8,rr,V,V,0}, /* lt.l */ 41098b9484cSchristos {41,5,rr,S,V,0}, /* lt.b */ 41198b9484cSchristos {41,6,rr,S,V,0}, /* lt.h */ 41298b9484cSchristos {41,7,rr,S,V,0}, /* lt.w */ 41398b9484cSchristos {41,8,rr,S,V,0}, /* lt.l */ 41498b9484cSchristos {43,5,rr,V,V,0}, /* neg.b */ 41598b9484cSchristos {43,6,rr,V,V,0}, /* neg.h */ 41698b9484cSchristos {43,7,rr,V,V,0}, /* neg.w */ 41798b9484cSchristos {43,8,rr,V,V,0}, /* neg.l */ 41898b9484cSchristos {43,5,rr,S,S,0}, /* neg.b */ 41998b9484cSchristos {43,6,rr,S,S,0}, /* neg.h */ 42098b9484cSchristos {43,7,rr,S,S,0}, /* neg.w */ 42198b9484cSchristos {43,8,rr,S,S,0}, /* neg.l */ 42298b9484cSchristos }; 42398b9484cSchristos 42498b9484cSchristos const struct formstr format4[] = { 42598b9484cSchristos {46,0,nops,0,0,0}, /* nop */ 42698b9484cSchristos {47,0,pcrel,0,0,0}, /* br */ 42798b9484cSchristos {48,2,pcrel,0,0,0}, /* bri.f */ 42898b9484cSchristos {48,1,pcrel,0,0,0}, /* bri.t */ 42998b9484cSchristos {49,2,pcrel,0,0,0}, /* bra.f */ 43098b9484cSchristos {49,1,pcrel,0,0,0}, /* bra.t */ 43198b9484cSchristos {50,2,pcrel,0,0,0}, /* brs.f */ 43298b9484cSchristos {50,1,pcrel,0,0,0}, /* brs.t */ 43398b9484cSchristos }; 43498b9484cSchristos 43598b9484cSchristos const struct formstr format5[] = { 43698b9484cSchristos {51,5,rr,V,V,0}, /* ldvi.b */ 43798b9484cSchristos {51,6,rr,V,V,0}, /* ldvi.h */ 43898b9484cSchristos {51,7,rr,V,V,0}, /* ldvi.w */ 43998b9484cSchristos {51,8,rr,V,V,0}, /* ldvi.l */ 44098b9484cSchristos {28,3,rr,V,V,0}, /* cvtw.s */ 44198b9484cSchristos {31,7,rr,V,V,0}, /* cvts.w */ 44298b9484cSchristos {28,8,rr,V,V,0}, /* cvtw.l */ 44398b9484cSchristos {33,7,rr,V,V,0}, /* cvtl.w */ 44498b9484cSchristos {52,5,rxr,V,V,0}, /* stvi.b */ 44598b9484cSchristos {52,6,rxr,V,V,0}, /* stvi.h */ 44698b9484cSchristos {52,7,rxr,V,V,0}, /* stvi.w */ 44798b9484cSchristos {52,8,rxr,V,V,0}, /* stvi.l */ 44898b9484cSchristos {52,5,rxr,S,V,0}, /* stvi.b */ 44998b9484cSchristos {52,6,rxr,S,V,0}, /* stvi.h */ 45098b9484cSchristos {52,7,rxr,S,V,0}, /* stvi.w */ 45198b9484cSchristos {52,8,rxr,S,V,0}, /* stvi.l */ 45298b9484cSchristos }; 45398b9484cSchristos 45498b9484cSchristos const struct formstr format6[] = { 45598b9484cSchristos {53,0,r,A,0,0}, /* ldsdr */ 45698b9484cSchristos {54,0,r,A,0,0}, /* ldkdr */ 45798b9484cSchristos {55,3,r,S,0,0}, /* ln.s */ 45898b9484cSchristos {55,4,r,S,0,0}, /* ln.d */ 45998b9484cSchristos {56,0,nops,0,0,0}, /* patu */ 46098b9484cSchristos {57,0,r,A,0,0}, /* pate */ 46198b9484cSchristos {58,0,nops,0,0,0}, /* pich */ 46298b9484cSchristos {59,0,nops,0,0,0}, /* plch */ 46398b9484cSchristos {0,0,lr,PSW,A,0}, /* mov */ 46498b9484cSchristos {0,0,rxl,A,PSW,0}, /* mov */ 46598b9484cSchristos {0,0,lr,PC,A,0}, /* mov */ 46698b9484cSchristos {60,0,r,S,0,0}, /* idle */ 46798b9484cSchristos {0,0,lr,ITR,S,0}, /* mov */ 46898b9484cSchristos {0,0,rxl,S,ITR,0}, /* mov */ 46998b9484cSchristos {0,0,0,0,0,0}, 47098b9484cSchristos {0,0,rxl,S,ITSR,0}, /* mov */ 47198b9484cSchristos {61,0,nops,0,0,0}, /* rtnq */ 47298b9484cSchristos {62,0,nops,0,0,0}, /* cfork */ 47398b9484cSchristos {63,0,nops,0,0,0}, /* rtn */ 47498b9484cSchristos {64,0,nops,0,0,0}, /* wfork */ 47598b9484cSchristos {65,0,nops,0,0,0}, /* join */ 47698b9484cSchristos {66,0,nops,0,0,0}, /* rtnc */ 47798b9484cSchristos {67,3,r,S,0,0}, /* exp.s */ 47898b9484cSchristos {67,4,r,S,0,0}, /* exp.d */ 47998b9484cSchristos {68,3,r,S,0,0}, /* sin.s */ 48098b9484cSchristos {68,4,r,S,0,0}, /* sin.d */ 48198b9484cSchristos {0,0,0,0,0,0}, 48298b9484cSchristos {0,0,0,0,0,0}, 48398b9484cSchristos {69,3,r,S,0,0}, /* cos.s */ 48498b9484cSchristos {69,4,r,S,0,0}, /* cos.d */ 48598b9484cSchristos {0,0,0,0,0,0}, 48698b9484cSchristos {0,0,0,0,0,0}, 48798b9484cSchristos {70,7,r,A,0,0}, /* psh.w */ 48898b9484cSchristos {0,0,0,0,0,0}, 48998b9484cSchristos {71,7,r,A,0,0}, /* pop.w */ 49098b9484cSchristos {0,0,0,0,0,0}, 49198b9484cSchristos {70,7,r,S,0,0}, /* psh.w */ 49298b9484cSchristos {70,8,r,S,0,0}, /* psh.l */ 49398b9484cSchristos {71,7,r,S,0,0}, /* pop.w */ 49498b9484cSchristos {71,8,r,S,0,0}, /* pop.l */ 49598b9484cSchristos {72,0,nops,0,0,0}, /* eni */ 49698b9484cSchristos {73,0,nops,0,0,0}, /* dsi */ 49798b9484cSchristos {74,0,nops,0,0,0}, /* bkpt */ 49898b9484cSchristos {75,0,nops,0,0,0}, /* msync */ 49998b9484cSchristos {76,0,r,S,0,0}, /* mski */ 50098b9484cSchristos {77,0,r,S,0,0}, /* xmti */ 50198b9484cSchristos {0,0,rxl,S,VV,0}, /* mov */ 50298b9484cSchristos {78,0,nops,0,0,0}, /* tstvv */ 50398b9484cSchristos {0,0,lr,VS,A,0}, /* mov */ 50498b9484cSchristos {0,0,rxl,A,VS,0}, /* mov */ 50598b9484cSchristos {0,0,lr,VL,A,0}, /* mov */ 50698b9484cSchristos {0,0,rxl,A,VL,0}, /* mov */ 50798b9484cSchristos {0,7,lr,VS,S,0}, /* mov.w */ 50898b9484cSchristos {0,7,rxl,S,VS,0}, /* mov.w */ 50998b9484cSchristos {0,7,lr,VL,S,0}, /* mov.w */ 51098b9484cSchristos {0,7,rxl,S,VL,0}, /* mov.w */ 51198b9484cSchristos {79,0,r,A,0,0}, /* diag */ 51298b9484cSchristos {80,0,nops,0,0,0}, /* pbkpt */ 51398b9484cSchristos {81,3,r,S,0,0}, /* sqrt.s */ 51498b9484cSchristos {81,4,r,S,0,0}, /* sqrt.d */ 51598b9484cSchristos {82,0,nops,0,0,0}, /* casr */ 51698b9484cSchristos {0,0,0,0,0,0}, 51798b9484cSchristos {83,3,r,S,0,0}, /* atan.s */ 51898b9484cSchristos {83,4,r,S,0,0}, /* atan.d */ 51998b9484cSchristos }; 52098b9484cSchristos 52198b9484cSchristos const struct formstr format7[] = { 52298b9484cSchristos {84,5,r,V,0,0}, /* sum.b */ 52398b9484cSchristos {84,6,r,V,0,0}, /* sum.h */ 52498b9484cSchristos {84,7,r,V,0,0}, /* sum.w */ 52598b9484cSchristos {84,8,r,V,0,0}, /* sum.l */ 52698b9484cSchristos {85,0,r,V,0,0}, /* all */ 52798b9484cSchristos {86,0,r,V,0,0}, /* any */ 52898b9484cSchristos {87,0,r,V,0,0}, /* parity */ 52998b9484cSchristos {0,0,0,0,0,0}, 53098b9484cSchristos {88,5,r,V,0,0}, /* max.b */ 53198b9484cSchristos {88,6,r,V,0,0}, /* max.h */ 53298b9484cSchristos {88,7,r,V,0,0}, /* max.w */ 53398b9484cSchristos {88,8,r,V,0,0}, /* max.l */ 53498b9484cSchristos {89,5,r,V,0,0}, /* min.b */ 53598b9484cSchristos {89,6,r,V,0,0}, /* min.h */ 53698b9484cSchristos {89,7,r,V,0,0}, /* min.w */ 53798b9484cSchristos {89,8,r,V,0,0}, /* min.l */ 53898b9484cSchristos {84,3,r,V,0,0}, /* sum.s */ 53998b9484cSchristos {84,4,r,V,0,0}, /* sum.d */ 54098b9484cSchristos {90,3,r,V,0,0}, /* prod.s */ 54198b9484cSchristos {90,4,r,V,0,0}, /* prod.d */ 54298b9484cSchristos {88,3,r,V,0,0}, /* max.s */ 54398b9484cSchristos {88,4,r,V,0,0}, /* max.d */ 54498b9484cSchristos {89,3,r,V,0,0}, /* min.s */ 54598b9484cSchristos {89,4,r,V,0,0}, /* min.d */ 54698b9484cSchristos {90,5,r,V,0,0}, /* prod.b */ 54798b9484cSchristos {90,6,r,V,0,0}, /* prod.h */ 54898b9484cSchristos {90,7,r,V,0,0}, /* prod.w */ 54998b9484cSchristos {90,8,r,V,0,0}, /* prod.l */ 55098b9484cSchristos {35,2,lr,VM,S,0}, /* plc.f */ 55198b9484cSchristos {35,1,lr,VM,S,0}, /* plc.t */ 55298b9484cSchristos {0,0,0,0,0,0}, 55398b9484cSchristos {0,0,0,0,0,0}, 55498b9484cSchristos }; 55598b9484cSchristos 55698b9484cSchristos const struct formstr formatx[] = { 55798b9484cSchristos {0,0,0,0,0,0}, 55898b9484cSchristos }; 55998b9484cSchristos 56098b9484cSchristos const struct formstr format1a[] = { 56198b9484cSchristos {91,0,imr,A,0,0}, /* halt */ 56298b9484cSchristos {92,0,a4,0,0,0}, /* sysc */ 56398b9484cSchristos {18,6,imr,A,0,0}, /* ld.h */ 56498b9484cSchristos {18,7,imr,A,0,0}, /* ld.w */ 56598b9484cSchristos {5,0,imr,A,0,0}, /* and */ 56698b9484cSchristos {6,0,imr,A,0,0}, /* or */ 56798b9484cSchristos {7,0,imr,A,0,0}, /* xor */ 56898b9484cSchristos {8,0,imr,A,0,0}, /* shf */ 56998b9484cSchristos {9,6,imr,A,0,0}, /* add.h */ 57098b9484cSchristos {9,7,imr,A,0,0}, /* add.w */ 57198b9484cSchristos {10,6,imr,A,0,0}, /* sub.h */ 57298b9484cSchristos {10,7,imr,A,0,0}, /* sub.w */ 57398b9484cSchristos {3,6,imr,A,0,0}, /* mul.h */ 57498b9484cSchristos {3,7,imr,A,0,0}, /* mul.w */ 57598b9484cSchristos {4,6,imr,A,0,0}, /* div.h */ 57698b9484cSchristos {4,7,imr,A,0,0}, /* div.w */ 57798b9484cSchristos {18,7,iml,VL,0,0}, /* ld.w */ 57898b9484cSchristos {18,7,iml,VS,0,0}, /* ld.w */ 57998b9484cSchristos {0,0,0,0,0,0}, 58098b9484cSchristos {8,7,imr,S,0,0}, /* shf.w */ 58198b9484cSchristos {93,0,a5,0,0,0}, /* trap */ 58298b9484cSchristos {0,0,0,0,0,0}, 58398b9484cSchristos {37,6,imr,A,0,0}, /* eq.h */ 58498b9484cSchristos {37,7,imr,A,0,0}, /* eq.w */ 58598b9484cSchristos {38,6,imr,A,0,0}, /* leu.h */ 58698b9484cSchristos {38,7,imr,A,0,0}, /* leu.w */ 58798b9484cSchristos {39,6,imr,A,0,0}, /* ltu.h */ 58898b9484cSchristos {39,7,imr,A,0,0}, /* ltu.w */ 58998b9484cSchristos {40,6,imr,A,0,0}, /* le.h */ 59098b9484cSchristos {40,7,imr,A,0,0}, /* le.w */ 59198b9484cSchristos {41,6,imr,A,0,0}, /* lt.h */ 59298b9484cSchristos {41,7,imr,A,0,0}, /* lt.w */ 59398b9484cSchristos }; 59498b9484cSchristos 59598b9484cSchristos const struct formstr format1b[] = { 59698b9484cSchristos {18,4,imr,S,0,0}, /* ld.d */ 59798b9484cSchristos {18,10,imr,S,0,0}, /* ld.u */ 59898b9484cSchristos {18,8,imr,S,0,0}, /* ld.l */ 59998b9484cSchristos {18,7,imr,S,0,0}, /* ld.w */ 60098b9484cSchristos {5,0,imr,S,0,0}, /* and */ 60198b9484cSchristos {6,0,imr,S,0,0}, /* or */ 60298b9484cSchristos {7,0,imr,S,0,0}, /* xor */ 60398b9484cSchristos {8,0,imr,S,0,0}, /* shf */ 60498b9484cSchristos {9,6,imr,S,0,0}, /* add.h */ 60598b9484cSchristos {9,7,imr,S,0,0}, /* add.w */ 60698b9484cSchristos {10,6,imr,S,0,0}, /* sub.h */ 60798b9484cSchristos {10,7,imr,S,0,0}, /* sub.w */ 60898b9484cSchristos {3,6,imr,S,0,0}, /* mul.h */ 60998b9484cSchristos {3,7,imr,S,0,0}, /* mul.w */ 61098b9484cSchristos {4,6,imr,S,0,0}, /* div.h */ 61198b9484cSchristos {4,7,imr,S,0,0}, /* div.w */ 61298b9484cSchristos {9,3,imr,S,0,0}, /* add.s */ 61398b9484cSchristos {10,3,imr,S,0,0}, /* sub.s */ 61498b9484cSchristos {3,3,imr,S,0,0}, /* mul.s */ 61598b9484cSchristos {4,3,imr,S,0,0}, /* div.s */ 61698b9484cSchristos {40,3,imr,S,0,0}, /* le.s */ 61798b9484cSchristos {41,3,imr,S,0,0}, /* lt.s */ 61898b9484cSchristos {37,6,imr,S,0,0}, /* eq.h */ 61998b9484cSchristos {37,7,imr,S,0,0}, /* eq.w */ 62098b9484cSchristos {38,6,imr,S,0,0}, /* leu.h */ 62198b9484cSchristos {38,7,imr,S,0,0}, /* leu.w */ 62298b9484cSchristos {39,6,imr,S,0,0}, /* ltu.h */ 62398b9484cSchristos {39,7,imr,S,0,0}, /* ltu.w */ 62498b9484cSchristos {40,6,imr,S,0,0}, /* le.h */ 62598b9484cSchristos {40,7,imr,S,0,0}, /* le.w */ 62698b9484cSchristos {41,6,imr,S,0,0}, /* lt.h */ 62798b9484cSchristos {41,7,imr,S,0,0}, /* lt.w */ 62898b9484cSchristos }; 62998b9484cSchristos 63098b9484cSchristos const struct formstr e0_format0[] = { 63198b9484cSchristos {10,3,rrr,S,V,V}, /* sub.s */ 63298b9484cSchristos {10,4,rrr,S,V,V}, /* sub.d */ 63398b9484cSchristos {4,3,rrr,S,V,V}, /* div.s */ 63498b9484cSchristos {4,4,rrr,S,V,V}, /* div.d */ 63598b9484cSchristos {10,11,rrr,S,V,V}, /* sub.s.f */ 63698b9484cSchristos {10,12,rrr,S,V,V}, /* sub.d.f */ 63798b9484cSchristos {4,11,rrr,S,V,V}, /* div.s.f */ 63898b9484cSchristos {4,12,rrr,S,V,V}, /* div.d.f */ 63998b9484cSchristos {3,11,rrr,V,V,V}, /* mul.s.f */ 64098b9484cSchristos {3,12,rrr,V,V,V}, /* mul.d.f */ 64198b9484cSchristos {4,11,rrr,V,V,V}, /* div.s.f */ 64298b9484cSchristos {4,12,rrr,V,V,V}, /* div.d.f */ 64398b9484cSchristos {3,11,rrr,V,S,V}, /* mul.s.f */ 64498b9484cSchristos {3,12,rrr,V,S,V}, /* mul.d.f */ 64598b9484cSchristos {4,11,rrr,V,S,V}, /* div.s.f */ 64698b9484cSchristos {4,12,rrr,V,S,V}, /* div.d.f */ 64798b9484cSchristos {5,2,rrr,V,V,V}, /* and.f */ 64898b9484cSchristos {6,2,rrr,V,V,V}, /* or.f */ 64998b9484cSchristos {7,2,rrr,V,V,V}, /* xor.f */ 65098b9484cSchristos {8,2,rrr,V,V,V}, /* shf.f */ 65198b9484cSchristos {5,2,rrr,V,S,V}, /* and.f */ 65298b9484cSchristos {6,2,rrr,V,S,V}, /* or.f */ 65398b9484cSchristos {7,2,rrr,V,S,V}, /* xor.f */ 65498b9484cSchristos {8,2,rrr,V,S,V}, /* shf.f */ 65598b9484cSchristos {9,11,rrr,V,V,V}, /* add.s.f */ 65698b9484cSchristos {9,12,rrr,V,V,V}, /* add.d.f */ 65798b9484cSchristos {10,11,rrr,V,V,V}, /* sub.s.f */ 65898b9484cSchristos {10,12,rrr,V,V,V}, /* sub.d.f */ 65998b9484cSchristos {9,11,rrr,V,S,V}, /* add.s.f */ 66098b9484cSchristos {9,12,rrr,V,S,V}, /* add.d.f */ 66198b9484cSchristos {10,11,rrr,V,S,V}, /* sub.s.f */ 66298b9484cSchristos {10,12,rrr,V,S,V}, /* sub.d.f */ 66398b9484cSchristos {9,13,rrr,V,V,V}, /* add.b.f */ 66498b9484cSchristos {9,14,rrr,V,V,V}, /* add.h.f */ 66598b9484cSchristos {9,15,rrr,V,V,V}, /* add.w.f */ 66698b9484cSchristos {9,16,rrr,V,V,V}, /* add.l.f */ 66798b9484cSchristos {9,13,rrr,V,S,V}, /* add.b.f */ 66898b9484cSchristos {9,14,rrr,V,S,V}, /* add.h.f */ 66998b9484cSchristos {9,15,rrr,V,S,V}, /* add.w.f */ 67098b9484cSchristos {9,16,rrr,V,S,V}, /* add.l.f */ 67198b9484cSchristos {10,13,rrr,V,V,V}, /* sub.b.f */ 67298b9484cSchristos {10,14,rrr,V,V,V}, /* sub.h.f */ 67398b9484cSchristos {10,15,rrr,V,V,V}, /* sub.w.f */ 67498b9484cSchristos {10,16,rrr,V,V,V}, /* sub.l.f */ 67598b9484cSchristos {10,13,rrr,V,S,V}, /* sub.b.f */ 67698b9484cSchristos {10,14,rrr,V,S,V}, /* sub.h.f */ 67798b9484cSchristos {10,15,rrr,V,S,V}, /* sub.w.f */ 67898b9484cSchristos {10,16,rrr,V,S,V}, /* sub.l.f */ 67998b9484cSchristos {3,13,rrr,V,V,V}, /* mul.b.f */ 68098b9484cSchristos {3,14,rrr,V,V,V}, /* mul.h.f */ 68198b9484cSchristos {3,15,rrr,V,V,V}, /* mul.w.f */ 68298b9484cSchristos {3,16,rrr,V,V,V}, /* mul.l.f */ 68398b9484cSchristos {3,13,rrr,V,S,V}, /* mul.b.f */ 68498b9484cSchristos {3,14,rrr,V,S,V}, /* mul.h.f */ 68598b9484cSchristos {3,15,rrr,V,S,V}, /* mul.w.f */ 68698b9484cSchristos {3,16,rrr,V,S,V}, /* mul.l.f */ 68798b9484cSchristos {4,13,rrr,V,V,V}, /* div.b.f */ 68898b9484cSchristos {4,14,rrr,V,V,V}, /* div.h.f */ 68998b9484cSchristos {4,15,rrr,V,V,V}, /* div.w.f */ 69098b9484cSchristos {4,16,rrr,V,V,V}, /* div.l.f */ 69198b9484cSchristos {4,13,rrr,V,S,V}, /* div.b.f */ 69298b9484cSchristos {4,14,rrr,V,S,V}, /* div.h.f */ 69398b9484cSchristos {4,15,rrr,V,S,V}, /* div.w.f */ 69498b9484cSchristos {4,16,rrr,V,S,V}, /* div.l.f */ 69598b9484cSchristos }; 69698b9484cSchristos 69798b9484cSchristos const struct formstr e0_format1[] = { 69898b9484cSchristos {0,0,0,0,0,0}, 69998b9484cSchristos {94,0,a3,0,0,0}, /* tst */ 70098b9484cSchristos {95,0,a3,0,0,0}, /* lck */ 70198b9484cSchristos {96,0,a3,0,0,0}, /* ulk */ 70298b9484cSchristos {17,0,a1r,S,0,0}, /* ldea */ 70398b9484cSchristos {97,0,a1r,A,0,0}, /* spawn */ 70498b9484cSchristos {98,0,a1r,A,0,0}, /* ldcmr */ 70598b9484cSchristos {99,0,a2r,A,0,0}, /* stcmr */ 70698b9484cSchristos {100,0,a1r,A,0,0}, /* popr */ 70798b9484cSchristos {101,0,a2r,A,0,0}, /* pshr */ 70898b9484cSchristos {102,7,a1r,A,0,0}, /* rcvr.w */ 70998b9484cSchristos {103,7,a2r,A,0,0}, /* matm.w */ 71098b9484cSchristos {104,7,a2r,A,0,0}, /* sndr.w */ 71198b9484cSchristos {104,8,a2r,S,0,0}, /* sndr.l */ 71298b9484cSchristos {102,8,a1r,S,0,0}, /* rcvr.l */ 71398b9484cSchristos {103,8,a2r,S,0,0}, /* matm.l */ 71498b9484cSchristos {0,0,0,0,0,0}, 71598b9484cSchristos {0,0,0,0,0,0}, 71698b9484cSchristos {0,0,0,0,0,0}, 71798b9484cSchristos {0,0,0,0,0,0}, 71898b9484cSchristos {0,0,0,0,0,0}, 71998b9484cSchristos {0,0,0,0,0,0}, 72098b9484cSchristos {0,0,0,0,0,0}, 72198b9484cSchristos {0,0,0,0,0,0}, 72298b9484cSchristos {0,0,0,0,0,0}, 72398b9484cSchristos {0,0,0,0,0,0}, 72498b9484cSchristos {0,0,0,0,0,0}, 72598b9484cSchristos {0,0,0,0,0,0}, 72698b9484cSchristos {0,0,0,0,0,0}, 72798b9484cSchristos {0,0,0,0,0,0}, 72898b9484cSchristos {0,0,0,0,0,0}, 72998b9484cSchristos {0,0,0,0,0,0}, 73098b9484cSchristos {105,7,a2r,A,0,0}, /* putr.w */ 73198b9484cSchristos {105,8,a2r,S,0,0}, /* putr.l */ 73298b9484cSchristos {106,7,a1r,A,0,0}, /* getr.w */ 73398b9484cSchristos {106,8,a1r,S,0,0}, /* getr.l */ 73498b9484cSchristos {26,13,a2r,S,0,0}, /* ste.b.f */ 73598b9484cSchristos {26,14,a2r,S,0,0}, /* ste.h.f */ 73698b9484cSchristos {26,15,a2r,S,0,0}, /* ste.w.f */ 73798b9484cSchristos {26,16,a2r,S,0,0}, /* ste.l.f */ 73898b9484cSchristos {107,7,a2r,A,0,0}, /* matr.w */ 73998b9484cSchristos {108,7,a2r,A,0,0}, /* mat.w */ 74098b9484cSchristos {109,7,a1r,A,0,0}, /* get.w */ 74198b9484cSchristos {110,7,a1r,A,0,0}, /* rcv.w */ 74298b9484cSchristos {0,0,0,0,0,0}, 74398b9484cSchristos {111,7,a1r,A,0,0}, /* inc.w */ 74498b9484cSchristos {112,7,a2r,A,0,0}, /* put.w */ 74598b9484cSchristos {113,7,a2r,A,0,0}, /* snd.w */ 74698b9484cSchristos {107,8,a2r,S,0,0}, /* matr.l */ 74798b9484cSchristos {108,8,a2r,S,0,0}, /* mat.l */ 74898b9484cSchristos {109,8,a1r,S,0,0}, /* get.l */ 74998b9484cSchristos {110,8,a1r,S,0,0}, /* rcv.l */ 75098b9484cSchristos {0,0,0,0,0,0}, 75198b9484cSchristos {111,8,a1r,S,0,0}, /* inc.l */ 75298b9484cSchristos {112,8,a2r,S,0,0}, /* put.l */ 75398b9484cSchristos {113,8,a2r,S,0,0}, /* snd.l */ 75498b9484cSchristos {18,13,a1r,V,0,0}, /* ld.b.f */ 75598b9484cSchristos {18,14,a1r,V,0,0}, /* ld.h.f */ 75698b9484cSchristos {18,15,a1r,V,0,0}, /* ld.w.f */ 75798b9484cSchristos {18,16,a1r,V,0,0}, /* ld.l.f */ 75898b9484cSchristos {21,13,a2r,V,0,0}, /* st.b.f */ 75998b9484cSchristos {21,14,a2r,V,0,0}, /* st.h.f */ 76098b9484cSchristos {21,15,a2r,V,0,0}, /* st.w.f */ 76198b9484cSchristos {21,16,a2r,V,0,0}, /* st.l.f */ 76298b9484cSchristos }; 76398b9484cSchristos 76498b9484cSchristos const struct formstr e0_format2[] = { 76598b9484cSchristos {28,5,rr,V,V,0}, /* cvtw.b */ 76698b9484cSchristos {28,6,rr,V,V,0}, /* cvtw.h */ 76798b9484cSchristos {29,7,rr,V,V,0}, /* cvtb.w */ 76898b9484cSchristos {30,7,rr,V,V,0}, /* cvth.w */ 76998b9484cSchristos {28,13,rr,V,V,0}, /* cvtw.b.f */ 77098b9484cSchristos {28,14,rr,V,V,0}, /* cvtw.h.f */ 77198b9484cSchristos {29,15,rr,V,V,0}, /* cvtb.w.f */ 77298b9484cSchristos {30,15,rr,V,V,0}, /* cvth.w.f */ 77398b9484cSchristos {31,8,rr,V,V,0}, /* cvts.l */ 77498b9484cSchristos {32,7,rr,V,V,0}, /* cvtd.w */ 77598b9484cSchristos {33,3,rr,V,V,0}, /* cvtl.s */ 77698b9484cSchristos {28,4,rr,V,V,0}, /* cvtw.d */ 77798b9484cSchristos {31,16,rr,V,V,0}, /* cvts.l.f */ 77898b9484cSchristos {32,15,rr,V,V,0}, /* cvtd.w.f */ 77998b9484cSchristos {33,11,rr,V,V,0}, /* cvtl.s.f */ 78098b9484cSchristos {28,12,rr,V,V,0}, /* cvtw.d.f */ 78198b9484cSchristos {114,0,rr,S,S,0}, /* enal */ 78298b9484cSchristos {8,7,rr,S,S,0}, /* shf.w */ 78398b9484cSchristos {115,0,rr,S,S,0}, /* enag */ 78498b9484cSchristos {0,0,0,0,0,0}, 78598b9484cSchristos {28,4,rr,S,S,0}, /* cvtw.d */ 78698b9484cSchristos {32,7,rr,S,S,0}, /* cvtd.w */ 78798b9484cSchristos {0,0,0,0,0,0}, 78898b9484cSchristos {0,0,0,0,0,0}, 78998b9484cSchristos {0,0,0,0,0,0}, 79098b9484cSchristos {0,0,0,0,0,0}, 79198b9484cSchristos {0,0,0,0,0,0}, 79298b9484cSchristos {0,0,0,0,0,0}, 79398b9484cSchristos {116,3,rr,S,S,0}, /* frint.s */ 79498b9484cSchristos {116,4,rr,S,S,0}, /* frint.d */ 79598b9484cSchristos {0,0,0,0,0,0}, 79698b9484cSchristos {0,0,0,0,0,0}, 79798b9484cSchristos {0,0,0,0,0,0}, 79898b9484cSchristos {0,0,0,0,0,0}, 79998b9484cSchristos {0,0,0,0,0,0}, 80098b9484cSchristos {0,0,0,0,0,0}, 80198b9484cSchristos {0,0,0,0,0,0}, 80298b9484cSchristos {0,0,0,0,0,0}, 80398b9484cSchristos {0,0,0,0,0,0}, 80498b9484cSchristos {0,0,0,0,0,0}, 80598b9484cSchristos {0,0,0,0,0,0}, 80698b9484cSchristos {0,0,0,0,0,0}, 80798b9484cSchristos {0,0,0,0,0,0}, 80898b9484cSchristos {0,0,0,0,0,0}, 80998b9484cSchristos {0,0,0,0,0,0}, 81098b9484cSchristos {0,0,0,0,0,0}, 81198b9484cSchristos {0,0,0,0,0,0}, 81298b9484cSchristos {0,0,0,0,0,0}, 81398b9484cSchristos {0,0,0,0,0,0}, 81498b9484cSchristos {0,0,0,0,0,0}, 81598b9484cSchristos {0,0,0,0,0,0}, 81698b9484cSchristos {0,0,0,0,0,0}, 81798b9484cSchristos {0,0,0,0,0,0}, 81898b9484cSchristos {0,0,0,0,0,0}, 81998b9484cSchristos {0,0,0,0,0,0}, 82098b9484cSchristos {0,0,0,0,0,0}, 82198b9484cSchristos {0,0,0,0,0,0}, 82298b9484cSchristos {0,0,0,0,0,0}, 82398b9484cSchristos {0,0,0,0,0,0}, 82498b9484cSchristos {0,0,0,0,0,0}, 82598b9484cSchristos {0,0,0,0,0,0}, 82698b9484cSchristos {0,0,0,0,0,0}, 82798b9484cSchristos {0,0,0,0,0,0}, 82898b9484cSchristos {0,0,0,0,0,0}, 82998b9484cSchristos {0,0,0,0,0,0}, 83098b9484cSchristos {0,0,0,0,0,0}, 83198b9484cSchristos {0,0,0,0,0,0}, 83298b9484cSchristos {0,0,0,0,0,0}, 83398b9484cSchristos {0,0,0,0,0,0}, 83498b9484cSchristos {0,0,0,0,0,0}, 83598b9484cSchristos {0,0,0,0,0,0}, 83698b9484cSchristos {0,0,0,0,0,0}, 83798b9484cSchristos {0,0,0,0,0,0}, 83898b9484cSchristos {0,0,0,0,0,0}, 83998b9484cSchristos {0,0,0,0,0,0}, 84098b9484cSchristos {0,0,0,0,0,0}, 84198b9484cSchristos {0,0,0,0,0,0}, 84298b9484cSchristos {0,0,0,0,0,0}, 84398b9484cSchristos {0,0,0,0,0,0}, 84498b9484cSchristos {0,0,0,0,0,0}, 84598b9484cSchristos {0,0,0,0,0,0}, 84698b9484cSchristos {0,0,0,0,0,0}, 84798b9484cSchristos {0,0,0,0,0,0}, 84898b9484cSchristos {0,0,0,0,0,0}, 84998b9484cSchristos {0,0,0,0,0,0}, 85098b9484cSchristos {0,0,0,0,0,0}, 85198b9484cSchristos {0,0,0,0,0,0}, 85298b9484cSchristos {0,0,0,0,0,0}, 85398b9484cSchristos {0,0,0,0,0,0}, 85498b9484cSchristos {0,0,0,0,0,0}, 85598b9484cSchristos {0,0,0,0,0,0}, 85698b9484cSchristos {0,0,0,0,0,0}, 85798b9484cSchristos {0,0,0,0,0,0}, 85898b9484cSchristos {0,0,0,0,0,0}, 85998b9484cSchristos {0,0,0,0,0,0}, 86098b9484cSchristos {0,0,0,0,0,0}, 86198b9484cSchristos {0,0,0,0,0,0}, 86298b9484cSchristos {0,0,0,0,0,0}, 86398b9484cSchristos {116,3,rr,V,V,0}, /* frint.s */ 86498b9484cSchristos {116,4,rr,V,V,0}, /* frint.d */ 86598b9484cSchristos {0,0,0,0,0,0}, 86698b9484cSchristos {0,0,0,0,0,0}, 86798b9484cSchristos {116,11,rr,V,V,0}, /* frint.s.f */ 86898b9484cSchristos {116,12,rr,V,V,0}, /* frint.d.f */ 86998b9484cSchristos {0,0,0,0,0,0}, 87098b9484cSchristos {0,0,0,0,0,0}, 87198b9484cSchristos {0,0,0,0,0,0}, 87298b9484cSchristos {0,0,0,0,0,0}, 87398b9484cSchristos {0,0,0,0,0,0}, 87498b9484cSchristos {0,0,0,0,0,0}, 87598b9484cSchristos {0,0,0,0,0,0}, 87698b9484cSchristos {0,0,0,0,0,0}, 87798b9484cSchristos {0,0,0,0,0,0}, 87898b9484cSchristos {0,0,0,0,0,0}, 87998b9484cSchristos {0,0,0,0,0,0}, 88098b9484cSchristos {0,0,0,0,0,0}, 88198b9484cSchristos {81,3,rr,V,V,0}, /* sqrt.s */ 88298b9484cSchristos {81,4,rr,V,V,0}, /* sqrt.d */ 88398b9484cSchristos {0,0,0,0,0,0}, 88498b9484cSchristos {0,0,0,0,0,0}, 88598b9484cSchristos {0,0,0,0,0,0}, 88698b9484cSchristos {0,0,0,0,0,0}, 88798b9484cSchristos {0,0,0,0,0,0}, 88898b9484cSchristos {0,0,0,0,0,0}, 88998b9484cSchristos {81,11,rr,V,V,0}, /* sqrt.s.f */ 89098b9484cSchristos {81,12,rr,V,V,0}, /* sqrt.d.f */ 89198b9484cSchristos {0,0,0,0,0,0}, 89298b9484cSchristos {0,0,0,0,0,0}, 89398b9484cSchristos }; 89498b9484cSchristos 89598b9484cSchristos const struct formstr e0_format3[] = { 89698b9484cSchristos {32,11,rr,V,V,0}, /* cvtd.s.f */ 89798b9484cSchristos {31,12,rr,V,V,0}, /* cvts.d.f */ 89898b9484cSchristos {33,12,rr,V,V,0}, /* cvtl.d.f */ 89998b9484cSchristos {32,16,rr,V,V,0}, /* cvtd.l.f */ 90098b9484cSchristos {0,0,0,0,0,0}, 90198b9484cSchristos {0,0,0,0,0,0}, 90298b9484cSchristos {0,0,0,0,0,0}, 90398b9484cSchristos {0,0,0,0,0,0}, 90498b9484cSchristos {36,2,rr,V,V,0}, /* tzc.f */ 90598b9484cSchristos {44,2,rr,V,V,0}, /* lop.f */ 90698b9484cSchristos {117,2,rr,V,V,0}, /* xpnd.f */ 90798b9484cSchristos {42,2,rr,V,V,0}, /* not.f */ 90898b9484cSchristos {8,2,rr,S,V,0}, /* shf.f */ 90998b9484cSchristos {35,17,rr,V,V,0}, /* plc.t.f */ 91098b9484cSchristos {0,0,0,0,0,0}, 91198b9484cSchristos {0,0,0,0,0,0}, 91298b9484cSchristos {37,11,rr,V,V,0}, /* eq.s.f */ 91398b9484cSchristos {37,12,rr,V,V,0}, /* eq.d.f */ 91498b9484cSchristos {43,11,rr,V,V,0}, /* neg.s.f */ 91598b9484cSchristos {43,12,rr,V,V,0}, /* neg.d.f */ 91698b9484cSchristos {37,11,rr,S,V,0}, /* eq.s.f */ 91798b9484cSchristos {37,12,rr,S,V,0}, /* eq.d.f */ 91898b9484cSchristos {0,0,0,0,0,0}, 91998b9484cSchristos {0,0,0,0,0,0}, 92098b9484cSchristos {40,11,rr,V,V,0}, /* le.s.f */ 92198b9484cSchristos {40,12,rr,V,V,0}, /* le.d.f */ 92298b9484cSchristos {41,11,rr,V,V,0}, /* lt.s.f */ 92398b9484cSchristos {41,12,rr,V,V,0}, /* lt.d.f */ 92498b9484cSchristos {40,11,rr,S,V,0}, /* le.s.f */ 92598b9484cSchristos {40,12,rr,S,V,0}, /* le.d.f */ 92698b9484cSchristos {41,11,rr,S,V,0}, /* lt.s.f */ 92798b9484cSchristos {41,12,rr,S,V,0}, /* lt.d.f */ 92898b9484cSchristos {37,13,rr,V,V,0}, /* eq.b.f */ 92998b9484cSchristos {37,14,rr,V,V,0}, /* eq.h.f */ 93098b9484cSchristos {37,15,rr,V,V,0}, /* eq.w.f */ 93198b9484cSchristos {37,16,rr,V,V,0}, /* eq.l.f */ 93298b9484cSchristos {37,13,rr,S,V,0}, /* eq.b.f */ 93398b9484cSchristos {37,14,rr,S,V,0}, /* eq.h.f */ 93498b9484cSchristos {37,15,rr,S,V,0}, /* eq.w.f */ 93598b9484cSchristos {37,16,rr,S,V,0}, /* eq.l.f */ 93698b9484cSchristos {40,13,rr,V,V,0}, /* le.b.f */ 93798b9484cSchristos {40,14,rr,V,V,0}, /* le.h.f */ 93898b9484cSchristos {40,15,rr,V,V,0}, /* le.w.f */ 93998b9484cSchristos {40,16,rr,V,V,0}, /* le.l.f */ 94098b9484cSchristos {40,13,rr,S,V,0}, /* le.b.f */ 94198b9484cSchristos {40,14,rr,S,V,0}, /* le.h.f */ 94298b9484cSchristos {40,15,rr,S,V,0}, /* le.w.f */ 94398b9484cSchristos {40,16,rr,S,V,0}, /* le.l.f */ 94498b9484cSchristos {41,13,rr,V,V,0}, /* lt.b.f */ 94598b9484cSchristos {41,14,rr,V,V,0}, /* lt.h.f */ 94698b9484cSchristos {41,15,rr,V,V,0}, /* lt.w.f */ 94798b9484cSchristos {41,16,rr,V,V,0}, /* lt.l.f */ 94898b9484cSchristos {41,13,rr,S,V,0}, /* lt.b.f */ 94998b9484cSchristos {41,14,rr,S,V,0}, /* lt.h.f */ 95098b9484cSchristos {41,15,rr,S,V,0}, /* lt.w.f */ 95198b9484cSchristos {41,16,rr,S,V,0}, /* lt.l.f */ 95298b9484cSchristos {43,13,rr,V,V,0}, /* neg.b.f */ 95398b9484cSchristos {43,14,rr,V,V,0}, /* neg.h.f */ 95498b9484cSchristos {43,15,rr,V,V,0}, /* neg.w.f */ 95598b9484cSchristos {43,16,rr,V,V,0}, /* neg.l.f */ 95698b9484cSchristos {0,0,0,0,0,0}, 95798b9484cSchristos {0,0,0,0,0,0}, 95898b9484cSchristos {0,0,0,0,0,0}, 95998b9484cSchristos {0,0,0,0,0,0}, 96098b9484cSchristos }; 96198b9484cSchristos 96298b9484cSchristos const struct formstr e0_format4[] = { 96398b9484cSchristos {0,0,0,0,0,0}, 96498b9484cSchristos {0,0,0,0,0,0}, 96598b9484cSchristos {0,0,0,0,0,0}, 96698b9484cSchristos {0,0,0,0,0,0}, 96798b9484cSchristos {0,0,0,0,0,0}, 96898b9484cSchristos {0,0,0,0,0,0}, 96998b9484cSchristos {0,0,0,0,0,0}, 97098b9484cSchristos {0,0,0,0,0,0}, 97198b9484cSchristos }; 97298b9484cSchristos 97398b9484cSchristos const struct formstr e0_format5[] = { 97498b9484cSchristos {51,13,rr,V,V,0}, /* ldvi.b.f */ 97598b9484cSchristos {51,14,rr,V,V,0}, /* ldvi.h.f */ 97698b9484cSchristos {51,15,rr,V,V,0}, /* ldvi.w.f */ 97798b9484cSchristos {51,16,rr,V,V,0}, /* ldvi.l.f */ 97898b9484cSchristos {28,11,rr,V,V,0}, /* cvtw.s.f */ 97998b9484cSchristos {31,15,rr,V,V,0}, /* cvts.w.f */ 98098b9484cSchristos {28,16,rr,V,V,0}, /* cvtw.l.f */ 98198b9484cSchristos {33,15,rr,V,V,0}, /* cvtl.w.f */ 98298b9484cSchristos {52,13,rxr,V,V,0}, /* stvi.b.f */ 98398b9484cSchristos {52,14,rxr,V,V,0}, /* stvi.h.f */ 98498b9484cSchristos {52,15,rxr,V,V,0}, /* stvi.w.f */ 98598b9484cSchristos {52,16,rxr,V,V,0}, /* stvi.l.f */ 98698b9484cSchristos {52,13,rxr,S,V,0}, /* stvi.b.f */ 98798b9484cSchristos {52,14,rxr,S,V,0}, /* stvi.h.f */ 98898b9484cSchristos {52,15,rxr,S,V,0}, /* stvi.w.f */ 98998b9484cSchristos {52,16,rxr,S,V,0}, /* stvi.l.f */ 99098b9484cSchristos }; 99198b9484cSchristos 99298b9484cSchristos const struct formstr e0_format6[] = { 99398b9484cSchristos {0,0,rxl,S,CIR,0}, /* mov */ 99498b9484cSchristos {0,0,lr,CIR,S,0}, /* mov */ 99598b9484cSchristos {0,0,lr,TOC,S,0}, /* mov */ 99698b9484cSchristos {0,0,lr,CPUID,S,0}, /* mov */ 99798b9484cSchristos {0,0,rxl,S,TTR,0}, /* mov */ 99898b9484cSchristos {0,0,lr,TTR,S,0}, /* mov */ 99998b9484cSchristos {118,0,nops,0,0,0}, /* ctrsl */ 100098b9484cSchristos {119,0,nops,0,0,0}, /* ctrsg */ 100198b9484cSchristos {0,0,rxl,S,VMU,0}, /* mov */ 100298b9484cSchristos {0,0,lr,VMU,S,0}, /* mov */ 100398b9484cSchristos {0,0,rxl,S,VML,0}, /* mov */ 100498b9484cSchristos {0,0,lr,VML,S,0}, /* mov */ 100598b9484cSchristos {0,0,rxl,S,ICR,0}, /* mov */ 100698b9484cSchristos {0,0,lr,ICR,S,0}, /* mov */ 100798b9484cSchristos {0,0,rxl,S,TCPU,0}, /* mov */ 100898b9484cSchristos {0,0,lr,TCPU,S,0}, /* mov */ 100998b9484cSchristos {0,0,0,0,0,0}, 101098b9484cSchristos {0,0,0,0,0,0}, 101198b9484cSchristos {0,0,0,0,0,0}, 101298b9484cSchristos {0,0,0,0,0,0}, 101398b9484cSchristos {120,0,nops,0,0,0}, /* stop */ 101498b9484cSchristos {0,0,0,0,0,0}, 101598b9484cSchristos {0,0,rxl,S,TID,0}, /* mov */ 101698b9484cSchristos {0,0,lr,TID,S,0}, /* mov */ 101798b9484cSchristos {0,0,0,0,0,0}, 101898b9484cSchristos {0,0,0,0,0,0}, 101998b9484cSchristos {0,0,0,0,0,0}, 102098b9484cSchristos {0,0,0,0,0,0}, 102198b9484cSchristos {0,0,0,0,0,0}, 102298b9484cSchristos {0,0,0,0,0,0}, 102398b9484cSchristos {0,0,0,0,0,0}, 102498b9484cSchristos {0,0,0,0,0,0}, 102598b9484cSchristos {0,0,0,0,0,0}, 102698b9484cSchristos {0,0,0,0,0,0}, 102798b9484cSchristos {0,0,0,0,0,0}, 102898b9484cSchristos {0,0,0,0,0,0}, 102998b9484cSchristos {0,0,0,0,0,0}, 103098b9484cSchristos {0,0,0,0,0,0}, 103198b9484cSchristos {0,0,0,0,0,0}, 103298b9484cSchristos {0,0,0,0,0,0}, 103398b9484cSchristos {0,0,0,0,0,0}, 103498b9484cSchristos {0,0,0,0,0,0}, 103598b9484cSchristos {0,0,0,0,0,0}, 103698b9484cSchristos {0,0,0,0,0,0}, 103798b9484cSchristos {0,0,0,0,0,0}, 103898b9484cSchristos {0,0,0,0,0,0}, 103998b9484cSchristos {0,0,0,0,0,0}, 104098b9484cSchristos {0,0,0,0,0,0}, 104198b9484cSchristos {0,0,0,0,0,0}, 104298b9484cSchristos {0,0,0,0,0,0}, 104398b9484cSchristos {0,0,0,0,0,0}, 104498b9484cSchristos {0,0,0,0,0,0}, 104598b9484cSchristos {0,0,0,0,0,0}, 104698b9484cSchristos {0,0,0,0,0,0}, 104798b9484cSchristos {0,0,0,0,0,0}, 104898b9484cSchristos {0,0,0,0,0,0}, 104998b9484cSchristos {0,0,0,0,0,0}, 105098b9484cSchristos {0,0,0,0,0,0}, 105198b9484cSchristos {0,0,0,0,0,0}, 105298b9484cSchristos {0,0,0,0,0,0}, 105398b9484cSchristos {0,0,0,0,0,0}, 105498b9484cSchristos {0,0,0,0,0,0}, 105598b9484cSchristos {0,0,0,0,0,0}, 105698b9484cSchristos {0,0,0,0,0,0}, 105798b9484cSchristos }; 105898b9484cSchristos 105998b9484cSchristos const struct formstr e0_format7[] = { 106098b9484cSchristos {84,13,r,V,0,0}, /* sum.b.f */ 106198b9484cSchristos {84,14,r,V,0,0}, /* sum.h.f */ 106298b9484cSchristos {84,15,r,V,0,0}, /* sum.w.f */ 106398b9484cSchristos {84,16,r,V,0,0}, /* sum.l.f */ 106498b9484cSchristos {85,2,r,V,0,0}, /* all.f */ 106598b9484cSchristos {86,2,r,V,0,0}, /* any.f */ 106698b9484cSchristos {87,2,r,V,0,0}, /* parity.f */ 106798b9484cSchristos {0,0,0,0,0,0}, 106898b9484cSchristos {88,13,r,V,0,0}, /* max.b.f */ 106998b9484cSchristos {88,14,r,V,0,0}, /* max.h.f */ 107098b9484cSchristos {88,15,r,V,0,0}, /* max.w.f */ 107198b9484cSchristos {88,16,r,V,0,0}, /* max.l.f */ 107298b9484cSchristos {89,13,r,V,0,0}, /* min.b.f */ 107398b9484cSchristos {89,14,r,V,0,0}, /* min.h.f */ 107498b9484cSchristos {89,15,r,V,0,0}, /* min.w.f */ 107598b9484cSchristos {89,16,r,V,0,0}, /* min.l.f */ 107698b9484cSchristos {84,11,r,V,0,0}, /* sum.s.f */ 107798b9484cSchristos {84,12,r,V,0,0}, /* sum.d.f */ 107898b9484cSchristos {90,11,r,V,0,0}, /* prod.s.f */ 107998b9484cSchristos {90,12,r,V,0,0}, /* prod.d.f */ 108098b9484cSchristos {88,11,r,V,0,0}, /* max.s.f */ 108198b9484cSchristos {88,12,r,V,0,0}, /* max.d.f */ 108298b9484cSchristos {89,11,r,V,0,0}, /* min.s.f */ 108398b9484cSchristos {89,12,r,V,0,0}, /* min.d.f */ 108498b9484cSchristos {90,13,r,V,0,0}, /* prod.b.f */ 108598b9484cSchristos {90,14,r,V,0,0}, /* prod.h.f */ 108698b9484cSchristos {90,15,r,V,0,0}, /* prod.w.f */ 108798b9484cSchristos {90,16,r,V,0,0}, /* prod.l.f */ 108898b9484cSchristos {0,0,0,0,0,0}, 108998b9484cSchristos {0,0,0,0,0,0}, 109098b9484cSchristos {0,0,0,0,0,0}, 109198b9484cSchristos {0,0,0,0,0,0}, 109298b9484cSchristos }; 109398b9484cSchristos 109498b9484cSchristos const struct formstr e1_format0[] = { 109598b9484cSchristos {0,0,0,0,0,0}, 109698b9484cSchristos {0,0,0,0,0,0}, 109798b9484cSchristos {0,0,0,0,0,0}, 109898b9484cSchristos {0,0,0,0,0,0}, 109998b9484cSchristos {10,18,rrr,S,V,V}, /* sub.s.t */ 110098b9484cSchristos {10,19,rrr,S,V,V}, /* sub.d.t */ 110198b9484cSchristos {4,18,rrr,S,V,V}, /* div.s.t */ 110298b9484cSchristos {4,19,rrr,S,V,V}, /* div.d.t */ 110398b9484cSchristos {3,18,rrr,V,V,V}, /* mul.s.t */ 110498b9484cSchristos {3,19,rrr,V,V,V}, /* mul.d.t */ 110598b9484cSchristos {4,18,rrr,V,V,V}, /* div.s.t */ 110698b9484cSchristos {4,19,rrr,V,V,V}, /* div.d.t */ 110798b9484cSchristos {3,18,rrr,V,S,V}, /* mul.s.t */ 110898b9484cSchristos {3,19,rrr,V,S,V}, /* mul.d.t */ 110998b9484cSchristos {4,18,rrr,V,S,V}, /* div.s.t */ 111098b9484cSchristos {4,19,rrr,V,S,V}, /* div.d.t */ 111198b9484cSchristos {5,1,rrr,V,V,V}, /* and.t */ 111298b9484cSchristos {6,1,rrr,V,V,V}, /* or.t */ 111398b9484cSchristos {7,1,rrr,V,V,V}, /* xor.t */ 111498b9484cSchristos {8,1,rrr,V,V,V}, /* shf.t */ 111598b9484cSchristos {5,1,rrr,V,S,V}, /* and.t */ 111698b9484cSchristos {6,1,rrr,V,S,V}, /* or.t */ 111798b9484cSchristos {7,1,rrr,V,S,V}, /* xor.t */ 111898b9484cSchristos {8,1,rrr,V,S,V}, /* shf.t */ 111998b9484cSchristos {9,18,rrr,V,V,V}, /* add.s.t */ 112098b9484cSchristos {9,19,rrr,V,V,V}, /* add.d.t */ 112198b9484cSchristos {10,18,rrr,V,V,V}, /* sub.s.t */ 112298b9484cSchristos {10,19,rrr,V,V,V}, /* sub.d.t */ 112398b9484cSchristos {9,18,rrr,V,S,V}, /* add.s.t */ 112498b9484cSchristos {9,19,rrr,V,S,V}, /* add.d.t */ 112598b9484cSchristos {10,18,rrr,V,S,V}, /* sub.s.t */ 112698b9484cSchristos {10,19,rrr,V,S,V}, /* sub.d.t */ 112798b9484cSchristos {9,20,rrr,V,V,V}, /* add.b.t */ 112898b9484cSchristos {9,21,rrr,V,V,V}, /* add.h.t */ 112998b9484cSchristos {9,22,rrr,V,V,V}, /* add.w.t */ 113098b9484cSchristos {9,23,rrr,V,V,V}, /* add.l.t */ 113198b9484cSchristos {9,20,rrr,V,S,V}, /* add.b.t */ 113298b9484cSchristos {9,21,rrr,V,S,V}, /* add.h.t */ 113398b9484cSchristos {9,22,rrr,V,S,V}, /* add.w.t */ 113498b9484cSchristos {9,23,rrr,V,S,V}, /* add.l.t */ 113598b9484cSchristos {10,20,rrr,V,V,V}, /* sub.b.t */ 113698b9484cSchristos {10,21,rrr,V,V,V}, /* sub.h.t */ 113798b9484cSchristos {10,22,rrr,V,V,V}, /* sub.w.t */ 113898b9484cSchristos {10,23,rrr,V,V,V}, /* sub.l.t */ 113998b9484cSchristos {10,20,rrr,V,S,V}, /* sub.b.t */ 114098b9484cSchristos {10,21,rrr,V,S,V}, /* sub.h.t */ 114198b9484cSchristos {10,22,rrr,V,S,V}, /* sub.w.t */ 114298b9484cSchristos {10,23,rrr,V,S,V}, /* sub.l.t */ 114398b9484cSchristos {3,20,rrr,V,V,V}, /* mul.b.t */ 114498b9484cSchristos {3,21,rrr,V,V,V}, /* mul.h.t */ 114598b9484cSchristos {3,22,rrr,V,V,V}, /* mul.w.t */ 114698b9484cSchristos {3,23,rrr,V,V,V}, /* mul.l.t */ 114798b9484cSchristos {3,20,rrr,V,S,V}, /* mul.b.t */ 114898b9484cSchristos {3,21,rrr,V,S,V}, /* mul.h.t */ 114998b9484cSchristos {3,22,rrr,V,S,V}, /* mul.w.t */ 115098b9484cSchristos {3,23,rrr,V,S,V}, /* mul.l.t */ 115198b9484cSchristos {4,20,rrr,V,V,V}, /* div.b.t */ 115298b9484cSchristos {4,21,rrr,V,V,V}, /* div.h.t */ 115398b9484cSchristos {4,22,rrr,V,V,V}, /* div.w.t */ 115498b9484cSchristos {4,23,rrr,V,V,V}, /* div.l.t */ 115598b9484cSchristos {4,20,rrr,V,S,V}, /* div.b.t */ 115698b9484cSchristos {4,21,rrr,V,S,V}, /* div.h.t */ 115798b9484cSchristos {4,22,rrr,V,S,V}, /* div.w.t */ 115898b9484cSchristos {4,23,rrr,V,S,V}, /* div.l.t */ 115998b9484cSchristos }; 116098b9484cSchristos 116198b9484cSchristos const struct formstr e1_format1[] = { 116298b9484cSchristos {0,0,0,0,0,0}, 116398b9484cSchristos {0,0,0,0,0,0}, 116498b9484cSchristos {0,0,0,0,0,0}, 116598b9484cSchristos {0,0,0,0,0,0}, 116698b9484cSchristos {0,0,0,0,0,0}, 116798b9484cSchristos {0,0,0,0,0,0}, 116898b9484cSchristos {0,0,0,0,0,0}, 116998b9484cSchristos {0,0,0,0,0,0}, 117098b9484cSchristos {0,0,0,0,0,0}, 117198b9484cSchristos {0,0,0,0,0,0}, 117298b9484cSchristos {0,0,0,0,0,0}, 117398b9484cSchristos {0,0,0,0,0,0}, 117498b9484cSchristos {0,0,0,0,0,0}, 117598b9484cSchristos {0,0,0,0,0,0}, 117698b9484cSchristos {0,0,0,0,0,0}, 117798b9484cSchristos {0,0,0,0,0,0}, 117898b9484cSchristos {0,0,0,0,0,0}, 117998b9484cSchristos {0,0,0,0,0,0}, 118098b9484cSchristos {0,0,0,0,0,0}, 118198b9484cSchristos {0,0,0,0,0,0}, 118298b9484cSchristos {0,0,0,0,0,0}, 118398b9484cSchristos {0,0,0,0,0,0}, 118498b9484cSchristos {0,0,0,0,0,0}, 118598b9484cSchristos {0,0,0,0,0,0}, 118698b9484cSchristos {0,0,0,0,0,0}, 118798b9484cSchristos {0,0,0,0,0,0}, 118898b9484cSchristos {0,0,0,0,0,0}, 118998b9484cSchristos {0,0,0,0,0,0}, 119098b9484cSchristos {0,0,0,0,0,0}, 119198b9484cSchristos {0,0,0,0,0,0}, 119298b9484cSchristos {0,0,0,0,0,0}, 119398b9484cSchristos {0,0,0,0,0,0}, 119498b9484cSchristos {0,0,0,0,0,0}, 119598b9484cSchristos {0,0,0,0,0,0}, 119698b9484cSchristos {0,0,0,0,0,0}, 119798b9484cSchristos {0,0,0,0,0,0}, 119898b9484cSchristos {26,20,a2r,S,0,0}, /* ste.b.t */ 119998b9484cSchristos {26,21,a2r,S,0,0}, /* ste.h.t */ 120098b9484cSchristos {26,22,a2r,S,0,0}, /* ste.w.t */ 120198b9484cSchristos {26,23,a2r,S,0,0}, /* ste.l.t */ 120298b9484cSchristos {0,0,0,0,0,0}, 120398b9484cSchristos {0,0,0,0,0,0}, 120498b9484cSchristos {0,0,0,0,0,0}, 120598b9484cSchristos {0,0,0,0,0,0}, 120698b9484cSchristos {0,0,0,0,0,0}, 120798b9484cSchristos {0,0,0,0,0,0}, 120898b9484cSchristos {0,0,0,0,0,0}, 120998b9484cSchristos {0,0,0,0,0,0}, 121098b9484cSchristos {0,0,0,0,0,0}, 121198b9484cSchristos {0,0,0,0,0,0}, 121298b9484cSchristos {0,0,0,0,0,0}, 121398b9484cSchristos {0,0,0,0,0,0}, 121498b9484cSchristos {0,0,0,0,0,0}, 121598b9484cSchristos {0,0,0,0,0,0}, 121698b9484cSchristos {0,0,0,0,0,0}, 121798b9484cSchristos {0,0,0,0,0,0}, 121898b9484cSchristos {18,20,a1r,V,0,0}, /* ld.b.t */ 121998b9484cSchristos {18,21,a1r,V,0,0}, /* ld.h.t */ 122098b9484cSchristos {18,22,a1r,V,0,0}, /* ld.w.t */ 122198b9484cSchristos {18,23,a1r,V,0,0}, /* ld.l.t */ 122298b9484cSchristos {21,20,a2r,V,0,0}, /* st.b.t */ 122398b9484cSchristos {21,21,a2r,V,0,0}, /* st.h.t */ 122498b9484cSchristos {21,22,a2r,V,0,0}, /* st.w.t */ 122598b9484cSchristos {21,23,a2r,V,0,0}, /* st.l.t */ 122698b9484cSchristos }; 122798b9484cSchristos 122898b9484cSchristos const struct formstr e1_format2[] = { 122998b9484cSchristos {0,0,0,0,0,0}, 123098b9484cSchristos {0,0,0,0,0,0}, 123198b9484cSchristos {0,0,0,0,0,0}, 123298b9484cSchristos {0,0,0,0,0,0}, 123398b9484cSchristos {28,20,rr,V,V,0}, /* cvtw.b.t */ 123498b9484cSchristos {28,21,rr,V,V,0}, /* cvtw.h.t */ 123598b9484cSchristos {29,22,rr,V,V,0}, /* cvtb.w.t */ 123698b9484cSchristos {30,22,rr,V,V,0}, /* cvth.w.t */ 123798b9484cSchristos {0,0,0,0,0,0}, 123898b9484cSchristos {0,0,0,0,0,0}, 123998b9484cSchristos {0,0,0,0,0,0}, 124098b9484cSchristos {0,0,0,0,0,0}, 124198b9484cSchristos {31,23,rr,V,V,0}, /* cvts.l.t */ 124298b9484cSchristos {32,22,rr,V,V,0}, /* cvtd.w.t */ 124398b9484cSchristos {33,18,rr,V,V,0}, /* cvtl.s.t */ 124498b9484cSchristos {28,19,rr,V,V,0}, /* cvtw.d.t */ 124598b9484cSchristos {0,0,0,0,0,0}, 124698b9484cSchristos {0,0,0,0,0,0}, 124798b9484cSchristos {0,0,0,0,0,0}, 124898b9484cSchristos {0,0,0,0,0,0}, 124998b9484cSchristos {0,0,0,0,0,0}, 125098b9484cSchristos {0,0,0,0,0,0}, 125198b9484cSchristos {0,0,0,0,0,0}, 125298b9484cSchristos {0,0,0,0,0,0}, 125398b9484cSchristos {0,0,0,0,0,0}, 125498b9484cSchristos {0,0,0,0,0,0}, 125598b9484cSchristos {0,0,0,0,0,0}, 125698b9484cSchristos {0,0,0,0,0,0}, 125798b9484cSchristos {0,0,0,0,0,0}, 125898b9484cSchristos {0,0,0,0,0,0}, 125998b9484cSchristos {0,0,0,0,0,0}, 126098b9484cSchristos {0,0,0,0,0,0}, 126198b9484cSchristos {0,0,0,0,0,0}, 126298b9484cSchristos {0,0,0,0,0,0}, 126398b9484cSchristos {0,0,0,0,0,0}, 126498b9484cSchristos {0,0,0,0,0,0}, 126598b9484cSchristos {0,0,0,0,0,0}, 126698b9484cSchristos {0,0,0,0,0,0}, 126798b9484cSchristos {0,0,0,0,0,0}, 126898b9484cSchristos {0,0,0,0,0,0}, 126998b9484cSchristos {0,0,0,0,0,0}, 127098b9484cSchristos {0,0,0,0,0,0}, 127198b9484cSchristos {0,0,0,0,0,0}, 127298b9484cSchristos {0,0,0,0,0,0}, 127398b9484cSchristos {0,0,0,0,0,0}, 127498b9484cSchristos {0,0,0,0,0,0}, 127598b9484cSchristos {0,0,0,0,0,0}, 127698b9484cSchristos {0,0,0,0,0,0}, 127798b9484cSchristos {0,0,0,0,0,0}, 127898b9484cSchristos {0,0,0,0,0,0}, 127998b9484cSchristos {0,0,0,0,0,0}, 128098b9484cSchristos {0,0,0,0,0,0}, 128198b9484cSchristos {0,0,0,0,0,0}, 128298b9484cSchristos {0,0,0,0,0,0}, 128398b9484cSchristos {0,0,0,0,0,0}, 128498b9484cSchristos {0,0,0,0,0,0}, 128598b9484cSchristos {0,0,0,0,0,0}, 128698b9484cSchristos {0,0,0,0,0,0}, 128798b9484cSchristos {0,0,0,0,0,0}, 128898b9484cSchristos {0,0,0,0,0,0}, 128998b9484cSchristos {0,0,0,0,0,0}, 129098b9484cSchristos {0,0,0,0,0,0}, 129198b9484cSchristos {0,0,0,0,0,0}, 129298b9484cSchristos {0,0,0,0,0,0}, 129398b9484cSchristos {0,0,0,0,0,0}, 129498b9484cSchristos {0,0,0,0,0,0}, 129598b9484cSchristos {0,0,0,0,0,0}, 129698b9484cSchristos {0,0,0,0,0,0}, 129798b9484cSchristos {0,0,0,0,0,0}, 129898b9484cSchristos {0,0,0,0,0,0}, 129998b9484cSchristos {0,0,0,0,0,0}, 130098b9484cSchristos {0,0,0,0,0,0}, 130198b9484cSchristos {0,0,0,0,0,0}, 130298b9484cSchristos {0,0,0,0,0,0}, 130398b9484cSchristos {0,0,0,0,0,0}, 130498b9484cSchristos {0,0,0,0,0,0}, 130598b9484cSchristos {0,0,0,0,0,0}, 130698b9484cSchristos {0,0,0,0,0,0}, 130798b9484cSchristos {0,0,0,0,0,0}, 130898b9484cSchristos {0,0,0,0,0,0}, 130998b9484cSchristos {0,0,0,0,0,0}, 131098b9484cSchristos {0,0,0,0,0,0}, 131198b9484cSchristos {0,0,0,0,0,0}, 131298b9484cSchristos {0,0,0,0,0,0}, 131398b9484cSchristos {0,0,0,0,0,0}, 131498b9484cSchristos {0,0,0,0,0,0}, 131598b9484cSchristos {0,0,0,0,0,0}, 131698b9484cSchristos {0,0,0,0,0,0}, 131798b9484cSchristos {0,0,0,0,0,0}, 131898b9484cSchristos {0,0,0,0,0,0}, 131998b9484cSchristos {0,0,0,0,0,0}, 132098b9484cSchristos {0,0,0,0,0,0}, 132198b9484cSchristos {0,0,0,0,0,0}, 132298b9484cSchristos {0,0,0,0,0,0}, 132398b9484cSchristos {0,0,0,0,0,0}, 132498b9484cSchristos {0,0,0,0,0,0}, 132598b9484cSchristos {0,0,0,0,0,0}, 132698b9484cSchristos {0,0,0,0,0,0}, 132798b9484cSchristos {0,0,0,0,0,0}, 132898b9484cSchristos {0,0,0,0,0,0}, 132998b9484cSchristos {0,0,0,0,0,0}, 133098b9484cSchristos {0,0,0,0,0,0}, 133198b9484cSchristos {116,18,rr,V,V,0}, /* frint.s.t */ 133298b9484cSchristos {116,19,rr,V,V,0}, /* frint.d.t */ 133398b9484cSchristos {0,0,0,0,0,0}, 133498b9484cSchristos {0,0,0,0,0,0}, 133598b9484cSchristos {0,0,0,0,0,0}, 133698b9484cSchristos {0,0,0,0,0,0}, 133798b9484cSchristos {0,0,0,0,0,0}, 133898b9484cSchristos {0,0,0,0,0,0}, 133998b9484cSchristos {0,0,0,0,0,0}, 134098b9484cSchristos {0,0,0,0,0,0}, 134198b9484cSchristos {0,0,0,0,0,0}, 134298b9484cSchristos {0,0,0,0,0,0}, 134398b9484cSchristos {0,0,0,0,0,0}, 134498b9484cSchristos {0,0,0,0,0,0}, 134598b9484cSchristos {0,0,0,0,0,0}, 134698b9484cSchristos {0,0,0,0,0,0}, 134798b9484cSchristos {0,0,0,0,0,0}, 134898b9484cSchristos {0,0,0,0,0,0}, 134998b9484cSchristos {0,0,0,0,0,0}, 135098b9484cSchristos {0,0,0,0,0,0}, 135198b9484cSchristos {0,0,0,0,0,0}, 135298b9484cSchristos {0,0,0,0,0,0}, 135398b9484cSchristos {81,18,rr,V,V,0}, /* sqrt.s.t */ 135498b9484cSchristos {81,19,rr,V,V,0}, /* sqrt.d.t */ 135598b9484cSchristos {0,0,0,0,0,0}, 135698b9484cSchristos {0,0,0,0,0,0}, 135798b9484cSchristos }; 135898b9484cSchristos 135998b9484cSchristos const struct formstr e1_format3[] = { 136098b9484cSchristos {32,18,rr,V,V,0}, /* cvtd.s.t */ 136198b9484cSchristos {31,19,rr,V,V,0}, /* cvts.d.t */ 136298b9484cSchristos {33,19,rr,V,V,0}, /* cvtl.d.t */ 136398b9484cSchristos {32,23,rr,V,V,0}, /* cvtd.l.t */ 136498b9484cSchristos {0,0,0,0,0,0}, 136598b9484cSchristos {0,0,0,0,0,0}, 136698b9484cSchristos {0,0,0,0,0,0}, 136798b9484cSchristos {0,0,0,0,0,0}, 136898b9484cSchristos {36,1,rr,V,V,0}, /* tzc.t */ 136998b9484cSchristos {44,1,rr,V,V,0}, /* lop.t */ 137098b9484cSchristos {117,1,rr,V,V,0}, /* xpnd.t */ 137198b9484cSchristos {42,1,rr,V,V,0}, /* not.t */ 137298b9484cSchristos {8,1,rr,S,V,0}, /* shf.t */ 137398b9484cSchristos {35,24,rr,V,V,0}, /* plc.t.t */ 137498b9484cSchristos {0,0,0,0,0,0}, 137598b9484cSchristos {0,0,0,0,0,0}, 137698b9484cSchristos {37,18,rr,V,V,0}, /* eq.s.t */ 137798b9484cSchristos {37,19,rr,V,V,0}, /* eq.d.t */ 137898b9484cSchristos {43,18,rr,V,V,0}, /* neg.s.t */ 137998b9484cSchristos {43,19,rr,V,V,0}, /* neg.d.t */ 138098b9484cSchristos {37,18,rr,S,V,0}, /* eq.s.t */ 138198b9484cSchristos {37,19,rr,S,V,0}, /* eq.d.t */ 138298b9484cSchristos {0,0,0,0,0,0}, 138398b9484cSchristos {0,0,0,0,0,0}, 138498b9484cSchristos {40,18,rr,V,V,0}, /* le.s.t */ 138598b9484cSchristos {40,19,rr,V,V,0}, /* le.d.t */ 138698b9484cSchristos {41,18,rr,V,V,0}, /* lt.s.t */ 138798b9484cSchristos {41,19,rr,V,V,0}, /* lt.d.t */ 138898b9484cSchristos {40,18,rr,S,V,0}, /* le.s.t */ 138998b9484cSchristos {40,19,rr,S,V,0}, /* le.d.t */ 139098b9484cSchristos {41,18,rr,S,V,0}, /* lt.s.t */ 139198b9484cSchristos {41,19,rr,S,V,0}, /* lt.d.t */ 139298b9484cSchristos {37,20,rr,V,V,0}, /* eq.b.t */ 139398b9484cSchristos {37,21,rr,V,V,0}, /* eq.h.t */ 139498b9484cSchristos {37,22,rr,V,V,0}, /* eq.w.t */ 139598b9484cSchristos {37,23,rr,V,V,0}, /* eq.l.t */ 139698b9484cSchristos {37,20,rr,S,V,0}, /* eq.b.t */ 139798b9484cSchristos {37,21,rr,S,V,0}, /* eq.h.t */ 139898b9484cSchristos {37,22,rr,S,V,0}, /* eq.w.t */ 139998b9484cSchristos {37,23,rr,S,V,0}, /* eq.l.t */ 140098b9484cSchristos {40,20,rr,V,V,0}, /* le.b.t */ 140198b9484cSchristos {40,21,rr,V,V,0}, /* le.h.t */ 140298b9484cSchristos {40,22,rr,V,V,0}, /* le.w.t */ 140398b9484cSchristos {40,23,rr,V,V,0}, /* le.l.t */ 140498b9484cSchristos {40,20,rr,S,V,0}, /* le.b.t */ 140598b9484cSchristos {40,21,rr,S,V,0}, /* le.h.t */ 140698b9484cSchristos {40,22,rr,S,V,0}, /* le.w.t */ 140798b9484cSchristos {40,23,rr,S,V,0}, /* le.l.t */ 140898b9484cSchristos {41,20,rr,V,V,0}, /* lt.b.t */ 140998b9484cSchristos {41,21,rr,V,V,0}, /* lt.h.t */ 141098b9484cSchristos {41,22,rr,V,V,0}, /* lt.w.t */ 141198b9484cSchristos {41,23,rr,V,V,0}, /* lt.l.t */ 141298b9484cSchristos {41,20,rr,S,V,0}, /* lt.b.t */ 141398b9484cSchristos {41,21,rr,S,V,0}, /* lt.h.t */ 141498b9484cSchristos {41,22,rr,S,V,0}, /* lt.w.t */ 141598b9484cSchristos {41,23,rr,S,V,0}, /* lt.l.t */ 141698b9484cSchristos {43,20,rr,V,V,0}, /* neg.b.t */ 141798b9484cSchristos {43,21,rr,V,V,0}, /* neg.h.t */ 141898b9484cSchristos {43,22,rr,V,V,0}, /* neg.w.t */ 141998b9484cSchristos {43,23,rr,V,V,0}, /* neg.l.t */ 142098b9484cSchristos {0,0,0,0,0,0}, 142198b9484cSchristos {0,0,0,0,0,0}, 142298b9484cSchristos {0,0,0,0,0,0}, 142398b9484cSchristos {0,0,0,0,0,0}, 142498b9484cSchristos }; 142598b9484cSchristos 142698b9484cSchristos const struct formstr e1_format4[] = { 142798b9484cSchristos {0,0,0,0,0,0}, 142898b9484cSchristos {0,0,0,0,0,0}, 142998b9484cSchristos {0,0,0,0,0,0}, 143098b9484cSchristos {0,0,0,0,0,0}, 143198b9484cSchristos {0,0,0,0,0,0}, 143298b9484cSchristos {0,0,0,0,0,0}, 143398b9484cSchristos {0,0,0,0,0,0}, 143498b9484cSchristos {0,0,0,0,0,0}, 143598b9484cSchristos }; 143698b9484cSchristos 143798b9484cSchristos const struct formstr e1_format5[] = { 143898b9484cSchristos {51,20,rr,V,V,0}, /* ldvi.b.t */ 143998b9484cSchristos {51,21,rr,V,V,0}, /* ldvi.h.t */ 144098b9484cSchristos {51,22,rr,V,V,0}, /* ldvi.w.t */ 144198b9484cSchristos {51,23,rr,V,V,0}, /* ldvi.l.t */ 144298b9484cSchristos {28,18,rr,V,V,0}, /* cvtw.s.t */ 144398b9484cSchristos {31,22,rr,V,V,0}, /* cvts.w.t */ 144498b9484cSchristos {28,23,rr,V,V,0}, /* cvtw.l.t */ 144598b9484cSchristos {33,22,rr,V,V,0}, /* cvtl.w.t */ 144698b9484cSchristos {52,20,rxr,V,V,0}, /* stvi.b.t */ 144798b9484cSchristos {52,21,rxr,V,V,0}, /* stvi.h.t */ 144898b9484cSchristos {52,22,rxr,V,V,0}, /* stvi.w.t */ 144998b9484cSchristos {52,23,rxr,V,V,0}, /* stvi.l.t */ 145098b9484cSchristos {52,20,rxr,S,V,0}, /* stvi.b.t */ 145198b9484cSchristos {52,21,rxr,S,V,0}, /* stvi.h.t */ 145298b9484cSchristos {52,22,rxr,S,V,0}, /* stvi.w.t */ 145398b9484cSchristos {52,23,rxr,S,V,0}, /* stvi.l.t */ 145498b9484cSchristos }; 145598b9484cSchristos 145698b9484cSchristos const struct formstr e1_format6[] = { 145798b9484cSchristos {0,0,0,0,0,0}, 145898b9484cSchristos {0,0,0,0,0,0}, 145998b9484cSchristos {0,0,0,0,0,0}, 146098b9484cSchristos {0,0,0,0,0,0}, 146198b9484cSchristos {0,0,0,0,0,0}, 146298b9484cSchristos {0,0,0,0,0,0}, 146398b9484cSchristos {0,0,0,0,0,0}, 146498b9484cSchristos {0,0,0,0,0,0}, 146598b9484cSchristos {0,0,0,0,0,0}, 146698b9484cSchristos {0,0,0,0,0,0}, 146798b9484cSchristos {0,0,0,0,0,0}, 146898b9484cSchristos {0,0,0,0,0,0}, 146998b9484cSchristos {0,0,0,0,0,0}, 147098b9484cSchristos {0,0,0,0,0,0}, 147198b9484cSchristos {0,0,0,0,0,0}, 147298b9484cSchristos {0,0,0,0,0,0}, 147398b9484cSchristos {0,0,0,0,0,0}, 147498b9484cSchristos {0,0,0,0,0,0}, 147598b9484cSchristos {0,0,0,0,0,0}, 147698b9484cSchristos {0,0,0,0,0,0}, 147798b9484cSchristos {0,0,0,0,0,0}, 147898b9484cSchristos {0,0,0,0,0,0}, 147998b9484cSchristos {0,0,0,0,0,0}, 148098b9484cSchristos {0,0,0,0,0,0}, 148198b9484cSchristos {0,0,0,0,0,0}, 148298b9484cSchristos {0,0,0,0,0,0}, 148398b9484cSchristos {0,0,0,0,0,0}, 148498b9484cSchristos {0,0,0,0,0,0}, 148598b9484cSchristos {0,0,0,0,0,0}, 148698b9484cSchristos {0,0,0,0,0,0}, 148798b9484cSchristos {0,0,0,0,0,0}, 148898b9484cSchristos {0,0,0,0,0,0}, 148998b9484cSchristos {0,0,0,0,0,0}, 149098b9484cSchristos {0,0,0,0,0,0}, 149198b9484cSchristos {0,0,0,0,0,0}, 149298b9484cSchristos {0,0,0,0,0,0}, 149398b9484cSchristos {0,0,0,0,0,0}, 149498b9484cSchristos {0,0,0,0,0,0}, 149598b9484cSchristos {0,0,0,0,0,0}, 149698b9484cSchristos {0,0,0,0,0,0}, 149798b9484cSchristos {0,0,0,0,0,0}, 149898b9484cSchristos {0,0,0,0,0,0}, 149998b9484cSchristos {0,0,0,0,0,0}, 150098b9484cSchristos {0,0,0,0,0,0}, 150198b9484cSchristos {0,0,0,0,0,0}, 150298b9484cSchristos {0,0,0,0,0,0}, 150398b9484cSchristos {0,0,0,0,0,0}, 150498b9484cSchristos {0,0,0,0,0,0}, 150598b9484cSchristos {0,0,0,0,0,0}, 150698b9484cSchristos {0,0,0,0,0,0}, 150798b9484cSchristos {0,0,0,0,0,0}, 150898b9484cSchristos {0,0,0,0,0,0}, 150998b9484cSchristos {0,0,0,0,0,0}, 151098b9484cSchristos {0,0,0,0,0,0}, 151198b9484cSchristos {0,0,0,0,0,0}, 151298b9484cSchristos {0,0,0,0,0,0}, 151398b9484cSchristos {0,0,0,0,0,0}, 151498b9484cSchristos {0,0,0,0,0,0}, 151598b9484cSchristos {0,0,0,0,0,0}, 151698b9484cSchristos {0,0,0,0,0,0}, 151798b9484cSchristos {0,0,0,0,0,0}, 151898b9484cSchristos {0,0,0,0,0,0}, 151998b9484cSchristos {0,0,0,0,0,0}, 152098b9484cSchristos {0,0,0,0,0,0}, 152198b9484cSchristos }; 152298b9484cSchristos 152398b9484cSchristos const struct formstr e1_format7[] = { 152498b9484cSchristos {84,20,r,V,0,0}, /* sum.b.t */ 152598b9484cSchristos {84,21,r,V,0,0}, /* sum.h.t */ 152698b9484cSchristos {84,22,r,V,0,0}, /* sum.w.t */ 152798b9484cSchristos {84,23,r,V,0,0}, /* sum.l.t */ 152898b9484cSchristos {85,1,r,V,0,0}, /* all.t */ 152998b9484cSchristos {86,1,r,V,0,0}, /* any.t */ 153098b9484cSchristos {87,1,r,V,0,0}, /* parity.t */ 153198b9484cSchristos {0,0,0,0,0,0}, 153298b9484cSchristos {88,20,r,V,0,0}, /* max.b.t */ 153398b9484cSchristos {88,21,r,V,0,0}, /* max.h.t */ 153498b9484cSchristos {88,22,r,V,0,0}, /* max.w.t */ 153598b9484cSchristos {88,23,r,V,0,0}, /* max.l.t */ 153698b9484cSchristos {89,20,r,V,0,0}, /* min.b.t */ 153798b9484cSchristos {89,21,r,V,0,0}, /* min.h.t */ 153898b9484cSchristos {89,22,r,V,0,0}, /* min.w.t */ 153998b9484cSchristos {89,23,r,V,0,0}, /* min.l.t */ 154098b9484cSchristos {84,18,r,V,0,0}, /* sum.s.t */ 154198b9484cSchristos {84,19,r,V,0,0}, /* sum.d.t */ 154298b9484cSchristos {90,18,r,V,0,0}, /* prod.s.t */ 154398b9484cSchristos {90,19,r,V,0,0}, /* prod.d.t */ 154498b9484cSchristos {88,18,r,V,0,0}, /* max.s.t */ 154598b9484cSchristos {88,19,r,V,0,0}, /* max.d.t */ 154698b9484cSchristos {89,18,r,V,0,0}, /* min.s.t */ 154798b9484cSchristos {89,19,r,V,0,0}, /* min.d.t */ 154898b9484cSchristos {90,20,r,V,0,0}, /* prod.b.t */ 154998b9484cSchristos {90,21,r,V,0,0}, /* prod.h.t */ 155098b9484cSchristos {90,22,r,V,0,0}, /* prod.w.t */ 155198b9484cSchristos {90,23,r,V,0,0}, /* prod.l.t */ 155298b9484cSchristos {0,0,0,0,0,0}, 155398b9484cSchristos {0,0,0,0,0,0}, 155498b9484cSchristos {0,0,0,0,0,0}, 155598b9484cSchristos {0,0,0,0,0,0}, 155698b9484cSchristos }; 155798b9484cSchristos 155898b9484cSchristos char *lop[] = { 155998b9484cSchristos "mov", /* 0 */ 156098b9484cSchristos "merg", /* 1 */ 156198b9484cSchristos "mask", /* 2 */ 156298b9484cSchristos "mul", /* 3 */ 156398b9484cSchristos "div", /* 4 */ 156498b9484cSchristos "and", /* 5 */ 156598b9484cSchristos "or", /* 6 */ 156698b9484cSchristos "xor", /* 7 */ 156798b9484cSchristos "shf", /* 8 */ 156898b9484cSchristos "add", /* 9 */ 156998b9484cSchristos "sub", /* 10 */ 157098b9484cSchristos "exit", /* 11 */ 157198b9484cSchristos "jmp", /* 12 */ 157298b9484cSchristos "jmpi", /* 13 */ 157398b9484cSchristos "jmpa", /* 14 */ 157498b9484cSchristos "jmps", /* 15 */ 157598b9484cSchristos "tac", /* 16 */ 157698b9484cSchristos "ldea", /* 17 */ 157798b9484cSchristos "ld", /* 18 */ 157898b9484cSchristos "tas", /* 19 */ 157998b9484cSchristos "pshea", /* 20 */ 158098b9484cSchristos "st", /* 21 */ 158198b9484cSchristos "call", /* 22 */ 158298b9484cSchristos "calls", /* 23 */ 158398b9484cSchristos "callq", /* 24 */ 158498b9484cSchristos "pfork", /* 25 */ 158598b9484cSchristos "ste", /* 26 */ 158698b9484cSchristos "incr", /* 27 */ 158798b9484cSchristos "cvtw", /* 28 */ 158898b9484cSchristos "cvtb", /* 29 */ 158998b9484cSchristos "cvth", /* 30 */ 159098b9484cSchristos "cvts", /* 31 */ 159198b9484cSchristos "cvtd", /* 32 */ 159298b9484cSchristos "cvtl", /* 33 */ 159398b9484cSchristos "ldpa", /* 34 */ 159498b9484cSchristos "plc", /* 35 */ 159598b9484cSchristos "tzc", /* 36 */ 159698b9484cSchristos "eq", /* 37 */ 159798b9484cSchristos "leu", /* 38 */ 159898b9484cSchristos "ltu", /* 39 */ 159998b9484cSchristos "le", /* 40 */ 160098b9484cSchristos "lt", /* 41 */ 160198b9484cSchristos "not", /* 42 */ 160298b9484cSchristos "neg", /* 43 */ 160398b9484cSchristos "lop", /* 44 */ 160498b9484cSchristos "cprs", /* 45 */ 160598b9484cSchristos "nop", /* 46 */ 160698b9484cSchristos "br", /* 47 */ 160798b9484cSchristos "bri", /* 48 */ 160898b9484cSchristos "bra", /* 49 */ 160998b9484cSchristos "brs", /* 50 */ 161098b9484cSchristos "ldvi", /* 51 */ 161198b9484cSchristos "stvi", /* 52 */ 161298b9484cSchristos "ldsdr", /* 53 */ 161398b9484cSchristos "ldkdr", /* 54 */ 161498b9484cSchristos "ln", /* 55 */ 161598b9484cSchristos "patu", /* 56 */ 161698b9484cSchristos "pate", /* 57 */ 161798b9484cSchristos "pich", /* 58 */ 161898b9484cSchristos "plch", /* 59 */ 161998b9484cSchristos "idle", /* 60 */ 162098b9484cSchristos "rtnq", /* 61 */ 162198b9484cSchristos "cfork", /* 62 */ 162298b9484cSchristos "rtn", /* 63 */ 162398b9484cSchristos "wfork", /* 64 */ 162498b9484cSchristos "join", /* 65 */ 162598b9484cSchristos "rtnc", /* 66 */ 162698b9484cSchristos "exp", /* 67 */ 162798b9484cSchristos "sin", /* 68 */ 162898b9484cSchristos "cos", /* 69 */ 162998b9484cSchristos "psh", /* 70 */ 163098b9484cSchristos "pop", /* 71 */ 163198b9484cSchristos "eni", /* 72 */ 163298b9484cSchristos "dsi", /* 73 */ 163398b9484cSchristos "bkpt", /* 74 */ 163498b9484cSchristos "msync", /* 75 */ 163598b9484cSchristos "mski", /* 76 */ 163698b9484cSchristos "xmti", /* 77 */ 163798b9484cSchristos "tstvv", /* 78 */ 163898b9484cSchristos "diag", /* 79 */ 163998b9484cSchristos "pbkpt", /* 80 */ 164098b9484cSchristos "sqrt", /* 81 */ 164198b9484cSchristos "casr", /* 82 */ 164298b9484cSchristos "atan", /* 83 */ 164398b9484cSchristos "sum", /* 84 */ 164498b9484cSchristos "all", /* 85 */ 164598b9484cSchristos "any", /* 86 */ 164698b9484cSchristos "parity", /* 87 */ 164798b9484cSchristos "max", /* 88 */ 164898b9484cSchristos "min", /* 89 */ 164998b9484cSchristos "prod", /* 90 */ 165098b9484cSchristos "halt", /* 91 */ 165198b9484cSchristos "sysc", /* 92 */ 165298b9484cSchristos "trap", /* 93 */ 165398b9484cSchristos "tst", /* 94 */ 165498b9484cSchristos "lck", /* 95 */ 165598b9484cSchristos "ulk", /* 96 */ 165698b9484cSchristos "spawn", /* 97 */ 165798b9484cSchristos "ldcmr", /* 98 */ 165898b9484cSchristos "stcmr", /* 99 */ 165998b9484cSchristos "popr", /* 100 */ 166098b9484cSchristos "pshr", /* 101 */ 166198b9484cSchristos "rcvr", /* 102 */ 166298b9484cSchristos "matm", /* 103 */ 166398b9484cSchristos "sndr", /* 104 */ 166498b9484cSchristos "putr", /* 105 */ 166598b9484cSchristos "getr", /* 106 */ 166698b9484cSchristos "matr", /* 107 */ 166798b9484cSchristos "mat", /* 108 */ 166898b9484cSchristos "get", /* 109 */ 166998b9484cSchristos "rcv", /* 110 */ 167098b9484cSchristos "inc", /* 111 */ 167198b9484cSchristos "put", /* 112 */ 167298b9484cSchristos "snd", /* 113 */ 167398b9484cSchristos "enal", /* 114 */ 167498b9484cSchristos "enag", /* 115 */ 167598b9484cSchristos "frint", /* 116 */ 167698b9484cSchristos "xpnd", /* 117 */ 167798b9484cSchristos "ctrsl", /* 118 */ 167898b9484cSchristos "ctrsg", /* 119 */ 167998b9484cSchristos "stop", /* 120 */ 168098b9484cSchristos }; 168198b9484cSchristos 168298b9484cSchristos char *rop[] = { 168398b9484cSchristos "", /* 0 */ 168498b9484cSchristos ".t", /* 1 */ 168598b9484cSchristos ".f", /* 2 */ 168698b9484cSchristos ".s", /* 3 */ 168798b9484cSchristos ".d", /* 4 */ 168898b9484cSchristos ".b", /* 5 */ 168998b9484cSchristos ".h", /* 6 */ 169098b9484cSchristos ".w", /* 7 */ 169198b9484cSchristos ".l", /* 8 */ 169298b9484cSchristos ".x", /* 9 */ 169398b9484cSchristos ".u", /* 10 */ 169498b9484cSchristos ".s.f", /* 11 */ 169598b9484cSchristos ".d.f", /* 12 */ 169698b9484cSchristos ".b.f", /* 13 */ 169798b9484cSchristos ".h.f", /* 14 */ 169898b9484cSchristos ".w.f", /* 15 */ 169998b9484cSchristos ".l.f", /* 16 */ 170098b9484cSchristos ".t.f", /* 17 */ 170198b9484cSchristos ".s.t", /* 18 */ 170298b9484cSchristos ".d.t", /* 19 */ 170398b9484cSchristos ".b.t", /* 20 */ 170498b9484cSchristos ".h.t", /* 21 */ 170598b9484cSchristos ".w.t", /* 22 */ 170698b9484cSchristos ".l.t", /* 23 */ 170798b9484cSchristos ".t.t", /* 24 */ 170898b9484cSchristos }; 1709