164562Sgshapiro/* Print GOULD NPL instructions for GDB, the GNU debugger. 277349Sgshapiro Copyright 1986, 1987, 1989, 1991 Free Software Foundation, Inc. 364562Sgshapiro 464562SgshapiroThis file is part of GDB. 564562Sgshapiro 664562SgshapiroGDB is free software; you can redistribute it and/or modify 764562Sgshapiroit under the terms of the GNU General Public License as published by 864562Sgshapirothe Free Software Foundation; either version 1, or (at your option) 964562Sgshapiroany later version. 1064562Sgshapiro 1164562SgshapiroGDB is distributed in the hope that it will be useful, 1264562Sgshapirobut WITHOUT ANY WARRANTY; without even the implied warranty of 1364562SgshapiroMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1464562SgshapiroGNU General Public License for more details. 1564562Sgshapiro 1677349SgshapiroYou should have received a copy of the GNU General Public License 1764562Sgshapiroalong with GDB; see the file COPYING. If not, write to 1864562Sgshapirothe Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ 1964562Sgshapiro 2064562Sgshapirostruct gld_opcode 2164562Sgshapiro{ 2264562Sgshapiro char *name; 2364562Sgshapiro unsigned long opcode; 2477349Sgshapiro unsigned long mask; 2564562Sgshapiro char *args; 2664562Sgshapiro int length; 2777349Sgshapiro}; 2864562Sgshapiro 2964562Sgshapiro/* We store four bytes of opcode for all opcodes because that 3064562Sgshapiro is the most any of them need. The actual length of an instruction 3164562Sgshapiro is always at least 2 bytes, and at most four. The length of the 3264562Sgshapiro instruction is based on the opcode. 3364562Sgshapiro 3464562Sgshapiro The mask component is a mask saying which bits must match 3564562Sgshapiro particular opcode in order for an instruction to be an instance 3664562Sgshapiro of that opcode. 3764562Sgshapiro 3864562Sgshapiro The args component is a string containing characters 3964562Sgshapiro that are used to format the arguments to the instruction. */ 4064562Sgshapiro 4164562Sgshapiro/* Kinds of operands: 4264562Sgshapiro r Register in first field 4364562Sgshapiro R Register in second field 4464562Sgshapiro b Base register in first field 4564562Sgshapiro B Base register in second field 4664562Sgshapiro v Vector register in first field 4764562Sgshapiro V Vector register in first field 4864562Sgshapiro A Optional address register (base register) 4964562Sgshapiro X Optional index register 5064562Sgshapiro I Immediate data (16bits signed) 5164562Sgshapiro O Offset field (16bits signed) 5271345Sgshapiro h Offset field (15bits signed) 5371345Sgshapiro d Offset field (14bits signed) 5471345Sgshapiro S Shift count field 5571345Sgshapiro 5671345Sgshapiro any other characters are printed as is... 5764562Sgshapiro*/ 5864562Sgshapiro 5964562Sgshapiro/* The assembler requires that this array be sorted as follows: 6064562Sgshapiro all instances of the same mnemonic must be consecutive. 6164562Sgshapiro All instances of the same mnemonic with the same number of operands 6264562Sgshapiro must be consecutive. 6364562Sgshapiro */ 6464562Sgshapirostruct gld_opcode gld_opcodes[] = 6564562Sgshapiro{ 6664562Sgshapiro{ "lb", 0xb4080000, 0xfc080000, "r,xOA,X", 4 }, 6764562Sgshapiro{ "lnb", 0xb8080000, 0xfc080000, "r,xOA,X", 4 }, 6864562Sgshapiro{ "lbs", 0xec080000, 0xfc080000, "r,xOA,X", 4 }, 6964562Sgshapiro{ "lh", 0xb4000001, 0xfc080001, "r,xOA,X", 4 }, 7064562Sgshapiro{ "lnh", 0xb8000001, 0xfc080001, "r,xOA,X", 4 }, 7164562Sgshapiro{ "lw", 0xb4000000, 0xfc080000, "r,xOA,X", 4 }, 7264562Sgshapiro{ "lnw", 0xb8000000, 0xfc080000, "r,xOA,X", 4 }, 7364562Sgshapiro{ "ld", 0xb4000002, 0xfc080002, "r,xOA,X", 4 }, 7464562Sgshapiro{ "lnd", 0xb8000002, 0xfc080002, "r,xOA,X", 4 }, 7564562Sgshapiro{ "li", 0xf8000000, 0xfc7f0000, "r,I", 4 }, 7664562Sgshapiro{ "lpa", 0x50080000, 0xfc080000, "r,xOA,X", 4 }, 7764562Sgshapiro{ "la", 0x50000000, 0xfc080000, "r,xOA,X", 4 }, 7864562Sgshapiro{ "labr", 0x58080000, 0xfc080000, "b,xOA,X", 4 }, 7964562Sgshapiro{ "lbp", 0x90080000, 0xfc080000, "r,xOA,X", 4 }, 8064562Sgshapiro{ "lhp", 0x90000001, 0xfc080001, "r,xOA,X", 4 }, 8164562Sgshapiro{ "lwp", 0x90000000, 0xfc080000, "r,xOA,X", 4 }, 8264562Sgshapiro{ "ldp", 0x90000002, 0xfc080002, "r,xOA,X", 4 }, 8364562Sgshapiro{ "suabr", 0x58000000, 0xfc080000, "b,xOA,X", 4 }, 8464562Sgshapiro{ "lf", 0xbc000000, 0xfc080000, "r,xOA,X", 4 }, 8564562Sgshapiro{ "lfbr", 0xbc080000, 0xfc080000, "b,xOA,X", 4 }, 8664562Sgshapiro{ "lwbr", 0x5c000000, 0xfc080000, "b,xOA,X", 4 }, 8764562Sgshapiro{ "stb", 0xd4080000, 0xfc080000, "r,xOA,X", 4 }, 8864562Sgshapiro{ "sth", 0xd4000001, 0xfc080001, "r,xOA,X", 4 }, 8964562Sgshapiro{ "stw", 0xd4000000, 0xfc080000, "r,xOA,X", 4 }, 9064562Sgshapiro{ "std", 0xd4000002, 0xfc080002, "r,xOA,X", 4 }, 9164562Sgshapiro{ "stf", 0xdc000000, 0xfc080000, "r,xOA,X", 4 }, 9264562Sgshapiro{ "stfbr", 0xdc080000, 0xfc080000, "b,xOA,X", 4 }, 9364562Sgshapiro{ "stwbr", 0x54000000, 0xfc080000, "b,xOA,X", 4 }, 9464562Sgshapiro{ "zmb", 0xd8080000, 0xfc080000, "r,xOA,X", 4 }, 9564562Sgshapiro{ "zmh", 0xd8000001, 0xfc080001, "r,xOA,X", 4 }, 9664562Sgshapiro{ "zmw", 0xd8000000, 0xfc080000, "r,xOA,X", 4 }, 9764562Sgshapiro{ "zmd", 0xd8000002, 0xfc080002, "r,xOA,X", 4 }, 9864562Sgshapiro{ "stbp", 0x94080000, 0xfc080000, "r,xOA,X", 4 }, 9964562Sgshapiro{ "sthp", 0x94000001, 0xfc080001, "r,xOA,X", 4 }, 10064562Sgshapiro{ "stwp", 0x94000000, 0xfc080000, "r,xOA,X", 4 }, 10164562Sgshapiro{ "stdp", 0x94000002, 0xfc080002, "r,xOA,X", 4 }, 10264562Sgshapiro{ "lil", 0xf80b0000, 0xfc7f0000, "r,D", 4 }, 10364562Sgshapiro{ "lwsl1", 0xec000000, 0xfc080000, "r,xOA,X", 4 }, 10464562Sgshapiro{ "lwsl2", 0xfc000000, 0xfc080000, "r,xOA,X", 4 }, 10564562Sgshapiro{ "lwsl3", 0xfc080000, 0xfc080000, "r,xOA,X", 4 }, 10664562Sgshapiro 10764562Sgshapiro{ "lvb", 0xb0080000, 0xfc080000, "v,xOA,X", 4 }, 10864562Sgshapiro{ "lvh", 0xb0000001, 0xfc080001, "v,xOA,X", 4 }, 10964562Sgshapiro{ "lvw", 0xb0000000, 0xfc080000, "v,xOA,X", 4 }, 11066494Sgshapiro{ "lvd", 0xb0000002, 0xfc080002, "v,xOA,X", 4 }, 11166494Sgshapiro{ "liv", 0x3c040000, 0xfc0f0000, "v,R", 2 }, 11266494Sgshapiro{ "livf", 0x3c080000, 0xfc0f0000, "v,R", 2 }, 11366494Sgshapiro{ "stvb", 0xd0080000, 0xfc080000, "v,xOA,X", 4 }, 11466494Sgshapiro{ "stvh", 0xd0000001, 0xfc080001, "v,xOA,X", 4 }, 11571345Sgshapiro{ "stvw", 0xd0000000, 0xfc080000, "v,xOA,X", 4 }, 11666494Sgshapiro{ "stvd", 0xd0000002, 0xfc080002, "v,xOA,X", 4 }, 11777349Sgshapiro 11864562Sgshapiro{ "trr", 0x2c000000, 0xfc0f0000, "r,R", 2 }, 11964562Sgshapiro{ "trn", 0x2c040000, 0xfc0f0000, "r,R", 2 }, 12064562Sgshapiro{ "trnd", 0x2c0c0000, 0xfc0f0000, "r,R", 2 }, 12164562Sgshapiro{ "trabs", 0x2c010000, 0xfc0f0000, "r,R", 2 }, 12264562Sgshapiro{ "trabsd", 0x2c090000, 0xfc0f0000, "r,R", 2 }, 12364562Sgshapiro{ "trc", 0x2c030000, 0xfc0f0000, "r,R", 2 }, 12477349Sgshapiro{ "xcr", 0x28040000, 0xfc0f0000, "r,R", 2 }, 12577349Sgshapiro{ "cxcr", 0x2c060000, 0xfc0f0000, "r,R", 2 }, 12677349Sgshapiro{ "cxcrd", 0x2c0e0000, 0xfc0f0000, "r,R", 2 }, 12764562Sgshapiro{ "tbrr", 0x2c020000, 0xfc0f0000, "r,B", 2 }, 12864562Sgshapiro{ "trbr", 0x28030000, 0xfc0f0000, "b,R", 2 }, 12964562Sgshapiro{ "xcbr", 0x28020000, 0xfc0f0000, "b,B", 2 }, 13064562Sgshapiro{ "tbrbr", 0x28010000, 0xfc0f0000, "b,B", 2 }, 13164562Sgshapiro 13264562Sgshapiro{ "trvv", 0x28050000, 0xfc0f0000, "v,V", 2 }, 13366494Sgshapiro{ "trvvn", 0x2c050000, 0xfc0f0000, "v,V", 2 }, 13464562Sgshapiro{ "trvvnd", 0x2c0d0000, 0xfc0f0000, "v,V", 2 }, 13564562Sgshapiro{ "trvab", 0x2c070000, 0xfc0f0000, "v,V", 2 }, 13664562Sgshapiro{ "trvabd", 0x2c0f0000, 0xfc0f0000, "v,V", 2 }, 13777349Sgshapiro{ "cmpv", 0x14060000, 0xfc0f0000, "v,V", 2 }, 13877349Sgshapiro{ "expv", 0x14070000, 0xfc0f0000, "v,V", 2 }, 13964562Sgshapiro{ "mrvvlt", 0x10030000, 0xfc0f0000, "v,V", 2 }, 14064562Sgshapiro{ "mrvvle", 0x10040000, 0xfc0f0000, "v,V", 2 }, 14164562Sgshapiro{ "mrvvgt", 0x14030000, 0xfc0f0000, "v,V", 2 }, 14264562Sgshapiro{ "mrvvge", 0x14040000, 0xfc0f0000, "v,V", 2 }, 14364562Sgshapiro{ "mrvveq", 0x10050000, 0xfc0f0000, "v,V", 2 }, 14464562Sgshapiro{ "mrvvne", 0x10050000, 0xfc0f0000, "v,V", 2 }, 14564562Sgshapiro{ "mrvrlt", 0x100d0000, 0xfc0f0000, "v,R", 2 }, 14671345Sgshapiro{ "mrvrle", 0x100e0000, 0xfc0f0000, "v,R", 2 }, 14764562Sgshapiro{ "mrvrgt", 0x140d0000, 0xfc0f0000, "v,R", 2 }, 14864562Sgshapiro{ "mrvrge", 0x140e0000, 0xfc0f0000, "v,R", 2 }, 14964562Sgshapiro{ "mrvreq", 0x100f0000, 0xfc0f0000, "v,R", 2 }, 15064562Sgshapiro{ "mrvrne", 0x140f0000, 0xfc0f0000, "v,R", 2 }, 15166494Sgshapiro{ "trvr", 0x140b0000, 0xfc0f0000, "r,V", 2 }, 15266494Sgshapiro{ "trrv", 0x140c0000, 0xfc0f0000, "v,R", 2 }, 15366494Sgshapiro 15466494Sgshapiro{ "bu", 0x40000000, 0xff880000, "xOA,X", 4 }, 15566494Sgshapiro{ "bns", 0x70080000, 0xff880000, "xOA,X", 4 }, 15666494Sgshapiro{ "bnco", 0x70880000, 0xff880000, "xOA,X", 4 }, 15766494Sgshapiro{ "bge", 0x71080000, 0xff880000, "xOA,X", 4 }, 15866494Sgshapiro{ "bne", 0x71880000, 0xff880000, "xOA,X", 4 }, 15966494Sgshapiro{ "bunge", 0x72080000, 0xff880000, "xOA,X", 4 }, 16066494Sgshapiro{ "bunle", 0x72880000, 0xff880000, "xOA,X", 4 }, 16166494Sgshapiro{ "bgt", 0x73080000, 0xff880000, "xOA,X", 4 }, 16266494Sgshapiro{ "bnany", 0x73880000, 0xff880000, "xOA,X", 4 }, 16366494Sgshapiro{ "bs" , 0x70000000, 0xff880000, "xOA,X", 4 }, 16464562Sgshapiro{ "bco", 0x70800000, 0xff880000, "xOA,X", 4 }, 16564562Sgshapiro{ "blt", 0x71000000, 0xff880000, "xOA,X", 4 }, 16664562Sgshapiro{ "beq", 0x71800000, 0xff880000, "xOA,X", 4 }, 16764562Sgshapiro{ "buge", 0x72000000, 0xff880000, "xOA,X", 4 }, 16864562Sgshapiro{ "bult", 0x72800000, 0xff880000, "xOA,X", 4 }, 16964562Sgshapiro{ "ble", 0x73000000, 0xff880000, "xOA,X", 4 }, 17064562Sgshapiro{ "bany", 0x73800000, 0xff880000, "xOA,X", 4 }, 17164562Sgshapiro{ "brlnk", 0x44000000, 0xfc080000, "r,xOA,X", 4 }, 17264562Sgshapiro{ "bib", 0x48000000, 0xfc080000, "r,xOA,X", 4 }, 17364562Sgshapiro{ "bih", 0x48080000, 0xfc080000, "r,xOA,X", 4 }, 17464562Sgshapiro{ "biw", 0x4c000000, 0xfc080000, "r,xOA,X", 4 }, 17564562Sgshapiro{ "bid", 0x4c080000, 0xfc080000, "r,xOA,X", 4 }, 17664562Sgshapiro{ "bivb", 0x60000000, 0xfc080000, "r,xOA,X", 4 }, 17764562Sgshapiro{ "bivh", 0x60080000, 0xfc080000, "r,xOA,X", 4 }, 17864562Sgshapiro{ "bivw", 0x64000000, 0xfc080000, "r,xOA,X", 4 }, 17964562Sgshapiro{ "bivd", 0x64080000, 0xfc080000, "r,xOA,X", 4 }, 18064562Sgshapiro{ "bvsb", 0x68000000, 0xfc080000, "r,xOA,X", 4 }, 18177349Sgshapiro{ "bvsh", 0x68080000, 0xfc080000, "r,xOA,X", 4 }, 18264562Sgshapiro{ "bvsw", 0x6c000000, 0xfc080000, "r,xOA,X", 4 }, 18377349Sgshapiro{ "bvsd", 0x6c080000, 0xfc080000, "r,xOA,X", 4 }, 18464562Sgshapiro 18577349Sgshapiro{ "camb", 0x80080000, 0xfc080000, "r,xOA,X", 4 }, 18664562Sgshapiro{ "camh", 0x80000001, 0xfc080001, "r,xOA,X", 4 }, 18764562Sgshapiro{ "camw", 0x80000000, 0xfc080000, "r,xOA,X", 4 }, 18864562Sgshapiro{ "camd", 0x80000002, 0xfc080002, "r,xOA,X", 4 }, 18964562Sgshapiro{ "car", 0x10000000, 0xfc0f0000, "r,R", 2 }, 19064562Sgshapiro{ "card", 0x14000000, 0xfc0f0000, "r,R", 2 }, 19164562Sgshapiro{ "ci", 0xf8050000, 0xfc7f0000, "r,I", 4 }, 19264562Sgshapiro{ "chkbnd", 0x5c080000, 0xfc080000, "r,xOA,X", 4 }, 19364562Sgshapiro 19477349Sgshapiro{ "cavv", 0x10010000, 0xfc0f0000, "v,V", 2 }, 19564562Sgshapiro{ "cavr", 0x10020000, 0xfc0f0000, "v,R", 2 }, 19664562Sgshapiro{ "cavvd", 0x10090000, 0xfc0f0000, "v,V", 2 }, 19764562Sgshapiro{ "cavrd", 0x100b0000, 0xfc0f0000, "v,R", 2 }, 19864562Sgshapiro 19964562Sgshapiro{ "anmb", 0x84080000, 0xfc080000, "r,xOA,X", 4 }, 20064562Sgshapiro{ "anmh", 0x84000001, 0xfc080001, "r,xOA,X", 4 }, 20164562Sgshapiro{ "anmw", 0x84000000, 0xfc080000, "r,xOA,X", 4 }, 20264562Sgshapiro{ "anmd", 0x84000002, 0xfc080002, "r,xOA,X", 4 }, 20364562Sgshapiro{ "anr", 0x04000000, 0xfc0f0000, "r,R", 2 }, 20464562Sgshapiro{ "ani", 0xf8080000, 0xfc7f0000, "r,I", 4 }, 20564562Sgshapiro{ "ormb", 0xb8080000, 0xfc080000, "r,xOA,X", 4 }, 20664562Sgshapiro{ "ormh", 0xb8000001, 0xfc080001, "r,xOA,X", 4 }, 20764562Sgshapiro{ "ormw", 0xb8000000, 0xfc080000, "r,xOA,X", 4 }, 20864562Sgshapiro{ "ormd", 0xb8000002, 0xfc080002, "r,xOA,X", 4 }, 20964562Sgshapiro{ "orr", 0x08000000, 0xfc0f0000, "r,R", 2 }, 21064562Sgshapiro{ "oi", 0xf8090000, 0xfc7f0000, "r,I", 4 }, 21164562Sgshapiro{ "eomb", 0x8c080000, 0xfc080000, "r,xOA,X", 4 }, 21264562Sgshapiro{ "eomh", 0x8c000001, 0xfc080001, "r,xOA,X", 4 }, 21364562Sgshapiro{ "eomw", 0x8c000000, 0xfc080000, "r,xOA,X", 4 }, 21477349Sgshapiro{ "eomd", 0x8c000002, 0xfc080002, "r,xOA,X", 4 }, 21564562Sgshapiro{ "eor", 0x0c000000, 0xfc0f0000, "r,R", 2 }, 21664562Sgshapiro{ "eoi", 0xf80a0000, 0xfc7f0000, "r,I", 4 }, 21764562Sgshapiro 21864562Sgshapiro{ "anvv", 0x04010000, 0xfc0f0000, "v,V", 2 }, 21964562Sgshapiro{ "anvr", 0x04020000, 0xfc0f0000, "v,R", 2 }, 22064562Sgshapiro{ "orvv", 0x08010000, 0xfc0f0000, "v,V", 2 }, 22164562Sgshapiro{ "orvr", 0x08020000, 0xfc0f0000, "v,R", 2 }, 22264562Sgshapiro{ "eovv", 0x0c010000, 0xfc0f0000, "v,V", 2 }, 22364562Sgshapiro{ "eovr", 0x0c020000, 0xfc0f0000, "v,R", 2 }, 22464562Sgshapiro 22564562Sgshapiro{ "sacz", 0x100c0000, 0xfc0f0000, "r,R", 2 }, 22664562Sgshapiro{ "sla", 0x1c400000, 0xfc600000, "r,S", 2 }, 22764562Sgshapiro{ "sll", 0x1c600000, 0xfc600000, "r,S", 2 }, 22864562Sgshapiro{ "slc", 0x24400000, 0xfc600000, "r,S", 2 }, 22964562Sgshapiro{ "slad", 0x20400000, 0xfc600000, "r,S", 2 }, 23064562Sgshapiro{ "slld", 0x20600000, 0xfc600000, "r,S", 2 }, 23164562Sgshapiro{ "sra", 0x1c000000, 0xfc600000, "r,S", 2 }, 23264562Sgshapiro{ "srl", 0x1c200000, 0xfc600000, "r,S", 2 }, 23364562Sgshapiro{ "src", 0x24000000, 0xfc600000, "r,S", 2 }, 23464562Sgshapiro{ "srad", 0x20000000, 0xfc600000, "r,S", 2 }, 23564562Sgshapiro{ "srld", 0x20200000, 0xfc600000, "r,S", 2 }, 23664562Sgshapiro{ "sda", 0x3c030000, 0xfc0f0000, "r,R", 2 }, 23764562Sgshapiro{ "sdl", 0x3c020000, 0xfc0f0000, "r,R", 2 }, 23864562Sgshapiro{ "sdc", 0x3c010000, 0xfc0f0000, "r,R", 2 }, 23964562Sgshapiro{ "sdad", 0x3c0b0000, 0xfc0f0000, "r,R", 2 }, 24064562Sgshapiro{ "sdld", 0x3c0a0000, 0xfc0f0000, "r,R", 2 }, 24164562Sgshapiro 24264562Sgshapiro{ "svda", 0x3c070000, 0xfc0f0000, "v,R", 2 }, 24364562Sgshapiro{ "svdl", 0x3c060000, 0xfc0f0000, "v,R", 2 }, 24464562Sgshapiro{ "svdc", 0x3c050000, 0xfc0f0000, "v,R", 2 }, 24564562Sgshapiro{ "svdad", 0x3c0e0000, 0xfc0f0000, "v,R", 2 }, 24664562Sgshapiro{ "svdld", 0x3c0d0000, 0xfc0f0000, "v,R", 2 }, 24764562Sgshapiro 24864562Sgshapiro{ "sbm", 0xac080000, 0xfc080000, "f,xOA,X", 4 }, 24964562Sgshapiro{ "zbm", 0xac000000, 0xfc080000, "f,xOA,X", 4 }, 25064562Sgshapiro{ "tbm", 0xa8080000, 0xfc080000, "f,xOA,X", 4 }, 25164562Sgshapiro{ "incmb", 0xa0000000, 0xfc080000, "xOA,X", 4 }, 25264562Sgshapiro{ "incmh", 0xa0080000, 0xfc080000, "xOA,X", 4 }, 25364562Sgshapiro{ "incmw", 0xa4000000, 0xfc080000, "xOA,X", 4 }, 25464562Sgshapiro{ "incmd", 0xa4080000, 0xfc080000, "xOA,X", 4 }, 25564562Sgshapiro{ "sbmd", 0x7c080000, 0xfc080000, "r,xOA,X", 4 }, 25677349Sgshapiro{ "zbmd", 0x7c000000, 0xfc080000, "r,xOA,X", 4 }, 25777349Sgshapiro{ "tbmd", 0x78080000, 0xfc080000, "r,xOA,X", 4 }, 25877349Sgshapiro 25977349Sgshapiro{ "ssm", 0x9c080000, 0xfc080000, "f,xOA,X", 4 }, 26077349Sgshapiro{ "zsm", 0x9c000000, 0xfc080000, "f,xOA,X", 4 }, 26177349Sgshapiro{ "tsm", 0x98080000, 0xfc080000, "f,xOA,X", 4 }, 26264562Sgshapiro 26364562Sgshapiro{ "admb", 0xc8080000, 0xfc080000, "r,xOA,X", 4 }, 26464562Sgshapiro{ "admh", 0xc8000001, 0xfc080001, "r,xOA,X", 4 }, 26564562Sgshapiro{ "admw", 0xc8000000, 0xfc080000, "r,xOA,X", 4 }, 26664562Sgshapiro{ "admd", 0xc8000002, 0xfc080002, "r,xOA,X", 4 }, 26764562Sgshapiro{ "adr", 0x38000000, 0xfc0f0000, "r,R", 2 }, 26864562Sgshapiro{ "armb", 0xe8080000, 0xfc080000, "r,xOA,X", 4 }, 26964562Sgshapiro{ "armh", 0xe8000001, 0xfc080001, "r,xOA,X", 4 }, 27064562Sgshapiro{ "armw", 0xe8000000, 0xfc080000, "r,xOA,X", 4 }, 27164562Sgshapiro{ "armd", 0xe8000002, 0xfc080002, "r,xOA,X", 4 }, 27264562Sgshapiro{ "adi", 0xf8010000, 0xfc0f0000, "r,I", 4 }, 27364562Sgshapiro{ "sumb", 0xcc080000, 0xfc080000, "r,xOA,X", 4 }, 27464562Sgshapiro{ "sumh", 0xcc000001, 0xfc080001, "r,xOA,X", 4 }, 27564562Sgshapiro{ "sumw", 0xcc000000, 0xfc080000, "r,xOA,X", 4 }, 27664562Sgshapiro{ "sumd", 0xcc000002, 0xfc080002, "r,xOA,X", 4 }, 27764562Sgshapiro{ "sur", 0x3c000000, 0xfc0f0000, "r,R", 2 }, 27864562Sgshapiro{ "sui", 0xf8020000, 0xfc0f0000, "r,I", 4 }, 27964562Sgshapiro{ "mpmb", 0xc0080000, 0xfc080000, "r,xOA,X", 4 }, 28064562Sgshapiro{ "mpmh", 0xc0000001, 0xfc080001, "r,xOA,X", 4 }, 28164562Sgshapiro{ "mpmw", 0xc0000000, 0xfc080000, "r,xOA,X", 4 }, 28264562Sgshapiro{ "mpr", 0x38020000, 0xfc0f0000, "r,R", 2 }, 28366494Sgshapiro{ "mprd", 0x3c0f0000, 0xfc0f0000, "r,R", 2 }, 28464562Sgshapiro{ "mpi", 0xf8030000, 0xfc0f0000, "r,I", 4 }, 28564562Sgshapiro{ "dvmb", 0xc4080000, 0xfc080000, "r,xOA,X", 4 }, 28664562Sgshapiro{ "dvmh", 0xc4000001, 0xfc080001, "r,xOA,X", 4 }, 28764562Sgshapiro{ "dvmw", 0xc4000000, 0xfc080000, "r,xOA,X", 4 }, 28864562Sgshapiro{ "dvr", 0x380a0000, 0xfc0f0000, "r,R", 2 }, 28964562Sgshapiro{ "dvi", 0xf8040000, 0xfc0f0000, "r,I", 4 }, 29064562Sgshapiro{ "exs", 0x38080000, 0xfc0f0000, "r,R", 2 }, 29164562Sgshapiro 29264562Sgshapiro{ "advv", 0x30000000, 0xfc0f0000, "v,V", 2 }, 29364562Sgshapiro{ "advvd", 0x30080000, 0xfc0f0000, "v,V", 2 }, 29464562Sgshapiro{ "adrv", 0x34000000, 0xfc0f0000, "v,R", 2 }, 29564562Sgshapiro{ "adrvd", 0x34080000, 0xfc0f0000, "v,R", 2 }, 29664562Sgshapiro{ "suvv", 0x30010000, 0xfc0f0000, "v,V", 2 }, 29764562Sgshapiro{ "suvvd", 0x30090000, 0xfc0f0000, "v,V", 2 }, 29864562Sgshapiro{ "surv", 0x34010000, 0xfc0f0000, "v,R", 2 }, 29964562Sgshapiro{ "survd", 0x34090000, 0xfc0f0000, "v,R", 2 }, 30066494Sgshapiro{ "mpvv", 0x30020000, 0xfc0f0000, "v,V", 2 }, 30164562Sgshapiro{ "mprv", 0x34020000, 0xfc0f0000, "v,R", 2 }, 30277349Sgshapiro 30377349Sgshapiro{ "adfw", 0xe0080000, 0xfc080000, "r,xOA,X", 4 }, 30477349Sgshapiro{ "adfd", 0xe0080002, 0xfc080002, "r,xOA,X", 4 }, 30577349Sgshapiro{ "adrfw", 0x38010000, 0xfc0f0000, "r,R", 2 }, 30677349Sgshapiro{ "adrfd", 0x38090000, 0xfc0f0000, "r,R", 2 }, 30777349Sgshapiro{ "surfw", 0xe0000000, 0xfc080000, "r,xOA,X", 4 }, 30877349Sgshapiro{ "surfd", 0xe0000002, 0xfc080002, "r,xOA,X", 4 }, 30977349Sgshapiro{ "surfw", 0x38030000, 0xfc0f0000, "r,R", 2 }, 31077349Sgshapiro{ "surfd", 0x380b0000, 0xfc0f0000, "r,R", 2 }, 31177349Sgshapiro{ "mpfw", 0xe4080000, 0xfc080000, "r,xOA,X", 4 }, 31277349Sgshapiro{ "mpfd", 0xe4080002, 0xfc080002, "r,xOA,X", 4 }, 31364562Sgshapiro{ "mprfw", 0x38060000, 0xfc0f0000, "r,R", 2 }, 31464562Sgshapiro{ "mprfd", 0x380e0000, 0xfc0f0000, "r,R", 2 }, 31577349Sgshapiro{ "rfw", 0xe4000000, 0xfc080000, "r,xOA,X", 4 }, 31677349Sgshapiro{ "rfd", 0xe4000002, 0xfc080002, "r,xOA,X", 4 }, 31777349Sgshapiro{ "rrfw", 0x0c0e0000, 0xfc0f0000, "r", 2 }, 31877349Sgshapiro{ "rrfd", 0x0c0f0000, 0xfc0f0000, "r", 2 }, 31977349Sgshapiro 32077349Sgshapiro{ "advvfw", 0x30040000, 0xfc0f0000, "v,V", 2 }, 32177349Sgshapiro{ "advvfd", 0x300c0000, 0xfc0f0000, "v,V", 2 }, 32277349Sgshapiro{ "adrvfw", 0x34040000, 0xfc0f0000, "v,R", 2 }, 32377349Sgshapiro{ "adrvfd", 0x340c0000, 0xfc0f0000, "v,R", 2 }, 32477349Sgshapiro{ "suvvfw", 0x30050000, 0xfc0f0000, "v,V", 2 }, 32577349Sgshapiro{ "suvvfd", 0x300d0000, 0xfc0f0000, "v,V", 2 }, 32677349Sgshapiro{ "survfw", 0x34050000, 0xfc0f0000, "v,R", 2 }, 32777349Sgshapiro{ "survfd", 0x340d0000, 0xfc0f0000, "v,R", 2 }, 32877349Sgshapiro{ "mpvvfw", 0x30060000, 0xfc0f0000, "v,V", 2 }, 32977349Sgshapiro{ "mpvvfd", 0x300e0000, 0xfc0f0000, "v,V", 2 }, 33064562Sgshapiro{ "mprvfw", 0x34060000, 0xfc0f0000, "v,R", 2 }, 33164562Sgshapiro{ "mprvfd", 0x340e0000, 0xfc0f0000, "v,R", 2 }, 33264562Sgshapiro{ "rvfw", 0x30070000, 0xfc0f0000, "v", 2 }, 33366494Sgshapiro{ "rvfd", 0x300f0000, 0xfc0f0000, "v", 2 }, 33464562Sgshapiro 33577349Sgshapiro{ "fltw", 0x38070000, 0xfc0f0000, "r,R", 2 }, 33664562Sgshapiro{ "fltd", 0x380f0000, 0xfc0f0000, "r,R", 2 }, 33777349Sgshapiro{ "fixw", 0x38050000, 0xfc0f0000, "r,R", 2 }, 33877349Sgshapiro{ "fixd", 0x380d0000, 0xfc0f0000, "r,R", 2 }, 33977349Sgshapiro{ "cfpds", 0x3c090000, 0xfc0f0000, "r,R", 2 }, 34077349Sgshapiro 34177349Sgshapiro{ "fltvw", 0x080d0000, 0xfc0f0000, "v,V", 2 }, 34277349Sgshapiro{ "fltvd", 0x080f0000, 0xfc0f0000, "v,V", 2 }, 34377349Sgshapiro{ "fixvw", 0x080c0000, 0xfc0f0000, "v,V", 2 }, 34477349Sgshapiro{ "fixvd", 0x080e0000, 0xfc0f0000, "v,V", 2 }, 34577349Sgshapiro{ "cfpvds", 0x0c0d0000, 0xfc0f0000, "v,V", 2 }, 34677349Sgshapiro 34777349Sgshapiro{ "orvrn", 0x000a0000, 0xfc0f0000, "r,V", 2 }, 34864562Sgshapiro{ "andvrn", 0x00080000, 0xfc0f0000, "r,V", 2 }, 34964562Sgshapiro{ "frsteq", 0x04090000, 0xfc0f0000, "r,V", 2 }, 35077349Sgshapiro{ "sigma", 0x0c080000, 0xfc0f0000, "r,V", 2 }, 35177349Sgshapiro{ "sigmad", 0x0c0a0000, 0xfc0f0000, "r,V", 2 }, 35277349Sgshapiro{ "sigmf", 0x08080000, 0xfc0f0000, "r,V", 2 }, 35377349Sgshapiro{ "sigmfd", 0x080a0000, 0xfc0f0000, "r,V", 2 }, 35477349Sgshapiro{ "prodf", 0x04080000, 0xfc0f0000, "r,V", 2 }, 35566494Sgshapiro{ "prodfd", 0x040a0000, 0xfc0f0000, "r,V", 2 }, 35666494Sgshapiro{ "maxv", 0x10080000, 0xfc0f0000, "r,V", 2 }, 35766494Sgshapiro{ "maxvd", 0x100a0000, 0xfc0f0000, "r,V", 2 }, 35877349Sgshapiro{ "minv", 0x14080000, 0xfc0f0000, "r,V", 2 }, 35977349Sgshapiro{ "minvd", 0x140a0000, 0xfc0f0000, "r,V", 2 }, 36066494Sgshapiro 36177349Sgshapiro{ "lpsd", 0xf0000000, 0xfc080000, "xOA,X", 4 }, 36277349Sgshapiro{ "ldc", 0xf0080000, 0xfc080000, "xOA,X", 4 }, 36366494Sgshapiro{ "spm", 0x040c0000, 0xfc0f0000, "r", 2 }, 36466494Sgshapiro{ "rpm", 0x040d0000, 0xfc0f0000, "r", 2 }, 36564562Sgshapiro{ "tritr", 0x00070000, 0xfc0f0000, "r", 2 }, 36664562Sgshapiro{ "trrit", 0x00060000, 0xfc0f0000, "r", 2 }, 36766494Sgshapiro{ "rpswt", 0x04080000, 0xfc0f0000, "r", 2 }, 36864562Sgshapiro{ "exr", 0xf8070000, 0xfc0f0000, "", 4 }, 36964562Sgshapiro{ "halt", 0x00000000, 0xfc0f0000, "", 2 }, 37064562Sgshapiro{ "wait", 0x00010000, 0xfc0f0000, "", 2 }, 37164562Sgshapiro{ "nop", 0x00020000, 0xfc0f0000, "", 2 }, 37264562Sgshapiro{ "eiae", 0x00030000, 0xfc0f0000, "", 2 }, 37366494Sgshapiro{ "efae", 0x000d0000, 0xfc0f0000, "", 2 }, 37464562Sgshapiro{ "diae", 0x000e0000, 0xfc0f0000, "", 2 }, 37564562Sgshapiro{ "dfae", 0x000f0000, 0xfc0f0000, "", 2 }, 37664562Sgshapiro{ "spvc", 0xf8060000, 0xfc0f0000, "r,T,N", 4 }, 37764562Sgshapiro{ "rdsts", 0x00090000, 0xfc0f0000, "r", 2 }, 37864562Sgshapiro{ "setcpu", 0x000c0000, 0xfc0f0000, "r", 2 }, 37964562Sgshapiro{ "cmc", 0x000b0000, 0xfc0f0000, "r", 2 }, 38064562Sgshapiro{ "trrcu", 0x00040000, 0xfc0f0000, "r", 2 }, 38164562Sgshapiro{ "attnio", 0x00050000, 0xfc0f0000, "", 2 }, 38271345Sgshapiro{ "fudit", 0x28080000, 0xfc0f0000, "", 2 }, 38364562Sgshapiro{ "break", 0x28090000, 0xfc0f0000, "", 2 }, 38464562Sgshapiro{ "frzss", 0x280a0000, 0xfc0f0000, "", 2 }, 38564562Sgshapiro{ "ripi", 0x04040000, 0xfc0f0000, "r,R", 2 }, 38664562Sgshapiro{ "xcp", 0x04050000, 0xfc0f0000, "r", 2 }, 38764562Sgshapiro{ "block", 0x04060000, 0xfc0f0000, "", 2 }, 38864562Sgshapiro{ "unblock", 0x04070000, 0xfc0f0000, "", 2 }, 38964562Sgshapiro{ "trsc", 0x08060000, 0xfc0f0000, "r,R", 2 }, 39071345Sgshapiro{ "tscr", 0x08070000, 0xfc0f0000, "r,R", 2 }, 39164562Sgshapiro{ "fq", 0x04080000, 0xfc0f0000, "r", 2 }, 39271345Sgshapiro{ "flupte", 0x2c080000, 0xfc0f0000, "r", 2 }, 39371345Sgshapiro{ "rviu", 0x040f0000, 0xfc0f0000, "", 2 }, 39464562Sgshapiro{ "ldel", 0x280c0000, 0xfc0f0000, "r,R", 2 }, 39564562Sgshapiro{ "ldu", 0x280d0000, 0xfc0f0000, "r,R", 2 }, 39664562Sgshapiro{ "stdecc", 0x280b0000, 0xfc0f0000, "r,R", 2 }, 39764562Sgshapiro{ "trpc", 0x08040000, 0xfc0f0000, "r", 2 }, 39864562Sgshapiro{ "tpcr", 0x08050000, 0xfc0f0000, "r", 2 }, 39971345Sgshapiro{ "ghalt", 0x0c050000, 0xfc0f0000, "r", 2 }, 40066494Sgshapiro{ "grun", 0x0c040000, 0xfc0f0000, "", 2 }, 40164562Sgshapiro{ "tmpr", 0x2c0a0000, 0xfc0f0000, "r,R", 2 }, 40264562Sgshapiro{ "trmp", 0x2c0b0000, 0xfc0f0000, "r,R", 2 }, 40364562Sgshapiro 40464562Sgshapiro{ "trrve", 0x28060000, 0xfc0f0000, "r", 2 }, 40564562Sgshapiro{ "trver", 0x28070000, 0xfc0f0000, "r", 2 }, 40664562Sgshapiro{ "trvlr", 0x280f0000, 0xfc0f0000, "r", 2 }, 40771345Sgshapiro 40866494Sgshapiro{ "linkfl", 0x18000000, 0xfc0f0000, "r,R", 2 }, 40964562Sgshapiro{ "linkbl", 0x18020000, 0xfc0f0000, "r,R", 2 }, 41064562Sgshapiro{ "linkfp", 0x18010000, 0xfc0f0000, "r,R", 2 }, 41164562Sgshapiro{ "linkbp", 0x18030000, 0xfc0f0000, "r,R", 2 }, 41264562Sgshapiro{ "linkpl", 0x18040000, 0xfc0f0000, "r,R", 2 }, 41364562Sgshapiro{ "ulinkl", 0x18080000, 0xfc0f0000, "r,R", 2 }, 41471345Sgshapiro{ "ulinkp", 0x18090000, 0xfc0f0000, "r,R", 2 }, 41571345Sgshapiro{ "ulinktl", 0x180a0000, 0xfc0f0000, "r,R", 2 }, 41664562Sgshapiro{ "ulinktp", 0x180b0000, 0xfc0f0000, "r,R", 2 }, 41764562Sgshapiro}; 41864562Sgshapiro 41964562Sgshapiroint numopcodes = sizeof(gld_opcodes) / sizeof(gld_opcodes[0]); 42064562Sgshapiro 42171345Sgshapirostruct gld_opcode *endop = gld_opcodes + sizeof(gld_opcodes) / 42264562Sgshapiro sizeof(gld_opcodes[0]); 42364562Sgshapiro