📄 alphaopc.cc
字号:
/* * HT Editor * alphaopc.cc * * Copyright (C) 1999-2002 Sebastian Biallas (sb@biallas.net) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */#include "alphaopc.h"const char *alpha_reg_names[] = {/* 0 */ "v0",/* 1- 8 */ "t0","t1","t2","t3","t4","t5","t6","t7",/* 9-15 */ "s0","s1","s2","s3","s4","s5","s6/fp",/* 16-21 */ "a0","a1","a2","a3","a4","a5",/* 22-25 */ "t8","t9","t10","t11",/* 26-31 */ "ra","t12/pv","at","gp","sp","zero",/* 32-39 */ "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7",/* 40-47 */ "f8", "f9", "f10","f11","f12","f13","f14","f15",/* 48-55 */ "f16","f17","f18","f19","?", "?", "?", "?",/* 56-64 */ "?", "?", "?", "?", "?", "?", "?", "fzero", "lit"};alpha_opcode_tab_entry alpha_instr_tbl[] ={ {0x00,"call_pal", ALPHA_GROUP_PAL}, {0x01,"opcode01", ALPHA_ERROR}, {0x02,"opcode02", ALPHA_ERROR}, {0x03,"opcode03", ALPHA_ERROR}, {0x04,"opcode04", ALPHA_ERROR}, {0x05,"opcode05", ALPHA_ERROR}, {0x06,"opcode06", ALPHA_ERROR}, {0x07,"opcode07", ALPHA_ERROR}, {0x08,"lda", ALPHA_GROUP3}, {0x09,"ldah", ALPHA_GROUP3}, {0x0a,"ldbu", ALPHA_GROUP3}, {0x0b,"ldq_u", ALPHA_GROUP3}, {0x0c,"ldwu", ALPHA_GROUP3}, {0x0d,"stw", ALPHA_GROUP4}, {0x0e,"stb", ALPHA_GROUP4}, {0x0f,"stq_u", ALPHA_GROUP4}, {0x10,"opcode10", ALPHA_EXTENSION_10}, {0x11,"opcode11", ALPHA_EXTENSION_11}, {0x12,"opcode12", ALPHA_EXTENSION_12}, {0x13,"opcode13", ALPHA_EXTENSION_13}, {0x14,"opcode14", ALPHA_EXTENSION_14}, {0x15,"opcode15", ALPHA_EXTENSION_15}, {0x16,"opcode16", ALPHA_EXTENSION_16}, {0x17,"opcode17", ALPHA_EXTENSION_17}, {0x18,"opcode18", ALPHA_EXTENSION_18}, {0x19,"pal19", ALPHA_ERROR}, {0x1a,"opcode1a", ALPHA_EXTENSION_1A}, {0x1b,"pal1b", ALPHA_ERROR}, {0x1c,"opcode1c", ALPHA_EXTENSION_1C}, {0x1d,"pal1d", ALPHA_ERROR}, {0x1e,"pal1e", ALPHA_ERROR}, {0x1f,"pal1f", ALPHA_ERROR}, {0x20,"ldf", ALPHA_GROUP_FLD}, {0x21,"ldg", ALPHA_GROUP_FLD}, {0x22,"lds", ALPHA_GROUP_FLD}, {0x23,"ldt", ALPHA_GROUP_FLD}, {0x24,"stf", ALPHA_GROUP_FST}, {0x25,"stg", ALPHA_GROUP_FST}, {0x26,"sts", ALPHA_GROUP_FST}, {0x27,"stt", ALPHA_GROUP_FST}, {0x28,"ldl", ALPHA_GROUP3}, {0x29,"ldq", ALPHA_GROUP3}, {0x2a,"ldl_l", ALPHA_GROUP3}, {0x2b,"ldq_l", ALPHA_GROUP3}, {0x2c,"stl", ALPHA_GROUP4}, {0x2d,"stq", ALPHA_GROUP4}, {0x2e,"stl_c", ALPHA_GROUP4}, {0x2f,"stq_c", ALPHA_GROUP4}, {0x30,"br", ALPHA_GROUP_BRA}, {0x31,"fbeq", ALPHA_GROUP_FBR}, {0x32,"fblt", ALPHA_GROUP_FBR}, {0x33,"fble", ALPHA_GROUP_FBR}, {0x34,"bsr", ALPHA_GROUP_BRA}, {0x35,"fbne", ALPHA_GROUP_FBR}, {0x36,"fbge", ALPHA_GROUP_FBR}, {0x37,"fbgt", ALPHA_GROUP_FBR}, {0x38,"blbc", ALPHA_GROUP_BRA}, {0x39,"beq", ALPHA_GROUP_BRA}, {0x3a,"blt", ALPHA_GROUP_BRA}, {0x3b,"ble", ALPHA_GROUP_BRA}, {0x3c,"blbs", ALPHA_GROUP_BRA}, {0x3d,"bne", ALPHA_GROUP_BRA}, {0x3e,"bge", ALPHA_GROUP_BRA}, {0x3f,"bgt", ALPHA_GROUP_BRA}};/* table10 */alpha_opcode_tab_entry alpha_instr_tbl_ext10[] ={ {0x00,"addl", ALPHA_GROUP1}, {0x02,"s4addl", ALPHA_GROUP1}, {0x09,"subl", ALPHA_GROUP1}, {0x0b,"s4subl", ALPHA_GROUP1}, {0x0f,"cmpbge", ALPHA_GROUP1}, {0x12,"s8addl", ALPHA_GROUP1}, {0x1b,"s8subl", ALPHA_GROUP1}, {0x1d,"cmpult", ALPHA_GROUP1}, {0x20,"addq", ALPHA_GROUP1}, {0x22,"s4addq", ALPHA_GROUP1}, {0x29,"subq", ALPHA_GROUP1}, {0x2b,"s4subq", ALPHA_GROUP1}, {0x2d,"cmpeq", ALPHA_GROUP1}, {0x32,"s8addq", ALPHA_GROUP1}, {0x3b,"s8subq", ALPHA_GROUP1}, {0x3d,"cmpule", ALPHA_GROUP1}, {0x40,"addl/v", ALPHA_GROUP1}, {0x49,"subl/v", ALPHA_GROUP1}, {0x4d,"cmplt", ALPHA_GROUP1}, {0x60,"addq/v", ALPHA_GROUP1}, {0x69,"subq/v", ALPHA_GROUP1}, {0x6d,"cmple", ALPHA_GROUP1}, {0xff,"", ALPHA_ERROR}};/* table11 */alpha_opcode_tab_entry alpha_instr_tbl_ext11[] ={ {0x00,"and", ALPHA_GROUP1}, {0x08,"bic", ALPHA_GROUP1}, {0x14,"cmovlbs", ALPHA_GROUP1}, {0x16,"cmovlbc", ALPHA_GROUP1}, {0x20,"bis", ALPHA_GROUP1}, {0x24,"cmoveq", ALPHA_GROUP1}, {0x26,"cmovne", ALPHA_GROUP1}, {0x28,"ornot", ALPHA_GROUP1}, {0x40,"xor", ALPHA_GROUP1}, {0x44,"cmovlt", ALPHA_GROUP1}, {0x46,"cmovge", ALPHA_GROUP1}, {0x48,"eqv", ALPHA_GROUP1}, {0x61,"amask", ALPHA_GROUP3}, {0x64,"cmovle", ALPHA_GROUP1}, {0x66,"cmovgt", ALPHA_GROUP1}, {0x6c,"implver", ALPHA_GROUP3}, {0xff,"", ALPHA_ERROR}};/* table12 */alpha_opcode_tab_entry alpha_instr_tbl_ext12[] ={ {0x00,"", ALPHA_ERROR}, {0x02,"mskbl", ALPHA_GROUP1}, {0x06,"extbl", ALPHA_GROUP1}, {0x0b,"insbl", ALPHA_GROUP1}, {0x12,"mskwl", ALPHA_GROUP1}, {0x16,"extwl", ALPHA_GROUP1}, {0x1b,"inswl", ALPHA_GROUP1}, {0x22,"mskll", ALPHA_GROUP1}, {0x26,"extll", ALPHA_GROUP1}, {0x2b,"insll", ALPHA_GROUP1}, {0x30,"zap", ALPHA_GROUP1}, {0x31,"zapnot", ALPHA_GROUP1}, {0x32,"mskql", ALPHA_GROUP1}, {0x34,"srl", ALPHA_GROUP1}, {0x36,"extql", ALPHA_GROUP1}, {0x39,"sll", ALPHA_GROUP1}, {0x3b,"insql", ALPHA_GROUP1}, {0x3c,"sra", ALPHA_GROUP1}, {0x52,"mskwh", ALPHA_GROUP1}, {0x57,"inswh", ALPHA_GROUP1}, {0x5a,"extwh", ALPHA_GROUP1}, {0x62,"msklh", ALPHA_GROUP1}, {0x67,"inslh", ALPHA_GROUP1}, {0x6a,"extlh", ALPHA_GROUP1}, {0x72,"mskqh", ALPHA_GROUP1}, {0x77,"insqh", ALPHA_GROUP1}, {0x7a,"extqh", ALPHA_GROUP1}, {0xff,"", ALPHA_ERROR}};/* table13 */alpha_opcode_tab_entry alpha_instr_tbl_ext13[] ={ {0x00,"mull", ALPHA_GROUP1}, {0x20,"mulq", ALPHA_GROUP1}, {0x30,"umulh", ALPHA_GROUP1}, {0x40,"mull/v", ALPHA_GROUP1}, {0x60,"mulq/v", ALPHA_GROUP1}, {0xff,"", ALPHA_ERROR}};/* table14 */alpha_opcode_tab_entry alpha_instr_tbl_ext14[] ={ {0x000,"", ALPHA_ERROR}, {0x004,"itofs", ALPHA_GROUP_I2F}, {0x00a,"sqrtf/c", ALPHA_ERROR}, {0x00b,"sqrts/c", ALPHA_ERROR}, {0x014,"itoff", ALPHA_GROUP_I2F}, {0x024,"itoft", ALPHA_GROUP_I2F}, {0x02a,"sqrtg/c", ALPHA_ERROR}, {0x02b,"sqrtt/c", ALPHA_ERROR}, {0x04b,"sqrts/m", ALPHA_ERROR}, {0x06b,"sqrtt/m", ALPHA_ERROR}, {0x08a,"sqrtf", ALPHA_ERROR}, {0x08b,"sqrts", ALPHA_ERROR}, {0x0aa,"sqrtg", ALPHA_ERROR}, {0x0ab,"sqrtt", ALPHA_ERROR}, {0x0cb,"sqrts/d", ALPHA_ERROR}, {0x0eb,"sqrtt/d", ALPHA_ERROR}, {0x10a,"sqrtf/uc", ALPHA_ERROR}, {0x10b,"sqrts/uc", ALPHA_ERROR}, {0x12a,"sqrtg/uc", ALPHA_ERROR}, {0x12b,"sqrtt/uc", ALPHA_ERROR}, {0x14b,"sqrts/um", ALPHA_ERROR}, {0x16b,"sqrtt/um", ALPHA_ERROR}, {0x18a,"sqrtf/u", ALPHA_ERROR}, {0x18b,"sqrts/u", ALPHA_ERROR}, {0x1aa,"sqrtg/u", ALPHA_ERROR}, {0x1ab,"sqrtt/u", ALPHA_ERROR}, {0x1cb,"sqrts/ud", ALPHA_ERROR}, {0x1eb,"sqrtt/ud", ALPHA_ERROR}, {0x40a,"sqrtf/sc", ALPHA_ERROR}, {0x42a,"sqrtg/sc", ALPHA_ERROR}, {0x48a,"sqrtf/s", ALPHA_ERROR}, {0x4aa,"sqrtg/s", ALPHA_ERROR}, {0x50a,"sqrtf/suc", ALPHA_ERROR}, {0x50b,"sqrts/suc", ALPHA_ERROR}, {0x52a,"sqrtg/suc", ALPHA_ERROR}, {0x52b,"sqrtt/suc", ALPHA_ERROR}, {0x54b,"sqrts/sum", ALPHA_ERROR}, {0x56b,"sqrtt/sum", ALPHA_ERROR}, {0x58a,"sqrtf/su", ALPHA_ERROR}, {0x58b,"sqrts/su", ALPHA_ERROR}, {0x5aa,"sqrtg/su", ALPHA_ERROR}, {0x5ab,"sqrtt/su", ALPHA_ERROR}, {0x5cb,"sqrts/sud", ALPHA_ERROR}, {0x5eb,"sqrtt/sud", ALPHA_ERROR}, {0x70b,"sqrts/suic",ALPHA_ERROR}, {0x72b,"sqrtt/suic",ALPHA_ERROR}, {0x74b,"sqrts/suim",ALPHA_ERROR}, {0x76b,"sqrtt/suim",ALPHA_ERROR}, {0x78b,"sqrts/sui", ALPHA_ERROR}, {0x7ab,"sqrtt/sui", ALPHA_ERROR}, {0x7cb,"sqrts/suid",ALPHA_ERROR}, {0x7eb,"sqrtt/suid",ALPHA_ERROR}, {0xfff,"", ALPHA_ERROR}};/* table15 */alpha_opcode_tab_entry alpha_instr_tbl_ext15[] ={ {0x000,"addf/c", ALPHA_GROUP2}, {0x001,"subf/c", ALPHA_GROUP2}, {0x002,"mulf/c", ALPHA_GROUP2}, {0x003,"divf/c", ALPHA_GROUP2}, {0x01e,"cvtdg/c", ALPHA_GROUP2}, {0x020,"addg/c", ALPHA_GROUP2}, {0x021,"subg/c", ALPHA_GROUP2}, {0x022,"mulg/c", ALPHA_GROUP2}, {0x023,"divg/c", ALPHA_GROUP2}, {0x02c,"cvtgf/c", ALPHA_GROUP2}, {0x02d,"cvtgd/c", ALPHA_GROUP2}, {0x02f,"cvtgq/c", ALPHA_GROUP2}, {0x03c,"cvtqf/c", ALPHA_GROUP2}, {0x03e,"cvtqg/c", ALPHA_GROUP2}, {0x080,"addf", ALPHA_GROUP2}, {0x081,"subf", ALPHA_GROUP2}, {0x082,"mulf", ALPHA_GROUP2}, {0x083,"divf", ALPHA_GROUP2}, {0x09e,"cvtdg", ALPHA_GROUP2}, {0x0a0,"addg", ALPHA_GROUP2}, {0x0a1,"subg", ALPHA_GROUP2}, {0x0a2,"mulg", ALPHA_GROUP2}, {0x0a3,"divg", ALPHA_GROUP2}, {0x0a5,"cmpgeq", ALPHA_GROUP2}, {0x0a6,"cmpglt", ALPHA_GROUP2}, {0x0a7,"cmpgle", ALPHA_GROUP2}, {0x0ac,"cvtgf", ALPHA_GROUP2}, {0x0ad,"cvtgd", ALPHA_GROUP2}, {0x0af,"cvtgq", ALPHA_GROUP2}, {0x0bc,"cvtqf", ALPHA_GROUP2}, {0x0be,"cvtqg", ALPHA_GROUP2}, {0x100,"addf/uc", ALPHA_GROUP2}, {0x101,"subf/uc", ALPHA_GROUP2}, {0x102,"mulf/uc", ALPHA_GROUP2}, {0x103,"divf/uc", ALPHA_GROUP2}, {0x11e,"cvtdg/uc", ALPHA_GROUP2}, {0x120,"addg/uc", ALPHA_GROUP2}, {0x121,"subg/uc", ALPHA_GROUP2}, {0x122,"mulg/uc", ALPHA_GROUP2}, {0x123,"divg/uc", ALPHA_GROUP2}, {0x12c,"cvtgf/uc", ALPHA_GROUP2}, {0x12d,"cvtgd/uc", ALPHA_GROUP2}, {0x12f,"cvtgq/vc", ALPHA_GROUP2}, {0x180,"addf/u", ALPHA_GROUP2}, {0x181,"subf/u", ALPHA_GROUP2}, {0x182,"mulf/u", ALPHA_GROUP2}, {0x183,"divf/u", ALPHA_GROUP2}, {0x19e,"cvtdg/u", ALPHA_GROUP2}, {0x1a0,"addg/u", ALPHA_GROUP2}, {0x1a1,"subg/u", ALPHA_GROUP2}, {0x1a2,"mulg/u", ALPHA_GROUP2}, {0x1a3,"divg/u", ALPHA_GROUP2}, {0x1ac,"cvtgf/u", ALPHA_GROUP2}, {0x1ad,"cvtgd/u", ALPHA_GROUP2}, {0x1af,"cvtgq/v", ALPHA_GROUP2}, {0x400,"addf/sc", ALPHA_GROUP2},
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -