blob: d79cd1047568b7f8997e529fb647a79c6c5af9a4 (
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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
# format of a line in this file:
# <instruction name> <opcode> <args>
#
# <opcode> is given by specifying one or more range/value pairs:
# highbit..lowbit=value (e.g. 31..25=0x45 14..12=0x0)
#
# <args> follows the conventions in xcc/src/opcodes/mips-opc.c
unimp 31..0=0
j 31..27=0x18 imm27 # opcodes 0x60-0x64
jal 31..27=0x19 imm27 # opcodes 0x64-0x68
lui 31..25=0x71 ra imm20
slori 31..25=0x72 ra imm20
beq 31..25=0x73 14..12=0 ra rb imm
bne 31..25=0x73 14..12=1 ra rb imm
blt 31..25=0x73 14..12=2 ra rb imm
bltu 31..25=0x73 14..12=3 ra rb imm
ble 31..25=0x73 14..12=4 ra rb imm
bleu 31..25=0x73 14..12=5 ra rb imm
addi 31..25=0x74 14..12=0 ra rb imm
addiw 31..25=0x74 14..12=1 ra rb imm
slti 31..25=0x74 14..12=2 ra rb imm
sltiu 31..25=0x74 14..12=3 ra rb imm
andi 31..25=0x74 14..12=4 ra rb imm
ori 31..25=0x74 14..12=5 ra rb imm
xori 31..25=0x74 14..12=6 ra rb imm
add 31..25=0x75 14..12=0 11..5=0 rc rb ra
sub 31..25=0x75 14..12=0 11..5=1 rc rb ra
slt 31..25=0x75 14..12=0 11..5=2 rc rb ra
sltu 31..25=0x75 14..12=0 11..5=3 rc rb ra
and 31..25=0x75 14..12=0 11..5=4 rc rb ra
or 31..25=0x75 14..12=0 11..5=5 rc rb ra
xor 31..25=0x75 14..12=0 11..5=6 rc rb ra
nor 31..25=0x75 14..12=0 11..5=7 rc rb ra
mul 31..25=0x75 14..12=1 11..5=0 rc rb ra
mulh 31..25=0x75 14..12=1 11..5=2 rc rb ra
mulhu 31..25=0x75 14..12=1 11..5=3 rc rb ra
div 31..25=0x75 14..12=1 11..5=4 rc rb ra
divu 31..25=0x75 14..12=1 11..5=5 rc rb ra
rem 31..25=0x75 14..12=1 11..5=6 rc rb ra
remu 31..25=0x75 14..12=1 11..5=7 rc rb ra
sllv 31..25=0x75 14..12=4 11..5=1 rc rb ra
srlv 31..25=0x75 14..12=4 11..5=2 rc rb ra
srav 31..25=0x75 14..12=4 11..5=3 rc rb ra
sll 31..25=0x75 14..12=5 11=0 24..20=0 rc rb shamt
srl 31..25=0x75 14..12=6 11=0 24..20=0 rc rb shamt
sra 31..25=0x75 14..12=7 11=0 24..20=0 rc rb shamt
addw 31..25=0x76 14..12=0 11..5=0 rc rb ra
subw 31..25=0x76 14..12=0 11..5=1 rc rb ra
mulw 31..25=0x76 14..12=1 11..5=0 rc rb ra
mulhw 31..25=0x76 14..12=1 11..5=2 rc rb ra
mulhuw 31..25=0x76 14..12=1 11..5=3 rc rb ra
divw 31..25=0x76 14..12=1 11..5=4 rc rb ra
divuw 31..25=0x76 14..12=1 11..5=5 rc rb ra
remw 31..25=0x76 14..12=1 11..5=6 rc rb ra
remuw 31..25=0x76 14..12=1 11..5=7 rc rb ra
sllvw 31..25=0x76 14..12=4 11..5=1 rc rb ra
srlvw 31..25=0x76 14..12=4 11..5=2 rc rb ra
sravw 31..25=0x76 14..12=4 11..5=3 rc rb ra
sllw 31..25=0x76 14..12=5 11..10=0 24..20=0 rc rb shamtw
srlw 31..25=0x76 14..12=6 11..10=0 24..20=0 rc rb shamtw
sraw 31..25=0x76 14..12=7 11..10=0 24..20=0 rc rb shamtw
lb 31..25=0x78 14..12=0 rb ra imm
lh 31..25=0x78 14..12=1 rb ra imm
lw 31..25=0x78 14..12=2 rb ra imm
ld 31..25=0x78 14..12=3 rb ra imm
lbu 31..25=0x78 14..12=4 rb ra imm
lhu 31..25=0x78 14..12=5 rb ra imm
lwu 31..25=0x78 14..12=6 rb ra imm
synci 31..25=0x78 14..12=7 24..20=0 rb imm
sb 31..25=0x79 14..12=0 rb ra imm
sh 31..25=0x79 14..12=1 rb ra imm
sw 31..25=0x79 14..12=2 rb ra imm
sd 31..25=0x79 14..12=3 rb ra imm
l.s 31..25=0x79 14..12=4 rb ra imm
l.d 31..25=0x79 14..12=5 rb ra imm
s.s 31..25=0x79 14..12=6 rb ra imm
s.d 31..25=0x79 14..12=7 rb ra imm
jalr.c 31..25=0x7B 19..15=0 14..12=0 11..5=0 ra rc
jalr.r 31..25=0x7B 19..15=0 14..12=0 11..5=1 ra rc
jalr.j 31..25=0x7B 19..15=0 14..12=0 11..5=2 ra rc
rdpc 31..25=0x7B 24..15=0 14..12=1 11..5=0 rc
rdhwr 31..25=0x7B 19..15=0 14..12=2 11..5=0 rc ra
sync 31..25=0x7B 24..15=0 14..12=3 11..0=0
syscall 31..25=0x7B 24..15=0 14..12=4 11..0=0
break 31..25=0x7B 24..15=0 14..12=5 11..0=0
ei 31..25=0x7E 14..12=0 19..15=0 11..0=0 ra
di 31..25=0x7E 14..12=1 19..15=0 11..0=0 ra
eret 31..25=0x7E 14..12=2 24..15=0 11..0=0
mfpcr 31..25=0x7E 14..12=4 11..0=0 ra rb
mwfpcr 31..25=0x7E 14..12=5 11..0=0 ra rb
mtpcr 31..25=0x7E 14..12=6 11..0=0 ra rb
mwtpcr 31..25=0x7E 14..12=7 11..0=0 ra rb
# 0x7F is reserved for 64-bit-long instructions
add.fmt 31..25=0x68 14..12=0 11..10=0 rc rb ra fmt
sub.fmt 31..25=0x68 14..12=1 11..10=0 rc rb ra fmt
mul.fmt 31..25=0x68 14..12=2 11..10=0 rc rb ra fmt
div.fmt 31..25=0x68 14..12=3 11..10=0 rc rb ra fmt
sqrt.fmt 31..25=0x68 14..12=4 19..15=0 11..10=0 rc ra fmt
abs.fmt 31..25=0x68 14..12=5 19..15=0 11..10=0 rc ra fmt
mov.fmt 31..25=0x68 14..12=6 19..15=0 11..10=0 rc ra fmt
neg.fmt 31..25=0x68 14..12=7 19..15=0 11..10=0 rc ra fmt
round.l.fmt 31..25=0x69 14..12=0 19..15=0 11..10=0 rc ra fmt
trunc.l.fmt 31..25=0x69 14..12=1 19..15=0 11..10=0 rc ra fmt
ceil.l.fmt 31..25=0x69 14..12=2 19..15=0 11..10=0 rc ra fmt
floor.l.fmt 31..25=0x69 14..12=3 19..15=0 11..10=0 rc ra fmt
round.w.fmt 31..25=0x69 14..12=4 19..15=0 11..10=0 rc ra fmt
trunc.w.fmt 31..25=0x69 14..12=5 19..15=0 11..10=0 rc ra fmt
ceil.w.fmt 31..25=0x69 14..12=6 19..15=0 11..10=0 rc ra fmt
floor.w.fmt 31..25=0x69 14..12=7 19..15=0 11..10=0 rc ra fmt
mfc1 31..25=0x6A 14..12=0 11..0=0 ra rb
dmfc1 31..25=0x6A 14..12=1 11..0=0 ra rb
cfc1 31..25=0x6A 14..12=2 11..0=0 ra rb
mfhc1 31..25=0x6A 14..12=3 11..0=0 ra rb
mtc1 31..25=0x6A 14..12=4 11..0=0 ra rb
dmtc1 31..25=0x6A 14..12=5 11..0=0 ra rb
ctc1 31..25=0x6A 14..12=6 11..0=0 ra rb
mthc1 31..25=0x6A 14..12=7 11..0=0 ra rb
cvt.s.fmt 31..25=0x6B 14..12=0 19..15=0 11..10=0 rc ra fmt
cvt.d.fmt 31..25=0x6B 14..12=1 19..15=0 11..10=0 rc ra fmt
cvt.w.fmt 31..25=0x6B 14..12=4 19..15=0 11..10=0 rc ra fmt
cvt.l.fmt 31..25=0x6B 14..12=5 19..15=0 11..10=0 rc ra fmt
c.f.fmt 31..25=0x6C 14..12=0 11..10=0 rc rb ra fmt
c.un.fmt 31..25=0x6C 14..12=1 11..10=0 rc rb ra fmt
c.eq.fmt 31..25=0x6C 14..12=2 11..10=0 rc rb ra fmt
c.ueq.fmt 31..25=0x6C 14..12=3 11..10=0 rc rb ra fmt
c.olt.fmt 31..25=0x6C 14..12=4 11..10=0 rc rb ra fmt
c.ult.fmt 31..25=0x6C 14..12=5 11..10=0 rc rb ra fmt
c.ole.fmt 31..25=0x6C 14..12=6 11..10=0 rc rb ra fmt
c.ule.fmt 31..25=0x6C 14..12=7 11..10=0 rc rb ra fmt
c.sf.fmt 31..25=0x6D 14..12=0 11..10=0 rc rb ra fmt
c.ngle.fmt 31..25=0x6D 14..12=1 11..10=0 rc rb ra fmt
c.seq.fmt 31..25=0x6D 14..12=2 11..10=0 rc rb ra fmt
c.ngl.fmt 31..25=0x6D 14..12=3 11..10=0 rc rb ra fmt
c.lt.fmt 31..25=0x6D 14..12=4 11..10=0 rc rb ra fmt
c.nge.fmt 31..25=0x6D 14..12=5 11..10=0 rc rb ra fmt
c.le.fmt 31..25=0x6D 14..12=6 11..10=0 rc rb ra fmt
c.ngt.fmt 31..25=0x6D 14..12=7 11..10=0 rc rb ra fmt
|