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