aboutsummaryrefslogtreecommitdiff
path: root/instructions.md
blob: 383d234cac39c91f9bb1bb4be77e302c59a249b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
Instructions
============
This is list of all MIPS1 instructions and their implementation status in QtMips.

Explanation of checkboxes:
* [ ] Not tested
* [?] Somewhat tested but not sure about correctness of implementation
* [x] Tested

CPU Arithmetic Instruction
--------------------------
* [x] ADD
* [x] ADDI
* [x] ADDIU
* [x] ADDU
* [ ] CLO
* [ ] CLZ
* [ ] DIV
* [ ] DIVU
* [ ] MADD
* [ ] MADDU
* [ ] MSUB
* [ ] MSUBU
* [ ] MUL
* [ ] MULT
* [ ] MULTU
* [x] SLT
* [x] SLTI
* [x] SLTIU
* [?] SLTU
* [x] SUB
* [x] SUBU

CPU Branch and Jump Instructions
--------------------------------
* [ ] B
* [ ] BAL
* [ ] BEQ
* [ ] BGEZ
* [ ] BGEZAL
* [ ] BGTZ
* [ ] BLEZ
* [ ] BLTZ
* [ ] BLTZAL
* [ ] BNE
* [ ] J
* [ ] JAL
* [ ] JALR
* [ ] JR

CPU No Instructions
-------------------
* [ ] NOP
* [ ] SSNOP

CPU Load, Store and Memory Control Instructions
-----------------------------------------------
* [ ] LB
* [ ] LBU
* [ ] LH
* [ ] LHU
* [ ] LL
* [ ] LW
* [ ] LWL
* [ ] LWR
* [ ] PREF
* [ ] SB
* [ ] SC
* [ ] SD
* [ ] SH
* [ ] SW
* [ ] SWL
* [ ] SWR
* [ ] SYNC

CPU Logical Instructions
------------------------
* [x] AND
* [x] ANDI
* [ ] LUI
* [x] NOR
* [x] OR
* [x] ORI
* [x] XOR
* [x] XORI

CPU Move Instruction
--------------------
* [ ] MFHI
* [ ] MFLO
* [ ] MTHI
* [ ] MTHO
* [ ] MOVN
* [ ] MOVZ
* MOVF, MOVT won't be implemented as floating coprocessor won't be implemented

CPU Shift Instructions
----------------------
* [x] SLL
* [x] SLLV
* [?] SRA
* [?] SRAV
* [x] SRL
* [x] SRLV

CPU Trap Instructions
---------------------
Following instruction will be implemented but only as dummy ones as we are not
implementing privileged instructions. They will all result to exception and core
execution stop.

* [ ] BREAK
* [ ] TEQ
* [ ] TEQI
* [ ] TGE
* [ ] TGEI
* [ ] TGEIU
* [ ] TGEU
* [ ] TLT
* [ ] TLTI
* [ ] TLTIU
* [ ] TLTU
* [ ] TNE
* [ ] TNEI
* SYSCALL won't be implemented at all

Obsolete CPU branch instructions
--------------------------------
None of these instructions will be implemented as they are marked as obsolete and
they shouldn't be used by compiler and the same way by programmers.

FPU Instructions
----------------
No FPU instruction will be implemented as no FPU is planned to be implemented.

Coprocessor Instructions
------------------------
None of these will be implemented as coprocessor 2 won't be implemented.

Privileged instructions
-----------------------
None of these will be implemented as privileged state won't be implemented.

EJTAG Instructions
------------------
No instruction will be implemented as no ejtag support.