Grading Policies Regarding MIPS Assembly Instructions

TL;DR: On exams, your code must use only those instructions and psuedoinstructions listed on the MIPS reference card, in addition to la for full credit. To be explicit, altogether this means that only the following psuedoinstructions are allowed:

There are a number of instructions and pseudoinstructions located in the MIPS reference card, which is available both at the link and in the front of the course textbook. This set of instructions should be more than sufficient for all the tasks you will be asked to do in this class, and there are no restrictions on which ones you can use, unless otherwise stated.

That said, there are even more instructions, and particularly pseudoinstructions, available. Scattered documentation exists online which goes through these instructions, though usually in an incomplete manner (for example, this PDF covers the seq pseudoinstruction, which is not on the aforementioned reference card, but nonetheless exists). Such pseudoinstructions are nice to have on a day-to-day basis. However, there are some problems associated with these, particularly from an educational perspective:

  1. The documentation for these instructions tends to be lacking and incomplete
  2. Certain questions can be trivially answered by providing a highly specialized psuedoinstruction which ultimately performs the whole task at hand
  3. Most importantly, these instructions increase the number of possible solutions, often in an exponential way. From a student's perspective, more possible solutions generally means more possible ways in which something can go wrong, which is non-ideal. From a grader's perspective, this can make grading very difficult; not only must the grader be familiar with all the psuedoinstructions (which is a vast set), the grader also must cope with lots of variability in solutions (which dramatically increases the amount of time necessary to grade things).

For the above reasons, we require that on exams, your code must use only those instructions and psuedoinstructions listed on the MIPS reference card for full credit. The only exception to this is the la psuedoinstruction, which may also be used with no restrictions. While you may use whatever instructions you want for lab assignments, it is still recommended that you stick to the reference card, just to better prepare you for the exams.