⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 decode.c

📁 这个是LINUX下的GDB调度工具的源码
💻 C
📖 第 1 页 / 共 5 页
字号:
// 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 + -