00001 /* 00002 * HT Editor 00003 * alphaopc.h 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 #ifndef ALPHAOPC_H 00022 #define ALPHAOPC_H 00023 00024 #include "global.h" 00025 00026 struct alpha_opcode_tab_entry { 00027 word fcode; 00028 char *name; 00029 byte type; 00030 }; 00031 00032 extern char *alpha_reg_names[]; 00033 extern alpha_opcode_tab_entry alpha_instr_tbl[]; 00034 extern alpha_opcode_tab_entry alpha_instr_tbl_ext10[]; 00035 extern alpha_opcode_tab_entry alpha_instr_tbl_ext11[]; 00036 extern alpha_opcode_tab_entry alpha_instr_tbl_ext12[]; 00037 extern alpha_opcode_tab_entry alpha_instr_tbl_ext13[]; 00038 extern alpha_opcode_tab_entry alpha_instr_tbl_ext14[]; 00039 extern alpha_opcode_tab_entry alpha_instr_tbl_ext15[]; 00040 extern alpha_opcode_tab_entry alpha_instr_tbl_ext16[]; 00041 extern alpha_opcode_tab_entry alpha_instr_tbl_ext17[]; 00042 extern alpha_opcode_tab_entry alpha_instr_tbl_ext18[]; 00043 extern alpha_opcode_tab_entry alpha_instr_tbl_ext1a[]; 00044 extern alpha_opcode_tab_entry alpha_instr_tbl_ext1c[]; 00045 00046 #define REG_ZERO 0x1f 00047 #define REG_FLOAT 0x20 00048 #define REG_FZERO 0x3f 00049 #define REG_LIT 0x40 00050 00051 00052 /* unknown/undefined/illegal opcode */ 00053 #define ALPHA_ERROR 0 00054 00055 /* extensions */ 00056 #define ALPHA_EXTENSION_10 100 00057 #define ALPHA_EXTENSION_11 101 00058 #define ALPHA_EXTENSION_12 102 00059 #define ALPHA_EXTENSION_13 103 00060 #define ALPHA_EXTENSION_14 104 00061 #define ALPHA_EXTENSION_15 105 00062 #define ALPHA_EXTENSION_16 106 00063 #define ALPHA_EXTENSION_17 107 00064 #define ALPHA_EXTENSION_18 108 00065 #define ALPHA_EXTENSION_1A 109 00066 #define ALPHA_EXTENSION_1C 110 00067 00068 /* opcode groups somehow without system */ 00069 #define ALPHA_GROUP1 200 00070 #define ALPHA_GROUP2 201 00071 #define ALPHA_GROUP3 202 00072 #define ALPHA_GROUP_FLD 203 00073 #define ALPHA_GROUP4 204 00074 #define ALPHA_GROUP_FST 205 00075 #define ALPHA_GROUP_F2I 206 00076 #define ALPHA_GROUP_I2F 207 00077 #define ALPHA_GROUP_BRA 208 00078 #define ALPHA_GROUP_FBR 209 00079 #define ALPHA_GROUP_JMP 210 00080 #define ALPHA_GROUP_PAL 211 00081 00082 #endif