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

📄 decode.c

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