Skip to content

Latest commit

 

History

History
43 lines (37 loc) · 1.53 KB

README.md

File metadata and controls

43 lines (37 loc) · 1.53 KB

mipsvm

To get started

Run this command on the command line clone the repo.

  • git clone https://github.com/acm-uncc/mipsvm.git

To add a new feature

  1. Find an instruction here that is not already implemented (or pick one from our list below)
  2. git branch (instruction name)
  3. git checkout (instruction name)
  4. Identify instruction layout
  5. Create function with op_ + function name
  6. First argument to function will be MIPS32_VM& vm
  7. Other arguments will be instruction layout (except for the first section)
  8. Implement function according to what the page says
  9. Go to op_handlers array, find the opcode (first number) that corresponds to a number on the list
  10. Change nullptr with the name of the function you implemented like reinterpret_cast(name)
  11. Go to here
  12. Figure out type of instruction based on page 73
  13. Look through enum of OP_TYPE
  14. Go to op_types array and find the opcode of your function
  15. Replace UNIMPLEMENTED with OP_TYPE
  16. git add .
  17. git commit -m "Add (instructin name)"
  18. git push origin master
  19. Go to the repository then the Pull requests tab
  20. Hit new pull request
  21. Select your branch
  22. Create pull request and mention which instruction you did in the title

Simple New Instructions

  • MULT
  • DIV
  • AND
  • OR
  • SLL
  • SRL
  • XORI

Questions?

Please ask in the ACM Discord if you have any questions.