Vector35 / Vector35/binaryninja-api

MIPS: Instruction Disassembly/Lifting Completion

Open
#4,014 11 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Arch: MIPS Component: Architecture Impact: Medium
Dominant language
C++
Stars
1.3k
Forks
298
Avg merge
5d 5h
Merged PRs (30d)
19

Description

The following is the list of instructions which we currently disassemble and lift (Fully or Partially). If you have any instructions which differ from this table, there is likely a bug or a documentation failure, please let us know (also if you could provide the opcodes that would be great).

Mnem Disasm Lifting
add Full Full
addi Full Full
addiu Full Full
addu Full Full
and Full Full
andi Full Full
clo Full Full
clz Full Full
daddu Full None
divu Full Full
ins Full Full
lb Full Full
ld Full None
lbu Full Full
lh Full Full
lhu Full Full
lui Full Full
lw Full Full
mfc0 Full Full
mfc1 Full Full
mfc2 Full Full
mfhi Full Full
mflo Full Full
move Full Full
msub Full Full
msubu Full Full
mtc0 Full Full
mtc1 Full Full
mtc2 Full Full
mthi Full Full
mtlo Full Full
mult Full Full
multu Full Full
neg Full Full
negu Full Full
nor Full Full
not Full Full
or Full Full
ori Full Full
sb Full Full
sll Full Full
sllv Full Full
slt Full Full
slti Full Full
sltiu Full Full
sltu Full Full
sra Full Full
srav Full Full
sub Full Full
subu Full Full
sw Full Full
swc1 Full Full
swc2 Full Full
swl Full Full
xor Full Full
xori Full Full
abs.d Full None
abs.s Full None
add.d Full None
add.s Full None
c.eq.d Full None
c.eq.s Full None
c.f.d Full None
c.f.s Full None
c.le.d Full None
c.le.s Full None
c.lt.d Full None
c.lt.s Full None
c.nge.d Full None
c.nge.s Full None
c.ngl.d Full None
c.ngl.s Full None
c.ngle.d Full None
c.ngle.s Full None
c.ngt.d Full None
c.ngt.s Full None
c.ole.d Full None
c.ole.s Full None
c.olt.d Full None
c.olt.s Full None
c.seq.d Full None
c.seq.s Full None
c.sf.d Full None
c.sf.s Full None
c.ueq.d Full None
c.ueq.s Full None
c.ule.d Full None
c.ule.s Full None
c.ult.d Full None
c.ult.s Full None
c.un.d Full None
c.un.s Full None
ceil.w.d Full None
ceil.w.s Full None
cfc1 Full None
ctc1 Full None
cvt.d.s Full None
cvt.d.w Full None
cvt.s.d Full None
cvt.s.w Full None
cvt.w.d Full None
cvt.w.s Full None
floor.w.d Full None
floor.w.s Full None
ldc2 Full None
ll Full None
luxc1 Full None
lwc2 Full None
lwxc1 Full None
madd Full None
maddu Full None
mfhc1 Full None
mov.d Full None
mov.s Full None
movf Full None
movf.d Full None
movf.s Full None
movt Full None
mthc1 Full None
mul.d Full None
mul.s Full None
neg.d Full None
neg.s Full None
rotr Full None
rotrv Full None
round.w.d Full None
round.w.s Full None
sc Full None
sdc2 Full None
sh Full None
sqrt.d Full None
sqrt.s Full None
srl Full None
srlv Full None
sub.d Full None
sub.s Full None
suxc1 Full None
swxc1 Full None
trunc.w.d Full None
trunc.w.s Full None
wsbh Full None

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review the MIPS instruction status table in this issue, focusing first on instructions marked with no lifting support. Identify the relevant implementation and test entry points in the repository, then verify each added instruction against its opcode and lifting behavior. Done means the targeted MIPS instructions are lifted consistently with the listed expectations.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
reverse-engineering
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.