📄 decode.c
字号:
// OBSOLETE case 181 : itype = FR30BF_INSN_LSL2;goto extract_sfmt_lsli;// OBSOLETE case 182 : itype = FR30BF_INSN_LSL;goto extract_sfmt_lsl;// OBSOLETE case 183 : itype = FR30BF_INSN_MOVDR;goto extract_sfmt_movdr;// OBSOLETE case 184 : itype = FR30BF_INSN_ASRI;goto extract_sfmt_lsli;// OBSOLETE case 185 : itype = FR30BF_INSN_ASR2;goto extract_sfmt_lsli;// OBSOLETE case 186 : itype = FR30BF_INSN_ASR;goto extract_sfmt_lsl;// OBSOLETE case 187 : itype = FR30BF_INSN_MULUH;goto extract_sfmt_mulh;// OBSOLETE case 188 : itype = FR30BF_INSN_LDRES;goto extract_sfmt_ldres;// OBSOLETE case 189 : itype = FR30BF_INSN_STRES;goto extract_sfmt_ldres;// OBSOLETE case 191 : itype = FR30BF_INSN_MULH;goto extract_sfmt_mulh;// OBSOLETE case 192 : /* fall through */// OBSOLETE case 193 : /* fall through */// OBSOLETE case 194 : /* fall through */// OBSOLETE case 195 : /* fall through */// OBSOLETE case 196 : /* fall through */// OBSOLETE case 197 : /* fall through */// OBSOLETE case 198 : /* fall through */// OBSOLETE case 199 : /* fall through */// OBSOLETE case 200 : /* fall through */// OBSOLETE case 201 : /* fall through */// OBSOLETE case 202 : /* fall through */// OBSOLETE case 203 : /* fall through */// OBSOLETE case 204 : /* fall through */// OBSOLETE case 205 : /* fall through */// OBSOLETE case 206 : /* fall through */// OBSOLETE case 207 : itype = FR30BF_INSN_LDI8;goto extract_sfmt_ldi8;// OBSOLETE case 208 : /* fall through */// OBSOLETE case 209 : /* fall through */// OBSOLETE case 210 : /* fall through */// OBSOLETE case 211 : /* fall through */// OBSOLETE case 212 : /* fall through */// OBSOLETE case 213 : /* fall through */// OBSOLETE case 214 : /* fall through */// OBSOLETE case 215 : itype = FR30BF_INSN_CALL;goto extract_sfmt_call;// OBSOLETE case 216 : /* fall through */// OBSOLETE case 217 : /* fall through */// OBSOLETE case 218 : /* fall through */// OBSOLETE case 219 : /* fall through */// OBSOLETE case 220 : /* fall through */// OBSOLETE case 221 : /* fall through */// OBSOLETE case 222 : /* fall through */// OBSOLETE case 223 : itype = FR30BF_INSN_CALLD;goto extract_sfmt_call;// OBSOLETE case 224 : itype = FR30BF_INSN_BRA;goto extract_sfmt_brad;// OBSOLETE case 225 : itype = FR30BF_INSN_BNO;goto extract_sfmt_bnod;// OBSOLETE case 226 : itype = FR30BF_INSN_BEQ;goto extract_sfmt_beqd;// OBSOLETE case 227 : itype = FR30BF_INSN_BNE;goto extract_sfmt_beqd;// OBSOLETE case 228 : itype = FR30BF_INSN_BC;goto extract_sfmt_bcd;// OBSOLETE case 229 : itype = FR30BF_INSN_BNC;goto extract_sfmt_bcd;// OBSOLETE case 230 : itype = FR30BF_INSN_BN;goto extract_sfmt_bnd;// OBSOLETE case 231 : itype = FR30BF_INSN_BP;goto extract_sfmt_bnd;// OBSOLETE case 232 : itype = FR30BF_INSN_BV;goto extract_sfmt_bvd;// OBSOLETE case 233 : itype = FR30BF_INSN_BNV;goto extract_sfmt_bvd;// OBSOLETE case 234 : itype = FR30BF_INSN_BLT;goto extract_sfmt_bltd;// OBSOLETE case 235 : itype = FR30BF_INSN_BGE;goto extract_sfmt_bltd;// OBSOLETE case 236 : itype = FR30BF_INSN_BLE;goto extract_sfmt_bled;// OBSOLETE case 237 : itype = FR30BF_INSN_BGT;goto extract_sfmt_bled;// OBSOLETE case 238 : itype = FR30BF_INSN_BLS;goto extract_sfmt_blsd;// OBSOLETE case 239 : itype = FR30BF_INSN_BHI;goto extract_sfmt_blsd;// OBSOLETE case 240 : itype = FR30BF_INSN_BRAD;goto extract_sfmt_brad;// OBSOLETE case 241 : itype = FR30BF_INSN_BNOD;goto extract_sfmt_bnod;// OBSOLETE case 242 : itype = FR30BF_INSN_BEQD;goto extract_sfmt_beqd;// OBSOLETE case 243 : itype = FR30BF_INSN_BNED;goto extract_sfmt_beqd;// OBSOLETE case 244 : itype = FR30BF_INSN_BCD;goto extract_sfmt_bcd;// OBSOLETE case 245 : itype = FR30BF_INSN_BNCD;goto extract_sfmt_bcd;// OBSOLETE case 246 : itype = FR30BF_INSN_BND;goto extract_sfmt_bnd;// OBSOLETE case 247 : itype = FR30BF_INSN_BPD;goto extract_sfmt_bnd;// OBSOLETE case 248 : itype = FR30BF_INSN_BVD;goto extract_sfmt_bvd;// OBSOLETE case 249 : itype = FR30BF_INSN_BNVD;goto extract_sfmt_bvd;// OBSOLETE case 250 : itype = FR30BF_INSN_BLTD;goto extract_sfmt_bltd;// OBSOLETE case 251 : itype = FR30BF_INSN_BGED;goto extract_sfmt_bltd;// OBSOLETE case 252 : itype = FR30BF_INSN_BLED;goto extract_sfmt_bled;// OBSOLETE case 253 : itype = FR30BF_INSN_BGTD;goto extract_sfmt_bled;// OBSOLETE case 254 : itype = FR30BF_INSN_BLSD;goto extract_sfmt_blsd;// OBSOLETE case 255 : itype = FR30BF_INSN_BHID;goto extract_sfmt_blsd;// OBSOLETE default : itype = FR30BF_INSN_X_INVALID; goto extract_sfmt_empty;// OBSOLETE }// OBSOLETE }// OBSOLETE }// OBSOLETE // OBSOLETE /* The instruction has been decoded, now extract the fields. */// OBSOLETE // OBSOLETE extract_sfmt_empty:// OBSOLETE {// OBSOLETE const IDESC *idesc = &fr30bf_insn_data[itype];// OBSOLETE #define FLD(f) abuf->fields.fmt_empty.f// OBSOLETE // OBSOLETE // OBSOLETE /* Record the fields for the semantic handler. */// OBSOLETE TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0));// OBSOLETE // OBSOLETE #undef FLD// OBSOLETE return idesc;// OBSOLETE }// OBSOLETE // OBSOLETE extract_sfmt_add:// OBSOLETE {// OBSOLETE const IDESC *idesc = &fr30bf_insn_data[itype];// OBSOLETE CGEN_INSN_INT insn = base_insn;// OBSOLETE #define FLD(f) abuf->fields.sfmt_add.f// OBSOLETE UINT f_Rj;// OBSOLETE UINT f_Ri;// OBSOLETE // OBSOLETE f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);// OBSOLETE f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);// OBSOLETE // OBSOLETE /* Record the fields for the semantic handler. */// OBSOLETE FLD (f_Ri) = f_Ri;// OBSOLETE FLD (f_Rj) = f_Rj;// OBSOLETE FLD (i_Ri) = & CPU (h_gr)[f_Ri];// OBSOLETE FLD (i_Rj) = & CPU (h_gr)[f_Rj];// OBSOLETE TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add", "f_Ri 0x%x", 'x', f_Ri, "f_Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));// OBSOLETE // OBSOLETE #if WITH_PROFILE_MODEL_P// OBSOLETE /* Record the fields for profiling. */// OBSOLETE if (PROFILE_MODEL_P (current_cpu))// OBSOLETE {// OBSOLETE FLD (in_Ri) = f_Ri;// OBSOLETE FLD (in_Rj) = f_Rj;// OBSOLETE FLD (out_Ri) = f_Ri;// OBSOLETE }// OBSOLETE #endif// OBSOLETE #undef FLD// OBSOLETE return idesc;// OBSOLETE }// OBSOLETE // OBSOLETE extract_sfmt_addi:// OBSOLETE {// OBSOLETE const IDESC *idesc = &fr30bf_insn_data[itype];// OBSOLETE CGEN_INSN_INT insn = base_insn;// OBSOLETE #define FLD(f) abuf->fields.sfmt_addi.f// OBSOLETE UINT f_u4;// OBSOLETE UINT f_Ri;// OBSOLETE // OBSOLETE f_u4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);// OBSOLETE f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);// OBSOLETE // OBSOLETE /* Record the fields for the semantic handler. */// OBSOLETE FLD (f_Ri) = f_Ri;// OBSOLETE FLD (f_u4) = f_u4;// OBSOLETE FLD (i_Ri) = & CPU (h_gr)[f_Ri];// OBSOLETE TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addi", "f_Ri 0x%x", 'x', f_Ri, "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0));// OBSOLETE // OBSOLETE #if WITH_PROFILE_MODEL_P// OBSOLETE /* Record the fields for profiling. */// OBSOLETE if (PROFILE_MODEL_P (current_cpu))// OBSOLETE {// OBSOLETE FLD (in_Ri) = f_Ri;// OBSOLETE FLD (out_Ri) = f_Ri;// OBSOLETE }// OBSOLETE #endif// OBSOLETE #undef FLD// OBSOLETE return idesc;// OBSOLETE }// OBSOLETE // OBSOLETE extract_sfmt_add2:// OBSOLETE {// OBSOLETE const IDESC *idesc = &fr30bf_insn_data[itype];// OBSOLETE CGEN_INSN_INT insn = base_insn;// OBSOLETE #define FLD(f) abuf->fields.sfmt_add2.f// OBSOLETE SI f_m4;// OBSOLETE UINT f_Ri;// OBSOLETE // OBSOLETE f_m4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 4)) | (((-1) << (4))));// OBSOLETE f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);// OBSOLETE // OBSOLETE /* Record the fields for the semantic handler. */// OBSOLETE FLD (f_Ri) = f_Ri;// OBSOLETE FLD (f_m4) = f_m4;// OBSOLETE FLD (i_Ri) = & CPU (h_gr)[f_Ri];// OBSOLETE TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add2", "f_Ri 0x%x", 'x', f_Ri, "f_m4 0x%x", 'x', f_m4, "Ri 0x%x", 'x', f_Ri, (char *) 0));// OBSOLETE // OBSOLETE #if WITH_PROFILE_MODEL_P// OBSOLETE /* Record the fields for profiling. */// OBSOLETE if (PROFILE_MODEL_P (current_cpu))// OBSOLETE {// OBSOLETE FLD (in_Ri) = f_Ri;// OBSOLETE FLD (out_Ri) = f_Ri;// OBSOLETE }// OBSOLETE #endif// OBSOLETE #undef FLD// OBSOLETE return idesc;// OBSOLETE }// OBSOLETE // OBSOLETE extract_sfmt_addc:// OBSOLETE {// OBSOLETE const IDESC *idesc = &fr30bf_insn_data[itype];// OBSOLETE CGEN_INSN_INT insn = base_insn;// OBSOLETE #define FLD(f) abuf->fields.sfmt_add.f// OBSOLETE UINT f_Rj;// OBSOLETE UINT f_Ri;// OBSOLETE // OBSOLETE f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);// OBSOLETE f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);// OBSOLETE // OBSOLETE /* Record the fields for the semantic handler. */// OBSOLETE FLD (f_Ri) = f_Ri;// OBSOLETE FLD (f_Rj) = f_Rj;// OBSOLETE FLD (i_Ri) = & CPU (h_gr)[f_Ri];// OBSOLETE FLD (i_Rj) = & CPU (h_gr)[f_Rj];// OBSOLETE TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addc", "f_Ri 0x%x", 'x', f_Ri, "f_Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));// OBSOLETE // OBSOLETE #if WITH_PROFILE_MODEL_P// OBSOLETE /* Record the fields for profiling. */// OBSOLETE if (PROFILE_MODEL_P (current_cpu))// OBSOLETE {// OBSOLETE FLD (in_Ri) = f_Ri;// OBSOLETE FLD (in_Rj) = f_Rj;// OBSOLETE FLD (out_Ri) = f_Ri;// OBSOLETE }// OBSOLETE #endif// OBSOLETE #undef FLD// OBSOLETE return idesc;// OBSOLETE }// OBSOLETE // OBSOLETE extract_sfmt_addn:// OBSOLETE {// OBSOLETE const IDESC *idesc = &fr30bf_insn_data[itype];// OBSOLETE CGEN_INSN_INT insn = base_insn;// OBSOLETE #define FLD(f) abuf->fields.sfmt_add.f// OBSOLETE UINT f_Rj;// OBSOLETE UINT f_Ri;// OBSOLETE // OBSOLETE f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);// OBSOLETE f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);// OBSOLETE // OBSOLETE /* Record the fields for the semantic handler. */// OBSOLETE FLD (f_Ri) = f_Ri;// OBSOLETE FLD (f_Rj) = f_Rj;// OBSOLETE FLD (i_Ri) = & CPU (h_gr)[f_Ri];// OBSOLETE FLD (i_Rj) = & CPU (h_gr)[f_Rj];// OBSOLETE TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addn", "f_Ri 0x%x", 'x', f_Ri, "f_Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));// OBSOLETE // OBSOLETE #if WITH_PROFILE_MODEL_P// OBSOLETE /* Record the fields for profiling. */// OBSOLETE if (PROFILE_MODEL_P (current_cpu))// OBSOLETE {// OBSOLETE FLD (in_Ri) = f_Ri;// OBSOLETE FLD (in_Rj) = f_Rj;// OBSOLETE FLD (out_Ri) = f_Ri;// OBSOLETE }// OBSOLETE #endif// OBSOLETE #undef FLD// OBSOLETE return idesc;// OBSOLETE }// OBSOLETE // OBSOLETE extract_sfmt_addni:// OBSOLETE {// OBSOLETE const IDESC *idesc = &fr30bf_insn_data[itype];// OBSOLETE CGEN_INSN_INT insn = base_insn;// OBSOLETE #define FLD(f) abuf->fields.sfmt_addi.f// OBSOLETE UINT f_u4;// OBSOLETE UINT f_Ri;// OBSOLETE // OBSOLETE f_u4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);// OBSOLETE f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);// OBSOLETE // OBSOLETE /* Record the fields for the semantic handler. */// OBSOLETE FLD (f_Ri) = f_Ri;// OBSOLETE FLD (f_u4) = f_u4;// OBSOLETE FLD (i_Ri) = & CPU (h_gr)[f_Ri];// OBSOLETE TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addni", "f_Ri 0x%x", 'x', f_Ri, "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0));// OBSOLETE // OBSOLETE #if WITH_PROFILE_MODEL_P// OBSOLETE /* Record the fields for profiling. */// OBSOLETE if (PROFILE_MODEL_P (current_cpu))// OBSOLETE {// OBSOLETE FLD (in_Ri) = f_Ri;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -