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

📄 decode.c

📁 这个是LINUX下的GDB调度工具的源码
💻 C
📖 第 1 页 / 共 5 页
字号:
    const IDESC *idesc = &m32rbf_insn_data[itype];    CGEN_INSN_INT insn = entire_insn;#define FLD(f) abuf->fields.sfmt_add3.f    UINT f_r1;    UINT f_r2;    INT f_simm16;    f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4);    f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4);    f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16);  /* Record the fields for the semantic handler.  */  FLD (f_simm16) = f_simm16;  FLD (f_r2) = f_r2;  FLD (f_r1) = f_r1;  FLD (i_sr) = & CPU (h_gr)[f_r2];  FLD (i_dr) = & CPU (h_gr)[f_r1];  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldh_d", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0));#if WITH_PROFILE_MODEL_P  /* Record the fields for profiling.  */  if (PROFILE_MODEL_P (current_cpu))    {      FLD (in_sr) = f_r2;      FLD (out_dr) = f_r1;    }#endif#undef FLD    return idesc;  } extract_sfmt_ld_plus:  {    const IDESC *idesc = &m32rbf_insn_data[itype];    CGEN_INSN_INT insn = entire_insn;#define FLD(f) abuf->fields.sfmt_ld_plus.f    UINT f_r1;    UINT f_r2;    f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4);    f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4);  /* Record the fields for the semantic handler.  */  FLD (f_r2) = f_r2;  FLD (f_r1) = f_r1;  FLD (i_sr) = & CPU (h_gr)[f_r2];  FLD (i_dr) = & CPU (h_gr)[f_r1];  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ld_plus", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0));#if WITH_PROFILE_MODEL_P  /* Record the fields for profiling.  */  if (PROFILE_MODEL_P (current_cpu))    {      FLD (in_sr) = f_r2;      FLD (out_dr) = f_r1;      FLD (out_sr) = f_r2;    }#endif#undef FLD    return idesc;  } extract_sfmt_ld24:  {    const IDESC *idesc = &m32rbf_insn_data[itype];    CGEN_INSN_INT insn = entire_insn;#define FLD(f) abuf->fields.sfmt_ld24.f    UINT f_r1;    UINT f_uimm24;    f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4);    f_uimm24 = EXTRACT_MSB0_UINT (insn, 32, 8, 24);  /* Record the fields for the semantic handler.  */  FLD (f_r1) = f_r1;  FLD (i_uimm24) = f_uimm24;  FLD (i_dr) = & CPU (h_gr)[f_r1];  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ld24", "f_r1 0x%x", 'x', f_r1, "uimm24 0x%x", 'x', f_uimm24, "dr 0x%x", 'x', f_r1, (char *) 0));#if WITH_PROFILE_MODEL_P  /* Record the fields for profiling.  */  if (PROFILE_MODEL_P (current_cpu))    {      FLD (out_dr) = f_r1;    }#endif#undef FLD    return idesc;  } extract_sfmt_ldi8:  {    const IDESC *idesc = &m32rbf_insn_data[itype];    CGEN_INSN_INT insn = entire_insn;#define FLD(f) abuf->fields.sfmt_addi.f    UINT f_r1;    INT f_simm8;    f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4);    f_simm8 = EXTRACT_MSB0_INT (insn, 16, 8, 8);  /* Record the fields for the semantic handler.  */  FLD (f_simm8) = f_simm8;  FLD (f_r1) = f_r1;  FLD (i_dr) = & CPU (h_gr)[f_r1];  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldi8", "f_simm8 0x%x", 'x', f_simm8, "f_r1 0x%x", 'x', f_r1, "dr 0x%x", 'x', f_r1, (char *) 0));#if WITH_PROFILE_MODEL_P  /* Record the fields for profiling.  */  if (PROFILE_MODEL_P (current_cpu))    {      FLD (out_dr) = f_r1;    }#endif#undef FLD    return idesc;  } extract_sfmt_ldi16:  {    const IDESC *idesc = &m32rbf_insn_data[itype];    CGEN_INSN_INT insn = entire_insn;#define FLD(f) abuf->fields.sfmt_add3.f    UINT f_r1;    INT f_simm16;    f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4);    f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16);  /* Record the fields for the semantic handler.  */  FLD (f_simm16) = f_simm16;  FLD (f_r1) = f_r1;  FLD (i_dr) = & CPU (h_gr)[f_r1];  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldi16", "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, "dr 0x%x", 'x', f_r1, (char *) 0));#if WITH_PROFILE_MODEL_P  /* Record the fields for profiling.  */  if (PROFILE_MODEL_P (current_cpu))    {      FLD (out_dr) = f_r1;    }#endif#undef FLD    return idesc;  } extract_sfmt_lock:  {    const IDESC *idesc = &m32rbf_insn_data[itype];    CGEN_INSN_INT insn = entire_insn;#define FLD(f) abuf->fields.sfmt_ld_plus.f    UINT f_r1;    UINT f_r2;    f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4);    f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4);  /* Record the fields for the semantic handler.  */  FLD (f_r2) = f_r2;  FLD (f_r1) = f_r1;  FLD (i_sr) = & CPU (h_gr)[f_r2];  FLD (i_dr) = & CPU (h_gr)[f_r1];  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lock", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0));#if WITH_PROFILE_MODEL_P  /* Record the fields for profiling.  */  if (PROFILE_MODEL_P (current_cpu))    {      FLD (in_sr) = f_r2;      FLD (out_dr) = f_r1;    }#endif#undef FLD    return idesc;  } extract_sfmt_machi:  {    const IDESC *idesc = &m32rbf_insn_data[itype];    CGEN_INSN_INT insn = entire_insn;#define FLD(f) abuf->fields.sfmt_st_plus.f    UINT f_r1;    UINT f_r2;    f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4);    f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4);  /* Record the fields for the semantic handler.  */  FLD (f_r1) = f_r1;  FLD (f_r2) = f_r2;  FLD (i_src1) = & CPU (h_gr)[f_r1];  FLD (i_src2) = & CPU (h_gr)[f_r2];  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_machi", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0));#if WITH_PROFILE_MODEL_P  /* Record the fields for profiling.  */  if (PROFILE_MODEL_P (current_cpu))    {      FLD (in_src1) = f_r1;      FLD (in_src2) = f_r2;    }#endif#undef FLD    return idesc;  } extract_sfmt_mulhi:  {    const IDESC *idesc = &m32rbf_insn_data[itype];    CGEN_INSN_INT insn = entire_insn;#define FLD(f) abuf->fields.sfmt_st_plus.f    UINT f_r1;    UINT f_r2;    f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4);    f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4);  /* Record the fields for the semantic handler.  */  FLD (f_r1) = f_r1;  FLD (f_r2) = f_r2;  FLD (i_src1) = & CPU (h_gr)[f_r1];  FLD (i_src2) = & CPU (h_gr)[f_r2];  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mulhi", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0));#if WITH_PROFILE_MODEL_P  /* Record the fields for profiling.  */  if (PROFILE_MODEL_P (current_cpu))    {      FLD (in_src1) = f_r1;      FLD (in_src2) = f_r2;    }#endif#undef FLD    return idesc;  } extract_sfmt_mv:  {    const IDESC *idesc = &m32rbf_insn_data[itype];    CGEN_INSN_INT insn = entire_insn;#define FLD(f) abuf->fields.sfmt_ld_plus.f    UINT f_r1;    UINT f_r2;    f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4);    f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4);  /* Record the fields for the semantic handler.  */  FLD (f_r2) = f_r2;  FLD (f_r1) = f_r1;  FLD (i_sr) = & CPU (h_gr)[f_r2];  FLD (i_dr) = & CPU (h_gr)[f_r1];  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mv", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0));#if WITH_PROFILE_MODEL_P  /* Record the fields for profiling.  */  if (PROFILE_MODEL_P (current_cpu))    {      FLD (in_sr) = f_r2;      FLD (out_dr) = f_r1;    }#endif#undef FLD    return idesc;  } extract_sfmt_mvfachi:  {    const IDESC *idesc = &m32rbf_insn_data[itype];    CGEN_INSN_INT insn = entire_insn;#define FLD(f) abuf->fields.sfmt_seth.f    UINT f_r1;    f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4);  /* Record the fields for the semantic handler.  */  FLD (f_r1) = f_r1;  FLD (i_dr) = & CPU (h_gr)[f_r1];  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mvfachi", "f_r1 0x%x", 'x', f_r1, "dr 0x%x", 'x', f_r1, (char *) 0));#if WITH_PROFILE_MODEL_P  /* Record the fields for profiling.  */  if (PROFILE_MODEL_P (current_cpu))    {      FLD (out_dr) = f_r1;    }#endif#undef FLD    return idesc;  } extract_sfmt_mvfc:  {    const IDESC *idesc = &m32rbf_insn_data[itype];    CGEN_INSN_INT insn = entire_insn;#define FLD(f) abuf->fields.sfmt_ld_plus.f    UINT f_r1;    UINT f_r2;    f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4);    f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4);  /* Record the fields for the semantic handler.  */  FLD (f_r2) = f_r2;  FLD (f_r1) = f_r1;  FLD (i_dr) = & CPU (h_gr)[f_r1];  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mvfc", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "dr 0x%x", 'x', f_r1, (char *) 0));#if WITH_PROFILE_MODEL_P  /* Record the fields for profiling.  */  if (PROFILE_MODEL_P (current_cpu))    {      FLD (out_dr) = f_r1;    }#endif#undef FLD    return idesc;  } extract_sfmt_mvtachi:  {    const IDESC *idesc = &m32rbf_insn_data[itype];    CGEN_INSN_INT insn = entire_insn;#define FLD(f) abuf->fields.sfmt_st_plus.f    UINT f_r1;    f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4);  /* Record the fields for the semantic handler.  */  FLD (f_r1) = f_r1;  FLD (i_src1) = & CPU (h_gr)[f_r1];  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mvtachi", "f_r1 0x%x", 'x', f_r1, "src1 0x%x", 'x', f_r1, (char *) 0));#if WITH_PROFILE_MODEL_P  /* Record the fields for profiling.  */  if (PROFILE_MODEL_P (current_cpu))    {      FLD (in_src1) = f_r1;    }#endif#undef FLD    return idesc;  } extract_sfmt_mvtc:  {    const IDESC *idesc = &m32rbf_insn_data[itype];    CGEN_INSN_INT insn = entire_insn;#define FLD(f) abuf->fields.sfmt_ld_plus.f    UINT f_r1;    UINT f_r2;    f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4);    f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4);  /* Record the fields for the semantic handler.  */  FLD (f_r2) = f_r2;  FLD (f_r1) = f_r1;  FLD (i_sr) = & CPU (h_gr)[f_r2];  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mvtc", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, (char *) 0));#if WITH_PROFILE_MODEL_P  /* Record the fields for profiling.  */  if (PROFILE_MODEL_P (current_cpu))    {      FLD (in_sr) = f_r2;    }#endif#undef FLD    return idesc;  } extract_sfmt_nop:  {    const IDESC *idesc = &m32rbf_insn_data[itype];#define FLD(f) abuf->fields.fmt_empty.f  /* Record the fields for the semantic handler.  */  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_nop", (char *) 0));#undef FLD    return idesc;  } extract_sfmt_rac:  {    const IDESC *idesc = &m32rbf_insn_data[itype];#define FLD(f) abuf->fields.fmt_empty.f  /* Record the fields for the semantic handler.  */  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rac", (char *) 0));#undef FLD    return idesc;  } extract_sfmt_rte:  {    const IDESC *idesc = &m32rbf_insn_data[itype];#define FLD(f) abuf->fields.fmt_empty.f  /* Record the fields for the semantic handler.  */  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rte", (char *) 0));#if WITH_PROFILE_MODEL_P  /* Record the fields for profiling.  */  if (PROFILE_MODEL_P (current_cpu))    {    }#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -