📄 decode.c
字号:
// OBSOLETE {// OBSOLETE init_idesc (cpu, & table[t->index], t);// OBSOLETE }// OBSOLETE // OBSOLETE /* Link the IDESC table into the cpu. */// OBSOLETE CPU_IDESC (cpu) = table;// OBSOLETE }// OBSOLETE // OBSOLETE /* Given an instruction, return a pointer to its IDESC entry. */// OBSOLETE // OBSOLETE const IDESC *// OBSOLETE fr30bf_decode (SIM_CPU *current_cpu, IADDR pc,// OBSOLETE CGEN_INSN_INT base_insn,// OBSOLETE ARGBUF *abuf)// OBSOLETE {// OBSOLETE /* Result of decoder. */// OBSOLETE FR30BF_INSN_TYPE itype;// OBSOLETE // OBSOLETE {// OBSOLETE CGEN_INSN_INT insn = base_insn;// OBSOLETE // OBSOLETE {// OBSOLETE unsigned int val = (((insn >> 8) & (255 << 0)));// OBSOLETE switch (val)// OBSOLETE {// OBSOLETE case 0 : itype = FR30BF_INSN_LDR13;goto extract_sfmt_ldr13;// OBSOLETE case 1 : itype = FR30BF_INSN_LDR13UH;goto extract_sfmt_ldr13uh;// OBSOLETE case 2 : itype = FR30BF_INSN_LDR13UB;goto extract_sfmt_ldr13ub;// OBSOLETE case 3 : itype = FR30BF_INSN_LDR15;goto extract_sfmt_ldr15;// OBSOLETE case 4 : itype = FR30BF_INSN_LD;goto extract_sfmt_ld;// OBSOLETE case 5 : itype = FR30BF_INSN_LDUH;goto extract_sfmt_lduh;// OBSOLETE case 6 : itype = FR30BF_INSN_LDUB;goto extract_sfmt_ldub;// OBSOLETE case 7 :// OBSOLETE {// OBSOLETE unsigned int val = (((insn >> 6) & (1 << 1)) | ((insn >> 4) & (1 << 0)));// OBSOLETE switch (val)// OBSOLETE {// OBSOLETE case 0 : itype = FR30BF_INSN_LDR15GR;goto extract_sfmt_ldr15gr;// OBSOLETE case 1 : itype = FR30BF_INSN_MOV2PS;goto extract_sfmt_mov2ps;// OBSOLETE case 2 : itype = FR30BF_INSN_LDR15DR;goto extract_sfmt_ldr15dr;// OBSOLETE case 3 : itype = FR30BF_INSN_LDR15PS;goto extract_sfmt_ldr15ps;// OBSOLETE default : itype = FR30BF_INSN_X_INVALID; goto extract_sfmt_empty;// OBSOLETE }// OBSOLETE }// OBSOLETE case 8 : itype = FR30BF_INSN_DMOV2R13;goto extract_sfmt_dmov2r13;// OBSOLETE case 9 : itype = FR30BF_INSN_DMOV2R13H;goto extract_sfmt_dmov2r13h;// OBSOLETE case 10 : itype = FR30BF_INSN_DMOV2R13B;goto extract_sfmt_dmov2r13b;// OBSOLETE case 11 : itype = FR30BF_INSN_DMOV2R15PD;goto extract_sfmt_dmov2r15pd;// OBSOLETE case 12 : itype = FR30BF_INSN_DMOV2R13PI;goto extract_sfmt_dmov2r13pi;// OBSOLETE case 13 : itype = FR30BF_INSN_DMOV2R13PIH;goto extract_sfmt_dmov2r13pih;// OBSOLETE case 14 : itype = FR30BF_INSN_DMOV2R13PIB;goto extract_sfmt_dmov2r13pib;// OBSOLETE case 15 : itype = FR30BF_INSN_ENTER;goto extract_sfmt_enter;// OBSOLETE case 16 : itype = FR30BF_INSN_STR13;goto extract_sfmt_str13;// OBSOLETE case 17 : itype = FR30BF_INSN_STR13H;goto extract_sfmt_str13h;// OBSOLETE case 18 : itype = FR30BF_INSN_STR13B;goto extract_sfmt_str13b;// OBSOLETE case 19 : itype = FR30BF_INSN_STR15;goto extract_sfmt_str15;// OBSOLETE case 20 : itype = FR30BF_INSN_ST;goto extract_sfmt_st;// OBSOLETE case 21 : itype = FR30BF_INSN_STH;goto extract_sfmt_sth;// OBSOLETE case 22 : itype = FR30BF_INSN_STB;goto extract_sfmt_stb;// OBSOLETE case 23 :// OBSOLETE {// OBSOLETE unsigned int val = (((insn >> 6) & (1 << 1)) | ((insn >> 4) & (1 << 0)));// OBSOLETE switch (val)// OBSOLETE {// OBSOLETE case 0 : itype = FR30BF_INSN_STR15GR;goto extract_sfmt_str15gr;// OBSOLETE case 1 : itype = FR30BF_INSN_MOVPS;goto extract_sfmt_movps;// OBSOLETE case 2 : itype = FR30BF_INSN_STR15DR;goto extract_sfmt_str15dr;// OBSOLETE case 3 : itype = FR30BF_INSN_STR15PS;goto extract_sfmt_str15ps;// OBSOLETE default : itype = FR30BF_INSN_X_INVALID; goto extract_sfmt_empty;// OBSOLETE }// OBSOLETE }// OBSOLETE case 24 : itype = FR30BF_INSN_DMOVR13;goto extract_sfmt_dmovr13;// OBSOLETE case 25 : itype = FR30BF_INSN_DMOVR13H;goto extract_sfmt_dmovr13h;// OBSOLETE case 26 : itype = FR30BF_INSN_DMOVR13B;goto extract_sfmt_dmovr13b;// OBSOLETE case 27 : itype = FR30BF_INSN_DMOVR15PI;goto extract_sfmt_dmovr15pi;// OBSOLETE case 28 : itype = FR30BF_INSN_DMOVR13PI;goto extract_sfmt_dmovr13pi;// OBSOLETE case 29 : itype = FR30BF_INSN_DMOVR13PIH;goto extract_sfmt_dmovr13pih;// OBSOLETE case 30 : itype = FR30BF_INSN_DMOVR13PIB;goto extract_sfmt_dmovr13pib;// OBSOLETE case 31 : itype = FR30BF_INSN_INT;goto extract_sfmt_int;// OBSOLETE case 32 : /* fall through */// OBSOLETE case 33 : /* fall through */// OBSOLETE case 34 : /* fall through */// OBSOLETE case 35 : /* fall through */// OBSOLETE case 36 : /* fall through */// OBSOLETE case 37 : /* fall through */// OBSOLETE case 38 : /* fall through */// OBSOLETE case 39 : /* fall through */// OBSOLETE case 40 : /* fall through */// OBSOLETE case 41 : /* fall through */// OBSOLETE case 42 : /* fall through */// OBSOLETE case 43 : /* fall through */// OBSOLETE case 44 : /* fall through */// OBSOLETE case 45 : /* fall through */// OBSOLETE case 46 : /* fall through */// OBSOLETE case 47 : itype = FR30BF_INSN_LDR14;goto extract_sfmt_ldr14;// OBSOLETE case 48 : /* fall through */// OBSOLETE case 49 : /* fall through */// OBSOLETE case 50 : /* fall through */// OBSOLETE case 51 : /* fall through */// OBSOLETE case 52 : /* fall through */// OBSOLETE case 53 : /* fall through */// OBSOLETE case 54 : /* fall through */// OBSOLETE case 55 : /* fall through */// OBSOLETE case 56 : /* fall through */// OBSOLETE case 57 : /* fall through */// OBSOLETE case 58 : /* fall through */// OBSOLETE case 59 : /* fall through */// OBSOLETE case 60 : /* fall through */// OBSOLETE case 61 : /* fall through */// OBSOLETE case 62 : /* fall through */// OBSOLETE case 63 : itype = FR30BF_INSN_STR14;goto extract_sfmt_str14;// OBSOLETE case 64 : /* fall through */// OBSOLETE case 65 : /* fall through */// OBSOLETE case 66 : /* fall through */// OBSOLETE case 67 : /* fall through */// OBSOLETE case 68 : /* fall through */// OBSOLETE case 69 : /* fall through */// OBSOLETE case 70 : /* fall through */// OBSOLETE case 71 : /* fall through */// OBSOLETE case 72 : /* fall through */// OBSOLETE case 73 : /* fall through */// OBSOLETE case 74 : /* fall through */// OBSOLETE case 75 : /* fall through */// OBSOLETE case 76 : /* fall through */// OBSOLETE case 77 : /* fall through */// OBSOLETE case 78 : /* fall through */// OBSOLETE case 79 : itype = FR30BF_INSN_LDR14UH;goto extract_sfmt_ldr14uh;// OBSOLETE case 80 : /* fall through */// OBSOLETE case 81 : /* fall through */// OBSOLETE case 82 : /* fall through */// OBSOLETE case 83 : /* fall through */// OBSOLETE case 84 : /* fall through */// OBSOLETE case 85 : /* fall through */// OBSOLETE case 86 : /* fall through */// OBSOLETE case 87 : /* fall through */// OBSOLETE case 88 : /* fall through */// OBSOLETE case 89 : /* fall through */// OBSOLETE case 90 : /* fall through */// OBSOLETE case 91 : /* fall through */// OBSOLETE case 92 : /* fall through */// OBSOLETE case 93 : /* fall through */// OBSOLETE case 94 : /* fall through */// OBSOLETE case 95 : itype = FR30BF_INSN_STR14H;goto extract_sfmt_str14h;// OBSOLETE case 96 : /* fall through */// OBSOLETE case 97 : /* fall through */// OBSOLETE case 98 : /* fall through */// OBSOLETE case 99 : /* fall through */// OBSOLETE case 100 : /* fall through */// OBSOLETE case 101 : /* fall through */// OBSOLETE case 102 : /* fall through */// OBSOLETE case 103 : /* fall through */// OBSOLETE case 104 : /* fall through */// OBSOLETE case 105 : /* fall through */// OBSOLETE case 106 : /* fall through */// OBSOLETE case 107 : /* fall through */// OBSOLETE case 108 : /* fall through */// OBSOLETE case 109 : /* fall through */// OBSOLETE case 110 : /* fall through */// OBSOLETE case 111 : itype = FR30BF_INSN_LDR14UB;goto extract_sfmt_ldr14ub;// OBSOLETE case 112 : /* fall through */// OBSOLETE case 113 : /* fall through */// OBSOLETE case 114 : /* fall through */// OBSOLETE case 115 : /* fall through */// OBSOLETE case 116 : /* fall through */// OBSOLETE case 117 : /* fall through */// OBSOLETE case 118 : /* fall through */// OBSOLETE case 119 : /* fall through */// OBSOLETE case 120 : /* fall through */// OBSOLETE case 121 : /* fall through */// OBSOLETE case 122 : /* fall through */// OBSOLETE case 123 : /* fall through */// OBSOLETE case 124 : /* fall through */// OBSOLETE case 125 : /* fall through */// OBSOLETE case 126 : /* fall through */// OBSOLETE case 127 : itype = FR30BF_INSN_STR14B;goto extract_sfmt_str14b;// OBSOLETE case 128 : itype = FR30BF_INSN_BANDL;goto extract_sfmt_bandl;// OBSOLETE case 129 : itype = FR30BF_INSN_BANDH;goto extract_sfmt_bandl;// OBSOLETE case 130 : itype = FR30BF_INSN_AND;goto extract_sfmt_and;// OBSOLETE case 131 : itype = FR30BF_INSN_ANDCCR;goto extract_sfmt_andccr;// OBSOLETE case 132 : itype = FR30BF_INSN_ANDM;goto extract_sfmt_andm;// OBSOLETE case 133 : itype = FR30BF_INSN_ANDH;goto extract_sfmt_andh;// OBSOLETE case 134 : itype = FR30BF_INSN_ANDB;goto extract_sfmt_andb;// OBSOLETE case 135 : itype = FR30BF_INSN_STILM;goto extract_sfmt_stilm;// OBSOLETE case 136 : itype = FR30BF_INSN_BTSTL;goto extract_sfmt_btstl;// OBSOLETE case 137 : itype = FR30BF_INSN_BTSTH;goto extract_sfmt_btstl;// OBSOLETE case 138 : itype = FR30BF_INSN_XCHB;goto extract_sfmt_xchb;// OBSOLETE case 139 : itype = FR30BF_INSN_MOV;goto extract_sfmt_mov;// OBSOLETE case 140 : itype = FR30BF_INSN_LDM0;goto extract_sfmt_ldm0;// OBSOLETE case 141 : itype = FR30BF_INSN_LDM1;goto extract_sfmt_ldm1;// OBSOLETE case 142 : itype = FR30BF_INSN_STM0;goto extract_sfmt_stm0;// OBSOLETE case 143 : itype = FR30BF_INSN_STM1;goto extract_sfmt_stm1;// OBSOLETE case 144 : itype = FR30BF_INSN_BORL;goto extract_sfmt_bandl;// OBSOLETE case 145 : itype = FR30BF_INSN_BORH;goto extract_sfmt_bandl;// OBSOLETE case 146 : itype = FR30BF_INSN_OR;goto extract_sfmt_and;// OBSOLETE case 147 : itype = FR30BF_INSN_ORCCR;goto extract_sfmt_andccr;// OBSOLETE case 148 : itype = FR30BF_INSN_ORM;goto extract_sfmt_andm;// OBSOLETE case 149 : itype = FR30BF_INSN_ORH;goto extract_sfmt_andh;// OBSOLETE case 150 : itype = FR30BF_INSN_ORB;goto extract_sfmt_andb;// OBSOLETE case 151 :// OBSOLETE {// OBSOLETE unsigned int val = (((insn >> 4) & (15 << 0)));// OBSOLETE switch (val)// OBSOLETE {// OBSOLETE case 0 : itype = FR30BF_INSN_JMP;goto extract_sfmt_jmp;// OBSOLETE case 1 : itype = FR30BF_INSN_CALLR;goto extract_sfmt_callr;// OBSOLETE case 2 : itype = FR30BF_INSN_RET;goto extract_sfmt_ret;// OBSOLETE case 3 : itype = FR30BF_INSN_RETI;goto extract_sfmt_reti;// OBSOLETE case 4 : itype = FR30BF_INSN_DIV0S;goto extract_sfmt_div0s;// OBSOLETE case 5 : itype = FR30BF_INSN_DIV0U;goto extract_sfmt_div0u;// OBSOLETE case 6 : itype = FR30BF_INSN_DIV1;goto extract_sfmt_div1;// OBSOLETE case 7 : itype = FR30BF_INSN_DIV2;goto extract_sfmt_div2;// OBSOLETE case 8 : itype = FR30BF_INSN_EXTSB;goto extract_sfmt_extsb;// OBSOLETE case 9 : itype = FR30BF_INSN_EXTUB;goto extract_sfmt_extub;// OBSOLETE case 10 : itype = FR30BF_INSN_EXTSH;goto extract_sfmt_extsh;// OBSOLETE case 11 : itype = FR30BF_INSN_EXTUH;goto extract_sfmt_extuh;// OBSOLETE default : itype = FR30BF_INSN_X_INVALID; goto extract_sfmt_empty;// OBSOLETE }// OBSOLETE }// OBSOLETE case 152 : itype = FR30BF_INSN_BEORL;goto extract_sfmt_bandl;// OBSOLETE case 153 : itype = FR30BF_INSN_BEORH;goto extract_sfmt_bandl;// OBSOLETE case 154 : itype = FR30BF_INSN_EOR;goto extract_sfmt_and;// OBSOLETE case 155 : itype = FR30BF_INSN_LDI20;goto extract_sfmt_ldi20;// OBSOLETE case 156 : itype = FR30BF_INSN_EORM;goto extract_sfmt_andm;// OBSOLETE case 157 : itype = FR30BF_INSN_EORH;goto extract_sfmt_andh;// OBSOLETE case 158 : itype = FR30BF_INSN_EORB;goto extract_sfmt_andb;// OBSOLETE case 159 :// OBSOLETE {// OBSOLETE unsigned int val = (((insn >> 4) & (15 << 0)));// OBSOLETE switch (val)// OBSOLETE {// OBSOLETE case 0 : itype = FR30BF_INSN_JMPD;goto extract_sfmt_jmp;// OBSOLETE case 1 : itype = FR30BF_INSN_CALLRD;goto extract_sfmt_callr;// OBSOLETE case 2 : itype = FR30BF_INSN_RET_D;goto extract_sfmt_ret;// OBSOLETE case 3 : itype = FR30BF_INSN_INTE;goto extract_sfmt_inte;// OBSOLETE case 6 : itype = FR30BF_INSN_DIV3;goto extract_sfmt_div3;// OBSOLETE case 7 : itype = FR30BF_INSN_DIV4S;goto extract_sfmt_div4s;// OBSOLETE case 8 : itype = FR30BF_INSN_LDI32;goto extract_sfmt_ldi32;// OBSOLETE case 9 : itype = FR30BF_INSN_LEAVE;goto extract_sfmt_leave;// OBSOLETE case 10 : itype = FR30BF_INSN_NOP;goto extract_sfmt_bnod;// OBSOLETE case 12 : itype = FR30BF_INSN_COPOP;goto extract_sfmt_copop;// OBSOLETE case 13 : itype = FR30BF_INSN_COPLD;goto extract_sfmt_copop;// OBSOLETE case 14 : itype = FR30BF_INSN_COPST;goto extract_sfmt_copop;// OBSOLETE case 15 : itype = FR30BF_INSN_COPSV;goto extract_sfmt_copop;// OBSOLETE default : itype = FR30BF_INSN_X_INVALID; goto extract_sfmt_empty;// OBSOLETE }// OBSOLETE }// OBSOLETE case 160 : itype = FR30BF_INSN_ADDNI;goto extract_sfmt_addni;// OBSOLETE case 161 : itype = FR30BF_INSN_ADDN2;goto extract_sfmt_addn2;// OBSOLETE case 162 : itype = FR30BF_INSN_ADDN;goto extract_sfmt_addn;// OBSOLETE case 163 : itype = FR30BF_INSN_ADDSP;goto extract_sfmt_addsp;// OBSOLETE case 164 : itype = FR30BF_INSN_ADDI;goto extract_sfmt_addi;// OBSOLETE case 165 : itype = FR30BF_INSN_ADD2;goto extract_sfmt_add2;// OBSOLETE case 166 : itype = FR30BF_INSN_ADD;goto extract_sfmt_add;// OBSOLETE case 167 : itype = FR30BF_INSN_ADDC;goto extract_sfmt_addc;// OBSOLETE case 168 : itype = FR30BF_INSN_CMPI;goto extract_sfmt_cmpi;// OBSOLETE case 169 : itype = FR30BF_INSN_CMP2;goto extract_sfmt_cmp2;// OBSOLETE case 170 : itype = FR30BF_INSN_CMP;goto extract_sfmt_cmp;// OBSOLETE case 171 : itype = FR30BF_INSN_MULU;goto extract_sfmt_mulu;// OBSOLETE case 172 : itype = FR30BF_INSN_SUB;goto extract_sfmt_add;// OBSOLETE case 173 : itype = FR30BF_INSN_SUBC;goto extract_sfmt_addc;// OBSOLETE case 174 : itype = FR30BF_INSN_SUBN;goto extract_sfmt_addn;// OBSOLETE case 175 : itype = FR30BF_INSN_MUL;goto extract_sfmt_mul;// OBSOLETE case 176 : itype = FR30BF_INSN_LSRI;goto extract_sfmt_lsli;// OBSOLETE case 177 : itype = FR30BF_INSN_LSR2;goto extract_sfmt_lsli;// OBSOLETE case 178 : itype = FR30BF_INSN_LSR;goto extract_sfmt_lsl;// OBSOLETE case 179 : itype = FR30BF_INSN_MOV2DR;goto extract_sfmt_mov2dr;// OBSOLETE case 180 : itype = FR30BF_INSN_LSLI;goto extract_sfmt_lsli;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -