]> git.lizzy.rs Git - plan9front.git/blob - sys/src/cmd/ka/note
merge
[plan9front.git] / sys / src / cmd / ka / note
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
16 note: x is (R+R) or offset(R)
17 note: 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
25 note: 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
51 note: 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
101 note: 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
131 note: 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
152 note: 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
173 note: 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