decode.c

来自「这个是LINUX下的GDB调度工具的源码」· C语言 代码 · 共 1,331 行 · 第 1/5 页

C
1,331
字号
// OBSOLETE #undef FLD// OBSOLETE     return idesc;// OBSOLETE   }// OBSOLETE // OBSOLETE  extract_sfmt_btstl:// 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_btstl", "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     }// OBSOLETE #endif// OBSOLETE #undef FLD// OBSOLETE     return idesc;// OBSOLETE   }// OBSOLETE // OBSOLETE  extract_sfmt_mul:// OBSOLETE   {// OBSOLETE     const IDESC *idesc = &fr30bf_insn_data[itype];// OBSOLETE     CGEN_INSN_INT insn = base_insn;// OBSOLETE #define FLD(f) abuf->fields.sfmt_str13.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_mul", "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     }// OBSOLETE #endif// OBSOLETE #undef FLD// OBSOLETE     return idesc;// OBSOLETE   }// OBSOLETE // OBSOLETE  extract_sfmt_mulu:// OBSOLETE   {// OBSOLETE     const IDESC *idesc = &fr30bf_insn_data[itype];// OBSOLETE     CGEN_INSN_INT insn = base_insn;// OBSOLETE #define FLD(f) abuf->fields.sfmt_str13.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_mulu", "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     }// OBSOLETE #endif// OBSOLETE #undef FLD// OBSOLETE     return idesc;// OBSOLETE   }// OBSOLETE // OBSOLETE  extract_sfmt_mulh:// OBSOLETE   {// OBSOLETE     const IDESC *idesc = &fr30bf_insn_data[itype];// OBSOLETE     CGEN_INSN_INT insn = base_insn;// OBSOLETE #define FLD(f) abuf->fields.sfmt_str13.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_mulh", "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     }// OBSOLETE #endif// OBSOLETE #undef FLD// OBSOLETE     return idesc;// OBSOLETE   }// OBSOLETE // OBSOLETE  extract_sfmt_div0s:// OBSOLETE   {// OBSOLETE     const IDESC *idesc = &fr30bf_insn_data[itype];// OBSOLETE     CGEN_INSN_INT insn = base_insn;// OBSOLETE #define FLD(f) abuf->fields.sfmt_mov2dr.f// OBSOLETE     UINT f_Ri;// OBSOLETE // 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 (i_Ri) = & CPU (h_gr)[f_Ri];// OBSOLETE   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_div0s", "f_Ri 0x%x", 'x', f_Ri, "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     }// OBSOLETE #endif// OBSOLETE #undef FLD// OBSOLETE     return idesc;// OBSOLETE   }// OBSOLETE // OBSOLETE  extract_sfmt_div0u:// 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_div0u", (char *) 0));// OBSOLETE // OBSOLETE #undef FLD// OBSOLETE     return idesc;// OBSOLETE   }// OBSOLETE // OBSOLETE  extract_sfmt_div1:// OBSOLETE   {// OBSOLETE     const IDESC *idesc = &fr30bf_insn_data[itype];// OBSOLETE     CGEN_INSN_INT insn = base_insn;// OBSOLETE #define FLD(f) abuf->fields.sfmt_mov2dr.f// OBSOLETE     UINT f_Ri;// OBSOLETE // 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 (i_Ri) = & CPU (h_gr)[f_Ri];// OBSOLETE   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_div1", "f_Ri 0x%x", 'x', f_Ri, "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     }// OBSOLETE #endif// OBSOLETE #undef FLD// OBSOLETE     return idesc;// OBSOLETE   }// OBSOLETE // OBSOLETE  extract_sfmt_div2:// OBSOLETE   {// OBSOLETE     const IDESC *idesc = &fr30bf_insn_data[itype];// OBSOLETE     CGEN_INSN_INT insn = base_insn;// OBSOLETE #define FLD(f) abuf->fields.sfmt_mov2dr.f// OBSOLETE     UINT f_Ri;// OBSOLETE // 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 (i_Ri) = & CPU (h_gr)[f_Ri];// OBSOLETE   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_div2", "f_Ri 0x%x", 'x', f_Ri, "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     }// OBSOLETE #endif// OBSOLETE #undef FLD// OBSOLETE     return idesc;// OBSOLETE   }// OBSOLETE // OBSOLETE  extract_sfmt_div3:// 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_div3", (char *) 0));// OBSOLETE // OBSOLETE #undef FLD// OBSOLETE     return idesc;// OBSOLETE   }// OBSOLETE // OBSOLETE  extract_sfmt_div4s:// 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_div4s", (char *) 0));// OBSOLETE // OBSOLETE #undef FLD// OBSOLETE     return idesc;// OBSOLETE   }// OBSOLETE // OBSOLETE  extract_sfmt_lsl:// 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_lsl", "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 #end

⌨️ 快捷键说明

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