Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

alphaopc.cc

Go to the documentation of this file.
00001 /*
00002  *      HT Editor
00003  *      alphaopc.cc
00004  *
00005  *      Copyright (C) 1999-2002 Sebastian Biallas (sb@web-productions.de)
00006  *
00007  *      This program is free software; you can redistribute it and/or modify
00008  *      it under the terms of the GNU General Public License version 2 as
00009  *      published by the Free Software Foundation.
00010  *
00011  *      This program is distributed in the hope that it will be useful,
00012  *      but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014  *      GNU General Public License for more details.
00015  *
00016  *      You should have received a copy of the GNU General Public License
00017  *      along with this program; if not, write to the Free Software
00018  *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00019  */
00020 
00021 #include "alphaopc.h"
00022 
00023 char *alpha_reg_names[] = {
00024 /*     0 */ "v0",
00025 /*  1- 8 */ "t0","t1","t2","t3","t4","t5","t6","t7",
00026 /*  9-15 */ "s0","s1","s2","s3","s4","s5","s6/fp",
00027 /* 16-21 */ "a0","a1","a2","a3","a4","a5",
00028 /* 22-25 */ "t8","t9","t10","t11",
00029 /* 26-31 */ "ra","t12/pv","at","gp","sp","zero",
00030 /* 32-39 */ "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7",
00031 /* 40-47 */ "f8", "f9", "f10","f11","f12","f13","f14","f15",
00032 /* 48-55 */ "f16","f17","f18","f19","?",  "?",  "?",  "?",
00033 /* 56-64 */ "?",  "?",  "?",  "?",  "?",  "?",  "?",  "fzero", "lit"
00034 };
00035 
00036 
00037 alpha_opcode_tab_entry alpha_instr_tbl[] =
00038 {
00039         {0x00,"call_pal",       ALPHA_GROUP_PAL},
00040         {0x01,"opcode01",       ALPHA_ERROR},
00041         {0x02,"opcode02",       ALPHA_ERROR},
00042         {0x03,"opcode03",       ALPHA_ERROR},
00043         {0x04,"opcode04",       ALPHA_ERROR},
00044         {0x05,"opcode05",       ALPHA_ERROR},
00045         {0x06,"opcode06",       ALPHA_ERROR},
00046         {0x07,"opcode07",       ALPHA_ERROR},
00047 
00048         {0x08,"lda",            ALPHA_GROUP3},
00049         {0x09,"ldah",           ALPHA_GROUP3},
00050         {0x0a,"ldbu",           ALPHA_GROUP3},
00051         {0x0b,"ldq_u",          ALPHA_GROUP3},
00052         {0x0c,"ldwu",           ALPHA_GROUP3},
00053         {0x0d,"stw",            ALPHA_GROUP4},
00054         {0x0e,"stb",            ALPHA_GROUP4},
00055         {0x0f,"stq_u",          ALPHA_GROUP4},
00056 
00057         {0x10,"opcode10",       ALPHA_EXTENSION_10},
00058         {0x11,"opcode11",       ALPHA_EXTENSION_11},
00059         {0x12,"opcode12",       ALPHA_EXTENSION_12},
00060         {0x13,"opcode13",       ALPHA_EXTENSION_13},
00061         {0x14,"opcode14",       ALPHA_EXTENSION_14},
00062         {0x15,"opcode15",       ALPHA_EXTENSION_15},
00063         {0x16,"opcode16",       ALPHA_EXTENSION_16},
00064         {0x17,"opcode17",       ALPHA_EXTENSION_17},
00065 
00066         {0x18,"opcode18",       ALPHA_EXTENSION_18},
00067         {0x19,"pal19",          ALPHA_ERROR},
00068         {0x1a,"opcode1a",       ALPHA_EXTENSION_1A},
00069         {0x1b,"pal1b",          ALPHA_ERROR},
00070         {0x1c,"opcode1c",       ALPHA_EXTENSION_1C},
00071         {0x1d,"pal1d",          ALPHA_ERROR},
00072         {0x1e,"pal1e",          ALPHA_ERROR},
00073         {0x1f,"pal1f",          ALPHA_ERROR},
00074     
00075         {0x20,"ldf",            ALPHA_GROUP_FLD},
00076         {0x21,"ldg",            ALPHA_GROUP_FLD},
00077         {0x22,"lds",            ALPHA_GROUP_FLD},
00078         {0x23,"ldt",            ALPHA_GROUP_FLD},
00079         {0x24,"stf",            ALPHA_GROUP_FST},
00080         {0x25,"stg",            ALPHA_GROUP_FST},
00081         {0x26,"sts",            ALPHA_GROUP_FST},
00082         {0x27,"stt",            ALPHA_GROUP_FST},
00083     
00084         {0x28,"ldl",            ALPHA_GROUP3},
00085         {0x29,"ldq",            ALPHA_GROUP3},
00086         {0x2a,"ldl_l",          ALPHA_GROUP3},
00087         {0x2b,"ldq_l",          ALPHA_GROUP3},
00088         {0x2c,"stl",            ALPHA_GROUP4},
00089         {0x2d,"stq",            ALPHA_GROUP4},
00090         {0x2e,"stl_c",          ALPHA_GROUP4},
00091         {0x2f,"stq_c",          ALPHA_GROUP4},
00092 
00093         {0x30,"br",             ALPHA_GROUP_BRA},
00094         {0x31,"fbeq",           ALPHA_GROUP_FBR},
00095         {0x32,"fblt",           ALPHA_GROUP_FBR},
00096         {0x33,"fble",           ALPHA_GROUP_FBR},
00097         {0x34,"bsr",            ALPHA_GROUP_BRA},
00098         {0x35,"fbne",           ALPHA_GROUP_FBR},
00099         {0x36,"fbge",           ALPHA_GROUP_FBR},
00100         {0x37,"fbgt",           ALPHA_GROUP_FBR},
00101     
00102         {0x38,"blbc",           ALPHA_GROUP_BRA},
00103         {0x39,"beq",            ALPHA_GROUP_BRA},
00104         {0x3a,"blt",            ALPHA_GROUP_BRA},
00105         {0x3b,"ble",            ALPHA_GROUP_BRA},
00106         {0x3c,"blbs",           ALPHA_GROUP_BRA},
00107         {0x3d,"bne",            ALPHA_GROUP_BRA},
00108         {0x3e,"bge",            ALPHA_GROUP_BRA},
00109         {0x3f,"bgt",            ALPHA_GROUP_BRA}
00110 };
00111 
00112 /* table10 */
00113 alpha_opcode_tab_entry alpha_instr_tbl_ext10[] =
00114 {
00115         {0x00,"addl",           ALPHA_GROUP1},
00116         {0x02,"s4addl", ALPHA_GROUP1},
00117         {0x09,"subl",           ALPHA_GROUP1},
00118         {0x0b,"s4subl", ALPHA_GROUP1},
00119         {0x0f,"cmpbge", ALPHA_GROUP1},
00120         {0x12,"s8addl", ALPHA_GROUP1},
00121         {0x1b,"s8subl", ALPHA_GROUP1},
00122         {0x1d,"cmpult", ALPHA_GROUP1},
00123         {0x20,"addq",           ALPHA_GROUP1},
00124         {0x22,"s4addq", ALPHA_GROUP1},
00125         {0x29,"subq",           ALPHA_GROUP1},
00126         {0x2b,"s4subq", ALPHA_GROUP1},
00127         {0x2d,"cmpeq",          ALPHA_GROUP1},
00128         {0x32,"s8addq", ALPHA_GROUP1},
00129         {0x3b,"s8subq", ALPHA_GROUP1},
00130         {0x3d,"cmpule", ALPHA_GROUP1},
00131         {0x40,"addl/v", ALPHA_GROUP1},
00132         {0x49,"subl/v", ALPHA_GROUP1},
00133         {0x4d,"cmplt",          ALPHA_GROUP1},
00134         {0x60,"addq/v", ALPHA_GROUP1},
00135         {0x69,"subq/v", ALPHA_GROUP1},
00136         {0x6d,"cmple",          ALPHA_GROUP1},
00137         {0xff,"",                       ALPHA_ERROR}
00138 };
00139 
00140 /* table11 */
00141 alpha_opcode_tab_entry alpha_instr_tbl_ext11[] =
00142 {
00143         {0x00,"and",            ALPHA_GROUP1},
00144         {0x08,"bic",            ALPHA_GROUP1},
00145         {0x14,"cmovlbs",        ALPHA_GROUP1},
00146         {0x16,"cmovlbc",        ALPHA_GROUP1},
00147         {0x20,"bis",            ALPHA_GROUP1},
00148         {0x24,"cmoveq", ALPHA_GROUP1},
00149         {0x26,"cmovne", ALPHA_GROUP1},
00150         {0x28,"ornot",          ALPHA_GROUP1},
00151         {0x40,"xor",            ALPHA_GROUP1},
00152         {0x44,"cmovlt", ALPHA_GROUP1},
00153         {0x46,"cmovge", ALPHA_GROUP1},
00154         {0x48,"eqv",            ALPHA_GROUP1},
00155         {0x61,"amask",          ALPHA_GROUP3},
00156         {0x64,"cmovle", ALPHA_GROUP1},
00157         {0x66,"cmovgt", ALPHA_GROUP1},
00158         {0x6c,"implver",        ALPHA_GROUP3},
00159         {0xff,"",                       ALPHA_ERROR}
00160 };
00161 
00162 /* table12 */
00163 alpha_opcode_tab_entry alpha_instr_tbl_ext12[] =
00164 {
00165         {0x00,"",                       ALPHA_ERROR},
00166         {0x02,"mskbl",          ALPHA_GROUP1},
00167         {0x06,"extbl",          ALPHA_GROUP1},
00168         {0x0b,"insbl",          ALPHA_GROUP1},
00169         {0x12,"mskwl",          ALPHA_GROUP1},
00170         {0x16,"extwl",          ALPHA_GROUP1},
00171         {0x1b,"inswl",          ALPHA_GROUP1},
00172         {0x22,"mskll",          ALPHA_GROUP1},
00173         {0x26,"extll",          ALPHA_GROUP1},
00174         {0x2b,"insll",          ALPHA_GROUP1},
00175         {0x30,"zap",            ALPHA_GROUP1},
00176         {0x31,"zapnot", ALPHA_GROUP1},
00177         {0x32,"mskql",          ALPHA_GROUP1},
00178         {0x34,"srl",            ALPHA_GROUP1},
00179         {0x36,"extql",          ALPHA_GROUP1},
00180         {0x39,"sll",            ALPHA_GROUP1},
00181         {0x3b,"insql",          ALPHA_GROUP1},
00182         {0x3c,"sra",            ALPHA_GROUP1},
00183         {0x52,"mskwh",          ALPHA_GROUP1},
00184         {0x57,"inswh",          ALPHA_GROUP1},
00185         {0x5a,"extwh",          ALPHA_GROUP1},
00186         {0x62,"msklh",          ALPHA_GROUP1},
00187         {0x67,"inslh",          ALPHA_GROUP1},
00188         {0x6a,"extlh",          ALPHA_GROUP1},
00189         {0x72,"mskqh",          ALPHA_GROUP1},
00190         {0x77,"insqh",          ALPHA_GROUP1},
00191         {0x7a,"extqh",          ALPHA_GROUP1},
00192         {0xff,"",                       ALPHA_ERROR}
00193 };
00194 
00195 /* table13 */
00196 alpha_opcode_tab_entry alpha_instr_tbl_ext13[] =
00197 {
00198         {0x00,"mull",           ALPHA_GROUP1},
00199         {0x20,"mulq",           ALPHA_GROUP1},
00200         {0x30,"umulh",          ALPHA_GROUP1},
00201         {0x40,"mull/v", ALPHA_GROUP1},
00202         {0x60,"mulq/v", ALPHA_GROUP1},
00203         {0xff,"",                       ALPHA_ERROR}
00204 };
00205 
00206 /* table14 */
00207 alpha_opcode_tab_entry alpha_instr_tbl_ext14[] =
00208 {
00209         {0x000,"",              ALPHA_ERROR},
00210         {0x004,"itofs", ALPHA_GROUP_I2F},
00211         {0x00a,"sqrtf/c",       ALPHA_ERROR},
00212         {0x00b,"sqrts/c",       ALPHA_ERROR},
00213         {0x014,"itoff", ALPHA_GROUP_I2F},
00214         {0x024,"itoft", ALPHA_GROUP_I2F},
00215         {0x02a,"sqrtg/c",       ALPHA_ERROR},
00216         {0x02b,"sqrtt/c",       ALPHA_ERROR},
00217         {0x04b,"sqrts/m",       ALPHA_ERROR},
00218         {0x06b,"sqrtt/m",       ALPHA_ERROR},
00219         {0x08a,"sqrtf", ALPHA_ERROR},
00220         {0x08b,"sqrts", ALPHA_ERROR},
00221         {0x0aa,"sqrtg", ALPHA_ERROR},
00222         {0x0ab,"sqrtt", ALPHA_ERROR},
00223         {0x0cb,"sqrts/d",       ALPHA_ERROR},
00224         {0x0eb,"sqrtt/d",       ALPHA_ERROR},
00225         {0x10a,"sqrtf/uc",      ALPHA_ERROR},
00226         {0x10b,"sqrts/uc",      ALPHA_ERROR},
00227         {0x12a,"sqrtg/uc",      ALPHA_ERROR},
00228         {0x12b,"sqrtt/uc",      ALPHA_ERROR},
00229         {0x14b,"sqrts/um",      ALPHA_ERROR},
00230         {0x16b,"sqrtt/um",      ALPHA_ERROR},
00231         {0x18a,"sqrtf/u",       ALPHA_ERROR},
00232         {0x18b,"sqrts/u",       ALPHA_ERROR},
00233         {0x1aa,"sqrtg/u",       ALPHA_ERROR},
00234         {0x1ab,"sqrtt/u",       ALPHA_ERROR},
00235         {0x1cb,"sqrts/ud",      ALPHA_ERROR},
00236         {0x1eb,"sqrtt/ud",      ALPHA_ERROR},
00237         {0x40a,"sqrtf/sc",      ALPHA_ERROR},
00238         {0x42a,"sqrtg/sc",      ALPHA_ERROR},
00239         {0x48a,"sqrtf/s",       ALPHA_ERROR},
00240         {0x4aa,"sqrtg/s",       ALPHA_ERROR},
00241         {0x50a,"sqrtf/suc",     ALPHA_ERROR},
00242         {0x50b,"sqrts/suc",     ALPHA_ERROR},
00243         {0x52a,"sqrtg/suc",     ALPHA_ERROR},
00244         {0x52b,"sqrtt/suc",     ALPHA_ERROR},
00245         {0x54b,"sqrts/sum",     ALPHA_ERROR},
00246         {0x56b,"sqrtt/sum",     ALPHA_ERROR},
00247         {0x58a,"sqrtf/su",      ALPHA_ERROR},
00248         {0x58b,"sqrts/su",      ALPHA_ERROR},
00249         {0x5aa,"sqrtg/su",      ALPHA_ERROR},
00250         {0x5ab,"sqrtt/su",      ALPHA_ERROR},
00251         {0x5cb,"sqrts/sud",     ALPHA_ERROR},
00252         {0x5eb,"sqrtt/sud",     ALPHA_ERROR},
00253         {0x70b,"sqrts/suic",ALPHA_ERROR},
00254         {0x72b,"sqrtt/suic",ALPHA_ERROR},
00255         {0x74b,"sqrts/suim",ALPHA_ERROR},
00256         {0x76b,"sqrtt/suim",ALPHA_ERROR},
00257         {0x78b,"sqrts/sui",     ALPHA_ERROR},
00258         {0x7ab,"sqrtt/sui",     ALPHA_ERROR},
00259         {0x7cb,"sqrts/suid",ALPHA_ERROR},
00260         {0x7eb,"sqrtt/suid",ALPHA_ERROR},
00261         {0xfff,"",              ALPHA_ERROR}
00262 };
00263 
00264 /* table15 */
00265 alpha_opcode_tab_entry alpha_instr_tbl_ext15[] =
00266 {
00267         {0x000,"addf/c",        ALPHA_GROUP2},
00268         {0x001,"subf/c",        ALPHA_GROUP2},
00269         {0x002,"mulf/c",        ALPHA_GROUP2},
00270         {0x003,"divf/c",        ALPHA_GROUP2},
00271         {0x01e,"cvtdg/c",       ALPHA_GROUP2},
00272         {0x020,"addg/c",        ALPHA_GROUP2},
00273         {0x021,"subg/c",        ALPHA_GROUP2},
00274         {0x022,"mulg/c",        ALPHA_GROUP2},
00275         {0x023,"divg/c",        ALPHA_GROUP2},
00276         {0x02c,"cvtgf/c",       ALPHA_GROUP2},
00277         {0x02d,"cvtgd/c",       ALPHA_GROUP2},
00278         {0x02f,"cvtgq/c",       ALPHA_GROUP2},
00279         {0x03c,"cvtqf/c",       ALPHA_GROUP2},
00280         {0x03e,"cvtqg/c",       ALPHA_GROUP2},
00281         {0x080,"addf",          ALPHA_GROUP2},
00282         {0x081,"subf",          ALPHA_GROUP2},
00283         {0x082,"mulf",          ALPHA_GROUP2},
00284         {0x083,"divf",          ALPHA_GROUP2},
00285         {0x09e,"cvtdg", ALPHA_GROUP2},
00286         {0x0a0,"addg",          ALPHA_GROUP2},
00287         {0x0a1,"subg",          ALPHA_GROUP2},
00288         {0x0a2,"mulg",          ALPHA_GROUP2},
00289         {0x0a3,"divg",          ALPHA_GROUP2},
00290         {0x0a5,"cmpgeq",        ALPHA_GROUP2},
00291         {0x0a6,"cmpglt",        ALPHA_GROUP2},
00292         {0x0a7,"cmpgle",        ALPHA_GROUP2},
00293         {0x0ac,"cvtgf", ALPHA_GROUP2},
00294         {0x0ad,"cvtgd", ALPHA_GROUP2},
00295         {0x0af,"cvtgq", ALPHA_GROUP2},
00296         {0x0bc,"cvtqf", ALPHA_GROUP2},
00297         {0x0be,"cvtqg", ALPHA_GROUP2},
00298         {0x100,"addf/uc",       ALPHA_GROUP2},
00299         {0x101,"subf/uc",       ALPHA_GROUP2},
00300         {0x102,"mulf/uc",       ALPHA_GROUP2},
00301         {0x103,"divf/uc",       ALPHA_GROUP2},
00302         {0x11e,"cvtdg/uc",      ALPHA_GROUP2},
00303         {0x120,"addg/uc",       ALPHA_GROUP2},
00304         {0x121,"subg/uc",       ALPHA_GROUP2},
00305         {0x122,"mulg/uc",       ALPHA_GROUP2},
00306         {0x123,"divg/uc",       ALPHA_GROUP2},
00307         {0x12c,"cvtgf/uc",      ALPHA_GROUP2},
00308         {0x12d,"cvtgd/uc",      ALPHA_GROUP2},
00309         {0x12f,"cvtgq/vc",      ALPHA_GROUP2},
00310         {0x180,"addf/u",        ALPHA_GROUP2},
00311         {0x181,"subf/u",        ALPHA_GROUP2},
00312         {0x182,"mulf/u",        ALPHA_GROUP2},
00313         {0x183,"divf/u",        ALPHA_GROUP2},
00314         {0x19e,"cvtdg/u",       ALPHA_GROUP2},
00315         {0x1a0,"addg/u",        ALPHA_GROUP2},
00316         {0x1a1,"subg/u",        ALPHA_GROUP2},
00317         {0x1a2,"mulg/u",        ALPHA_GROUP2},
00318         {0x1a3,"divg/u",        ALPHA_GROUP2},
00319         {0x1ac,"cvtgf/u",       ALPHA_GROUP2},
00320         {0x1ad,"cvtgd/u",       ALPHA_GROUP2},
00321         {0x1af,"cvtgq/v",       ALPHA_GROUP2},
00322         {0x400,"addf/sc",       ALPHA_GROUP2},
00323         {0x401,"subf/sc",       ALPHA_GROUP2},
00324         {0x402,"mulf/sc",       ALPHA_GROUP2},
00325         {0x403,"divf/sc",       ALPHA_GROUP2},
00326         {0x41e,"cvtdg/sc",      ALPHA_GROUP2},
00327         {0x420,"addg/sc",       ALPHA_GROUP2},
00328         {0x421,"subg/sc",       ALPHA_GROUP2},
00329         {0x422,"mulg/sc",       ALPHA_GROUP2},
00330         {0x423,"divg/sc",       ALPHA_GROUP2},
00331         {0x42c,"cvtgf/sc",      ALPHA_GROUP2},
00332         {0x42d,"cvtgd/sc",      ALPHA_GROUP2},
00333         {0x42f,"cvtgq/sc",      ALPHA_GROUP2},
00334         {0x480,"addf/s",        ALPHA_GROUP2},
00335         {0x481,"subf/s",        ALPHA_GROUP2},
00336         {0x482,"mulf/s",        ALPHA_GROUP2},
00337         {0x483,"divf/s",        ALPHA_GROUP2},
00338         {0x49e,"cvtdg/s",       ALPHA_GROUP2},
00339         {0x4a0,"addg/s",        ALPHA_GROUP2},
00340         {0x4a1,"subg/s",        ALPHA_GROUP2},
00341         {0x4a2,"mulg/s",        ALPHA_GROUP2},
00342         {0x4a3,"divg/s",        ALPHA_GROUP2},
00343         {0x4a5,"cmpgeq/s",      ALPHA_GROUP2},
00344         {0x4a6,"cmpglt/s",      ALPHA_GROUP2},
00345         {0x4a7,"cmpgle/s",      ALPHA_GROUP2},
00346         {0x4ac,"cvtgf/s",       ALPHA_GROUP2},
00347         {0x4ad,"cvtgd/s",       ALPHA_GROUP2},
00348         {0x4af,"cvtgq/s",       ALPHA_GROUP2},
00349         {0x500,"addf/suc",      ALPHA_GROUP2},
00350         {0x501,"subf/suc",      ALPHA_GROUP2},
00351         {0x502,"mulf/suc",      ALPHA_GROUP2},
00352         {0x503,"divf/suc",      ALPHA_GROUP2},
00353         {0x51e,"cvtdg/suc",     ALPHA_GROUP2},
00354         {0x520,"addg/suc",      ALPHA_GROUP2},
00355         {0x521,"subg/suc",      ALPHA_GROUP2},
00356         {0x522,"mulg/suc",      ALPHA_GROUP2},
00357         {0x523,"divg/suc",      ALPHA_GROUP2},
00358         {0x52c,"cvtgf/suc",     ALPHA_GROUP2},
00359         {0x52d,"cvtgd/suc",     ALPHA_GROUP2},
00360         {0x52f,"cvtgq/svc",     ALPHA_GROUP2},
00361         {0x580,"addf/su",       ALPHA_GROUP2},
00362         {0x581,"subf/su",       ALPHA_GROUP2},
00363         {0x582,"mulf/su",       ALPHA_GROUP2},
00364         {0x583,"divf/su",       ALPHA_GROUP2},
00365         {0x59e,"cvtdg/su",      ALPHA_GROUP2},
00366         {0x5a0,"addg/su",       ALPHA_GROUP2},
00367         {0x5a1,"subg/su",       ALPHA_GROUP2},
00368         {0x5a2,"mulg/su",       ALPHA_GROUP2},
00369         {0x5a3,"divg/su",       ALPHA_GROUP2},
00370         {0x5ac,"cvtgf/su",      ALPHA_GROUP2},
00371         {0x5ad,"cvtgd/su",      ALPHA_GROUP2},
00372         {0x5af,"cvtgq/sv",      ALPHA_GROUP2},
00373         {0xfff,"",              ALPHA_ERROR}
00374 };
00375 
00376 /* table16 */ 
00377 alpha_opcode_tab_entry alpha_instr_tbl_ext16[] =
00378 {
00379         {0x000,"adds/c",        ALPHA_GROUP2},
00380         {0x001,"subs/c",        ALPHA_GROUP2},
00381         {0x002,"muls/c",        ALPHA_GROUP2},
00382         {0x003,"divs/c",        ALPHA_GROUP2},
00383         {0x020,"addt/c",        ALPHA_GROUP2},
00384         {0x021,"subt/c",        ALPHA_GROUP2},
00385         {0x022,"mult/c",        ALPHA_GROUP2},
00386         {0x023,"divt/c",        ALPHA_GROUP2},
00387         {0x02c,"cvtts/c",       ALPHA_GROUP2},
00388         {0x02f,"cvttq/c",       ALPHA_GROUP2},
00389         {0x03c,"cvtqs/c",       ALPHA_GROUP2},
00390         {0x03e,"cvtqt/c",       ALPHA_GROUP2},
00391         {0x040,"adds/m",        ALPHA_GROUP2},
00392         {0x041,"subs/m",        ALPHA_GROUP2},
00393         {0x042,"muls/m",        ALPHA_GROUP2},
00394         {0x043,"divs/m",        ALPHA_GROUP2},
00395         {0x060,"addt/m",        ALPHA_GROUP2},
00396         {0x061,"subt/m",        ALPHA_GROUP2},
00397         {0x062,"mult/m",        ALPHA_GROUP2},
00398         {0x063,"divt/m",        ALPHA_GROUP2},
00399         {0x06c,"cvtts/m",       ALPHA_GROUP2},
00400         {0x06f,"cvttq/m",       ALPHA_GROUP2},
00401         {0x07c,"cvtqs/m",       ALPHA_GROUP2},
00402         {0x07e,"cvtqt/m",       ALPHA_GROUP2},
00403         {0x080,"adds",          ALPHA_GROUP2},
00404         {0x081,"subs",          ALPHA_GROUP2},
00405         {0x082,"muls",          ALPHA_GROUP2},
00406         {0x083,"divs",          ALPHA_GROUP2},
00407         {0x0a0,"addt",          ALPHA_GROUP2},
00408         {0x0a1,"subt",          ALPHA_GROUP2},
00409         {0x0a2,"mult",          ALPHA_GROUP2},
00410         {0x0a3,"divt",          ALPHA_GROUP2},
00411         {0x0a4,"cmptun",        ALPHA_GROUP2},
00412         {0x0a5,"cmpteq",        ALPHA_GROUP2},
00413         {0x0a6,"cmptlt",        ALPHA_GROUP2},
00414         {0x0a7,"cmptle",        ALPHA_GROUP2},
00415         {0x0ac,"cvtts", ALPHA_GROUP2},
00416         {0x0af,"cvttq", ALPHA_GROUP2},
00417         {0x0bc,"cvtqs", ALPHA_GROUP2},
00418         {0x0be,"cvtqt", ALPHA_GROUP2},
00419         {0x0c0,"adds/d",        ALPHA_GROUP2},
00420         {0x0c1,"subs/d",        ALPHA_GROUP2},
00421         {0x0c2,"muls/d",        ALPHA_GROUP2},
00422         {0x0c3,"divs/d",        ALPHA_GROUP2},
00423         {0x0e0,"addt/d",        ALPHA_GROUP2},
00424         {0x0e1,"subt/d",        ALPHA_GROUP2},
00425         {0x0e2,"mult/d",        ALPHA_GROUP2},
00426         {0x0e3,"divt/d",        ALPHA_GROUP2},
00427         {0x0ec,"cvtts/d",       ALPHA_GROUP2},
00428         {0x0ef,"cvttq/d",       ALPHA_GROUP2},
00429         {0x0fc,"cvtqs/d",       ALPHA_GROUP2},
00430         {0x0fe,"cvtqt/d",       ALPHA_GROUP2},
00431         {0x100,"adds/uc",       ALPHA_GROUP2},
00432         {0x101,"subs/uc",       ALPHA_GROUP2},
00433         {0x102,"muls/uc",       ALPHA_GROUP2},
00434         {0x103,"divs/uc",       ALPHA_GROUP2},
00435         {0x120,"addt/uc",       ALPHA_GROUP2},
00436         {0x121,"subt/uc",       ALPHA_GROUP2},
00437         {0x122,"mult/uc",       ALPHA_GROUP2},
00438         {0x123,"divt/uc",       ALPHA_GROUP2},
00439         {0x12c,"cvtts/uc",      ALPHA_GROUP2},
00440         {0x12f,"cvttq/vc",      ALPHA_GROUP2},
00441         {0x140,"adds/um",       ALPHA_GROUP2},
00442         {0x141,"subs/um",       ALPHA_GROUP2},
00443         {0x142,"muls/um",       ALPHA_GROUP2},
00444         {0x143,"divs/um",       ALPHA_GROUP2},
00445         {0x160,"addt/um",       ALPHA_GROUP2},
00446         {0x161,"subt/um",       ALPHA_GROUP2},
00447         {0x162,"mult/um",       ALPHA_GROUP2},
00448         {0x163,"divt/um",       ALPHA_GROUP2},
00449         {0x16c,"cvtts/um",      ALPHA_GROUP2},
00450         {0x16f,"cvttq/vm",      ALPHA_GROUP2},
00451         {0x180,"adds/u",        ALPHA_GROUP2},
00452         {0x181,"subs/u",        ALPHA_GROUP2},
00453         {0x182,"muls/u",        ALPHA_GROUP2},
00454         {0x183,"divs/u",        ALPHA_GROUP2},
00455         {0x1a0,"addt/u",        ALPHA_GROUP2},
00456         {0x1a1,"subt/u",        ALPHA_GROUP2},
00457         {0x1a2,"mult/u",        ALPHA_GROUP2},
00458         {0x1a3,"divt/u",        ALPHA_GROUP2},
00459         {0x1ac,"cvtts/u",       ALPHA_GROUP2},
00460         {0x1af,"cvttq/v",       ALPHA_GROUP2},
00461         {0x1c0,"adds/ud",       ALPHA_GROUP2},
00462         {0x1c1,"subs/ud",       ALPHA_GROUP2},
00463         {0x1c2,"muls/ud",       ALPHA_GROUP2},
00464         {0x1c3,"divs/ud",       ALPHA_GROUP2},
00465         {0x1e0,"addt/ud",       ALPHA_GROUP2},
00466         {0x1e1,"subt/ud",       ALPHA_GROUP2},
00467         {0x1e2,"mult/ud",       ALPHA_GROUP2},
00468         {0x1e3,"divt/ud",       ALPHA_GROUP2},
00469         {0x1ec,"cvtts/ud",      ALPHA_GROUP2},
00470         {0x1ef,"cvttq/vd",      ALPHA_GROUP2},
00471         {0x2ac,"cvtst", ALPHA_GROUP2},
00472         {0x500,"adds/suc",      ALPHA_GROUP2},
00473         {0x501,"subs/suc",      ALPHA_GROUP2},
00474         {0x502,"muls/suc",      ALPHA_GROUP2},
00475         {0x503,"divs/suc",      ALPHA_GROUP2},
00476         {0x520,"addt/suc",      ALPHA_GROUP2},
00477         {0x521,"subt/suc",      ALPHA_GROUP2},
00478         {0x522,"mult/suc",      ALPHA_GROUP2},
00479         {0x523,"divt/suc",      ALPHA_GROUP2},
00480         {0x52c,"cvtts/suc",     ALPHA_GROUP2},
00481         {0x52f,"cvttq/svc",     ALPHA_GROUP2},
00482         {0x540,"adds/sum",      ALPHA_GROUP2},
00483         {0x541,"subs/sum",      ALPHA_GROUP2},
00484         {0x542,"muls/sum",      ALPHA_GROUP2},
00485         {0x543,"divs/sum",      ALPHA_GROUP2},
00486         {0x560,"addt/sum",      ALPHA_GROUP2},
00487         {0x561,"subt/sum",      ALPHA_GROUP2},
00488         {0x562,"mult/sum",      ALPHA_GROUP2},
00489         {0x563,"divt/sum",      ALPHA_GROUP2},
00490         {0x56c,"cvtts/sum",     ALPHA_GROUP2},
00491         {0x56f,"cvttq/svm",     ALPHA_GROUP2},
00492         {0x580,"adds/su",       ALPHA_GROUP2},
00493         {0x581,"subs/su",       ALPHA_GROUP2},
00494         {0x582,"muls/su",       ALPHA_GROUP2},
00495         {0x583,"divs/su",       ALPHA_GROUP2},
00496         {0x5a0,"addt/su",       ALPHA_GROUP2},
00497         {0x5a1,"subt/su",       ALPHA_GROUP2},
00498         {0x5a2,"mult/su",       ALPHA_GROUP2},
00499         {0x5a3,"divt/su",       ALPHA_GROUP2},
00500         {0x5a4,"cmptun/su",     ALPHA_GROUP2},
00501         {0x5a5,"cmpteq/su",     ALPHA_GROUP2},
00502         {0x5a6,"cmptlt/su",     ALPHA_GROUP2},
00503         {0x5a7,"cmptle/su",     ALPHA_GROUP2},
00504         {0x5ac,"cvtts/su",      ALPHA_GROUP2},
00505         {0x5af,"cvttq/sv",      ALPHA_GROUP2},
00506         {0x5c0,"adds/sud",      ALPHA_GROUP2},
00507         {0x5c1,"subs/sud",      ALPHA_GROUP2},
00508         {0x5c2,"muls/sud",      ALPHA_GROUP2},
00509         {0x5c3,"divs/sud",      ALPHA_GROUP2},
00510         {0x5e0,"addt/sud",      ALPHA_GROUP2},
00511         {0x5e1,"subt/sud",      ALPHA_GROUP2},
00512         {0x5e2,"mult/sud",      ALPHA_GROUP2},
00513         {0x5e3,"divt/sud",      ALPHA_GROUP2},
00514         {0x5ec,"cvtts/sud",     ALPHA_GROUP2},
00515         {0x5ef,"cvttq/svd",     ALPHA_GROUP2},
00516         {0x6ac,"cvtst/s",       ALPHA_GROUP2},
00517         {0x700,"adds/suic",     ALPHA_GROUP2},
00518         {0x701,"subs/suic",     ALPHA_GROUP2},
00519         {0x702,"muls/suic",     ALPHA_GROUP2},
00520         {0x703,"divs/suic",     ALPHA_GROUP2},
00521         {0x720,"addt/suic",     ALPHA_GROUP2},
00522         {0x721,"subt/suic",     ALPHA_GROUP2},
00523         {0x722,"mult/suic",     ALPHA_GROUP2},
00524         {0x723,"divt/suic",     ALPHA_GROUP2},
00525         {0x72c,"cvtts/suic",ALPHA_GROUP2},
00526         {0x72f,"cvttq/svic",ALPHA_GROUP2},
00527         {0x73c,"cvtqs/suic",ALPHA_GROUP2},
00528         {0x73e,"cvtqt/suic",ALPHA_GROUP2},
00529         {0x740,"adds/suim",     ALPHA_GROUP2},
00530         {0x741,"subs/suim",     ALPHA_GROUP2},
00531         {0x742,"muls/suim",     ALPHA_GROUP2},
00532         {0x743,"divs/suim",     ALPHA_GROUP2},
00533         {0x760,"addt/suim",     ALPHA_GROUP2},
00534         {0x761,"subt/suim",     ALPHA_GROUP2},
00535         {0x762,"mult/suim",     ALPHA_GROUP2},
00536         {0x763,"divt/suim",     ALPHA_GROUP2},
00537         {0x76c,"cvtts/suim",ALPHA_GROUP2},
00538         {0x76f,"cvttq/svim",ALPHA_GROUP2},
00539         {0x77c,"cvtqs/suim",ALPHA_GROUP2},
00540         {0x77e,"cvtqt/suim",ALPHA_GROUP2},
00541         {0x780,"adds/sui",      ALPHA_GROUP2},
00542         {0x781,"subs/sui",      ALPHA_GROUP2},
00543         {0x782,"muls/sui",      ALPHA_GROUP2},
00544         {0x783,"divs/sui",      ALPHA_GROUP2},
00545         {0x7a0,"addt/sui",      ALPHA_GROUP2},
00546         {0x7a1,"subt/sui",      ALPHA_GROUP2},
00547         {0x7a2,"mult/sui",      ALPHA_GROUP2},
00548         {0x7a3,"divt/sui",      ALPHA_GROUP2},
00549         {0x7ac,"cvtts/sui",     ALPHA_GROUP2},
00550         {0x7af,"cvttq/svi",     ALPHA_GROUP2},
00551         {0x7bc,"cvtqs/sui",     ALPHA_GROUP2},
00552         {0x7be,"cvtqt/sui",     ALPHA_GROUP2},
00553         {0x7c0,"adds/suid",     ALPHA_GROUP2},
00554         {0x7c1,"subs/suid",     ALPHA_GROUP2},
00555         {0x7c2,"muls/suid",     ALPHA_GROUP2},
00556         {0x7c3,"divs/suid",     ALPHA_GROUP2},
00557         {0x7e0,"addt/suid",     ALPHA_GROUP2},
00558         {0x7e1,"subt/suid",     ALPHA_GROUP2},
00559         {0x7e2,"mult/suid",     ALPHA_GROUP2},
00560         {0x7e3,"divt/suid",     ALPHA_GROUP2},
00561         {0x7ec,"cvtts/suid",ALPHA_GROUP2},
00562         {0x7ef,"cvttq/svid",ALPHA_GROUP2},
00563         {0x7fc,"cvtqs/suid",ALPHA_GROUP2},
00564         {0x7fe,"cvtqt/suid",ALPHA_GROUP2},
00565         {0xfff,"",              ALPHA_ERROR}
00566 };
00567 
00568 /* table17 */
00569 alpha_opcode_tab_entry alpha_instr_tbl_ext17[] =
00570 {    
00571         {0x000,"",              ALPHA_ERROR},
00572         {0x010,"cvtlq", ALPHA_GROUP2},
00573         {0x020,"cpys",          ALPHA_GROUP2},
00574         {0x021,"cpysn", ALPHA_GROUP2},
00575         {0x022,"cpyse", ALPHA_GROUP2},
00576         {0x024,"mt_fpcr",       ALPHA_GROUP2},
00577         {0x025,"mf_fpcr",       ALPHA_GROUP2},
00578         {0x02a,"fcmoveq",       ALPHA_GROUP2},
00579         {0x02b,"fcmovne",       ALPHA_GROUP2},
00580         {0x02c,"fcmovlt",       ALPHA_GROUP2},
00581         {0x02d,"fcmovge",       ALPHA_GROUP2},
00582         {0x02e,"fcmovle",       ALPHA_GROUP2},
00583         {0x02f,"fcmovgt",       ALPHA_GROUP2},
00584         {0x030,"cvtql", ALPHA_GROUP2},
00585         {0x130,"cvtql/v",       ALPHA_GROUP2},
00586         {0x530,"cvtql/sv",      ALPHA_GROUP2},
00587         {0xfff,"",              ALPHA_ERROR}
00588 };
00589     
00590 /* table18 */
00591 alpha_opcode_tab_entry alpha_instr_tbl_ext18[] =
00592 {
00593         {0x0000,"trapb",        ALPHA_GROUP3},
00594         {0x0400,"excb", ALPHA_GROUP3},
00595         {0x4000,"mb",           ALPHA_GROUP3},
00596         {0x4400,"wmb",          ALPHA_GROUP3},
00597         {0x8000,"fetch",        ALPHA_GROUP3},
00598         {0xa000,"fetch_m",      ALPHA_GROUP3},
00599         {0xc000,"rpcc", ALPHA_GROUP3},
00600         {0xe000,"rc",           ALPHA_ERROR},
00601         {0xe800,"ecb",          ALPHA_ERROR},
00602         {0xf000,"rs",           ALPHA_ERROR},
00603         {0xf800,"wh64", ALPHA_ERROR},
00604         {0xffff,"",             ALPHA_ERROR}
00605 };
00606 
00607 /* table1a */
00608 alpha_opcode_tab_entry alpha_instr_tbl_ext1a[] =
00609 {    
00610         {0x0,"jmp",             ALPHA_GROUP_JMP},
00611         {0x1,"jsr",             ALPHA_GROUP_JMP},
00612         {0x2,"ret",             ALPHA_GROUP_JMP},
00613         {0x3,"jsr_co",          ALPHA_GROUP_JMP},
00614         {0xf,"",                        ALPHA_ERROR}
00615 };
00616 
00617 /* table1c */
00618 alpha_opcode_tab_entry alpha_instr_tbl_ext1c[] =
00619 {
00620         {0x00,"sextb",          ALPHA_GROUP1},
00621         {0x01,"sextw",          ALPHA_GROUP1},
00622         {0x30,"ctpop",          ALPHA_GROUP1},
00623         {0x31,"perr",           ALPHA_GROUP1},
00624         {0x32,"ctlz",           ALPHA_GROUP1},
00625         {0x33,"cttz",           ALPHA_GROUP1},
00626         {0x34,"unpkbw", ALPHA_GROUP1},
00627         {0x35,"unpkbl", ALPHA_GROUP1},
00628         {0x36,"pkwb",           ALPHA_GROUP1},
00629         {0x37,"pklb",           ALPHA_GROUP1},
00630         {0x38,"minsb8", ALPHA_GROUP1},
00631         {0x39,"minsw4", ALPHA_GROUP1},
00632         {0x3a,"minub8", ALPHA_GROUP1},
00633         {0x3b,"minuw4", ALPHA_GROUP1},
00634         {0x3c,"maxub8", ALPHA_GROUP1},
00635         {0x3d,"maxuw4", ALPHA_GROUP1},
00636         {0x3e,"maxsb8", ALPHA_GROUP1},
00637         {0x3f,"maxsw4", ALPHA_GROUP1},
00638         {0x70,"ftoit",          ALPHA_GROUP_F2I},
00639         {0x78,"ftois",          ALPHA_GROUP_F2I},
00640         {0xff,"",                       ALPHA_ERROR}
00641 };
00642 

Generated on Fri May 7 21:15:28 2004 by doxygen 1.3.5