1*f7184619SJoshua M. Clulow /* 2*f7184619SJoshua M. Clulow * CDDL HEADER START 3*f7184619SJoshua M. Clulow * 4*f7184619SJoshua M. Clulow * The contents of this file are subject to the terms of the 5*f7184619SJoshua M. Clulow * Common Development and Distribution License (the "License"). 6*f7184619SJoshua M. Clulow * You may not use this file except in compliance with the License. 7*f7184619SJoshua M. Clulow * 8*f7184619SJoshua M. Clulow * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*f7184619SJoshua M. Clulow * or http://www.opensolaris.org/os/licensing. 10*f7184619SJoshua M. Clulow * See the License for the specific language governing permissions 11*f7184619SJoshua M. Clulow * and limitations under the License. 12*f7184619SJoshua M. Clulow * 13*f7184619SJoshua M. Clulow * When distributing Covered Code, include this CDDL HEADER in each 14*f7184619SJoshua M. Clulow * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*f7184619SJoshua M. Clulow * If applicable, add the following below this CDDL HEADER, with the 16*f7184619SJoshua M. Clulow * fields enclosed by brackets "[]" replaced with your own identifying 17*f7184619SJoshua M. Clulow * information: Portions Copyright [yyyy] [name of copyright owner] 18*f7184619SJoshua M. Clulow * 19*f7184619SJoshua M. Clulow * CDDL HEADER END 20*f7184619SJoshua M. Clulow */ 21*f7184619SJoshua M. Clulow 22*f7184619SJoshua M. Clulow /* 23*f7184619SJoshua M. Clulow * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 24*f7184619SJoshua M. Clulow * Use is subject to license terms. 25*f7184619SJoshua M. Clulow */ 26*f7184619SJoshua M. Clulow 27*f7184619SJoshua M. Clulow /* 28*f7184619SJoshua M. Clulow * Copyright 2009 Jason King. All rights reserved. 29*f7184619SJoshua M. Clulow * Use is subject to license terms. 30*f7184619SJoshua M. Clulow */ 31*f7184619SJoshua M. Clulow 32*f7184619SJoshua M. Clulow #include "libdisasm.h" 33*f7184619SJoshua M. Clulow #include "libdisasm_impl.h" 34*f7184619SJoshua M. Clulow #include "dis_sparc.h" 35*f7184619SJoshua M. Clulow #include "dis_sparc_fmt.h" 36*f7184619SJoshua M. Clulow 37*f7184619SJoshua M. Clulow #define INVALID \ 38*f7184619SJoshua M. Clulow { \ 39*f7184619SJoshua M. Clulow .in_type = INST_NONE, \ 40*f7184619SJoshua M. Clulow .in_arch = 0, \ 41*f7184619SJoshua M. Clulow .in_data = { \ 42*f7184619SJoshua M. Clulow .in_tbl = NULL \ 43*f7184619SJoshua M. Clulow } \ 44*f7184619SJoshua M. Clulow } 45*f7184619SJoshua M. Clulow 46*f7184619SJoshua M. Clulow #define INVALIDA(_arch) \ 47*f7184619SJoshua M. Clulow { \ 48*f7184619SJoshua M. Clulow .in_type = INST_NONE, \ 49*f7184619SJoshua M. Clulow .in_arch = _arch, \ 50*f7184619SJoshua M. Clulow .in_data = { \ 51*f7184619SJoshua M. Clulow .in_tbl = NULL \ 52*f7184619SJoshua M. Clulow } \ 53*f7184619SJoshua M. Clulow } 54*f7184619SJoshua M. Clulow 55*f7184619SJoshua M. Clulow #define INST(_name, _arch, _flags) \ 56*f7184619SJoshua M. Clulow { \ 57*f7184619SJoshua M. Clulow .in_type = INST_DEF, \ 58*f7184619SJoshua M. Clulow .in_arch = _arch, \ 59*f7184619SJoshua M. Clulow .in_data = { \ 60*f7184619SJoshua M. Clulow .in_def = { \ 61*f7184619SJoshua M. Clulow .in_name = _name, \ 62*f7184619SJoshua M. Clulow .in_flags = _flags \ 63*f7184619SJoshua M. Clulow } \ 64*f7184619SJoshua M. Clulow } \ 65*f7184619SJoshua M. Clulow } 66*f7184619SJoshua M. Clulow 67*f7184619SJoshua M. Clulow #define TABLE(_name, _arch) \ 68*f7184619SJoshua M. Clulow { \ 69*f7184619SJoshua M. Clulow .in_type = INST_TBL, \ 70*f7184619SJoshua M. Clulow .in_arch = _arch, \ 71*f7184619SJoshua M. Clulow .in_data = { \ 72*f7184619SJoshua M. Clulow .in_tbl = &_name \ 73*f7184619SJoshua M. Clulow } \ 74*f7184619SJoshua M. Clulow } 75*f7184619SJoshua M. Clulow 76*f7184619SJoshua M. Clulow #define OVERLAY(_idx, _inst) \ 77*f7184619SJoshua M. Clulow { \ 78*f7184619SJoshua M. Clulow .ov_idx = _idx, \ 79*f7184619SJoshua M. Clulow .ov_inst = _inst \ 80*f7184619SJoshua M. Clulow } 81*f7184619SJoshua M. Clulow 82*f7184619SJoshua M. Clulow #define OVERLAY_END { .ov_idx = -1, .ov_inst = INVALID } 83*f7184619SJoshua M. Clulow 84*f7184619SJoshua M. Clulow #define V8 DIS_SPARC_V8 85*f7184619SJoshua M. Clulow #define V9 DIS_SPARC_V9 86*f7184619SJoshua M. Clulow #define V9S DIS_SPARC_V9_SGI 87*f7184619SJoshua M. Clulow #define V9O DIS_SPARC_V9_OPL 88*f7184619SJoshua M. Clulow #define VALL V8|V9|V9S|V9O 89*f7184619SJoshua M. Clulow 90*f7184619SJoshua M. Clulow /* branches */ 91*f7184619SJoshua M. Clulow static const inst_t BPcc_table_def[16] = { 92*f7184619SJoshua M. Clulow INST("bn", V9|V9S, FLG_PRED|FLG_RS1(REG_ICC)|FLG_DISP(DISP19)), 93*f7184619SJoshua M. Clulow INST("be", V9|V9S, FLG_PRED|FLG_RS1(REG_ICC)|FLG_DISP(DISP19)), 94*f7184619SJoshua M. Clulow INST("ble", V9|V9S, FLG_PRED|FLG_RS1(REG_ICC)|FLG_DISP(DISP19)), 95*f7184619SJoshua M. Clulow INST("bl", V9|V9S, FLG_PRED|FLG_RS1(REG_ICC)|FLG_DISP(DISP19)), 96*f7184619SJoshua M. Clulow 97*f7184619SJoshua M. Clulow INST("bleu", V9|V9S, FLG_PRED|FLG_RS1(REG_ICC)|FLG_DISP(DISP19)), 98*f7184619SJoshua M. Clulow INST("bcs", V9|V9S, FLG_PRED|FLG_RS1(REG_ICC)|FLG_DISP(DISP19)), 99*f7184619SJoshua M. Clulow INST("bneg", V9|V9S, FLG_PRED|FLG_RS1(REG_ICC)|FLG_DISP(DISP19)), 100*f7184619SJoshua M. Clulow INST("bvs", V9|V9S, FLG_PRED|FLG_RS1(REG_ICC)|FLG_DISP(DISP19)), 101*f7184619SJoshua M. Clulow 102*f7184619SJoshua M. Clulow INST("ba", V9|V9S, FLG_PRED|FLG_RS1(REG_ICC)|FLG_DISP(DISP19)), 103*f7184619SJoshua M. Clulow INST("bne", V9|V9S, FLG_PRED|FLG_RS1(REG_ICC)|FLG_DISP(DISP19)), 104*f7184619SJoshua M. Clulow INST("bg", V9|V9S, FLG_PRED|FLG_RS1(REG_ICC)|FLG_DISP(DISP19)), 105*f7184619SJoshua M. Clulow INST("bge", V9|V9S, FLG_PRED|FLG_RS1(REG_ICC)|FLG_DISP(DISP19)), 106*f7184619SJoshua M. Clulow 107*f7184619SJoshua M. Clulow INST("bgu", V9|V9S, FLG_PRED|FLG_RS1(REG_ICC)|FLG_DISP(DISP19)), 108*f7184619SJoshua M. Clulow INST("bcc", V9|V9S, FLG_PRED|FLG_RS1(REG_ICC)|FLG_DISP(DISP19)), 109*f7184619SJoshua M. Clulow INST("bpos", V9|V9S, FLG_PRED|FLG_RS1(REG_ICC)|FLG_DISP(DISP19)), 110*f7184619SJoshua M. Clulow INST("bvc", V9|V9S, FLG_PRED|FLG_RS1(REG_ICC)|FLG_DISP(DISP19)) 111*f7184619SJoshua M. Clulow }; 112*f7184619SJoshua M. Clulow 113*f7184619SJoshua M. Clulow 114*f7184619SJoshua M. Clulow static const table_t BPcc_table = { 115*f7184619SJoshua M. Clulow .tbl_field = 28, 116*f7184619SJoshua M. Clulow .tbl_len = 4, 117*f7184619SJoshua M. Clulow .tbl_ovp = NULL, 118*f7184619SJoshua M. Clulow .tbl_fmt = fmt_branch, 119*f7184619SJoshua M. Clulow .tbl_inp = BPcc_table_def 120*f7184619SJoshua M. Clulow }; 121*f7184619SJoshua M. Clulow 122*f7184619SJoshua M. Clulow static const inst_t Bicc_table_def[16] = { 123*f7184619SJoshua M. Clulow INST("bn", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 124*f7184619SJoshua M. Clulow INST("be", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 125*f7184619SJoshua M. Clulow INST("ble", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 126*f7184619SJoshua M. Clulow INST("bl", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 127*f7184619SJoshua M. Clulow 128*f7184619SJoshua M. Clulow INST("bleu", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 129*f7184619SJoshua M. Clulow /* docs say it's 'bcs' but disassembler calles it synonym 'blu' */ 130*f7184619SJoshua M. Clulow INST("blu", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 131*f7184619SJoshua M. Clulow INST("bneg", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 132*f7184619SJoshua M. Clulow INST("bvs", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 133*f7184619SJoshua M. Clulow 134*f7184619SJoshua M. Clulow INST("ba", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 135*f7184619SJoshua M. Clulow INST("bne", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 136*f7184619SJoshua M. Clulow INST("bg", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 137*f7184619SJoshua M. Clulow INST("bge", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 138*f7184619SJoshua M. Clulow 139*f7184619SJoshua M. Clulow INST("bgu", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 140*f7184619SJoshua M. Clulow /* 141*f7184619SJoshua M. Clulow * while the docs say it's officially 'bcc', existing disassembler 142*f7184619SJoshua M. Clulow * uses the synonym bgeu 143*f7184619SJoshua M. Clulow */ 144*f7184619SJoshua M. Clulow INST("bgeu", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 145*f7184619SJoshua M. Clulow INST("bpos", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 146*f7184619SJoshua M. Clulow INST("bvc", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)) 147*f7184619SJoshua M. Clulow }; 148*f7184619SJoshua M. Clulow 149*f7184619SJoshua M. Clulow static const table_t Bicc_table = { 150*f7184619SJoshua M. Clulow .tbl_field = 28, 151*f7184619SJoshua M. Clulow .tbl_len = 4, 152*f7184619SJoshua M. Clulow .tbl_ovp = NULL, 153*f7184619SJoshua M. Clulow .tbl_fmt = fmt_branch, 154*f7184619SJoshua M. Clulow .tbl_inp = Bicc_table_def 155*f7184619SJoshua M. Clulow }; 156*f7184619SJoshua M. Clulow 157*f7184619SJoshua M. Clulow static const inst_t BPr_table_def[16] = { 158*f7184619SJoshua M. Clulow INVALID, 159*f7184619SJoshua M. Clulow INST("brz", V9|V9S, FLG_PRED|FLG_DISP(DISP16)|FLG_RS1(REG_INT)), 160*f7184619SJoshua M. Clulow INST("brlez", V9|V9S, FLG_PRED|FLG_DISP(DISP16)|FLG_RS1(REG_INT)), 161*f7184619SJoshua M. Clulow INST("brlz", V9|V9S, FLG_PRED|FLG_DISP(DISP16)|FLG_RS1(REG_INT)), 162*f7184619SJoshua M. Clulow 163*f7184619SJoshua M. Clulow INVALID, 164*f7184619SJoshua M. Clulow INST("brnz", V9|V9S, FLG_PRED|FLG_DISP(DISP16)|FLG_RS1(REG_INT)), 165*f7184619SJoshua M. Clulow INST("brgz", V9|V9S, FLG_PRED|FLG_DISP(DISP16)|FLG_RS1(REG_INT)), 166*f7184619SJoshua M. Clulow INST("brgez", V9|V9S, FLG_PRED|FLG_DISP(DISP16)|FLG_RS1(REG_INT)), 167*f7184619SJoshua M. Clulow 168*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID 169*f7184619SJoshua M. Clulow }; 170*f7184619SJoshua M. Clulow 171*f7184619SJoshua M. Clulow static const table_t BPr_table = { 172*f7184619SJoshua M. Clulow .tbl_field = 28, 173*f7184619SJoshua M. Clulow .tbl_len = 4, 174*f7184619SJoshua M. Clulow .tbl_ovp = NULL, 175*f7184619SJoshua M. Clulow .tbl_fmt = fmt_branch, 176*f7184619SJoshua M. Clulow .tbl_inp = BPr_table_def 177*f7184619SJoshua M. Clulow }; 178*f7184619SJoshua M. Clulow 179*f7184619SJoshua M. Clulow static const inst_t FBPfcc_table_def[16] = { 180*f7184619SJoshua M. Clulow INST("fbn", V9|V9S, FLG_PRED|FLG_DISP(DISP19)|FLG_RS1(REG_FCC)), 181*f7184619SJoshua M. Clulow INST("fbne", V9|V9S, FLG_PRED|FLG_DISP(DISP19)|FLG_RS1(REG_FCC)), 182*f7184619SJoshua M. Clulow INST("fblg", V9|V9S, FLG_PRED|FLG_DISP(DISP19)|FLG_RS1(REG_FCC)), 183*f7184619SJoshua M. Clulow INST("fbul", V9|V9S, FLG_PRED|FLG_DISP(DISP19)|FLG_RS1(REG_FCC)), 184*f7184619SJoshua M. Clulow 185*f7184619SJoshua M. Clulow INST("fbl", V9|V9S, FLG_PRED|FLG_DISP(DISP19)|FLG_RS1(REG_FCC)), 186*f7184619SJoshua M. Clulow INST("fbug", V9|V9S, FLG_PRED|FLG_DISP(DISP19)|FLG_RS1(REG_FCC)), 187*f7184619SJoshua M. Clulow INST("fbg", V9|V9S, FLG_PRED|FLG_DISP(DISP19)|FLG_RS1(REG_FCC)), 188*f7184619SJoshua M. Clulow INST("fbu", V9|V9S, FLG_PRED|FLG_DISP(DISP19)|FLG_RS1(REG_FCC)), 189*f7184619SJoshua M. Clulow 190*f7184619SJoshua M. Clulow INST("fba", V9|V9S, FLG_PRED|FLG_DISP(DISP19)|FLG_RS1(REG_FCC)), 191*f7184619SJoshua M. Clulow INST("fbe", V9|V9S, FLG_PRED|FLG_DISP(DISP19)|FLG_RS1(REG_FCC)), 192*f7184619SJoshua M. Clulow INST("fbue", V9|V9S, FLG_PRED|FLG_DISP(DISP19)|FLG_RS1(REG_FCC)), 193*f7184619SJoshua M. Clulow INST("fbge", V9|V9S, FLG_PRED|FLG_DISP(DISP19)|FLG_RS1(REG_FCC)), 194*f7184619SJoshua M. Clulow 195*f7184619SJoshua M. Clulow INST("fbuge", V9|V9S, FLG_PRED|FLG_DISP(DISP19)|FLG_RS1(REG_FCC)), 196*f7184619SJoshua M. Clulow INST("fble", V9|V9S, FLG_PRED|FLG_DISP(DISP19)|FLG_RS1(REG_FCC)), 197*f7184619SJoshua M. Clulow INST("fbule", V9|V9S, FLG_PRED|FLG_DISP(DISP19)|FLG_RS1(REG_FCC)), 198*f7184619SJoshua M. Clulow INST("fbo", V9|V9S, FLG_PRED|FLG_DISP(DISP19)|FLG_RS1(REG_FCC)) 199*f7184619SJoshua M. Clulow }; 200*f7184619SJoshua M. Clulow 201*f7184619SJoshua M. Clulow static const table_t FBPfcc_table = { 202*f7184619SJoshua M. Clulow .tbl_field = 28, 203*f7184619SJoshua M. Clulow .tbl_len = 4, 204*f7184619SJoshua M. Clulow .tbl_ovp = NULL, 205*f7184619SJoshua M. Clulow .tbl_fmt = fmt_branch, 206*f7184619SJoshua M. Clulow .tbl_inp = FBPfcc_table_def 207*f7184619SJoshua M. Clulow }; 208*f7184619SJoshua M. Clulow 209*f7184619SJoshua M. Clulow static const inst_t FBfcc_table_def[16] = { 210*f7184619SJoshua M. Clulow INST("fbn", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 211*f7184619SJoshua M. Clulow INST("fbne", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 212*f7184619SJoshua M. Clulow INST("fblg", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 213*f7184619SJoshua M. Clulow INST("fbul", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 214*f7184619SJoshua M. Clulow 215*f7184619SJoshua M. Clulow INST("fbl", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 216*f7184619SJoshua M. Clulow INST("fbug", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 217*f7184619SJoshua M. Clulow INST("fbg", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 218*f7184619SJoshua M. Clulow INST("fbu", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 219*f7184619SJoshua M. Clulow 220*f7184619SJoshua M. Clulow INST("fba", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 221*f7184619SJoshua M. Clulow INST("fbe", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 222*f7184619SJoshua M. Clulow INST("fbue", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 223*f7184619SJoshua M. Clulow INST("fbge", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 224*f7184619SJoshua M. Clulow 225*f7184619SJoshua M. Clulow INST("fbuge", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 226*f7184619SJoshua M. Clulow INST("fble", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 227*f7184619SJoshua M. Clulow INST("fbule", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 228*f7184619SJoshua M. Clulow INST("fbo", VALL, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)) 229*f7184619SJoshua M. Clulow }; 230*f7184619SJoshua M. Clulow 231*f7184619SJoshua M. Clulow static const table_t FBfcc_table = { 232*f7184619SJoshua M. Clulow .tbl_field = 28, 233*f7184619SJoshua M. Clulow .tbl_len = 4, 234*f7184619SJoshua M. Clulow .tbl_ovp = NULL, 235*f7184619SJoshua M. Clulow .tbl_fmt = fmt_branch, 236*f7184619SJoshua M. Clulow .tbl_inp = FBfcc_table_def 237*f7184619SJoshua M. Clulow }; 238*f7184619SJoshua M. Clulow 239*f7184619SJoshua M. Clulow static const inst_t CBccc_table_def[16] = { 240*f7184619SJoshua M. Clulow INST("cbn", V8, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 241*f7184619SJoshua M. Clulow INST("cb123", V8, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 242*f7184619SJoshua M. Clulow INST("cb12", V8, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 243*f7184619SJoshua M. Clulow INST("cb13", V8, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 244*f7184619SJoshua M. Clulow INST("cb1", V8, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 245*f7184619SJoshua M. Clulow INST("cb23", V8, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 246*f7184619SJoshua M. Clulow INST("cb2", V8, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 247*f7184619SJoshua M. Clulow INST("cb3", V8, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 248*f7184619SJoshua M. Clulow INST("cba", V8, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 249*f7184619SJoshua M. Clulow INST("cb0", V8, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 250*f7184619SJoshua M. Clulow INST("cb03", V8, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 251*f7184619SJoshua M. Clulow INST("cb02", V8, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 252*f7184619SJoshua M. Clulow INST("cb023", V8, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 253*f7184619SJoshua M. Clulow INST("cb01", V8, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 254*f7184619SJoshua M. Clulow INST("cb013", V8, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)), 255*f7184619SJoshua M. Clulow INST("cb012", V8, FLG_DISP(DISP22)|FLG_RS1(REG_NONE)) 256*f7184619SJoshua M. Clulow }; 257*f7184619SJoshua M. Clulow 258*f7184619SJoshua M. Clulow static const table_t CBccc_table = { 259*f7184619SJoshua M. Clulow .tbl_field = 28, 260*f7184619SJoshua M. Clulow .tbl_len = 4, 261*f7184619SJoshua M. Clulow .tbl_ovp = NULL, 262*f7184619SJoshua M. Clulow .tbl_fmt = fmt_branch, 263*f7184619SJoshua M. Clulow .tbl_inp = CBccc_table_def 264*f7184619SJoshua M. Clulow }; 265*f7184619SJoshua M. Clulow 266*f7184619SJoshua M. Clulow static const inst_t branch_table_def[8] = { 267*f7184619SJoshua M. Clulow INST("unimp", VALL, 0), 268*f7184619SJoshua M. Clulow TABLE(BPcc_table, V9|V9S), 269*f7184619SJoshua M. Clulow TABLE(Bicc_table, VALL), 270*f7184619SJoshua M. Clulow TABLE(BPr_table, V9|V9S), 271*f7184619SJoshua M. Clulow 272*f7184619SJoshua M. Clulow INST("sethi", VALL, 0), 273*f7184619SJoshua M. Clulow TABLE(FBPfcc_table, V9|V9S), 274*f7184619SJoshua M. Clulow TABLE(FBfcc_table, VALL), 275*f7184619SJoshua M. Clulow TABLE(CBccc_table, V8) 276*f7184619SJoshua M. Clulow }; 277*f7184619SJoshua M. Clulow 278*f7184619SJoshua M. Clulow static const overlay_t branch_ov_table[] = { 279*f7184619SJoshua M. Clulow OVERLAY(0x00, INST("illtrap", V9|V9S, 0)), 280*f7184619SJoshua M. Clulow OVERLAY_END 281*f7184619SJoshua M. Clulow }; 282*f7184619SJoshua M. Clulow 283*f7184619SJoshua M. Clulow static const table_t branch_table = { 284*f7184619SJoshua M. Clulow .tbl_field = 24, 285*f7184619SJoshua M. Clulow .tbl_len = 3, 286*f7184619SJoshua M. Clulow .tbl_ovp = branch_ov_table, 287*f7184619SJoshua M. Clulow .tbl_fmt = fmt_sethi, 288*f7184619SJoshua M. Clulow .tbl_inp = branch_table_def 289*f7184619SJoshua M. Clulow }; 290*f7184619SJoshua M. Clulow 291*f7184619SJoshua M. Clulow /* load/stores */ 292*f7184619SJoshua M. Clulow static const inst_t ls_table_def[64] = { 293*f7184619SJoshua M. Clulow /* 0x00 */ 294*f7184619SJoshua M. Clulow INST("ld", VALL, 0), 295*f7184619SJoshua M. Clulow INST("ldub", VALL, 0), 296*f7184619SJoshua M. Clulow INST("lduh", VALL, 0), 297*f7184619SJoshua M. Clulow INST("ldd", VALL, 0), 298*f7184619SJoshua M. Clulow 299*f7184619SJoshua M. Clulow INST("st", VALL, FLG_STORE), 300*f7184619SJoshua M. Clulow INST("stb", VALL, FLG_STORE), 301*f7184619SJoshua M. Clulow INST("sth", VALL, FLG_STORE), 302*f7184619SJoshua M. Clulow INST("std", VALL, FLG_STORE), 303*f7184619SJoshua M. Clulow 304*f7184619SJoshua M. Clulow /* 0x08 */ 305*f7184619SJoshua M. Clulow INST("ldsw", V9|V9S, 0), 306*f7184619SJoshua M. Clulow INST("ldsb", VALL, 0), 307*f7184619SJoshua M. Clulow INST("ldsh", VALL, 0), 308*f7184619SJoshua M. Clulow INST("ldx", V9|V9S, 0), 309*f7184619SJoshua M. Clulow 310*f7184619SJoshua M. Clulow INVALID, 311*f7184619SJoshua M. Clulow INST("ldstub", VALL, 0), 312*f7184619SJoshua M. Clulow INST("stx", V9|V9S, FLG_STORE), 313*f7184619SJoshua M. Clulow INST("swap", VALL, 0), 314*f7184619SJoshua M. Clulow 315*f7184619SJoshua M. Clulow /* 0x10 */ 316*f7184619SJoshua M. Clulow INST("lda", VALL, FLG_ASI), 317*f7184619SJoshua M. Clulow INST("lduba", VALL, FLG_ASI), 318*f7184619SJoshua M. Clulow INST("lduha", VALL, FLG_ASI), 319*f7184619SJoshua M. Clulow INST("ldda", VALL, FLG_ASI), 320*f7184619SJoshua M. Clulow 321*f7184619SJoshua M. Clulow INST("sta", VALL, FLG_STORE|FLG_ASI), 322*f7184619SJoshua M. Clulow INST("stba", VALL, FLG_STORE|FLG_ASI), 323*f7184619SJoshua M. Clulow INST("stha", VALL, FLG_STORE|FLG_ASI), 324*f7184619SJoshua M. Clulow INST("stda", VALL, FLG_STORE|FLG_ASI), 325*f7184619SJoshua M. Clulow 326*f7184619SJoshua M. Clulow /* 0x18 */ 327*f7184619SJoshua M. Clulow INST("ldswa", V9|V9S, FLG_ASI), 328*f7184619SJoshua M. Clulow INST("ldsba", VALL, FLG_ASI), 329*f7184619SJoshua M. Clulow INST("ldsha", VALL, FLG_ASI), 330*f7184619SJoshua M. Clulow INST("ldxa", V9|V9S, FLG_ASI), 331*f7184619SJoshua M. Clulow 332*f7184619SJoshua M. Clulow INVALID, 333*f7184619SJoshua M. Clulow INST("ldstuba", VALL, FLG_ASI), 334*f7184619SJoshua M. Clulow INST("stxa", V9|V9S, FLG_STORE|FLG_ASI), 335*f7184619SJoshua M. Clulow INST("swapa", VALL, FLG_ASI), 336*f7184619SJoshua M. Clulow 337*f7184619SJoshua M. Clulow /* 0x20 */ 338*f7184619SJoshua M. Clulow INST("ld", VALL, FLG_RD(REG_FP)), 339*f7184619SJoshua M. Clulow /* ldx on v9 */ 340*f7184619SJoshua M. Clulow INST("ld", VALL, FLG_RD(REG_FSR)), 341*f7184619SJoshua M. Clulow INST("ldq", V9|V9S, FLG_RD(REG_FPQ)), 342*f7184619SJoshua M. Clulow INST("ldd", VALL, FLG_RD(REG_FPD)), 343*f7184619SJoshua M. Clulow 344*f7184619SJoshua M. Clulow INST("st", VALL, FLG_STORE|FLG_RD(REG_FP)), 345*f7184619SJoshua M. Clulow /* stx on v9 */ 346*f7184619SJoshua M. Clulow INST("st", VALL, FLG_STORE|FLG_RD(REG_FSR)), 347*f7184619SJoshua M. Clulow INST("stq", VALL, FLG_STORE|FLG_RD(REG_FPQ)), 348*f7184619SJoshua M. Clulow INST("std", VALL, FLG_STORE|FLG_RD(REG_FPD)), 349*f7184619SJoshua M. Clulow 350*f7184619SJoshua M. Clulow /* 0x28 */ 351*f7184619SJoshua M. Clulow INVALID, 352*f7184619SJoshua M. Clulow INVALID, 353*f7184619SJoshua M. Clulow INVALID, 354*f7184619SJoshua M. Clulow INVALID, 355*f7184619SJoshua M. Clulow 356*f7184619SJoshua M. Clulow INVALID, 357*f7184619SJoshua M. Clulow INST("prefetch", V9|V9S, 0), 358*f7184619SJoshua M. Clulow INVALID, 359*f7184619SJoshua M. Clulow INVALID, 360*f7184619SJoshua M. Clulow 361*f7184619SJoshua M. Clulow /* 0x30 */ 362*f7184619SJoshua M. Clulow INST("ld", V8, FLG_RD(REG_CP)), 363*f7184619SJoshua M. Clulow INST("ld", V8, FLG_RD(REG_CSR)), 364*f7184619SJoshua M. Clulow INST("ldqa", V9|V9S, FLG_ASI|FLG_RD(REG_FPQ)), 365*f7184619SJoshua M. Clulow INST("ldd", V8, FLG_RD(REG_CP)), 366*f7184619SJoshua M. Clulow 367*f7184619SJoshua M. Clulow INST("st", V8, FLG_STORE|FLG_RD(REG_CP)), 368*f7184619SJoshua M. Clulow INST("st", V8, FLG_STORE|FLG_RD(REG_CSR)), 369*f7184619SJoshua M. Clulow INST("std", V8, FLG_STORE|FLG_RD(REG_CQ)), 370*f7184619SJoshua M. Clulow INST("std", V8, FLG_STORE|FLG_RD(REG_CP)), 371*f7184619SJoshua M. Clulow 372*f7184619SJoshua M. Clulow /* 0x38 */ 373*f7184619SJoshua M. Clulow INVALID, 374*f7184619SJoshua M. Clulow INVALID, 375*f7184619SJoshua M. Clulow INVALID, 376*f7184619SJoshua M. Clulow INVALID, 377*f7184619SJoshua M. Clulow 378*f7184619SJoshua M. Clulow INST("casa", V9|V9S, 0), 379*f7184619SJoshua M. Clulow INST("prefetcha", V9|V9S, FLG_STORE|FLG_ASI), 380*f7184619SJoshua M. Clulow INST("casxa", V9|V9S, 0), 381*f7184619SJoshua M. Clulow INVALID 382*f7184619SJoshua M. Clulow }; 383*f7184619SJoshua M. Clulow 384*f7184619SJoshua M. Clulow static const overlay_t ld_ov_table[] = { 385*f7184619SJoshua M. Clulow OVERLAY(0x10, INST("lduwa", V9|V9S, FLG_ASI|FLG_RD(REG_INT))), 386*f7184619SJoshua M. Clulow OVERLAY(0x14, INST("stwa", V9|V9S, 387*f7184619SJoshua M. Clulow FLG_STORE|FLG_ASI|FLG_RD(REG_INT))), 388*f7184619SJoshua M. Clulow OVERLAY(0x30, INST("lda", V9|V9S, FLG_ASI|FLG_RD(REG_FP))), 389*f7184619SJoshua M. Clulow OVERLAY(0x33, INST("ldda", V9|V9S, FLG_ASI|FLG_RD(REG_FPD))), 390*f7184619SJoshua M. Clulow 391*f7184619SJoshua M. Clulow OVERLAY(0x34, INST("sta", V9|V9S, FLG_STORE|FLG_ASI|FLG_RD(REG_FP))), 392*f7184619SJoshua M. Clulow OVERLAY(0x36, INST("stqa", V9|V9S, 393*f7184619SJoshua M. Clulow FLG_STORE|FLG_ASI|FLG_RD(REG_FPQ))), 394*f7184619SJoshua M. Clulow OVERLAY(0x37, INST("stda", V9|V9S, 395*f7184619SJoshua M. Clulow FLG_STORE|FLG_ASI|FLG_RD(REG_FPD))), 396*f7184619SJoshua M. Clulow 397*f7184619SJoshua M. Clulow OVERLAY_END 398*f7184619SJoshua M. Clulow }; 399*f7184619SJoshua M. Clulow 400*f7184619SJoshua M. Clulow static const table_t ls_table = { 401*f7184619SJoshua M. Clulow .tbl_field = 24, 402*f7184619SJoshua M. Clulow .tbl_len = 6, 403*f7184619SJoshua M. Clulow .tbl_ovp = ld_ov_table, 404*f7184619SJoshua M. Clulow .tbl_fmt = fmt_ls, 405*f7184619SJoshua M. Clulow .tbl_inp = ls_table_def 406*f7184619SJoshua M. Clulow }; 407*f7184619SJoshua M. Clulow 408*f7184619SJoshua M. Clulow 409*f7184619SJoshua M. Clulow /* ALU operations */ 410*f7184619SJoshua M. Clulow static const inst_t Tcc_table_def[16] = { 411*f7184619SJoshua M. Clulow INST("tn", VALL, 0), 412*f7184619SJoshua M. Clulow INST("te", VALL, 0), 413*f7184619SJoshua M. Clulow INST("tle", VALL, 0), 414*f7184619SJoshua M. Clulow INST("tl", VALL, 0), 415*f7184619SJoshua M. Clulow 416*f7184619SJoshua M. Clulow INST("tleu", VALL, 0), 417*f7184619SJoshua M. Clulow INST("tcs", VALL, 0), 418*f7184619SJoshua M. Clulow INST("tneg", VALL, 0), 419*f7184619SJoshua M. Clulow INST("tvs", VALL, 0), 420*f7184619SJoshua M. Clulow 421*f7184619SJoshua M. Clulow INST("ta", VALL, 0), 422*f7184619SJoshua M. Clulow INST("tne", VALL, 0), 423*f7184619SJoshua M. Clulow INST("tg", VALL, 0), 424*f7184619SJoshua M. Clulow INST("tge", VALL, 0), 425*f7184619SJoshua M. Clulow 426*f7184619SJoshua M. Clulow INST("tgu", VALL, 0), 427*f7184619SJoshua M. Clulow INST("tcc", VALL, 0), 428*f7184619SJoshua M. Clulow INST("tpos", VALL, 0), 429*f7184619SJoshua M. Clulow INST("tvc", VALL, 0) 430*f7184619SJoshua M. Clulow }; 431*f7184619SJoshua M. Clulow 432*f7184619SJoshua M. Clulow static const table_t Tcc_table = { 433*f7184619SJoshua M. Clulow .tbl_field = 28, 434*f7184619SJoshua M. Clulow .tbl_len = 4, 435*f7184619SJoshua M. Clulow .tbl_ovp = NULL, 436*f7184619SJoshua M. Clulow .tbl_fmt = fmt_trap, 437*f7184619SJoshua M. Clulow .tbl_inp = Tcc_table_def 438*f7184619SJoshua M. Clulow }; 439*f7184619SJoshua M. Clulow 440*f7184619SJoshua M. Clulow static const inst_t rwin_table_def[32] = { 441*f7184619SJoshua M. Clulow /* 0x00 */ 442*f7184619SJoshua M. Clulow INST("saved", V9|V9S, 0), 443*f7184619SJoshua M. Clulow INST("restored", V9|V9S, 0), 444*f7184619SJoshua M. Clulow INST("allclean", V9|V9S, 0), 445*f7184619SJoshua M. Clulow INST("otherw", V9|V9S, 0), 446*f7184619SJoshua M. Clulow 447*f7184619SJoshua M. Clulow INST("normalw", V9|V9S, 0), 448*f7184619SJoshua M. Clulow INST("invalw", V9|V9S, 0), 449*f7184619SJoshua M. Clulow INVALID, 450*f7184619SJoshua M. Clulow INVALID, 451*f7184619SJoshua M. Clulow 452*f7184619SJoshua M. Clulow /* 0x08 */ 453*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 454*f7184619SJoshua M. Clulow 455*f7184619SJoshua M. Clulow /* 0x10 */ 456*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 457*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID 458*f7184619SJoshua M. Clulow }; 459*f7184619SJoshua M. Clulow 460*f7184619SJoshua M. Clulow static const table_t rwin_table = { 461*f7184619SJoshua M. Clulow .tbl_field = 29, 462*f7184619SJoshua M. Clulow .tbl_len = 5, 463*f7184619SJoshua M. Clulow .tbl_ovp = NULL, 464*f7184619SJoshua M. Clulow .tbl_fmt = fmt_regwin, 465*f7184619SJoshua M. Clulow .tbl_inp = rwin_table_def 466*f7184619SJoshua M. Clulow }; 467*f7184619SJoshua M. Clulow 468*f7184619SJoshua M. Clulow static const inst_t tr_table_def[32] = { 469*f7184619SJoshua M. Clulow /* 0x00 */ 470*f7184619SJoshua M. Clulow INST("done", V9|V9S, 0), 471*f7184619SJoshua M. Clulow INST("retry", V9|V9S, 0), 472*f7184619SJoshua M. Clulow INVALID, 473*f7184619SJoshua M. Clulow INVALID, 474*f7184619SJoshua M. Clulow 475*f7184619SJoshua M. Clulow INVALID, 476*f7184619SJoshua M. Clulow INVALID, 477*f7184619SJoshua M. Clulow INVALID, 478*f7184619SJoshua M. Clulow INVALID, 479*f7184619SJoshua M. Clulow 480*f7184619SJoshua M. Clulow /* 0x08 */ 481*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 482*f7184619SJoshua M. Clulow INST("jpriv", V9, FLG_DISP(DISP19)), 483*f7184619SJoshua M. Clulow 484*f7184619SJoshua M. Clulow /* 0x10 */ 485*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 486*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID 487*f7184619SJoshua M. Clulow }; 488*f7184619SJoshua M. Clulow 489*f7184619SJoshua M. Clulow static const table_t tr_table = { 490*f7184619SJoshua M. Clulow .tbl_field = 29, 491*f7184619SJoshua M. Clulow .tbl_len = 5, 492*f7184619SJoshua M. Clulow .tbl_ovp = NULL, 493*f7184619SJoshua M. Clulow .tbl_fmt = fmt_trap_ret, 494*f7184619SJoshua M. Clulow .tbl_inp = tr_table_def 495*f7184619SJoshua M. Clulow }; 496*f7184619SJoshua M. Clulow 497*f7184619SJoshua M. Clulow static const inst_t movicc_table_def[16] = { 498*f7184619SJoshua M. Clulow INST("movn", V9|V9S, 0), 499*f7184619SJoshua M. Clulow INST("move", V9|V9S, 0), 500*f7184619SJoshua M. Clulow INST("movle", V9|V9S, 0), 501*f7184619SJoshua M. Clulow INST("movl", V9|V9S, 0), 502*f7184619SJoshua M. Clulow 503*f7184619SJoshua M. Clulow INST("movleu", V9|V9S, 0), 504*f7184619SJoshua M. Clulow INST("movcs", V9|V9S, 0), 505*f7184619SJoshua M. Clulow INST("movneg", V9|V9S, 0), 506*f7184619SJoshua M. Clulow INST("movvs", V9|V9S, 0), 507*f7184619SJoshua M. Clulow 508*f7184619SJoshua M. Clulow INST("mova", V9|V9S, 0), 509*f7184619SJoshua M. Clulow INST("movne", V9|V9S, 0), 510*f7184619SJoshua M. Clulow INST("movg", V9|V9S, 0), 511*f7184619SJoshua M. Clulow INST("movge", V9|V9S, 0), 512*f7184619SJoshua M. Clulow 513*f7184619SJoshua M. Clulow INST("movgu", V9|V9S, 0), 514*f7184619SJoshua M. Clulow INST("movcc", V9|V9S, 0), 515*f7184619SJoshua M. Clulow INST("movpos", V9|V9S, 0), 516*f7184619SJoshua M. Clulow INST("movvc", V9|V9S, 0) 517*f7184619SJoshua M. Clulow }; 518*f7184619SJoshua M. Clulow 519*f7184619SJoshua M. Clulow static const inst_t movfcc_table_def[16] = { 520*f7184619SJoshua M. Clulow INST("movn", V9|V9S, 0), 521*f7184619SJoshua M. Clulow INST("movne", V9|V9S, 0), 522*f7184619SJoshua M. Clulow INST("movlg", V9|V9S, 0), 523*f7184619SJoshua M. Clulow INST("movul", V9|V9S, 0), 524*f7184619SJoshua M. Clulow 525*f7184619SJoshua M. Clulow INST("movl", V9|V9S, 0), 526*f7184619SJoshua M. Clulow INST("movug", V9|V9S, 0), 527*f7184619SJoshua M. Clulow INST("movg", V9|V9S, 0), 528*f7184619SJoshua M. Clulow INST("movu", V9|V9S, 0), 529*f7184619SJoshua M. Clulow 530*f7184619SJoshua M. Clulow INST("mova", V9|V9S, 0), 531*f7184619SJoshua M. Clulow INST("move", V9|V9S, 0), 532*f7184619SJoshua M. Clulow INST("movue", V9|V9S, 0), 533*f7184619SJoshua M. Clulow INST("movge", V9|V9S, 0), 534*f7184619SJoshua M. Clulow 535*f7184619SJoshua M. Clulow INST("movuge", V9|V9S, 0), 536*f7184619SJoshua M. Clulow INST("movle", V9|V9S, 0), 537*f7184619SJoshua M. Clulow INST("movule", V9|V9S, 0), 538*f7184619SJoshua M. Clulow INST("movo", V9|V9S, 0) 539*f7184619SJoshua M. Clulow }; 540*f7184619SJoshua M. Clulow 541*f7184619SJoshua M. Clulow static const table_t movfcc_table = { 542*f7184619SJoshua M. Clulow .tbl_field = 17, 543*f7184619SJoshua M. Clulow .tbl_len = 4, 544*f7184619SJoshua M. Clulow .tbl_ovp = NULL, 545*f7184619SJoshua M. Clulow .tbl_fmt = fmt_movcc, 546*f7184619SJoshua M. Clulow .tbl_inp = movfcc_table_def 547*f7184619SJoshua M. Clulow }; 548*f7184619SJoshua M. Clulow 549*f7184619SJoshua M. Clulow static const table_t movicc_table = { 550*f7184619SJoshua M. Clulow .tbl_field = 17, 551*f7184619SJoshua M. Clulow .tbl_len = 4, 552*f7184619SJoshua M. Clulow .tbl_ovp = NULL, 553*f7184619SJoshua M. Clulow .tbl_fmt = fmt_movcc, 554*f7184619SJoshua M. Clulow .tbl_inp = movicc_table_def 555*f7184619SJoshua M. Clulow }; 556*f7184619SJoshua M. Clulow 557*f7184619SJoshua M. Clulow static const inst_t movcc_table_def[2] = { 558*f7184619SJoshua M. Clulow TABLE(movfcc_table, V9|V9S), 559*f7184619SJoshua M. Clulow TABLE(movicc_table, V9|V9S) 560*f7184619SJoshua M. Clulow }; 561*f7184619SJoshua M. Clulow 562*f7184619SJoshua M. Clulow static const table_t movcc_table = { 563*f7184619SJoshua M. Clulow .tbl_field = 18, 564*f7184619SJoshua M. Clulow .tbl_len = 1, 565*f7184619SJoshua M. Clulow .tbl_ovp = NULL, 566*f7184619SJoshua M. Clulow .tbl_fmt = NULL, 567*f7184619SJoshua M. Clulow .tbl_inp = movcc_table_def 568*f7184619SJoshua M. Clulow }; 569*f7184619SJoshua M. Clulow 570*f7184619SJoshua M. Clulow static const inst_t movr_table_def[8] = { 571*f7184619SJoshua M. Clulow INVALID, 572*f7184619SJoshua M. Clulow /* aka movrz */ 573*f7184619SJoshua M. Clulow INST("movre", V9|V9S, 0), 574*f7184619SJoshua M. Clulow INST("movrlez", V9|V9S, 0), 575*f7184619SJoshua M. Clulow INST("movrlz", V9|V9S, 0), 576*f7184619SJoshua M. Clulow 577*f7184619SJoshua M. Clulow INVALID, 578*f7184619SJoshua M. Clulow /* aka movrnz */ 579*f7184619SJoshua M. Clulow INST("movrne", V9|V9S, 0), 580*f7184619SJoshua M. Clulow INST("movrgz", V9|V9S, 0), 581*f7184619SJoshua M. Clulow INST("movrgez", V9|V9S, 0) 582*f7184619SJoshua M. Clulow }; 583*f7184619SJoshua M. Clulow 584*f7184619SJoshua M. Clulow static const table_t movr_table = { 585*f7184619SJoshua M. Clulow .tbl_field = 12, 586*f7184619SJoshua M. Clulow .tbl_len = 3, 587*f7184619SJoshua M. Clulow .tbl_ovp = NULL, 588*f7184619SJoshua M. Clulow .tbl_fmt = fmt_movr, 589*f7184619SJoshua M. Clulow .tbl_inp = movr_table_def 590*f7184619SJoshua M. Clulow }; 591*f7184619SJoshua M. Clulow 592*f7184619SJoshua M. Clulow static const inst_t FPop1_table_def[512] = { 593*f7184619SJoshua M. Clulow /* 0x000 */ 594*f7184619SJoshua M. Clulow INVALID, 595*f7184619SJoshua M. Clulow INST("fmovs", VALL, 596*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FP)|FLG_NOIMM|FLG_P3(REG_FP)), 597*f7184619SJoshua M. Clulow INST("fmovd", V9|V9S, 598*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FPD)|FLG_NOIMM|FLG_P3(REG_FPD)), 599*f7184619SJoshua M. Clulow INST("fmovq", V9|V9S, 600*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FPQ)|FLG_NOIMM|FLG_P3(REG_FPQ)), 601*f7184619SJoshua M. Clulow 602*f7184619SJoshua M. Clulow INVALID, 603*f7184619SJoshua M. Clulow INST("fnegs", VALL, 604*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FP)|FLG_NOIMM|FLG_P3(REG_FP)), 605*f7184619SJoshua M. Clulow INST("fnegd", V9|V9S, 606*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FPD)|FLG_NOIMM|FLG_P3(REG_FPD)), 607*f7184619SJoshua M. Clulow INST("fnegq", V9|V9S, 608*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FPQ)|FLG_NOIMM|FLG_P3(REG_FPQ)), 609*f7184619SJoshua M. Clulow 610*f7184619SJoshua M. Clulow /* 0x008 */ 611*f7184619SJoshua M. Clulow INVALID, 612*f7184619SJoshua M. Clulow INST("fabss", VALL, 613*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FP)|FLG_NOIMM|FLG_P3(REG_FP)), 614*f7184619SJoshua M. Clulow INST("fabsd", V9|V9S, 615*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FPD)|FLG_NOIMM|FLG_P3(REG_FPD)), 616*f7184619SJoshua M. Clulow INST("fabsq", V9|V9S, 617*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FPQ)|FLG_NOIMM|FLG_P3(REG_FPQ)), 618*f7184619SJoshua M. Clulow 619*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, 620*f7184619SJoshua M. Clulow 621*f7184619SJoshua M. Clulow /* 0x010 */ 622*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 623*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 624*f7184619SJoshua M. Clulow 625*f7184619SJoshua M. Clulow /* 0x020 */ 626*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 627*f7184619SJoshua M. Clulow 628*f7184619SJoshua M. Clulow /* 0x028 */ 629*f7184619SJoshua M. Clulow INVALID, 630*f7184619SJoshua M. Clulow INST("fsqrts", VALL, 631*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FP)|FLG_NOIMM|FLG_P3(REG_FP)), 632*f7184619SJoshua M. Clulow INST("fsqrtd", VALL, 633*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FPD)|FLG_NOIMM|FLG_P3(REG_FPD)), 634*f7184619SJoshua M. Clulow INST("fsqrtq", VALL, 635*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FPQ)|FLG_NOIMM|FLG_P3(REG_FPQ)), 636*f7184619SJoshua M. Clulow 637*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, 638*f7184619SJoshua M. Clulow 639*f7184619SJoshua M. Clulow /* 0x30 */ 640*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 641*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 642*f7184619SJoshua M. Clulow 643*f7184619SJoshua M. Clulow /* 0x40 */ 644*f7184619SJoshua M. Clulow INVALID, 645*f7184619SJoshua M. Clulow INST("fadds", VALL, 646*f7184619SJoshua M. Clulow FLG_P1(REG_FP)|FLG_P2(REG_FP)|FLG_NOIMM|FLG_P3(REG_FP)), 647*f7184619SJoshua M. Clulow INST("faddd", VALL, 648*f7184619SJoshua M. Clulow FLG_P1(REG_FPD)|FLG_P2(REG_FPD)|FLG_NOIMM|FLG_P3(REG_FPD)), 649*f7184619SJoshua M. Clulow INST("faddq", VALL, 650*f7184619SJoshua M. Clulow FLG_P1(REG_FPQ)|FLG_P2(REG_FPQ)|FLG_NOIMM|FLG_P3(REG_FPQ)), 651*f7184619SJoshua M. Clulow 652*f7184619SJoshua M. Clulow INVALID, 653*f7184619SJoshua M. Clulow INST("fsubs", VALL, 654*f7184619SJoshua M. Clulow FLG_P1(REG_FP)|FLG_P2(REG_FP)|FLG_NOIMM|FLG_P3(REG_FP)), 655*f7184619SJoshua M. Clulow INST("fsubd", VALL, 656*f7184619SJoshua M. Clulow FLG_P1(REG_FPD)|FLG_P2(REG_FPD)|FLG_NOIMM|FLG_P3(REG_FPD)), 657*f7184619SJoshua M. Clulow INST("fsubq", VALL, 658*f7184619SJoshua M. Clulow FLG_P1(REG_FPQ)|FLG_P2(REG_FPQ)|FLG_NOIMM|FLG_P3(REG_FPQ)), 659*f7184619SJoshua M. Clulow 660*f7184619SJoshua M. Clulow /* 0x048 */ 661*f7184619SJoshua M. Clulow INVALID, 662*f7184619SJoshua M. Clulow INST("fmuls", VALL, 663*f7184619SJoshua M. Clulow FLG_P1(REG_FP)|FLG_P2(REG_FP)|FLG_NOIMM|FLG_P3(REG_FP)), 664*f7184619SJoshua M. Clulow INST("fmuld", VALL, 665*f7184619SJoshua M. Clulow FLG_P1(REG_FPD)|FLG_P2(REG_FPD)|FLG_NOIMM|FLG_P3(REG_FPD)), 666*f7184619SJoshua M. Clulow INST("fmulq", VALL, 667*f7184619SJoshua M. Clulow FLG_P1(REG_FPQ)|FLG_P2(REG_FPQ)|FLG_NOIMM|FLG_P3(REG_FPQ)), 668*f7184619SJoshua M. Clulow 669*f7184619SJoshua M. Clulow INVALID, 670*f7184619SJoshua M. Clulow INST("fdivs", VALL, 671*f7184619SJoshua M. Clulow FLG_P1(REG_FP)|FLG_P2(REG_FP)|FLG_NOIMM|FLG_P3(REG_FP)), 672*f7184619SJoshua M. Clulow INST("fdivd", VALL, 673*f7184619SJoshua M. Clulow FLG_P1(REG_FPD)|FLG_P2(REG_FPD)|FLG_NOIMM|FLG_P3(REG_FPD)), 674*f7184619SJoshua M. Clulow INST("fdivq", VALL, 675*f7184619SJoshua M. Clulow FLG_P1(REG_FPQ)|FLG_P2(REG_FPQ)|FLG_NOIMM|FLG_P3(REG_FPQ)), 676*f7184619SJoshua M. Clulow 677*f7184619SJoshua M. Clulow /* 0x050 */ 678*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 679*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 680*f7184619SJoshua M. Clulow 681*f7184619SJoshua M. Clulow /* 0x060 */ 682*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 683*f7184619SJoshua M. Clulow 684*f7184619SJoshua M. Clulow /* 0x068 */ 685*f7184619SJoshua M. Clulow INVALID, 686*f7184619SJoshua M. Clulow INST("fsmuld", VALL, 687*f7184619SJoshua M. Clulow FLG_P1(REG_FP)|FLG_P2(REG_FP)|FLG_NOIMM|FLG_P3(REG_FPD)), 688*f7184619SJoshua M. Clulow INVALID, 689*f7184619SJoshua M. Clulow INVALID, 690*f7184619SJoshua M. Clulow 691*f7184619SJoshua M. Clulow INVALID, 692*f7184619SJoshua M. Clulow INVALID, 693*f7184619SJoshua M. Clulow INST("fdmulq", VALL, 694*f7184619SJoshua M. Clulow FLG_P1(REG_FPD)|FLG_P2(REG_FPD)|FLG_NOIMM|FLG_P3(REG_FPQ)), 695*f7184619SJoshua M. Clulow INVALID, 696*f7184619SJoshua M. Clulow 697*f7184619SJoshua M. Clulow /* 0x070 */ 698*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 699*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 700*f7184619SJoshua M. Clulow 701*f7184619SJoshua M. Clulow /* 0x080 */ 702*f7184619SJoshua M. Clulow INVALID, 703*f7184619SJoshua M. Clulow INST("fstox", V9|V9S, 704*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FP)|FLG_NOIMM|FLG_P3(REG_FPD)), 705*f7184619SJoshua M. Clulow INST("fdtox", V9|V9S, 706*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FPD)|FLG_NOIMM|FLG_P3(REG_FPD)), 707*f7184619SJoshua M. Clulow INST("fqtox", V9|V9S, 708*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FPQ)|FLG_NOIMM|FLG_P3(REG_FPD)), 709*f7184619SJoshua M. Clulow 710*f7184619SJoshua M. Clulow INST("fxtos", V9|V9S, FLG_P1(REG_NONE)|FLG_P2(REG_FPD)|FLG_NOIMM| 711*f7184619SJoshua M. Clulow FLG_P3(REG_FP)), 712*f7184619SJoshua M. Clulow INVALID, 713*f7184619SJoshua M. Clulow INVALID, 714*f7184619SJoshua M. Clulow INVALID, 715*f7184619SJoshua M. Clulow 716*f7184619SJoshua M. Clulow /* 0x088 */ 717*f7184619SJoshua M. Clulow INST("fxtod", V9|V9S, 718*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FPD)|FLG_NOIMM|FLG_P3(REG_FPD)), 719*f7184619SJoshua M. Clulow INVALID, 720*f7184619SJoshua M. Clulow INVALID, 721*f7184619SJoshua M. Clulow INVALID, 722*f7184619SJoshua M. Clulow 723*f7184619SJoshua M. Clulow INST("fxtoq", V9|V9S, 724*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FPD)|FLG_NOIMM|FLG_P3(REG_FPQ)), 725*f7184619SJoshua M. Clulow INVALID, 726*f7184619SJoshua M. Clulow INVALID, 727*f7184619SJoshua M. Clulow INVALID, 728*f7184619SJoshua M. Clulow 729*f7184619SJoshua M. Clulow /* 0x090 */ 730*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 731*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 732*f7184619SJoshua M. Clulow 733*f7184619SJoshua M. Clulow /* 0x0a0 */ 734*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 735*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 736*f7184619SJoshua M. Clulow 737*f7184619SJoshua M. Clulow /* 0x0b0 */ 738*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 739*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 740*f7184619SJoshua M. Clulow 741*f7184619SJoshua M. Clulow /* 0x0c0 */ 742*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, 743*f7184619SJoshua M. Clulow 744*f7184619SJoshua M. Clulow INST("fitos", VALL, 745*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FP)|FLG_NOIMM|FLG_P3(REG_FP)), 746*f7184619SJoshua M. Clulow INVALID, 747*f7184619SJoshua M. Clulow INST("fdtos", VALL, 748*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FPD)|FLG_NOIMM|FLG_P3(REG_FP)), 749*f7184619SJoshua M. Clulow INST("fqtos", VALL, 750*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FPQ)|FLG_NOIMM|FLG_P3(REG_FP)), 751*f7184619SJoshua M. Clulow 752*f7184619SJoshua M. Clulow /* 0x0c8 */ 753*f7184619SJoshua M. Clulow INST("fitod", VALL, 754*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FP)|FLG_NOIMM|FLG_P3(REG_FPD)), 755*f7184619SJoshua M. Clulow INST("fstod", VALL, 756*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FP)|FLG_NOIMM|FLG_P3(REG_FPD)), 757*f7184619SJoshua M. Clulow INVALID, 758*f7184619SJoshua M. Clulow INST("fqtod", VALL, 759*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FPQ)|FLG_NOIMM|FLG_P3(REG_FPD)), 760*f7184619SJoshua M. Clulow 761*f7184619SJoshua M. Clulow INST("fitoq", VALL, 762*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FP)|FLG_NOIMM|FLG_P3(REG_FPQ)), 763*f7184619SJoshua M. Clulow INST("fstoq", VALL, 764*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FP)|FLG_NOIMM|FLG_P3(REG_FPQ)), 765*f7184619SJoshua M. Clulow INST("fdtoq", VALL, 766*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FPD)|FLG_NOIMM|FLG_P3(REG_FPQ)), 767*f7184619SJoshua M. Clulow INVALID, 768*f7184619SJoshua M. Clulow 769*f7184619SJoshua M. Clulow /* 0x0d0 */ 770*f7184619SJoshua M. Clulow INVALID, 771*f7184619SJoshua M. Clulow INST("fstoi", VALL, 772*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FP)|FLG_NOIMM|FLG_P3(REG_FP)), 773*f7184619SJoshua M. Clulow INST("fdtoi", VALL, 774*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FPD)|FLG_NOIMM|FLG_P3(REG_FP)), 775*f7184619SJoshua M. Clulow INST("fqtoi", VALL, 776*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FPQ)|FLG_NOIMM|FLG_P3(REG_FP)), 777*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, 778*f7184619SJoshua M. Clulow 779*f7184619SJoshua M. Clulow /* 0x0d8 */ 780*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 781*f7184619SJoshua M. Clulow 782*f7184619SJoshua M. Clulow /* 0x0e0 */ 783*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 784*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 785*f7184619SJoshua M. Clulow 786*f7184619SJoshua M. Clulow /* 0x0f0 */ 787*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 788*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 789*f7184619SJoshua M. Clulow 790*f7184619SJoshua M. Clulow /* 0x100 */ 791*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 792*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 793*f7184619SJoshua M. Clulow 794*f7184619SJoshua M. Clulow /* 0x110 */ 795*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 796*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 797*f7184619SJoshua M. Clulow 798*f7184619SJoshua M. Clulow /* 0x120 */ 799*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 800*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 801*f7184619SJoshua M. Clulow 802*f7184619SJoshua M. Clulow /* 0x130 */ 803*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 804*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 805*f7184619SJoshua M. Clulow 806*f7184619SJoshua M. Clulow /* 0x140 */ 807*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 808*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 809*f7184619SJoshua M. Clulow 810*f7184619SJoshua M. Clulow /* 0x150 */ 811*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 812*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 813*f7184619SJoshua M. Clulow 814*f7184619SJoshua M. Clulow /* 0x160 */ 815*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 816*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 817*f7184619SJoshua M. Clulow 818*f7184619SJoshua M. Clulow /* 0x170 */ 819*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 820*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 821*f7184619SJoshua M. Clulow 822*f7184619SJoshua M. Clulow /* 0x180 */ 823*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 824*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 825*f7184619SJoshua M. Clulow 826*f7184619SJoshua M. Clulow /* 0x190 */ 827*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 828*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 829*f7184619SJoshua M. Clulow 830*f7184619SJoshua M. Clulow /* 0x1a0 */ 831*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 832*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 833*f7184619SJoshua M. Clulow 834*f7184619SJoshua M. Clulow /* 0x1b0 */ 835*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 836*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 837*f7184619SJoshua M. Clulow 838*f7184619SJoshua M. Clulow /* 0x1c0 */ 839*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 840*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 841*f7184619SJoshua M. Clulow 842*f7184619SJoshua M. Clulow /* 0x1d0 */ 843*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 844*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 845*f7184619SJoshua M. Clulow 846*f7184619SJoshua M. Clulow /* 0x1e0 */ 847*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 848*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 849*f7184619SJoshua M. Clulow 850*f7184619SJoshua M. Clulow /* 0x1f0 */ 851*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 852*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID 853*f7184619SJoshua M. Clulow }; 854*f7184619SJoshua M. Clulow 855*f7184619SJoshua M. Clulow static const table_t FPop1_table = { 856*f7184619SJoshua M. Clulow .tbl_field = 13, 857*f7184619SJoshua M. Clulow .tbl_len = 9, 858*f7184619SJoshua M. Clulow .tbl_ovp = NULL, 859*f7184619SJoshua M. Clulow .tbl_fmt = fmt_fpop1, 860*f7184619SJoshua M. Clulow .tbl_inp = FPop1_table_def 861*f7184619SJoshua M. Clulow }; 862*f7184619SJoshua M. Clulow 863*f7184619SJoshua M. Clulow static const inst_t FPop2_table_def[512] = { 864*f7184619SJoshua M. Clulow /* 0x000 */ 865*f7184619SJoshua M. Clulow INVALID, 866*f7184619SJoshua M. Clulow INST("fmovs", V9|V9S, 867*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FP)|FLG_NOIMM|FLG_P3(REG_FP)), 868*f7184619SJoshua M. Clulow INST("fmovd", V9|V9S, 869*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FPD)|FLG_NOIMM|FLG_P3(REG_FPD)), 870*f7184619SJoshua M. Clulow INST("fmovq", V9|V9S, 871*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FPQ)|FLG_NOIMM|FLG_P3(REG_FPQ)), 872*f7184619SJoshua M. Clulow 873*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, 874*f7184619SJoshua M. Clulow 875*f7184619SJoshua M. Clulow /* 0x008 */ 876*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 877*f7184619SJoshua M. Clulow 878*f7184619SJoshua M. Clulow /* 0x010 */ 879*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 880*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 881*f7184619SJoshua M. Clulow 882*f7184619SJoshua M. Clulow /* 0x020 */ 883*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, 884*f7184619SJoshua M. Clulow 885*f7184619SJoshua M. Clulow INST("fmovrsz", V9|V9S, 886*f7184619SJoshua M. Clulow FLG_P1(REG_INT)|FLG_NOIMM|FLG_P2(REG_FP)|FLG_P3(REG_FP)), 887*f7184619SJoshua M. Clulow INST("fmovrdz", V9|V9S, 888*f7184619SJoshua M. Clulow FLG_P1(REG_INT)|FLG_NOIMM|FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 889*f7184619SJoshua M. Clulow INST("fmovrqz", V9|V9S, 890*f7184619SJoshua M. Clulow FLG_P1(REG_INT)|FLG_NOIMM|FLG_P2(REG_FPQ)|FLG_P3(REG_FPQ)), 891*f7184619SJoshua M. Clulow INVALID, 892*f7184619SJoshua M. Clulow 893*f7184619SJoshua M. Clulow /* 0x028 */ 894*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 895*f7184619SJoshua M. Clulow 896*f7184619SJoshua M. Clulow /* 0x030 */ 897*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 898*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 899*f7184619SJoshua M. Clulow 900*f7184619SJoshua M. Clulow /* 0x040 */ 901*f7184619SJoshua M. Clulow INVALID, 902*f7184619SJoshua M. Clulow INST("fmovs", V9|V9S, 903*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FP)|FLG_NOIMM|FLG_P3(REG_FP)), 904*f7184619SJoshua M. Clulow INST("fmovd", V9|V9S, 905*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FPD)|FLG_NOIMM|FLG_P3(REG_FPD)), 906*f7184619SJoshua M. Clulow INST("fmovq", V9|V9S, 907*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FPQ)|FLG_NOIMM|FLG_P3(REG_FPQ)), 908*f7184619SJoshua M. Clulow 909*f7184619SJoshua M. Clulow INST("fmovrslez", V9|V9S, 910*f7184619SJoshua M. Clulow FLG_P1(REG_INT)|FLG_NOIMM|FLG_P2(REG_FP)|FLG_P3(REG_FP)), 911*f7184619SJoshua M. Clulow INST("fmovrdlez", V9|V9S, 912*f7184619SJoshua M. Clulow FLG_P1(REG_INT)|FLG_NOIMM|FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 913*f7184619SJoshua M. Clulow INST("fmovrqlez", V9|V9S, 914*f7184619SJoshua M. Clulow FLG_P1(REG_INT)|FLG_NOIMM|FLG_P2(REG_FPQ)|FLG_P3(REG_FPQ)), 915*f7184619SJoshua M. Clulow INVALID, 916*f7184619SJoshua M. Clulow 917*f7184619SJoshua M. Clulow /* 0x048 */ 918*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 919*f7184619SJoshua M. Clulow 920*f7184619SJoshua M. Clulow /* 0x050 */ 921*f7184619SJoshua M. Clulow INVALID, 922*f7184619SJoshua M. Clulow INST("fcmps", VALL, FLG_P1(REG_FP)|FLG_P2(REG_FP)|FLG_P3(REG_NONE) 923*f7184619SJoshua M. Clulow |FLG_NOIMM), 924*f7184619SJoshua M. Clulow INST("fcmpd", VALL, FLG_P1(REG_FPD)|FLG_P2(REG_FPD)|FLG_P3(REG_NONE) 925*f7184619SJoshua M. Clulow |FLG_NOIMM), 926*f7184619SJoshua M. Clulow INST("fcmpq", VALL, FLG_P1(REG_FPQ)|FLG_P2(REG_FPQ)|FLG_P3(REG_NONE) 927*f7184619SJoshua M. Clulow |FLG_NOIMM), 928*f7184619SJoshua M. Clulow 929*f7184619SJoshua M. Clulow INVALID, 930*f7184619SJoshua M. Clulow INST("fcmpes", VALL, FLG_P1(REG_FP)|FLG_P2(REG_FP)|FLG_P3(REG_NONE) 931*f7184619SJoshua M. Clulow |FLG_NOIMM), 932*f7184619SJoshua M. Clulow INST("fcmped", VALL, FLG_P1(REG_FPD)|FLG_P2(REG_FPD)|FLG_P3(REG_NONE) 933*f7184619SJoshua M. Clulow |FLG_NOIMM), 934*f7184619SJoshua M. Clulow INST("fcmpeq", VALL, FLG_P1(REG_FPQ)|FLG_P2(REG_FPQ)|FLG_P3(REG_NONE) 935*f7184619SJoshua M. Clulow |FLG_NOIMM), 936*f7184619SJoshua M. Clulow 937*f7184619SJoshua M. Clulow /* 0x058 */ 938*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 939*f7184619SJoshua M. Clulow 940*f7184619SJoshua M. Clulow /* 0x060 */ 941*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, 942*f7184619SJoshua M. Clulow 943*f7184619SJoshua M. Clulow INVALID, 944*f7184619SJoshua M. Clulow INST("fmovrslz", V9|V9S, 945*f7184619SJoshua M. Clulow FLG_P1(REG_INT)|FLG_NOIMM|FLG_P2(REG_FP)|FLG_P3(REG_FP)), 946*f7184619SJoshua M. Clulow INST("fmovrdlz", V9|V9S, 947*f7184619SJoshua M. Clulow FLG_P1(REG_INT)|FLG_NOIMM|FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 948*f7184619SJoshua M. Clulow INST("fmovrqlz", V9|V9S, 949*f7184619SJoshua M. Clulow FLG_P1(REG_INT)|FLG_NOIMM|FLG_P2(REG_FPQ)|FLG_P3(REG_FPQ)), 950*f7184619SJoshua M. Clulow 951*f7184619SJoshua M. Clulow /* 0x068 */ 952*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 953*f7184619SJoshua M. Clulow 954*f7184619SJoshua M. Clulow /* 0x070 */ 955*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 956*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 957*f7184619SJoshua M. Clulow 958*f7184619SJoshua M. Clulow /* 0x080 */ 959*f7184619SJoshua M. Clulow INVALID, 960*f7184619SJoshua M. Clulow INST("fmovs", V9|V9S, 961*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FP)|FLG_NOIMM|FLG_P3(REG_FP)), 962*f7184619SJoshua M. Clulow INST("fmovd", V9|V9S, 963*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FPD)|FLG_NOIMM|FLG_P3(REG_FPD)), 964*f7184619SJoshua M. Clulow INST("fmovq", V9|V9S, 965*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_FPQ)|FLG_NOIMM|FLG_P3(REG_FPQ)), 966*f7184619SJoshua M. Clulow 967*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, 968*f7184619SJoshua M. Clulow 969*f7184619SJoshua M. Clulow /* 0x088 */ 970*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 971*f7184619SJoshua M. Clulow 972*f7184619SJoshua M. Clulow /* 0x090 */ 973*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 974*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 975*f7184619SJoshua M. Clulow 976*f7184619SJoshua M. Clulow /* 0x0a0 */ 977*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, 978*f7184619SJoshua M. Clulow 979*f7184619SJoshua M. Clulow INVALID, 980*f7184619SJoshua M. Clulow INST("fmovrsnz", V9|V9S, 981*f7184619SJoshua M. Clulow FLG_P1(REG_INT)|FLG_NOIMM|FLG_P2(REG_FP)|FLG_P3(REG_FP)), 982*f7184619SJoshua M. Clulow INST("fmovrdnz", V9|V9S, 983*f7184619SJoshua M. Clulow FLG_P1(REG_INT)|FLG_NOIMM|FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 984*f7184619SJoshua M. Clulow INST("fmovrqnz", V9|V9S, 985*f7184619SJoshua M. Clulow FLG_P1(REG_INT)|FLG_NOIMM|FLG_P2(REG_FPQ)|FLG_P3(REG_FPQ)), 986*f7184619SJoshua M. Clulow 987*f7184619SJoshua M. Clulow /* 0x0a8 */ 988*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 989*f7184619SJoshua M. Clulow 990*f7184619SJoshua M. Clulow /* 0x0b0 */ 991*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 992*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 993*f7184619SJoshua M. Clulow 994*f7184619SJoshua M. Clulow /* 0x0c0 */ 995*f7184619SJoshua M. Clulow INVALID, 996*f7184619SJoshua M. Clulow INST("fmovs", V9|V9S, FLG_P1(REG_NONE)|FLG_P2(REG_FP)| 997*f7184619SJoshua M. Clulow FLG_NOIMM|FLG_P3(REG_FP)), 998*f7184619SJoshua M. Clulow INST("fmovd", V9|V9S, FLG_P1(REG_NONE)|FLG_P2(REG_FPD)| 999*f7184619SJoshua M. Clulow FLG_NOIMM|FLG_P3(REG_FPD)), 1000*f7184619SJoshua M. Clulow INST("fmovq", V9|V9S, FLG_P1(REG_NONE)|FLG_P2(REG_FPQ)| 1001*f7184619SJoshua M. Clulow FLG_NOIMM|FLG_P3(REG_FPQ)), 1002*f7184619SJoshua M. Clulow 1003*f7184619SJoshua M. Clulow INVALID, 1004*f7184619SJoshua M. Clulow INST("fmovrsgz", V9|V9S, FLG_P1(REG_INT)|FLG_NOIMM| 1005*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FP)), 1006*f7184619SJoshua M. Clulow INST("fmovrdgz", V9|V9S, FLG_P1(REG_INT)|FLG_NOIMM| 1007*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1008*f7184619SJoshua M. Clulow INST("fmovrqgz", V9|V9S, FLG_P1(REG_INT)|FLG_NOIMM| 1009*f7184619SJoshua M. Clulow FLG_P2(REG_FPQ)|FLG_P3(REG_FPQ)), 1010*f7184619SJoshua M. Clulow 1011*f7184619SJoshua M. Clulow /* 0x0c8 */ 1012*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1013*f7184619SJoshua M. Clulow 1014*f7184619SJoshua M. Clulow /* 0x0d0 */ 1015*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1016*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1017*f7184619SJoshua M. Clulow 1018*f7184619SJoshua M. Clulow /* 0x0e0 */ 1019*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, 1020*f7184619SJoshua M. Clulow 1021*f7184619SJoshua M. Clulow INVALID, 1022*f7184619SJoshua M. Clulow INST("fmovrsgez", V9|V9S, FLG_P1(REG_INT)|FLG_NOIMM| 1023*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FP)), 1024*f7184619SJoshua M. Clulow INST("fmovrdgez", V9|V9S, FLG_P1(REG_INT)|FLG_NOIMM| 1025*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1026*f7184619SJoshua M. Clulow INST("fmovrqgez", V9|V9S, FLG_P1(REG_INT)|FLG_NOIMM| 1027*f7184619SJoshua M. Clulow FLG_P2(REG_FPQ)|FLG_P3(REG_FPQ)), 1028*f7184619SJoshua M. Clulow 1029*f7184619SJoshua M. Clulow /* 0x0e8 */ 1030*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1031*f7184619SJoshua M. Clulow 1032*f7184619SJoshua M. Clulow /* 0x0f0 */ 1033*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1034*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1035*f7184619SJoshua M. Clulow 1036*f7184619SJoshua M. Clulow /* 0x100 */ 1037*f7184619SJoshua M. Clulow INVALID, 1038*f7184619SJoshua M. Clulow INST("fmovs", V9|V9S, FLG_P1(REG_NONE)|FLG_P2(REG_FP)| 1039*f7184619SJoshua M. Clulow FLG_NOIMM|FLG_P3(REG_FP)), 1040*f7184619SJoshua M. Clulow INST("fmovd", V9|V9S, FLG_P1(REG_NONE)|FLG_P2(REG_FPD)| 1041*f7184619SJoshua M. Clulow FLG_NOIMM|FLG_P3(REG_FPD)), 1042*f7184619SJoshua M. Clulow INST("fmovq", V9|V9S, FLG_P1(REG_NONE)|FLG_P2(REG_FPQ)| 1043*f7184619SJoshua M. Clulow FLG_NOIMM|FLG_P3(REG_FPQ)), 1044*f7184619SJoshua M. Clulow 1045*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, 1046*f7184619SJoshua M. Clulow 1047*f7184619SJoshua M. Clulow /* 0x108 */ 1048*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1049*f7184619SJoshua M. Clulow 1050*f7184619SJoshua M. Clulow /* 0x110 */ 1051*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1052*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1053*f7184619SJoshua M. Clulow 1054*f7184619SJoshua M. Clulow /* 0x120 */ 1055*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1056*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1057*f7184619SJoshua M. Clulow 1058*f7184619SJoshua M. Clulow /* 0x130 */ 1059*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1060*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1061*f7184619SJoshua M. Clulow 1062*f7184619SJoshua M. Clulow /* 0x140 */ 1063*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1064*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1065*f7184619SJoshua M. Clulow 1066*f7184619SJoshua M. Clulow /* 0x150 */ 1067*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1068*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1069*f7184619SJoshua M. Clulow 1070*f7184619SJoshua M. Clulow /* 0x160 */ 1071*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1072*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1073*f7184619SJoshua M. Clulow 1074*f7184619SJoshua M. Clulow /* 0x170 */ 1075*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1076*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1077*f7184619SJoshua M. Clulow 1078*f7184619SJoshua M. Clulow /* 0x180 */ 1079*f7184619SJoshua M. Clulow INVALID, 1080*f7184619SJoshua M. Clulow INST("fmovs", V9|V9S, FLG_P1(REG_NONE)|FLG_P2(REG_FP)| 1081*f7184619SJoshua M. Clulow FLG_NOIMM|FLG_P3(REG_FP)), 1082*f7184619SJoshua M. Clulow INST("fmovd", V9|V9S, FLG_P1(REG_NONE)|FLG_P2(REG_FPD)| 1083*f7184619SJoshua M. Clulow FLG_NOIMM|FLG_P3(REG_FPD)), 1084*f7184619SJoshua M. Clulow INST("fmovq", V9|V9S, FLG_P1(REG_NONE)|FLG_P2(REG_FPQ)| 1085*f7184619SJoshua M. Clulow FLG_NOIMM|FLG_P3(REG_FPQ)), 1086*f7184619SJoshua M. Clulow 1087*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, 1088*f7184619SJoshua M. Clulow 1089*f7184619SJoshua M. Clulow /* 0x188 */ 1090*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1091*f7184619SJoshua M. Clulow 1092*f7184619SJoshua M. Clulow /* 0x190 */ 1093*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1094*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1095*f7184619SJoshua M. Clulow 1096*f7184619SJoshua M. Clulow /* 0x1a0 */ 1097*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1098*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1099*f7184619SJoshua M. Clulow 1100*f7184619SJoshua M. Clulow /* 0x1b0 */ 1101*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1102*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1103*f7184619SJoshua M. Clulow 1104*f7184619SJoshua M. Clulow /* 0x1c0 */ 1105*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1106*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1107*f7184619SJoshua M. Clulow 1108*f7184619SJoshua M. Clulow /* 0x1d0 */ 1109*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1110*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1111*f7184619SJoshua M. Clulow 1112*f7184619SJoshua M. Clulow /* 0x1e0 */ 1113*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1114*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1115*f7184619SJoshua M. Clulow 1116*f7184619SJoshua M. Clulow /* 0x1f0 */ 1117*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1118*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID 1119*f7184619SJoshua M. Clulow }; 1120*f7184619SJoshua M. Clulow 1121*f7184619SJoshua M. Clulow static const table_t FPop2_table = { 1122*f7184619SJoshua M. Clulow .tbl_field = 13, 1123*f7184619SJoshua M. Clulow .tbl_len = 9, 1124*f7184619SJoshua M. Clulow .tbl_ovp = NULL, 1125*f7184619SJoshua M. Clulow .tbl_fmt = fmt_fpop2, 1126*f7184619SJoshua M. Clulow .tbl_inp = FPop2_table_def 1127*f7184619SJoshua M. Clulow }; 1128*f7184619SJoshua M. Clulow 1129*f7184619SJoshua M. Clulow static const inst_t vis_table_def[512] = { 1130*f7184619SJoshua M. Clulow /* 0x000 */ 1131*f7184619SJoshua M. Clulow INST("edge8cc", V9S, FLG_NOIMM), 1132*f7184619SJoshua M. Clulow INST("edge8n", V9S, FLG_NOIMM), 1133*f7184619SJoshua M. Clulow INST("edge8lcc", V9S, FLG_NOIMM), 1134*f7184619SJoshua M. Clulow INST("edge8ln", V9S, FLG_NOIMM), 1135*f7184619SJoshua M. Clulow 1136*f7184619SJoshua M. Clulow INST("edge16cc", V9S, FLG_NOIMM), 1137*f7184619SJoshua M. Clulow INST("edge16n", V9S, FLG_NOIMM), 1138*f7184619SJoshua M. Clulow INST("edge16lcc", V9S, FLG_NOIMM), 1139*f7184619SJoshua M. Clulow INST("edge16ln", V9S, FLG_NOIMM), 1140*f7184619SJoshua M. Clulow 1141*f7184619SJoshua M. Clulow /* 0x008 */ 1142*f7184619SJoshua M. Clulow INST("edge32cc", V9S, FLG_NOIMM), 1143*f7184619SJoshua M. Clulow INST("edge32n", V9S, FLG_NOIMM), 1144*f7184619SJoshua M. Clulow INST("edge32lcc", V9S, FLG_NOIMM), 1145*f7184619SJoshua M. Clulow INST("edge32ln", V9S, FLG_NOIMM), 1146*f7184619SJoshua M. Clulow 1147*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, 1148*f7184619SJoshua M. Clulow 1149*f7184619SJoshua M. Clulow /* 0x010 */ 1150*f7184619SJoshua M. Clulow INST("array8", V9S, FLG_NOIMM), 1151*f7184619SJoshua M. Clulow INST("addxc", V9, 0), 1152*f7184619SJoshua M. Clulow INST("array16", V9S, FLG_NOIMM), 1153*f7184619SJoshua M. Clulow INST("addxccc", V9, 0), 1154*f7184619SJoshua M. Clulow 1155*f7184619SJoshua M. Clulow INST("array32", V9S, FLG_NOIMM), 1156*f7184619SJoshua M. Clulow INST("random", V9, FLG_P1(REG_NONE)|FLG_P2(REG_NONE)| 1157*f7184619SJoshua M. Clulow FLG_RD(REG_FPD)|FLG_NOIMM), 1158*f7184619SJoshua M. Clulow INST("umulxhi", V9, FLG_P1(REG_INT)|FLG_NOIMM| 1159*f7184619SJoshua M. Clulow FLG_P2(REG_INT)|FLG_P3(REG_INT)), 1160*f7184619SJoshua M. Clulow INST("lzd", V9, FLG_P1(REG_NONE)|FLG_NOIMM| 1161*f7184619SJoshua M. Clulow FLG_P2(REG_INT)|FLG_RD(REG_INT)), 1162*f7184619SJoshua M. Clulow 1163*f7184619SJoshua M. Clulow /* 0x018 */ 1164*f7184619SJoshua M. Clulow INST("alignaddr", V9S, FLG_NOIMM), 1165*f7184619SJoshua M. Clulow INST("bmask", V9S, FLG_P1(REG_INT)|FLG_P2(REG_INT)|FLG_RD(REG_INT)), 1166*f7184619SJoshua M. Clulow INST("alignaddrl", V9S, FLG_NOIMM), 1167*f7184619SJoshua M. Clulow INST("cmask8", V9, FLG_P1(REG_NONE)|FLG_NOIMM| 1168*f7184619SJoshua M. Clulow FLG_P2(REG_INT)|FLG_P3(REG_NONE)), 1169*f7184619SJoshua M. Clulow INVALID, 1170*f7184619SJoshua M. Clulow INST("cmask16", V9, FLG_P1(REG_NONE)|FLG_NOIMM| 1171*f7184619SJoshua M. Clulow FLG_P2(REG_INT)|FLG_P3(REG_NONE)), 1172*f7184619SJoshua M. Clulow INVALID, 1173*f7184619SJoshua M. Clulow INST("cmask32", V9, FLG_P1(REG_NONE)|FLG_NOIMM| 1174*f7184619SJoshua M. Clulow FLG_P2(REG_INT)|FLG_P3(REG_NONE)), 1175*f7184619SJoshua M. Clulow 1176*f7184619SJoshua M. Clulow /* 0x020 */ 1177*f7184619SJoshua M. Clulow INST("fcmple16", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1178*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_INT)), 1179*f7184619SJoshua M. Clulow INST("fsll16", V9, FLG_P1(REG_FPD)|FLG_NOIMM| 1180*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1181*f7184619SJoshua M. Clulow INST("fcmpne16", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1182*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_INT)), 1183*f7184619SJoshua M. Clulow INST("fsrl16", V9, FLG_P1(REG_FPD)|FLG_NOIMM| 1184*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1185*f7184619SJoshua M. Clulow 1186*f7184619SJoshua M. Clulow INST("fcmple32", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1187*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_INT)), 1188*f7184619SJoshua M. Clulow INST("fsll32", V9, FLG_P1(REG_FPD)|FLG_NOIMM| 1189*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1190*f7184619SJoshua M. Clulow INST("fcmpne32", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1191*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_INT)), 1192*f7184619SJoshua M. Clulow INST("fsrl32", V9, FLG_P1(REG_FPD)|FLG_NOIMM| 1193*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1194*f7184619SJoshua M. Clulow 1195*f7184619SJoshua M. Clulow /* 0x028 */ 1196*f7184619SJoshua M. Clulow INST("fcmpgt16", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1197*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_INT)), 1198*f7184619SJoshua M. Clulow INST("fslas16", V9, FLG_P1(REG_FPD)|FLG_NOIMM| 1199*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1200*f7184619SJoshua M. Clulow INST("fcmpeq16", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1201*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_INT)), 1202*f7184619SJoshua M. Clulow INST("fsra16", V9, FLG_P1(REG_FPD)|FLG_NOIMM| 1203*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1204*f7184619SJoshua M. Clulow 1205*f7184619SJoshua M. Clulow INST("fcmpgt32", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1206*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_INT)), 1207*f7184619SJoshua M. Clulow INST("fslas32", V9, FLG_P1(REG_FPD)|FLG_NOIMM| 1208*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1209*f7184619SJoshua M. Clulow INST("fcmpeq32", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1210*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_INT)), 1211*f7184619SJoshua M. Clulow INST("fsra32", V9, FLG_P1(REG_FPD)|FLG_NOIMM| 1212*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1213*f7184619SJoshua M. Clulow 1214*f7184619SJoshua M. Clulow /* 0x030 */ 1215*f7184619SJoshua M. Clulow INVALID, 1216*f7184619SJoshua M. Clulow INST("fmul8x16", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1217*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1218*f7184619SJoshua M. Clulow INVALID, 1219*f7184619SJoshua M. Clulow INST("fmul8x16au", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1220*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FPD)), 1221*f7184619SJoshua M. Clulow 1222*f7184619SJoshua M. Clulow INVALID, 1223*f7184619SJoshua M. Clulow INST("fmul8x16al", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1224*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FPD)), 1225*f7184619SJoshua M. Clulow INST("fmul8sux16", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1226*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1227*f7184619SJoshua M. Clulow INST("fmul8ulx16", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1228*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1229*f7184619SJoshua M. Clulow 1230*f7184619SJoshua M. Clulow /* 0x038 */ 1231*f7184619SJoshua M. Clulow INST("fmuld8sux16", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1232*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FPD)), 1233*f7184619SJoshua M. Clulow INST("fmuld8ulx16", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1234*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FPD)), 1235*f7184619SJoshua M. Clulow INST("fpack32", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1236*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1237*f7184619SJoshua M. Clulow INST("fpack16", V9S, FLG_P1(REG_NONE)|FLG_NOIMM| 1238*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FP)), 1239*f7184619SJoshua M. Clulow 1240*f7184619SJoshua M. Clulow INVALID, 1241*f7184619SJoshua M. Clulow INST("fpackfix", V9S, FLG_P1(REG_NONE)|FLG_NOIMM| 1242*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FP)), 1243*f7184619SJoshua M. Clulow INST("pdist", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1244*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1245*f7184619SJoshua M. Clulow INST("pdistn", V9, FLG_P1(REG_FPD)|FLG_NOIMM| 1246*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_INT)), 1247*f7184619SJoshua M. Clulow 1248*f7184619SJoshua M. Clulow /* 0x040 */ 1249*f7184619SJoshua M. Clulow INST("fmean16", V9, FLG_P1(REG_FPD)|FLG_NOIMM| 1250*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1251*f7184619SJoshua M. Clulow INVALID, 1252*f7184619SJoshua M. Clulow INST("fpadd64", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1253*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1254*f7184619SJoshua M. Clulow INVALID, 1255*f7184619SJoshua M. Clulow INST("fchksm16", V9, FLG_P1(REG_FPD)|FLG_NOIMM| 1256*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1257*f7184619SJoshua M. Clulow INVALID, 1258*f7184619SJoshua M. Clulow INST("fpsub64", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1259*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1260*f7184619SJoshua M. Clulow INVALID, 1261*f7184619SJoshua M. Clulow 1262*f7184619SJoshua M. Clulow /* 0x048 */ 1263*f7184619SJoshua M. Clulow INST("faligndata", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1264*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1265*f7184619SJoshua M. Clulow INVALID, 1266*f7184619SJoshua M. Clulow INVALID, 1267*f7184619SJoshua M. Clulow INST("fpmerge", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1268*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FPD)), 1269*f7184619SJoshua M. Clulow 1270*f7184619SJoshua M. Clulow INST("bshuffle", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1271*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1272*f7184619SJoshua M. Clulow INST("fexpand", V9S, FLG_P1(REG_NONE)|FLG_NOIMM| 1273*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FPD)), 1274*f7184619SJoshua M. Clulow INVALID, 1275*f7184619SJoshua M. Clulow INVALID, 1276*f7184619SJoshua M. Clulow 1277*f7184619SJoshua M. Clulow /* 0x050 */ 1278*f7184619SJoshua M. Clulow INST("fpadd16", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1279*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1280*f7184619SJoshua M. Clulow INST("fpadd16s", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1281*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FP)), 1282*f7184619SJoshua M. Clulow INST("fpadd32", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1283*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1284*f7184619SJoshua M. Clulow INST("fpadd32s", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1285*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FP)), 1286*f7184619SJoshua M. Clulow 1287*f7184619SJoshua M. Clulow INST("fpsub16", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1288*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1289*f7184619SJoshua M. Clulow INST("fpsub16s", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1290*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FP)), 1291*f7184619SJoshua M. Clulow INST("fpsub32", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1292*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1293*f7184619SJoshua M. Clulow INST("fpsub32s", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1294*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FP)), 1295*f7184619SJoshua M. Clulow 1296*f7184619SJoshua M. Clulow /* 0x058 */ 1297*f7184619SJoshua M. Clulow INST("fpadds16", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1298*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1299*f7184619SJoshua M. Clulow INST("fpadds16s", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1300*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FP)), 1301*f7184619SJoshua M. Clulow INST("fpadds32", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1302*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1303*f7184619SJoshua M. Clulow INST("fpadds32s", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1304*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FP)), 1305*f7184619SJoshua M. Clulow INST("fpsubs16", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1306*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1307*f7184619SJoshua M. Clulow INST("fpsubs16s", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1308*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FP)), 1309*f7184619SJoshua M. Clulow INST("fpsubs32", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1310*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1311*f7184619SJoshua M. Clulow INST("fpsubs32s", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1312*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FP)), 1313*f7184619SJoshua M. Clulow 1314*f7184619SJoshua M. Clulow /* 0x060 */ 1315*f7184619SJoshua M. Clulow INST("fzero", V9S, FLG_P1(REG_NONE)|FLG_P2(REG_NONE)| 1316*f7184619SJoshua M. Clulow FLG_P3(REG_FPD)), 1317*f7184619SJoshua M. Clulow INST("fzeros", V9S, FLG_P1(REG_NONE)|FLG_P2(REG_NONE)| 1318*f7184619SJoshua M. Clulow FLG_P3(REG_FP)), 1319*f7184619SJoshua M. Clulow INST("fnor", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1320*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1321*f7184619SJoshua M. Clulow INST("fnors", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1322*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FP)), 1323*f7184619SJoshua M. Clulow 1324*f7184619SJoshua M. Clulow INST("fandnot2", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1325*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1326*f7184619SJoshua M. Clulow INST("fandnot2s", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1327*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FP)), 1328*f7184619SJoshua M. Clulow INST("fnot2", V9S, FLG_P1(REG_NONE)|FLG_P2(REG_FPD)| 1329*f7184619SJoshua M. Clulow FLG_P3(REG_FPD)), 1330*f7184619SJoshua M. Clulow INST("fnot2s", V9S, FLG_P1(REG_NONE)|FLG_P2(REG_FP)| 1331*f7184619SJoshua M. Clulow FLG_P3(REG_FP)), 1332*f7184619SJoshua M. Clulow 1333*f7184619SJoshua M. Clulow /* 0x068 */ 1334*f7184619SJoshua M. Clulow INST("fandnot1", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1335*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1336*f7184619SJoshua M. Clulow INST("fandnot1s", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1337*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FP)), 1338*f7184619SJoshua M. Clulow INST("fnot1", V9S, FLG_P1(REG_FPD)|FLG_P2(REG_NONE)| 1339*f7184619SJoshua M. Clulow FLG_P3(REG_FPD)), 1340*f7184619SJoshua M. Clulow INST("fnot1s", V9S, FLG_P1(REG_FP)|FLG_P2(REG_NONE)| 1341*f7184619SJoshua M. Clulow FLG_P3(REG_FP)), 1342*f7184619SJoshua M. Clulow 1343*f7184619SJoshua M. Clulow INST("fxor", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1344*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1345*f7184619SJoshua M. Clulow INST("fxors", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1346*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FP)), 1347*f7184619SJoshua M. Clulow INST("fnand", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1348*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1349*f7184619SJoshua M. Clulow INST("fnands", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1350*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FP)), 1351*f7184619SJoshua M. Clulow 1352*f7184619SJoshua M. Clulow /* 0x070 */ 1353*f7184619SJoshua M. Clulow INST("fand", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1354*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1355*f7184619SJoshua M. Clulow INST("fands", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1356*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FP)), 1357*f7184619SJoshua M. Clulow INST("fxnor", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1358*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1359*f7184619SJoshua M. Clulow INST("fxnors", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1360*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FP)), 1361*f7184619SJoshua M. Clulow 1362*f7184619SJoshua M. Clulow INST("fsrc1", V9S, FLG_P1(REG_FPD)|FLG_P2(REG_NONE)| 1363*f7184619SJoshua M. Clulow FLG_P3(REG_FPD)), 1364*f7184619SJoshua M. Clulow INST("fsrc1s", V9S, FLG_P1(REG_FP)|FLG_P2(REG_NONE)| 1365*f7184619SJoshua M. Clulow FLG_P3(REG_FP)), 1366*f7184619SJoshua M. Clulow INST("fornot2", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1367*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1368*f7184619SJoshua M. Clulow INST("fornot2s", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1369*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FP)), 1370*f7184619SJoshua M. Clulow 1371*f7184619SJoshua M. Clulow /* 0x078 */ 1372*f7184619SJoshua M. Clulow INST("fsrc2", V9S, FLG_P1(REG_NONE)|FLG_P2(REG_FPD)| 1373*f7184619SJoshua M. Clulow FLG_P3(REG_FPD)), 1374*f7184619SJoshua M. Clulow INST("fsrc2s", V9S, FLG_P1(REG_NONE)|FLG_P2(REG_FP)| 1375*f7184619SJoshua M. Clulow FLG_P3(REG_FP)), 1376*f7184619SJoshua M. Clulow INST("fornot1", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1377*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1378*f7184619SJoshua M. Clulow INST("fornot1s", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1379*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FP)), 1380*f7184619SJoshua M. Clulow 1381*f7184619SJoshua M. Clulow INST("for", V9S, FLG_P1(REG_FPD)|FLG_NOIMM| 1382*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_P3(REG_FPD)), 1383*f7184619SJoshua M. Clulow INST("fors", V9S, FLG_P1(REG_FP)|FLG_NOIMM| 1384*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_P3(REG_FP)), 1385*f7184619SJoshua M. Clulow INST("fone", V9S, FLG_P1(REG_NONE)|FLG_P2(REG_NONE)| 1386*f7184619SJoshua M. Clulow FLG_P3(REG_FPD)), 1387*f7184619SJoshua M. Clulow INST("fones", V9S, FLG_P1(REG_NONE)|FLG_P2(REG_NONE)| 1388*f7184619SJoshua M. Clulow FLG_P3(REG_FP)), 1389*f7184619SJoshua M. Clulow 1390*f7184619SJoshua M. Clulow /* 0x080 */ 1391*f7184619SJoshua M. Clulow INST("shutdown", V9S, 0), 1392*f7184619SJoshua M. Clulow INST("siam", V9S, 0), 1393*f7184619SJoshua M. Clulow INVALID, 1394*f7184619SJoshua M. Clulow INVALID, 1395*f7184619SJoshua M. Clulow 1396*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, 1397*f7184619SJoshua M. Clulow 1398*f7184619SJoshua M. Clulow /* 0x088 */ 1399*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1400*f7184619SJoshua M. Clulow 1401*f7184619SJoshua M. Clulow /* 0x090 */ 1402*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1403*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1404*f7184619SJoshua M. Clulow 1405*f7184619SJoshua M. Clulow /* 0x0a0 */ 1406*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1407*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1408*f7184619SJoshua M. Clulow 1409*f7184619SJoshua M. Clulow /* 0x0b0 */ 1410*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1411*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1412*f7184619SJoshua M. Clulow 1413*f7184619SJoshua M. Clulow /* 0x0c0 */ 1414*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1415*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1416*f7184619SJoshua M. Clulow 1417*f7184619SJoshua M. Clulow /* 0x0d0 */ 1418*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1419*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1420*f7184619SJoshua M. Clulow 1421*f7184619SJoshua M. Clulow /* 0x0e0 */ 1422*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1423*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1424*f7184619SJoshua M. Clulow 1425*f7184619SJoshua M. Clulow /* 0x0f0 */ 1426*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1427*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1428*f7184619SJoshua M. Clulow 1429*f7184619SJoshua M. Clulow /* 0x100 */ 1430*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1431*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1432*f7184619SJoshua M. Clulow 1433*f7184619SJoshua M. Clulow /* 0x110 */ 1434*f7184619SJoshua M. Clulow INST("movdtox", V9, FLG_P1(REG_NONE)|FLG_NOIMM| 1435*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_RD(REG_INT)), 1436*f7184619SJoshua M. Clulow INST("movstouw", V9, FLG_P1(REG_NONE)|FLG_NOIMM| 1437*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_RD(REG_INT)), 1438*f7184619SJoshua M. Clulow INVALID, 1439*f7184619SJoshua M. Clulow INST("movstosw", V9, FLG_P1(REG_NONE)|FLG_NOIMM| 1440*f7184619SJoshua M. Clulow FLG_P2(REG_FP)|FLG_RD(REG_INT)), 1441*f7184619SJoshua M. Clulow INVALID, 1442*f7184619SJoshua M. Clulow INST("xmulx", V9, FLG_P1(REG_INT)|FLG_NOIMM| 1443*f7184619SJoshua M. Clulow FLG_P2(REG_INT)|FLG_P3(REG_INT)), 1444*f7184619SJoshua M. Clulow INST("xmulxhi", V9, FLG_P1(REG_INT)|FLG_NOIMM| 1445*f7184619SJoshua M. Clulow FLG_P2(REG_INT)|FLG_P3(REG_INT)), 1446*f7184619SJoshua M. Clulow INVALID, 1447*f7184619SJoshua M. Clulow INST("movxtod", V9, FLG_P1(REG_NONE)|FLG_NOIMM| 1448*f7184619SJoshua M. Clulow FLG_P2(REG_INT)|FLG_RD(REG_FPD)), 1449*f7184619SJoshua M. Clulow INST("movwtos", V9, FLG_P1(REG_NONE)|FLG_NOIMM| 1450*f7184619SJoshua M. Clulow FLG_P2(REG_INT)|FLG_RD(REG_FP)), 1451*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1452*f7184619SJoshua M. Clulow 1453*f7184619SJoshua M. Clulow /* 0x120 */ 1454*f7184619SJoshua M. Clulow INST("fucmple8", V9, FLG_P1(REG_FPD)|FLG_NOIMM| 1455*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_RD(REG_INT)), 1456*f7184619SJoshua M. Clulow INVALID, 1457*f7184619SJoshua M. Clulow INST("fucmpne8", V9, FLG_P1(REG_FPD)|FLG_NOIMM| 1458*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_RD(REG_INT)), 1459*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, 1460*f7184619SJoshua M. Clulow INST("fucmpgt8", V9, FLG_P1(REG_FPD)|FLG_NOIMM| 1461*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_RD(REG_INT)), 1462*f7184619SJoshua M. Clulow INVALID, 1463*f7184619SJoshua M. Clulow INST("fucmpeq8", V9, FLG_P1(REG_FPD)|FLG_NOIMM| 1464*f7184619SJoshua M. Clulow FLG_P2(REG_FPD)|FLG_RD(REG_INT)), 1465*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, 1466*f7184619SJoshua M. Clulow 1467*f7184619SJoshua M. Clulow /* 0x130 */ 1468*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1469*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1470*f7184619SJoshua M. Clulow 1471*f7184619SJoshua M. Clulow /* 0x140 */ 1472*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1473*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1474*f7184619SJoshua M. Clulow 1475*f7184619SJoshua M. Clulow /* 0x150 */ 1476*f7184619SJoshua M. Clulow INVALID, 1477*f7184619SJoshua M. Clulow INST("flcmps", V9, FLG_P1(REG_FP)|FLG_P2(REG_FP)|FLG_P3(REG_FCC) 1478*f7184619SJoshua M. Clulow |FLG_NOIMM), 1479*f7184619SJoshua M. Clulow INST("flcmpd", V9, FLG_P1(REG_FPD)|FLG_P2(REG_FPD)|FLG_P3(REG_FCC) 1480*f7184619SJoshua M. Clulow |FLG_NOIMM), 1481*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, 1482*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1483*f7184619SJoshua M. Clulow 1484*f7184619SJoshua M. Clulow /* 0x160 */ 1485*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1486*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1487*f7184619SJoshua M. Clulow 1488*f7184619SJoshua M. Clulow /* 0x170 */ 1489*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1490*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1491*f7184619SJoshua M. Clulow 1492*f7184619SJoshua M. Clulow /* 0x180 */ 1493*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1494*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1495*f7184619SJoshua M. Clulow 1496*f7184619SJoshua M. Clulow /* 0x190 */ 1497*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1498*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1499*f7184619SJoshua M. Clulow 1500*f7184619SJoshua M. Clulow /* 0x1a0 */ 1501*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1502*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1503*f7184619SJoshua M. Clulow 1504*f7184619SJoshua M. Clulow /* 0x1b0 */ 1505*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1506*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1507*f7184619SJoshua M. Clulow 1508*f7184619SJoshua M. Clulow /* 0x1c0 */ 1509*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1510*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1511*f7184619SJoshua M. Clulow 1512*f7184619SJoshua M. Clulow /* 0x1d0 */ 1513*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1514*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1515*f7184619SJoshua M. Clulow 1516*f7184619SJoshua M. Clulow /* 0x1e0 */ 1517*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1518*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1519*f7184619SJoshua M. Clulow 1520*f7184619SJoshua M. Clulow /* 0x1f0 */ 1521*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, 1522*f7184619SJoshua M. Clulow INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID, INVALID 1523*f7184619SJoshua M. Clulow }; 1524*f7184619SJoshua M. Clulow 1525*f7184619SJoshua M. Clulow static const table_t vis_table = { 1526*f7184619SJoshua M. Clulow .tbl_field = 13, 1527*f7184619SJoshua M. Clulow .tbl_len = 9, 1528*f7184619SJoshua M. Clulow .tbl_ovp = NULL, 1529*f7184619SJoshua M. Clulow .tbl_fmt = fmt_vis, 1530*f7184619SJoshua M. Clulow .tbl_inp = vis_table_def 1531*f7184619SJoshua M. Clulow }; 1532*f7184619SJoshua M. Clulow 1533*f7184619SJoshua M. Clulow static const inst_t fused_table_def[16] = { 1534*f7184619SJoshua M. Clulow /* 0x0 */ 1535*f7184619SJoshua M. Clulow INVALID, 1536*f7184619SJoshua M. Clulow INST("fmadds", V9, FLG_P1(REG_FP)), 1537*f7184619SJoshua M. Clulow INST("fmaddd", V9, FLG_P1(REG_FPD)), 1538*f7184619SJoshua M. Clulow INVALID, 1539*f7184619SJoshua M. Clulow 1540*f7184619SJoshua M. Clulow /* 0x4 */ 1541*f7184619SJoshua M. Clulow INVALID, 1542*f7184619SJoshua M. Clulow INST("fmsubs", V9, FLG_P1(REG_FP)), 1543*f7184619SJoshua M. Clulow INST("fmsubd", V9, FLG_P1(REG_FPD)), 1544*f7184619SJoshua M. Clulow INVALID, 1545*f7184619SJoshua M. Clulow 1546*f7184619SJoshua M. Clulow /* 0x8 */ 1547*f7184619SJoshua M. Clulow INVALID, 1548*f7184619SJoshua M. Clulow INST("fnmsubs", V9, FLG_P1(REG_FP)), 1549*f7184619SJoshua M. Clulow INST("fnmsubd", V9, FLG_P1(REG_FPD)), 1550*f7184619SJoshua M. Clulow INVALID, 1551*f7184619SJoshua M. Clulow 1552*f7184619SJoshua M. Clulow /* 0xc */ 1553*f7184619SJoshua M. Clulow INVALID, 1554*f7184619SJoshua M. Clulow INST("fnmadds", V9, FLG_P1(REG_FP)), 1555*f7184619SJoshua M. Clulow INST("fnmaddd", V9, FLG_P1(REG_FPD)), 1556*f7184619SJoshua M. Clulow INVALID 1557*f7184619SJoshua M. Clulow }; 1558*f7184619SJoshua M. Clulow 1559*f7184619SJoshua M. Clulow static const table_t fused_table = { 1560*f7184619SJoshua M. Clulow .tbl_field = 8, 1561*f7184619SJoshua M. Clulow .tbl_len = 4, 1562*f7184619SJoshua M. Clulow .tbl_ovp = NULL, 1563*f7184619SJoshua M. Clulow .tbl_fmt = fmt_fused, 1564*f7184619SJoshua M. Clulow .tbl_inp = fused_table_def 1565*f7184619SJoshua M. Clulow }; 1566*f7184619SJoshua M. Clulow 1567*f7184619SJoshua M. Clulow static const inst_t alu_table_def[64] = { 1568*f7184619SJoshua M. Clulow /* 0x00 */ 1569*f7184619SJoshua M. Clulow INST("add", VALL, 0), 1570*f7184619SJoshua M. Clulow INST("and", VALL, 0), 1571*f7184619SJoshua M. Clulow INST("or", VALL, 0), 1572*f7184619SJoshua M. Clulow INST("xor", VALL, 0), 1573*f7184619SJoshua M. Clulow 1574*f7184619SJoshua M. Clulow INST("sub", VALL, 0), 1575*f7184619SJoshua M. Clulow INST("andn", VALL, 0), 1576*f7184619SJoshua M. Clulow INST("orn", VALL, 0), 1577*f7184619SJoshua M. Clulow INST("xnor", VALL, 0), 1578*f7184619SJoshua M. Clulow 1579*f7184619SJoshua M. Clulow /* 0x08 */ 1580*f7184619SJoshua M. Clulow INST("addx", VALL, 0), 1581*f7184619SJoshua M. Clulow INST("mulx", V9|V9S, 0), 1582*f7184619SJoshua M. Clulow INST("umul", VALL, 0), 1583*f7184619SJoshua M. Clulow INST("smul", VALL, 0), 1584*f7184619SJoshua M. Clulow 1585*f7184619SJoshua M. Clulow INST("subx", VALL, 0), 1586*f7184619SJoshua M. Clulow INST("udivx", V9|V9S, 0), 1587*f7184619SJoshua M. Clulow INST("udiv", VALL, 0), 1588*f7184619SJoshua M. Clulow INST("sdiv", VALL, 0), 1589*f7184619SJoshua M. Clulow 1590*f7184619SJoshua M. Clulow /* 0x10 */ 1591*f7184619SJoshua M. Clulow INST("addcc", VALL, 0), 1592*f7184619SJoshua M. Clulow INST("andcc", VALL, 0), 1593*f7184619SJoshua M. Clulow INST("orcc", VALL, 0), 1594*f7184619SJoshua M. Clulow INST("xorcc", VALL, 0), 1595*f7184619SJoshua M. Clulow 1596*f7184619SJoshua M. Clulow INST("subcc", VALL, 0), 1597*f7184619SJoshua M. Clulow INST("andncc", VALL, 0), 1598*f7184619SJoshua M. Clulow INST("orncc", VALL, 0), 1599*f7184619SJoshua M. Clulow INST("xnorcc", VALL, 0), 1600*f7184619SJoshua M. Clulow 1601*f7184619SJoshua M. Clulow /* 0x18 */ 1602*f7184619SJoshua M. Clulow INST("addxcc", VALL, 0), 1603*f7184619SJoshua M. Clulow INVALID, 1604*f7184619SJoshua M. Clulow INST("umulcc", VALL, 0), 1605*f7184619SJoshua M. Clulow INST("smulcc", VALL, 0), 1606*f7184619SJoshua M. Clulow 1607*f7184619SJoshua M. Clulow INST("subxcc", VALL, 0), 1608*f7184619SJoshua M. Clulow INVALID, 1609*f7184619SJoshua M. Clulow INST("udivcc", VALL, 0), 1610*f7184619SJoshua M. Clulow INST("sdivcc", VALL, 0), 1611*f7184619SJoshua M. Clulow 1612*f7184619SJoshua M. Clulow /* 0x20 */ 1613*f7184619SJoshua M. Clulow INST("taddcc", VALL, 0), 1614*f7184619SJoshua M. Clulow INST("tsubcc", VALL, 0), 1615*f7184619SJoshua M. Clulow INST("taddcctv", VALL, 0), 1616*f7184619SJoshua M. Clulow INST("tsubcctv", VALL, 0), 1617*f7184619SJoshua M. Clulow 1618*f7184619SJoshua M. Clulow INST("mulscc", VALL, 0), 1619*f7184619SJoshua M. Clulow INST("sll", VALL, 0), 1620*f7184619SJoshua M. Clulow INST("srl", VALL, 0), 1621*f7184619SJoshua M. Clulow INST("sra", VALL, 0), 1622*f7184619SJoshua M. Clulow 1623*f7184619SJoshua M. Clulow /* 0x28 */ 1624*f7184619SJoshua M. Clulow INST("rd", VALL, 0), 1625*f7184619SJoshua M. Clulow INST("rd", V8, 0), 1626*f7184619SJoshua M. Clulow INST("rd", V8, 0), 1627*f7184619SJoshua M. Clulow INST("rd", V8, 0), 1628*f7184619SJoshua M. Clulow 1629*f7184619SJoshua M. Clulow TABLE(movcc_table, V9|V9S), 1630*f7184619SJoshua M. Clulow INST("sdivx", V9|V9S, 0), 1631*f7184619SJoshua M. Clulow INST("popc", V9|V9S, 1632*f7184619SJoshua M. Clulow FLG_P1(REG_NONE)|FLG_P2(REG_INT)|FLG_P3(REG_INT)), 1633*f7184619SJoshua M. Clulow TABLE(movr_table, V9|V9S), 1634*f7184619SJoshua M. Clulow 1635*f7184619SJoshua M. Clulow /* 0x30 */ 1636*f7184619SJoshua M. Clulow INST("wr", VALL, 0), 1637*f7184619SJoshua M. Clulow INST("wr", V8, 0), 1638*f7184619SJoshua M. Clulow INST("wr", V8, 0), 1639*f7184619SJoshua M. Clulow INST("wr", V8, 0), 1640*f7184619SJoshua M. Clulow 1641*f7184619SJoshua M. Clulow TABLE(FPop1_table, VALL), 1642*f7184619SJoshua M. Clulow TABLE(FPop2_table, VALL), 1643*f7184619SJoshua M. Clulow INST("cpop1", V8, 0), 1644*f7184619SJoshua M. Clulow INST("cpop2", V8, 0), /* impdep2 */ 1645*f7184619SJoshua M. Clulow 1646*f7184619SJoshua M. Clulow /* 0x38 */ 1647*f7184619SJoshua M. Clulow INST("jmpl", VALL, 0), 1648*f7184619SJoshua M. Clulow INST("rett", VALL, 0), 1649*f7184619SJoshua M. Clulow TABLE(Tcc_table, VALL), 1650*f7184619SJoshua M. Clulow INST("flush", VALL, 0), 1651*f7184619SJoshua M. Clulow 1652*f7184619SJoshua M. Clulow INST("save", VALL, 0), 1653*f7184619SJoshua M. Clulow INST("restore", VALL, 0), 1654*f7184619SJoshua M. Clulow TABLE(tr_table, V9|V9S), 1655*f7184619SJoshua M. Clulow INVALID 1656*f7184619SJoshua M. Clulow }; 1657*f7184619SJoshua M. Clulow 1658*f7184619SJoshua M. Clulow 1659*f7184619SJoshua M. Clulow static const overlay_t alu_ov_table[] = { 1660*f7184619SJoshua M. Clulow OVERLAY(0x08, INST("addc", V9|V9S, 0)), 1661*f7184619SJoshua M. Clulow OVERLAY(0x0c, INST("subc", V9|V9S, 0)), 1662*f7184619SJoshua M. Clulow OVERLAY(0x18, INST("addccc", V9|V9S, 0)), 1663*f7184619SJoshua M. Clulow OVERLAY(0x1c, INST("subccc", V9|V9S, 0)), 1664*f7184619SJoshua M. Clulow 1665*f7184619SJoshua M. Clulow OVERLAY(0x29, INST("rdhpr", V9|V9S, 0)), 1666*f7184619SJoshua M. Clulow OVERLAY(0x2a, INST("rdpr", V9|V9S, 0)), 1667*f7184619SJoshua M. Clulow OVERLAY(0x2b, INST("flushw", V9|V9S, 0)), 1668*f7184619SJoshua M. Clulow OVERLAY(0x31, TABLE(rwin_table, V9|V9S)), 1669*f7184619SJoshua M. Clulow 1670*f7184619SJoshua M. Clulow OVERLAY(0x32, INST("wrpr", V9|V9S, 0)), 1671*f7184619SJoshua M. Clulow OVERLAY(0x33, INST("wrhpr", V9|V9S, 0)), 1672*f7184619SJoshua M. Clulow OVERLAY(0x36, TABLE(vis_table, V9S)), 1673*f7184619SJoshua M. Clulow OVERLAY(0x37, TABLE(fused_table, VALL)), 1674*f7184619SJoshua M. Clulow OVERLAY(0x39, INST("return", VALL, 0)), 1675*f7184619SJoshua M. Clulow 1676*f7184619SJoshua M. Clulow OVERLAY_END 1677*f7184619SJoshua M. Clulow }; 1678*f7184619SJoshua M. Clulow 1679*f7184619SJoshua M. Clulow static const table_t alu_table = { 1680*f7184619SJoshua M. Clulow .tbl_field = 24, 1681*f7184619SJoshua M. Clulow .tbl_len = 6, 1682*f7184619SJoshua M. Clulow .tbl_ovp = alu_ov_table, 1683*f7184619SJoshua M. Clulow .tbl_fmt = fmt_alu, 1684*f7184619SJoshua M. Clulow .tbl_inp = alu_table_def 1685*f7184619SJoshua M. Clulow }; 1686*f7184619SJoshua M. Clulow 1687*f7184619SJoshua M. Clulow static const inst_t initial_table_def[4] = { 1688*f7184619SJoshua M. Clulow TABLE(branch_table, VALL), 1689*f7184619SJoshua M. Clulow INST("call", VALL, 0), 1690*f7184619SJoshua M. Clulow TABLE(alu_table, VALL), 1691*f7184619SJoshua M. Clulow TABLE(ls_table, VALL) 1692*f7184619SJoshua M. Clulow }; 1693*f7184619SJoshua M. Clulow 1694*f7184619SJoshua M. Clulow /* NOTE: this must not be made static */ 1695*f7184619SJoshua M. Clulow const table_t initial_table = { 1696*f7184619SJoshua M. Clulow .tbl_field = 31, 1697*f7184619SJoshua M. Clulow .tbl_len = 2, 1698*f7184619SJoshua M. Clulow .tbl_ovp = NULL, 1699*f7184619SJoshua M. Clulow .tbl_fmt = fmt_call, 1700*f7184619SJoshua M. Clulow .tbl_inp = initial_table_def 1701*f7184619SJoshua M. Clulow }; 1702