xref: /inferno-os/utils/ka/note (revision 74a4d8c26dd3c1e9febcb717cfd6cb6512991a7a)
1/* load instructions */
2
3	LDSB		MOVB	x, R
4	LDSBA		MOVB	x, R, asi
5	LDSH		MOVH	x, R
6	LDSHA		MOVH	x, R, asi
7	LDUB		MOVBU	x, R
8	LDUBA		MOVBU	x, R, asi
9	LDUH		MOVHU	x, R
10	LDUHA		MOVHU	x, R, asi
11	LD		MOVW	x, R
12	LDA		MOVW	x, R, asi
13	LDD		MOVD	x, R
14	LDDA		MOVD	x, R, asi
15
16note: x is (R+R) or offset(R)
17note: MOVD is a bad name, means double word
18
19/* load floating */
20
21	LDF		MOVF	x, FR
22	LDDF		MOVD	x, FR
23	LDFSR		MOVW	x, FPSR
24
25note: MOVF maybe is MOVW
26
27/* load coprocessor */
28
29	LDC		MOVW	x, CR
30	LDDC		MOVD	x, CR
31	LDCSR		MOVW	x, CPSR
32
33/* store */
34
35	STB		MOVB	R, x
36	STBA		MOVB	R, x, asi
37	STH		MOVH	R, x
38	STHA		MOVH	R, x, asi
39	ST		MOVW	R, x
40	STA		MOVW	R, x, asi
41	STD		MOVD	R, x
42	STDA		MOVD	R, x, asi
43
44/* store floating *
45
46	STF		MOVF	FR, x
47	STDF		MOVD	FR, x
48	STFSR		MOVW	FPSR, x
49	STDFQ		MOVD	FPQ, x
50
51note: STDFQ gok
52
53/* store coprocessor */
54
55	STC		MOVW	CR, x
56	STDC		MOVD	CR, x
57	STCSR		MOVW	CPSR, x
58	STDCQ		MOVD	CPQ, x
59
60/* atomic load/store */
61
62	LDSTUB		TAS	x
63	LDSTUBA		TAS	x, asi
64
65/* swap */
66
67	SWAP		SWAP	R, x
68	SWAPA		SWAP	R, x, asi
69
70/* calc */
71
72	ADD		ADDW	y,R, R
73	ADDcc		ADDWT	y,R, R
74	ADDX		ADDC	y,R, R
75	ADDXcc		ADDCT	y,R, R
76	TADDcc
77	TADDccTV
78	SUB
79	SUBcc
80	SUBX
81	SUBXcc
82	TSUBcc
83	TSUBccTV
84	MULScc
85	AND
86	ANDcc
87	ANDN
88	ANDNcc
89	OR
90	ORcc
91	ORN
92	ORNcc
93	XOR
94	XORcc
95	XNOR
96	XNORcc
97	SLL
98	SRL
99	SRA
100
101note: y is R or $simm13
102
103/* sethi */
104
105	SETHI		MOVW	$c, R		/* high 22 bits */
106
107/* save/restore (same as add) */
108
109	SAVE		SAVE	y,R, R
110	RESTORE		RESTORE	y,R, R
111
112/* branch on cc */
113
114	BA
115	BN
116	BNE
117	BE
118	BG
119	BLE
120	BGE
121	BL
122	BGU
123	BLEU
124	BCC
125	BCS
126	BPOS
127	BNEG
128	BVC
129	BVS
130
131note: annul bit?
132
133/* branch on fcc */
134
135	FBA
136	FBN
137	FBU
138	FBG
139	FBUG
140	FBL
141	FBUL
142	FBLG
143	FBNE
144	FBE
145	FBUE
146	FBGE
147	FBUGE
148	FBLE
149	FBULE
150	FBO
151
152note: annul bit?
153
154/* branch on coprocecssor cc */
155
156	CBA
157	CBN
158	CB3
159	CB2
160	CB23
161	CB1
162	CB13
163	CB12
164	CB123
165	CB0
166	CB03
167	CB02
168	CB023
169	CB01
170	CB013
171	CB012
172
173note: annul bit?
174
175/* call */
176
177	CALL
178	JAL	x, R
179
180/* return from trap */
181
182	RETT	x
183
184/* trap on integer cc */
185
186	TA
187	TN
188	TNE
189	TE
190	TG
191	TLE
192	TGE
193	TL
194	TGU
195	TLEU
196	TCC
197	TCS
198	TPOS
199	TNEG
200	TVC
201	TVS
202
203/* read state register */
204
205	RDY		MOVW	Y, R
206	RDPSR		MOVW	PSR, R
207	RDWIM		MOVW	WIM, R
208	RDTBR		MOVW	TBR, R
209
210/* write state register */
211
212	WRY		MOVW	R, Y
213	WRPSR		MOVW	R, PSR
214	WRWIM		MOVW	R, WIM
215	WRTBR		MOVW	R, TBR
216
217/* unimplemented */
218
219	UNIMP	$C22
220
221/* instruction cache flush */
222
223	IFLUSH	x
224
225/* floating op */
226
227	FiTOs
228	FiTOd
229	FiTOx
230
231	FsTOi
232	FdTOi
233	FxTOi
234
235	FsTOd
236	FsTOx
237	FdTOs
238	FdTOx
239	FxTOs
240	FxTOd
241
242	FMOVs
243	FNEGs
244	FABSs
245
246	FSQRTs
247	FSQRTd
248	FSQRTx
249
250	FADDs
251	FADDd
252	FADDx
253	FSUBs
254	FSUBd
255	FSUBx
256
257	FMULs
258	FMULd
259	FMULx
260	FDIVs
261	FDIVd
262	FDIVx
263
264	FCMPs
265	FCMPd
266	FCMPx
267	FCMPEs
268	FCMPEd
269	FCMPEx
270
271/* coprocessor op */
272
273	CPop1
274	CPop2
275