- [x] lw - [ ] sw - [x] addiu - [x] sll - [x] or - [x] addu - [x] beq - [x] jalr - [x] sltu - [x] bne - [x] xor - [x] srl - [x] lbu - [ ] lwr - [ ] lwl - [x] sb - [ ] swr - [ ] swl - [x] mfhi - [ ] bgezal - [x] lui - [ ] break - [x] mflo - [x] subu - [x] and - [x] andi - [x] sltiu - [x] multu - [x] jr - [x] lhu - [x] ori - [ ] movz - [x] mtlo - [x] mthi - [x] sh - [ ] movn - [x] nor - [ ] bltz - [x] xori - [ ] sync - [ ] bgez - [ ] clz - [x] sra - [ ] sc - [ ] ll - [x] lb - [x] sllv - [ ] mul - [x] srlv - [x] slti - [x] slt - [ ] maddu - [x] blez - [x] syscall - [x] lh - [x] divu - [x] mult - [ ] teq - [x] bgtz - [ ] srav - [x] div how to get the result: 1. using this profile.release in Cargo.toml: ``` [profile.release] strip=true lto=true panic = "abort" ``` 2. release the min-starcoin-vm with changes in this [commit](https://github.com/starcoinorg/mini-starcoinvm/pull/4) 3. using [objdump inside this toolchain](https://musl.cc/mips-linux-musl-cross.tgz) to disassembler executable sections: ``` mips-linux-musl-objdump -d mini-starcoin-vm > exec.obj ``` 4. using this [mips disassembler tool](https://github.com/loadzero/mipsdis) to get instructions: ``` cat exec.obj | awk '{print $1, $2}' | mipsdis - > exec.dis ``` 5. get pure instructions: cat exec.dis | awk '{print $3}' > ins 6. combine instructions and sort them: perl -0777 -lape's/\s+/\n/g' ins | sort | uniq -c | sort -nr > ins_sort 7. cat ins_sort | awk '{print $2}' > used_ins 8. remove meaningless illegal Close #13
how to get the result:
Close #13