目前只支持mips32 r2的指令格式,具体如下表
而且只实现单条指令的翻译,系统启动码跟接口都没有呢
abs.d fd, fs | di [rt] | nor rd, rs, rt | abs.ps fd, fs | div rs, rt | or rd, rs, rt | abs.s fd, fs | div.d fd, fs, ft | ori rt, rs, immediate | add rd, rs, rt | div.s fd, fs, ft | pause | add.d fd, fs, ft | divu rs, rt | pll.ps fd, fs, ft | add.ps fd, fs, ft | ehb | plu.ps fd, fs, ft | add.s fd, fs, ft | ei [rt] | pref hint, offset(base) | addi rt, rs, immediate | eret | prefe hint, offset(base) | addiu rt, rs, immediate | ext rt, rs, pos, size | prefx hint, index(base) | addu rd, rs, rt | floor.l.d fd, fs | pul.ps fd, fs, ft | alnv.ps fd, fs, ft, rs | floor.l.s fd, fs | puu.ps fd, fs, ft | and rd, rs, rt | floor.w.d fd, fs | rdhwr rt, rd | andi rt, rs, immediate | floor.w.s fd, fs | rdpgpr rd, rt | b offset | ins rt, rs, pos, size | recip.d fd, fs | bal offset | j target | recip.s fd, fs | bc1f [cc, ] offset | jal target | rotr rd, rt, sa | bc1t [cc, ] offset | jalr [rd,] rs | rotrv rd, rt, rs | bc2f [cc, ] offset | jalr.hb [rd,] rs | round.l.d fd, fs | bc2t [cc, ] offset | jalx target | round.l.s fd, fs | beq rs, rt, offset | jr rs | round.w.d fd, fs | bgez rs, offset | jr.hb rs | round.w.s fd, fs | bgezal rs, offset | lb rt, offset(base) | rsqrt.d fd, fs | bgtz rs, offset | lbe rt, offset(base) | rsqrt.s fd, fs | blez rs, offset | lbu rt, offset(base) | sb rt, offset(base) | bltz rs, offset | lbue rt, offset(base) | sbe rt, offset(base) | bltzal rs, offset | ldc1 ft, offset(base) | sc rt, offset(base) | bne rs, rt, offset | ldc2 rt, offset(base) | sce rt, offset(base) | break [code] | ldxc1 fd, index(base) | sdbbp [code] | c.eq.d [cc,] fs, ft | lh rt, offset(base) | sdc1 ft, offset(base) | c.eq.ps [cc,] fs, ft | lhe rt, offset(base) | sdc2 rt, offset(base) | c.eq.s [cc,] fs, ft | lhu rt, offset(base) | sdxc1 fs, index(base) | c.f.d [cc,] fs, ft | lhue rt, offset(base) | seb rd, rt | c.f.ps [cc,] fs, ft | ll rt, offset(base) | seh rd, rt | c.f.s [cc,] fs, ft | lle rt, offset(base) | sh rt, offset(base) | c.le.d [cc,] fs, ft | lui rt, immediate | she rt, offset(base) | c.le.ps [cc,] fs, ft | luxc1 fd, index(base) | sll rd, rt, sa | c.le.s [cc,] fs, ft | lw rt, offset(base) | sllv rd, rt, rs | c.lt.d [cc,] fs, ft | lwc1 ft, offset(base) | slt rd, rs, rt | c.lt.ps [cc,] fs, ft | lwc2 rt, offset(base) | slti rt, rs, immediate | c.lt.s [cc,] fs, ft | lwe rt, offset(base) | sltiu rt, rs, immediate | c.nge.d [cc,] fs, ft | lwl rt, offset(base) | sltu rd, rs, rt | c.nge.ps [cc,] fs, ft | lwle rt, offset(base) | sqrt.d fd, fs | c.nge.s [cc,] fs, ft | lwr rt, offset(base) | sqrt.s fd, fs | c.ngl.d [cc,] fs, ft | lwre rt, offset(base) | sra rd, rt, sa | c.ngl.ps [cc,] fs, ft | lwxc1 fd, index(base) | srav rd, rt, rs | c.ngl.s [cc,] fs, ft | madd rs, rt | srl rd, rt, sa | c.ngle.d [cc,] fs, ft | madd.d fd, fr, fs, ft | srlv rd, rt, rs | c.ngle.ps [cc,] fs, ft | madd.ps fd, fr, fs, ft | ssnop | c.ngle.s [cc,] fs, ft | madd.s fd, fr, fs, ft | sub rd, rs, rt | c.ngt.d [cc,] fs, ft | maddu rs, rt | sub.d fd, fs, ft | c.ngt.ps [cc,] fs, ft | mfc0 rt, rd [, sel] | sub.ps fd, fs, ft | c.ngt.s [cc,] fs, ft | mfc1 rt, fs | sub.s fd, fs, ft | c.ole.d [cc,] fs, ft | mfhc1 rt, fs | subu rd, rs, rt | c.ole.ps [cc,] fs, ft | mfhi rd | suxc1 fs, index(base) | c.ole.s [cc,] fs, ft | mflo rd | sw rt, offset(base) | c.olt.d [cc,] fs, ft | mov.d fd, fs | swc1 rt, offset(base) | c.olt.ps [cc,] fs, ft | mov.ps fd, fs | swc2 rt, offset(base) | c.olt.s [cc,] fs, ft | mov.s fd, fs | swe rt, offset(base) | c.seq.d [cc,] fs, ft | movf rd, rs, cc | swl rt, offset(base) | c.seq.ps [cc,] fs, ft | movf.d fd, fs, cc | swle rt, offset(base) | c.seq.s [cc,] fs, ft | movf.ps fd, fs, cc | swr rt, offset(base) | c.sf.d [cc,] fs, ft | movf.s fd, fs, cc | swre rt, offset(base) | c.sf.ps [cc,] fs, ft | movn rd, rs, rt | swxc1 fs, index(base) | c.sf.s [cc,] fs, ft | movn.d fd, fs, rt | sync [stype] | c.ueq.d [cc,] fs, ft | movn.ps fd, fs, rt | synci offset(base) | c.ueq.ps [cc,] fs, ft | movn.s fd, fs, rt | syscall [code] | c.ueq.s [cc,] fs, ft | movt rd, rs, cc | teq rs, rt [,code] | c.ule.d [cc,] fs, ft | movt.d fd, fs, cc | teqi rs, immediate | c.ule.ps [cc,] fs, ft | movt.ps fd, fs, cc | tge rs, rt [,code] | c.ule.s [cc,] fs, ft | movt.s fd, fs, cc | tgei rs, immediate | c.ult.d [cc,] fs, ft | movz rd, rs, rt | tgeiu rs, immediate | c.ult.ps [cc,] fs, ft | movz.d fd, fs, rt | tgeu rs, rt [,code] | c.ult.s [cc,] fs, ft | movz.ps fd, fs, rt | tlbinv | c.un.d [cc,] fs, ft | movz.s fd, fs, rt | tlbinvf | c.un.ps [cc,] fs, ft | msub rs, rt | tlbp | c.un.s [cc,] fs, ft | msub.d fd, fr, fs, ft | tlbr | cache op, offset(base) | msub.ps fd, fr, fs, ft | tlbwi | cachee op, offset(base) | msub.s fd, fr, fs, ft | tlbwr | ceil.l.d fd, fs | msubu rs, rt | tlt rs, rt [,code] | ceil.l.s fd, fs | mtc0 rt, rd [, sel] | tlti rs, immediate | ceil.w.d fd, fs | mtc1 rt, fs | tltiu rs, immediate | ceil.w.s fd, fs | mthc1 rt, fs | tltu rs, rt [,code] | cfc1 rt, fs | mthi rs | tne rs, rt [,code] | clo rd, rs | mtlo rs | tnei rs, immediate | clz rd, rs | mul rd, rs, rt | trunc.l.d fd, fs | ctc1 rt, fs | mul.d fd, fs, ft | trunc.l.s fd, fs | cvt.d.l fd, fs | mul.ps fd, fs, ft | trunc.w.d fd, fs | cvt.d.s fd, fs | mul.s fd, fs, ft | trunc.w.s fd, fs | cvt.d.w fd, fs | mult rs, rt | wait [code] | cvt.l.d fd, fs | multu rs, rt | wrpgpr rd, rt | cvt.l.s fd, fs | neg.d fd, fs | wsbh rd, rt | cvt.ps.s fd, fs, ft | neg.ps fd, fs | xor rd, rs, rt | cvt.s.d fd, fs | neg.s fd, fs | xori rt, rs, immediate | cvt.s.l fd, fs | nmadd.d fd, fr, fs, ft |
| cvt.s.pl fd, fs | nmadd.ps fd, fr, fs, ft |
| cvt.s.pu fd, fs | nmadd.s fd, fr, fs, ft |
| cvt.s.w fd, fs | nmsub.d fd, fr, fs, ft |
| cvt.w.d fd, fs | nmsub.ps fd, fr, fs, ft |
| cvt.w.s fd, fs | nmsub.s fd, fr, fs, ft |
| deret | nop |
|
|