📄 disasm.c
字号:
static const disasm_t disasm_spec2[64] DATASEG ={{"madd" , DC_RS_RT }, {"maddu" , DC_RS_RT }, {"mul" , DC_RD_RS_RT }, {"invalid" , DC_BARE }, {"msub" , DC_RS_RT }, {"msubu" , DC_RS_RT }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"clz" , DC_RT_RS }, {"clo" , DC_RT_RS }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"dclz" , DC_RT_RS }, {"dclo" , DC_RT_RS }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"sdbbp" , DC_BARE }};static const disasm_t disasm_cop0[32] DATASEG = {{"mfc0@1" , DC_RT_CR_SEL }, {"dmfc0@1" , DC_RT_CR_SEL }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"mtc0@1" , DC_RT_CR_SEL }, {"dmtc0@1" , DC_RT_CR_SEL }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"$5" , DC_DEREF }, {"$5" , DC_DEREF }, {"$5" , DC_DEREF }, {"$5" , DC_DEREF }, {"$5" , DC_DEREF }, {"$5" , DC_DEREF }, {"$5" , DC_DEREF }, {"$5" , DC_DEREF }, {"$5" , DC_DEREF }, {"$5" , DC_DEREF }, {"$5" , DC_DEREF }, {"$5" , DC_DEREF }, {"$5" , DC_DEREF }, {"$5" , DC_DEREF }, {"$5" , DC_DEREF }, {"$5" , DC_DEREF }};static const disasm_t disasm_cop0_c0[64] DATASEG = {{"invalid" , DC_BARE }, {"tlbr" , DC_BARE }, {"tlbwi" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"tlbwr" , DC_BARE }, {"invalid" , DC_BARE }, {"tlbp" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"eret" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"deret" , DC_BARE }, {"wait" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }};static const disasm_t disasm_cop1[32] DATASEG = {{"mfc1" , DC_RT_FS }, {"dmfc1" , DC_RT_FS }, {"cfc1" , DC_RT_FS }, {"invalid" , DC_BARE }, {"mtc1" , DC_RT_FS }, {"dmtc1" , DC_RT_FS }, {"ctc1" , DC_RT_FS }, {"invalid" , DC_BARE }, {"$17" , DC_DEREF }, {"$36" , DC_DEREF }, {"$37" , DC_DEREF }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"$7" , DC_DEREF }, {"$9" , DC_DEREF }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"$11" , DC_DEREF }, {"$12" , DC_DEREF }, {"$13" , DC_DEREF }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }};static const disasm_t disasm_cop1_bc1[4] DATASEG = {{"bc1f" , DC_CC_OFS }, {"bc1t" , DC_CC_OFS }, {"bc1fl" , DC_CC_OFS }, {"bc1tl" , DC_CC_OFS },};static const disasm_t disasm_cop1_bc1any2[2] DATASEG = {{"bc1any2f" , DC_CC_OFS }, {"bc1any2t" , DC_CC_OFS },};static const disasm_t disasm_cop1_bc1any4[2] DATASEG = {{"bc1any4f" , DC_CC_OFS }, {"bc1any4t" , DC_CC_OFS },};static const disasm_t disasm_cop1_s[64] DATASEG = {{"add.s" , DC_FD_FS_FT }, {"sub.s" , DC_FD_FS_FT }, {"mul.s" , DC_FD_FS_FT }, {"div.s" , DC_FD_FS_FT }, {"sqrt.s" , DC_FD_FS }, {"abs.s" , DC_FD_FS }, {"mov.s" , DC_FD_FS }, {"neg.s" , DC_FD_FS }, {"round.l.s" , DC_FD_FS }, {"trunc.l.s" , DC_FD_FS }, {"ceil.l.s" , DC_FD_FS }, {"floor.l.s" , DC_FD_FS }, {"round.w.s" , DC_FD_FS }, {"trunc.w.s" , DC_FD_FS }, {"ceil.w.s" , DC_FD_FS }, {"floor.w.s" , DC_FD_FS }, {"invalid" , DC_BARE }, {"$8" , DC_DEREF }, {"movz.s" , DC_FD_FS_RT }, {"movn.s" , DC_FD_FS_RT }, {"invalid" , DC_BARE }, {"recip.s" , DC_FD_FS }, {"rsqrt.s" , DC_FD_FS }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"recip2.s" , DC_FD_FS_FT }, {"recip1.s" , DC_FD_FS }, {"rsqrt1.s" , DC_FD_FS }, {"rsqrt2.s" , DC_FD_FS_FT }, {"invalid" , DC_BARE }, {"cvt.d.s" , DC_FD_FS }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"cvt.w.s" , DC_FD_FS }, {"cvt.l.s" , DC_FD_FS }, {"cvt.ps.s" , DC_FD_FS_FT }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"$38" , DC_DEREF }, {"$39" , DC_DEREF }, {"$40" , DC_DEREF }, {"$41" , DC_DEREF }, {"$42" , DC_DEREF }, {"$43" , DC_DEREF }, {"$44" , DC_DEREF }, {"$45" , DC_DEREF }, {"$46" , DC_DEREF }, {"$47" , DC_DEREF }, {"$48" , DC_DEREF }, {"$49" , DC_DEREF }, {"$50" , DC_DEREF }, {"$51" , DC_DEREF }, {"$52" , DC_DEREF }, {"$53" , DC_DEREF }};static const disasm_t disasm_cop1_s_mvcf[2] DATASEG = {{"movf.s" , DC_FD_FS_CC }, {"movt.s" , DC_FD_FS_CC }};static const disasm_t disasm_cop1_d[64] DATASEG = {{"add.d" , DC_FD_FS_FT }, {"sub.d" , DC_FD_FS_FT }, {"mul.d" , DC_FD_FS_FT }, {"div.d" , DC_FD_FS_FT }, {"sqrt.d" , DC_FD_FS }, {"abs.d" , DC_FD_FS }, {"mov.d" , DC_FD_FS }, {"neg.d" , DC_FD_FS }, {"round.l.d" , DC_FD_FS }, {"trunc.l.d" , DC_FD_FS }, {"ceil.l.d" , DC_FD_FS }, {"floor.l.d" , DC_FD_FS }, {"round.w.d" , DC_FD_FS }, {"trunc.w.d" , DC_FD_FS }, {"ceil.w.d" , DC_FD_FS }, {"floor.w.d" , DC_FD_FS }, {"invalid" , DC_BARE }, {"$10" , DC_DEREF }, {"movz.d" , DC_FD_FS_RT }, {"movn.d" , DC_FD_FS_RT }, {"invalid" , DC_BARE }, {"recip.d" , DC_FD_FS }, {"rsqrt.d" , DC_FD_FS }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"recip2.d" , DC_FD_FS_FT }, {"recip1.d" , DC_FD_FS }, {"rsqrt1.d" , DC_FD_FS }, {"rsqrt2.d" , DC_FD_FS_FT }, {"cvt.s.d" , DC_FD_FS }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"cvt.w.d" , DC_FD_FS }, {"cvt.l.d" , DC_FD_FS }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"$54" , DC_DEREF }, {"$55" , DC_DEREF }, {"$56" , DC_DEREF }, {"$57" , DC_DEREF }, {"$58" , DC_DEREF }, {"$59" , DC_DEREF }, {"$60" , DC_DEREF }, {"$61" , DC_DEREF }, {"$62" , DC_DEREF }, {"$63" , DC_DEREF }, {"$64" , DC_DEREF }, {"$65" , DC_DEREF }, {"$66" , DC_DEREF }, {"$67" , DC_DEREF }, {"$68" , DC_DEREF }, {"$69" , DC_DEREF }};static const disasm_t disasm_cop1_d_mvcf[2] DATASEG = {{"movf.d" , DC_FD_FS_CC }, {"movt.d" , DC_FD_FS_CC }};static const disasm_t disasm_cop1_w[64] DATASEG ={{"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"cvt.s.w" , DC_FD_FS }, {"cvt.d.w" , DC_FD_FS }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"cvt.ps.pw" , DC_FD_FS }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE }, {"invalid" , DC_BARE },
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -