aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorm8pple <dt10@imperial.ac.uk>2014-10-17 15:15:34 +0100
committerm8pple <dt10@imperial.ac.uk>2014-10-17 15:15:34 +0100
commitfcf1520d54bf62fd419ace371f11e86815503428 (patch)
treebf0e531b213605e28e6caf851bda525897674740 /README.md
parent4bdf3a0358f24ab7d83801090fbc05adc1dacd75 (diff)
downloadMipsCPU-fcf1520d54bf62fd419ace371f11e86815503428.tar.gz
MipsCPU-fcf1520d54bf62fd419ace371f11e86815503428.zip
Update README.md
I give up on markdown tables. There is no markdown, there is only Zuul.
Diffstat (limited to 'README.md')
-rw-r--r--README.md99
1 files changed, 50 insertions, 49 deletions
diff --git a/README.md b/README.md
index 63c6d6e..c62e2e7 100644
--- a/README.md
+++ b/README.md
@@ -226,55 +226,56 @@ and a rough guide to how complex they are. Note that the complexity is
based on both how easy it is to implement the base functionality,
but also how easy it is to deal with, and try to test, corner cases.
-Code | Meaning | Complexity |
---------------------------------------------------|-------------|
-ADD | Add (with overflow) | 2 XX |
-ADDI | Add immediate (with overflow) | 2 XX |
-ADDIU | Add immediate unsigned (no overflow) | 2 XX |
-ADDU | Add unsigned (no overflow) | 1 X |
-AND | Bitwise and | 1 X |
-ANDI | Bitwise and immediate | 2 XX |
-BEQ | Branch on equal | 3 XXX |
-BGEZ | Branch on greater than or equal to zero | 3 XXX |
-BGEZAL| Branch on greater >=0 zero and link | 4 XXXX |
-BGTZ | Branch on greater than zero | 3 XXX |
-BLEZ | Branch on less than or equal to zero | 3 XXX |
-BLTZ | Branch on less than zero | 3 XXX |
-BLTZAL| Branch on less than zero and link | 4 XXXX |
-BNE | Branch on not equal | 3 XXX |
-DIV | Divide | 4 XXXX |
-DIVU | Divide unsigned | 3 XXXX |
-J | Jump | 3 XXX |
-JAL | Jump and link | 3 XXXX |
-JR | Jump register | 3 XXX |
-LB | Load byte | 4 XXX |
-LBU | Load byte unsigned | 3 XXX |
-LUI | Load upper immediate | 2 XX |
-LW | Load word | 2 XX |
-LWL | Load word left | 5 XXXXX |
-LWR | Load word right | 5 XXXXX |
-MFHI | Move from HI | 3 XXXX |
-MFLO | Move from LO | 3 XXXX |
-MULT | Multiply | 4 XXXX |
-MULTU | Multiply unsigned | 3 XXXX |
-OR | Bitwise or | 1 X |
-ORI | Bitwise or immediate | 2 XX |
-SB | Store byte | 3 XXX |
-SH | Store half-word | 3 XXX |
-SLL | Shift left logical | 2 XX |
-SLLV | Shift left logical variable | 3 XX |
-SLT | Set on less than (signed) | 2 XX |
-SLTI | Set on less than immediate (signed) | 3 XXX |
-SLTIU | Set on less than immediate unsigned | 3 XXX |
-SLTU | Set on less than unsigned | 1 X |
-SRA | Shift right arithmetic | 2 XX |
-SRL | Shift right logical | 2 XX |
-SRLV | Shift right logical variable | 2 XX |
-SUB | Subtract | 2 XX |
-SUBU | Subtract unsigned | 1 X |
-SW | Store word | 2 XX |
-XOR | Bitwise exclusive or | 1 X |
-XORI | Bitwise exclusive or immediate | 2 XX |
+
+ Code | Meaning | Complexity
+ --------------------------------------------------|-----------
+ ADD | Add (with overflow) | 2 XX
+ ADDI | Add immediate (with overflow) | 2 XX
+ ADDIU | Add immediate unsigned (no overflow) | 2 XX
+ ADDU | Add unsigned (no overflow) | 1 X
+ AND | Bitwise and | 1 X
+ ANDI | Bitwise and immediate | 2 XX
+ BEQ | Branch on equal | 3 XXX
+ BGEZ | Branch on greater than or equal to zero | 3 XXX
+ BGEZAL| Branch on greater >=0 zero and link | 4 XXXX
+ BGTZ | Branch on greater than zero | 3 XXX
+ BLEZ | Branch on less than or equal to zero | 3 XXX
+ BLTZ | Branch on less than zero | 3 XXX
+ BLTZAL| Branch on less than zero and link | 4 XXXX
+ BNE | Branch on not equal | 3 XXX
+ DIV | Divide | 4 XXXX
+ DIVU | Divide unsigned | 3 XXXX
+ J | Jump | 3 XXX
+ JAL | Jump and link | 3 XXXX
+ JR | Jump register | 3 XXX
+ LB | Load byte | 4 XXX
+ LBU | Load byte unsigned | 3 XXX
+ LUI | Load upper immediate | 2 XX
+ LW | Load word | 2 XX
+ LWL | Load word left | 5 XXXXX
+ LWR | Load word right | 5 XXXXX
+ MFHI | Move from HI | 3 XXXX
+ MFLO | Move from LO | 3 XXXX
+ MULT | Multiply | 4 XXXX
+ MULTU | Multiply unsigned | 3 XXXX
+ OR | Bitwise or | 1 X
+ ORI | Bitwise or immediate | 2 XX
+ SB | Store byte | 3 XXX
+ SH | Store half-word | 3 XXX
+ SLL | Shift left logical | 2 XX
+ SLLV | Shift left logical variable | 3 XX
+ SLT | Set on less than (signed) | 2 XX
+ SLTI | Set on less than immediate (signed) | 3 XXX
+ SLTIU | Set on less than immediate unsigned | 3 XXX
+ SLTU | Set on less than unsigned | 1 X
+ SRA | Shift right arithmetic | 2 XX
+ SRL | Shift right logical | 2 XX
+ SRLV | Shift right logical variable | 2 XX
+ SUB | Subtract | 2 XX
+ SUBU | Subtract unsigned | 1 X
+ SW | Store word | 2 XX
+ XOR | Bitwise exclusive or | 1 X
+ XORI | Bitwise exclusive or immediate | 2 XX
This is not quite an exhaustive list of MIPS-1 instructions
(as was originally sort of implied). Some were deliberately left out