Mercurial > hg > truffle
comparison graal/com.oracle.max.asmdis/src/com/sun/max/asm/sparc/complete/SPARCRawAssembler.java @ 3733:e233f5660da4
Added Java files from Maxine project.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Sat, 17 Dec 2011 19:59:18 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
3732:3e2e8b8abdaf | 3733:e233f5660da4 |
---|---|
1 /* | |
2 * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. | |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | |
4 * | |
5 * This code is free software; you can redistribute it and/or modify it | |
6 * under the terms of the GNU General Public License version 2 only, as | |
7 * published by the Free Software Foundation. | |
8 * | |
9 * This code is distributed in the hope that it will be useful, but WITHOUT | |
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
12 * version 2 for more details (a copy is included in the LICENSE file that | |
13 * accompanied this code). | |
14 * | |
15 * You should have received a copy of the GNU General Public License version | |
16 * 2 along with this work; if not, write to the Free Software Foundation, | |
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
18 * | |
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA | |
20 * or visit www.oracle.com if you need additional information or have any | |
21 * questions. | |
22 */ | |
23 | |
24 package com.sun.max.asm.sparc.complete; | |
25 | |
26 import com.sun.max.asm.sparc.*; | |
27 | |
28 public abstract class SPARCRawAssembler extends AbstractSPARCAssembler { | |
29 | |
30 // START GENERATED RAW ASSEMBLER METHODS | |
31 /** | |
32 * Pseudo-external assembler syntax: {@code casa }<i>rs1</i>, <i>immAsi</i>, <i>rs2</i>, <i>rd</i> | |
33 * Example disassembly syntax: {@code casa [%g0] 0x0,%g0, %g0} | |
34 * <p> | |
35 * Constraint: {@code 0 <= immAsi && immAsi <= 255}<br /> | |
36 * | |
37 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.9" | |
38 */ | |
39 // Template#: 1, Serial#: 1 | |
40 public void casa(final GPR rs1, final int immAsi, final GPR rs2, final GPR rd) { | |
41 int instruction = 0xC1E00000; | |
42 checkConstraint(0 <= immAsi && immAsi <= 255, "0 <= immAsi && immAsi <= 255"); | |
43 instruction |= ((rs1.value() & 0x1f) << 14); | |
44 instruction |= ((immAsi & 0xff) << 5); | |
45 instruction |= (rs2.value() & 0x1f); | |
46 instruction |= ((rd.value() & 0x1f) << 25); | |
47 emitInt(instruction); | |
48 } | |
49 | |
50 /** | |
51 * Pseudo-external assembler syntax: {@code casa }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
52 * Example disassembly syntax: {@code casa [%g0] %asi, %g0, %g0} | |
53 * | |
54 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.9" | |
55 */ | |
56 // Template#: 2, Serial#: 2 | |
57 public void casa(final GPR rs1, final GPR rs2, final GPR rd) { | |
58 int instruction = 0xC1E02000; | |
59 instruction |= ((rs1.value() & 0x1f) << 14); | |
60 instruction |= (rs2.value() & 0x1f); | |
61 instruction |= ((rd.value() & 0x1f) << 25); | |
62 emitInt(instruction); | |
63 } | |
64 | |
65 /** | |
66 * Pseudo-external assembler syntax: {@code casxa }<i>rs1</i>, <i>immAsi</i>, <i>rs2</i>, <i>rd</i> | |
67 * Example disassembly syntax: {@code casxa [%g0] 0x0,%g0, %g0} | |
68 * <p> | |
69 * Constraint: {@code 0 <= immAsi && immAsi <= 255}<br /> | |
70 * | |
71 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.9" | |
72 */ | |
73 // Template#: 3, Serial#: 3 | |
74 public void casxa(final GPR rs1, final int immAsi, final GPR rs2, final GPR rd) { | |
75 int instruction = 0xC1F00000; | |
76 checkConstraint(0 <= immAsi && immAsi <= 255, "0 <= immAsi && immAsi <= 255"); | |
77 instruction |= ((rs1.value() & 0x1f) << 14); | |
78 instruction |= ((immAsi & 0xff) << 5); | |
79 instruction |= (rs2.value() & 0x1f); | |
80 instruction |= ((rd.value() & 0x1f) << 25); | |
81 emitInt(instruction); | |
82 } | |
83 | |
84 /** | |
85 * Pseudo-external assembler syntax: {@code casxa }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
86 * Example disassembly syntax: {@code casxa [%g0] %asi, %g0, %g0} | |
87 * | |
88 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.9" | |
89 */ | |
90 // Template#: 4, Serial#: 4 | |
91 public void casxa(final GPR rs1, final GPR rs2, final GPR rd) { | |
92 int instruction = 0xC1F02000; | |
93 instruction |= ((rs1.value() & 0x1f) << 14); | |
94 instruction |= (rs2.value() & 0x1f); | |
95 instruction |= ((rd.value() & 0x1f) << 25); | |
96 emitInt(instruction); | |
97 } | |
98 | |
99 /** | |
100 * Pseudo-external assembler syntax: {@code flush }<i>rs1</i>, <i>rs2</i> | |
101 * Example disassembly syntax: {@code flush %g0 + %g0} | |
102 * | |
103 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.20" | |
104 */ | |
105 // Template#: 5, Serial#: 5 | |
106 public void flush(final GPR rs1, final GPR rs2) { | |
107 int instruction = 0x81D80000; | |
108 instruction |= ((rs1.value() & 0x1f) << 14); | |
109 instruction |= (rs2.value() & 0x1f); | |
110 emitInt(instruction); | |
111 } | |
112 | |
113 /** | |
114 * Pseudo-external assembler syntax: {@code flush }<i>rs1</i>, <i>simm13</i> | |
115 * Example disassembly syntax: {@code flush %g0 + -4096} | |
116 * <p> | |
117 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
118 * | |
119 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.20" | |
120 */ | |
121 // Template#: 6, Serial#: 6 | |
122 public void flush(final GPR rs1, final int simm13) { | |
123 int instruction = 0x81D82000; | |
124 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
125 instruction |= ((rs1.value() & 0x1f) << 14); | |
126 instruction |= (simm13 & 0x1fff); | |
127 emitInt(instruction); | |
128 } | |
129 | |
130 /** | |
131 * Pseudo-external assembler syntax: {@code ld }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
132 * Example disassembly syntax: {@code ld [%g0 + %g0], %f0} | |
133 * | |
134 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.25" | |
135 */ | |
136 // Template#: 7, Serial#: 7 | |
137 public void ld(final GPR rs1, final GPR rs2, final SFPR rd) { | |
138 int instruction = 0xC1000000; | |
139 instruction |= ((rs1.value() & 0x1f) << 14); | |
140 instruction |= (rs2.value() & 0x1f); | |
141 instruction |= ((rd.value() & 0x1f) << 25); | |
142 emitInt(instruction); | |
143 } | |
144 | |
145 /** | |
146 * Pseudo-external assembler syntax: {@code ld }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
147 * Example disassembly syntax: {@code ld [%g0 + -4096], %f0} | |
148 * <p> | |
149 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
150 * | |
151 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.25" | |
152 */ | |
153 // Template#: 8, Serial#: 8 | |
154 public void ld(final GPR rs1, final int simm13, final SFPR rd) { | |
155 int instruction = 0xC1002000; | |
156 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
157 instruction |= ((rs1.value() & 0x1f) << 14); | |
158 instruction |= (simm13 & 0x1fff); | |
159 instruction |= ((rd.value() & 0x1f) << 25); | |
160 emitInt(instruction); | |
161 } | |
162 | |
163 /** | |
164 * Pseudo-external assembler syntax: {@code ldd }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
165 * Example disassembly syntax: {@code ldd [%g0 + %g0], %f0} | |
166 * | |
167 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.25" | |
168 */ | |
169 // Template#: 9, Serial#: 9 | |
170 public void ldd(final GPR rs1, final GPR rs2, final DFPR rd) { | |
171 int instruction = 0xC1180000; | |
172 instruction |= ((rs1.value() & 0x1f) << 14); | |
173 instruction |= (rs2.value() & 0x1f); | |
174 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
175 emitInt(instruction); | |
176 } | |
177 | |
178 /** | |
179 * Pseudo-external assembler syntax: {@code ldd }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
180 * Example disassembly syntax: {@code ldd [%g0 + -4096], %f0} | |
181 * <p> | |
182 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
183 * | |
184 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.25" | |
185 */ | |
186 // Template#: 10, Serial#: 10 | |
187 public void ldd(final GPR rs1, final int simm13, final DFPR rd) { | |
188 int instruction = 0xC1182000; | |
189 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
190 instruction |= ((rs1.value() & 0x1f) << 14); | |
191 instruction |= (simm13 & 0x1fff); | |
192 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
193 emitInt(instruction); | |
194 } | |
195 | |
196 /** | |
197 * Pseudo-external assembler syntax: {@code ldq }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
198 * Example disassembly syntax: {@code ldq [%g0 + %g0], %f0} | |
199 * | |
200 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.25" | |
201 */ | |
202 // Template#: 11, Serial#: 11 | |
203 public void ldq(final GPR rs1, final GPR rs2, final QFPR rd) { | |
204 int instruction = 0xC1100000; | |
205 instruction |= ((rs1.value() & 0x1f) << 14); | |
206 instruction |= (rs2.value() & 0x1f); | |
207 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
208 emitInt(instruction); | |
209 } | |
210 | |
211 /** | |
212 * Pseudo-external assembler syntax: {@code ldq }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
213 * Example disassembly syntax: {@code ldq [%g0 + -4096], %f0} | |
214 * <p> | |
215 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
216 * | |
217 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.25" | |
218 */ | |
219 // Template#: 12, Serial#: 12 | |
220 public void ldq(final GPR rs1, final int simm13, final QFPR rd) { | |
221 int instruction = 0xC1102000; | |
222 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
223 instruction |= ((rs1.value() & 0x1f) << 14); | |
224 instruction |= (simm13 & 0x1fff); | |
225 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
226 emitInt(instruction); | |
227 } | |
228 | |
229 /** | |
230 * Pseudo-external assembler syntax: {@code ldx }<i>rs1</i>, <i>rs2</i> | |
231 * Example disassembly syntax: {@code ldx [%g0 + %g0], %fsr} | |
232 * | |
233 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.25" | |
234 */ | |
235 // Template#: 13, Serial#: 13 | |
236 public void ldx_fsr(final GPR rs1, final GPR rs2) { | |
237 int instruction = 0xC3080000; | |
238 instruction |= ((rs1.value() & 0x1f) << 14); | |
239 instruction |= (rs2.value() & 0x1f); | |
240 emitInt(instruction); | |
241 } | |
242 | |
243 /** | |
244 * Pseudo-external assembler syntax: {@code ldx }<i>rs1</i>, <i>simm13</i> | |
245 * Example disassembly syntax: {@code ldx [%g0 + -4096], %fsr} | |
246 * <p> | |
247 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
248 * | |
249 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.25" | |
250 */ | |
251 // Template#: 14, Serial#: 14 | |
252 public void ldx_fsr(final GPR rs1, final int simm13) { | |
253 int instruction = 0xC3082000; | |
254 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
255 instruction |= ((rs1.value() & 0x1f) << 14); | |
256 instruction |= (simm13 & 0x1fff); | |
257 emitInt(instruction); | |
258 } | |
259 | |
260 /** | |
261 * Pseudo-external assembler syntax: {@code ld }<i>rs1</i>, <i>rs2</i> | |
262 * Example disassembly syntax: {@code ld [%g0 + %g0], %fsr} | |
263 * | |
264 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.25" | |
265 */ | |
266 // Template#: 15, Serial#: 15 | |
267 public void ld_fsr(final GPR rs1, final GPR rs2) { | |
268 int instruction = 0xC1080000; | |
269 instruction |= ((rs1.value() & 0x1f) << 14); | |
270 instruction |= (rs2.value() & 0x1f); | |
271 emitInt(instruction); | |
272 } | |
273 | |
274 /** | |
275 * Pseudo-external assembler syntax: {@code ld }<i>rs1</i>, <i>simm13</i> | |
276 * Example disassembly syntax: {@code ld [%g0 + -4096], %fsr} | |
277 * <p> | |
278 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
279 * | |
280 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.25" | |
281 */ | |
282 // Template#: 16, Serial#: 16 | |
283 public void ld_fsr(final GPR rs1, final int simm13) { | |
284 int instruction = 0xC1082000; | |
285 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
286 instruction |= ((rs1.value() & 0x1f) << 14); | |
287 instruction |= (simm13 & 0x1fff); | |
288 emitInt(instruction); | |
289 } | |
290 | |
291 /** | |
292 * Pseudo-external assembler syntax: {@code swap }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
293 * Example disassembly syntax: {@code swap [%g0 + %g0], %g0} | |
294 * | |
295 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.25" | |
296 */ | |
297 // Template#: 17, Serial#: 17 | |
298 public void swap(final GPR rs1, final GPR rs2, final GPR rd) { | |
299 int instruction = 0xC0780000; | |
300 instruction |= ((rs1.value() & 0x1f) << 14); | |
301 instruction |= (rs2.value() & 0x1f); | |
302 instruction |= ((rd.value() & 0x1f) << 25); | |
303 emitInt(instruction); | |
304 } | |
305 | |
306 /** | |
307 * Pseudo-external assembler syntax: {@code swap }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
308 * Example disassembly syntax: {@code swap [%g0 + -4096], %g0} | |
309 * <p> | |
310 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
311 * | |
312 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.25" | |
313 */ | |
314 // Template#: 18, Serial#: 18 | |
315 public void swap(final GPR rs1, final int simm13, final GPR rd) { | |
316 int instruction = 0xC0782000; | |
317 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
318 instruction |= ((rs1.value() & 0x1f) << 14); | |
319 instruction |= (simm13 & 0x1fff); | |
320 instruction |= ((rd.value() & 0x1f) << 25); | |
321 emitInt(instruction); | |
322 } | |
323 | |
324 /** | |
325 * Pseudo-external assembler syntax: {@code lda }<i>rs1</i>, <i>rs2</i>, <i>immAsi</i>, <i>rd</i> | |
326 * Example disassembly syntax: {@code lda [%g0 + %g0] 0x0, %f0} | |
327 * <p> | |
328 * Constraint: {@code 0 <= immAsi && immAsi <= 255}<br /> | |
329 * | |
330 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.26" | |
331 */ | |
332 // Template#: 19, Serial#: 19 | |
333 public void lda(final GPR rs1, final GPR rs2, final int immAsi, final SFPR rd) { | |
334 int instruction = 0xC1800000; | |
335 checkConstraint(0 <= immAsi && immAsi <= 255, "0 <= immAsi && immAsi <= 255"); | |
336 instruction |= ((rs1.value() & 0x1f) << 14); | |
337 instruction |= (rs2.value() & 0x1f); | |
338 instruction |= ((immAsi & 0xff) << 5); | |
339 instruction |= ((rd.value() & 0x1f) << 25); | |
340 emitInt(instruction); | |
341 } | |
342 | |
343 /** | |
344 * Pseudo-external assembler syntax: {@code lda }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
345 * Example disassembly syntax: {@code lda [%g0 + -4096] %asi, %f0} | |
346 * <p> | |
347 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
348 * | |
349 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.26" | |
350 */ | |
351 // Template#: 20, Serial#: 20 | |
352 public void lda(final GPR rs1, final int simm13, final SFPR rd) { | |
353 int instruction = 0xC1802000; | |
354 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
355 instruction |= ((rs1.value() & 0x1f) << 14); | |
356 instruction |= (simm13 & 0x1fff); | |
357 instruction |= ((rd.value() & 0x1f) << 25); | |
358 emitInt(instruction); | |
359 } | |
360 | |
361 /** | |
362 * Pseudo-external assembler syntax: {@code ldda }<i>rs1</i>, <i>rs2</i>, <i>immAsi</i>, <i>rd</i> | |
363 * Example disassembly syntax: {@code ldda [%g0 + %g0] 0x0, %f0} | |
364 * <p> | |
365 * Constraint: {@code 0 <= immAsi && immAsi <= 255}<br /> | |
366 * | |
367 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.26" | |
368 */ | |
369 // Template#: 21, Serial#: 21 | |
370 public void ldda(final GPR rs1, final GPR rs2, final int immAsi, final DFPR rd) { | |
371 int instruction = 0xC1980000; | |
372 checkConstraint(0 <= immAsi && immAsi <= 255, "0 <= immAsi && immAsi <= 255"); | |
373 instruction |= ((rs1.value() & 0x1f) << 14); | |
374 instruction |= (rs2.value() & 0x1f); | |
375 instruction |= ((immAsi & 0xff) << 5); | |
376 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
377 emitInt(instruction); | |
378 } | |
379 | |
380 /** | |
381 * Pseudo-external assembler syntax: {@code ldda }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
382 * Example disassembly syntax: {@code ldda [%g0 + -4096] %asi, %f0} | |
383 * <p> | |
384 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
385 * | |
386 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.26" | |
387 */ | |
388 // Template#: 22, Serial#: 22 | |
389 public void ldda(final GPR rs1, final int simm13, final DFPR rd) { | |
390 int instruction = 0xC1982000; | |
391 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
392 instruction |= ((rs1.value() & 0x1f) << 14); | |
393 instruction |= (simm13 & 0x1fff); | |
394 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
395 emitInt(instruction); | |
396 } | |
397 | |
398 /** | |
399 * Pseudo-external assembler syntax: {@code ldqa }<i>rs1</i>, <i>rs2</i>, <i>immAsi</i>, <i>rd</i> | |
400 * Example disassembly syntax: {@code ldqa [%g0 + %g0] 0x0, %f0} | |
401 * <p> | |
402 * Constraint: {@code 0 <= immAsi && immAsi <= 255}<br /> | |
403 * | |
404 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.26" | |
405 */ | |
406 // Template#: 23, Serial#: 23 | |
407 public void ldqa(final GPR rs1, final GPR rs2, final int immAsi, final QFPR rd) { | |
408 int instruction = 0xC1900000; | |
409 checkConstraint(0 <= immAsi && immAsi <= 255, "0 <= immAsi && immAsi <= 255"); | |
410 instruction |= ((rs1.value() & 0x1f) << 14); | |
411 instruction |= (rs2.value() & 0x1f); | |
412 instruction |= ((immAsi & 0xff) << 5); | |
413 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
414 emitInt(instruction); | |
415 } | |
416 | |
417 /** | |
418 * Pseudo-external assembler syntax: {@code ldqa }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
419 * Example disassembly syntax: {@code ldqa [%g0 + -4096] %asi, %f0} | |
420 * <p> | |
421 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
422 * | |
423 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.26" | |
424 */ | |
425 // Template#: 24, Serial#: 24 | |
426 public void ldqa(final GPR rs1, final int simm13, final QFPR rd) { | |
427 int instruction = 0xC1902000; | |
428 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
429 instruction |= ((rs1.value() & 0x1f) << 14); | |
430 instruction |= (simm13 & 0x1fff); | |
431 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
432 emitInt(instruction); | |
433 } | |
434 | |
435 /** | |
436 * Pseudo-external assembler syntax: {@code ldsb }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
437 * Example disassembly syntax: {@code ldsb [%g0 + %g0], %g0} | |
438 * | |
439 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.27" | |
440 */ | |
441 // Template#: 25, Serial#: 25 | |
442 public void ldsb(final GPR rs1, final GPR rs2, final GPR rd) { | |
443 int instruction = 0xC0480000; | |
444 instruction |= ((rs1.value() & 0x1f) << 14); | |
445 instruction |= (rs2.value() & 0x1f); | |
446 instruction |= ((rd.value() & 0x1f) << 25); | |
447 emitInt(instruction); | |
448 } | |
449 | |
450 /** | |
451 * Pseudo-external assembler syntax: {@code ldsb }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
452 * Example disassembly syntax: {@code ldsb [%g0 + -4096], %g0} | |
453 * <p> | |
454 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
455 * | |
456 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.27" | |
457 */ | |
458 // Template#: 26, Serial#: 26 | |
459 public void ldsb(final GPR rs1, final int simm13, final GPR rd) { | |
460 int instruction = 0xC0482000; | |
461 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
462 instruction |= ((rs1.value() & 0x1f) << 14); | |
463 instruction |= (simm13 & 0x1fff); | |
464 instruction |= ((rd.value() & 0x1f) << 25); | |
465 emitInt(instruction); | |
466 } | |
467 | |
468 /** | |
469 * Pseudo-external assembler syntax: {@code ldsh }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
470 * Example disassembly syntax: {@code ldsh [%g0 + %g0], %g0} | |
471 * | |
472 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.27" | |
473 */ | |
474 // Template#: 27, Serial#: 27 | |
475 public void ldsh(final GPR rs1, final GPR rs2, final GPR rd) { | |
476 int instruction = 0xC0500000; | |
477 instruction |= ((rs1.value() & 0x1f) << 14); | |
478 instruction |= (rs2.value() & 0x1f); | |
479 instruction |= ((rd.value() & 0x1f) << 25); | |
480 emitInt(instruction); | |
481 } | |
482 | |
483 /** | |
484 * Pseudo-external assembler syntax: {@code ldsh }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
485 * Example disassembly syntax: {@code ldsh [%g0 + -4096], %g0} | |
486 * <p> | |
487 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
488 * | |
489 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.27" | |
490 */ | |
491 // Template#: 28, Serial#: 28 | |
492 public void ldsh(final GPR rs1, final int simm13, final GPR rd) { | |
493 int instruction = 0xC0502000; | |
494 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
495 instruction |= ((rs1.value() & 0x1f) << 14); | |
496 instruction |= (simm13 & 0x1fff); | |
497 instruction |= ((rd.value() & 0x1f) << 25); | |
498 emitInt(instruction); | |
499 } | |
500 | |
501 /** | |
502 * Pseudo-external assembler syntax: {@code ldsw }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
503 * Example disassembly syntax: {@code ldsw [%g0 + %g0], %g0} | |
504 * | |
505 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.27" | |
506 */ | |
507 // Template#: 29, Serial#: 29 | |
508 public void ldsw(final GPR rs1, final GPR rs2, final GPR rd) { | |
509 int instruction = 0xC0400000; | |
510 instruction |= ((rs1.value() & 0x1f) << 14); | |
511 instruction |= (rs2.value() & 0x1f); | |
512 instruction |= ((rd.value() & 0x1f) << 25); | |
513 emitInt(instruction); | |
514 } | |
515 | |
516 /** | |
517 * Pseudo-external assembler syntax: {@code ldsw }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
518 * Example disassembly syntax: {@code ldsw [%g0 + -4096], %g0} | |
519 * <p> | |
520 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
521 * | |
522 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.27" | |
523 */ | |
524 // Template#: 30, Serial#: 30 | |
525 public void ldsw(final GPR rs1, final int simm13, final GPR rd) { | |
526 int instruction = 0xC0402000; | |
527 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
528 instruction |= ((rs1.value() & 0x1f) << 14); | |
529 instruction |= (simm13 & 0x1fff); | |
530 instruction |= ((rd.value() & 0x1f) << 25); | |
531 emitInt(instruction); | |
532 } | |
533 | |
534 /** | |
535 * Pseudo-external assembler syntax: {@code ldub }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
536 * Example disassembly syntax: {@code ldub [%g0 + %g0], %g0} | |
537 * | |
538 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.27" | |
539 */ | |
540 // Template#: 31, Serial#: 31 | |
541 public void ldub(final GPR rs1, final GPR rs2, final GPR rd) { | |
542 int instruction = 0xC0080000; | |
543 instruction |= ((rs1.value() & 0x1f) << 14); | |
544 instruction |= (rs2.value() & 0x1f); | |
545 instruction |= ((rd.value() & 0x1f) << 25); | |
546 emitInt(instruction); | |
547 } | |
548 | |
549 /** | |
550 * Pseudo-external assembler syntax: {@code ldub }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
551 * Example disassembly syntax: {@code ldub [%g0 + -4096], %g0} | |
552 * <p> | |
553 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
554 * | |
555 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.27" | |
556 */ | |
557 // Template#: 32, Serial#: 32 | |
558 public void ldub(final GPR rs1, final int simm13, final GPR rd) { | |
559 int instruction = 0xC0082000; | |
560 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
561 instruction |= ((rs1.value() & 0x1f) << 14); | |
562 instruction |= (simm13 & 0x1fff); | |
563 instruction |= ((rd.value() & 0x1f) << 25); | |
564 emitInt(instruction); | |
565 } | |
566 | |
567 /** | |
568 * Pseudo-external assembler syntax: {@code lduh }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
569 * Example disassembly syntax: {@code lduh [%g0 + %g0], %g0} | |
570 * | |
571 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.27" | |
572 */ | |
573 // Template#: 33, Serial#: 33 | |
574 public void lduh(final GPR rs1, final GPR rs2, final GPR rd) { | |
575 int instruction = 0xC0100000; | |
576 instruction |= ((rs1.value() & 0x1f) << 14); | |
577 instruction |= (rs2.value() & 0x1f); | |
578 instruction |= ((rd.value() & 0x1f) << 25); | |
579 emitInt(instruction); | |
580 } | |
581 | |
582 /** | |
583 * Pseudo-external assembler syntax: {@code lduh }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
584 * Example disassembly syntax: {@code lduh [%g0 + -4096], %g0} | |
585 * <p> | |
586 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
587 * | |
588 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.27" | |
589 */ | |
590 // Template#: 34, Serial#: 34 | |
591 public void lduh(final GPR rs1, final int simm13, final GPR rd) { | |
592 int instruction = 0xC0102000; | |
593 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
594 instruction |= ((rs1.value() & 0x1f) << 14); | |
595 instruction |= (simm13 & 0x1fff); | |
596 instruction |= ((rd.value() & 0x1f) << 25); | |
597 emitInt(instruction); | |
598 } | |
599 | |
600 /** | |
601 * Pseudo-external assembler syntax: {@code lduw }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
602 * Example disassembly syntax: {@code lduw [%g0 + %g0], %g0} | |
603 * | |
604 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.27" | |
605 */ | |
606 // Template#: 35, Serial#: 35 | |
607 public void lduw(final GPR rs1, final GPR rs2, final GPR rd) { | |
608 int instruction = 0xC0000000; | |
609 instruction |= ((rs1.value() & 0x1f) << 14); | |
610 instruction |= (rs2.value() & 0x1f); | |
611 instruction |= ((rd.value() & 0x1f) << 25); | |
612 emitInt(instruction); | |
613 } | |
614 | |
615 /** | |
616 * Pseudo-external assembler syntax: {@code lduw }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
617 * Example disassembly syntax: {@code lduw [%g0 + -4096], %g0} | |
618 * <p> | |
619 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
620 * | |
621 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.27" | |
622 */ | |
623 // Template#: 36, Serial#: 36 | |
624 public void lduw(final GPR rs1, final int simm13, final GPR rd) { | |
625 int instruction = 0xC0002000; | |
626 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
627 instruction |= ((rs1.value() & 0x1f) << 14); | |
628 instruction |= (simm13 & 0x1fff); | |
629 instruction |= ((rd.value() & 0x1f) << 25); | |
630 emitInt(instruction); | |
631 } | |
632 | |
633 /** | |
634 * Pseudo-external assembler syntax: {@code ldx }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
635 * Example disassembly syntax: {@code ldx [%g0 + %g0], %g0} | |
636 * | |
637 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.27" | |
638 */ | |
639 // Template#: 37, Serial#: 37 | |
640 public void ldx(final GPR rs1, final GPR rs2, final GPR rd) { | |
641 int instruction = 0xC0580000; | |
642 instruction |= ((rs1.value() & 0x1f) << 14); | |
643 instruction |= (rs2.value() & 0x1f); | |
644 instruction |= ((rd.value() & 0x1f) << 25); | |
645 emitInt(instruction); | |
646 } | |
647 | |
648 /** | |
649 * Pseudo-external assembler syntax: {@code ldx }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
650 * Example disassembly syntax: {@code ldx [%g0 + -4096], %g0} | |
651 * <p> | |
652 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
653 * | |
654 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.27" | |
655 */ | |
656 // Template#: 38, Serial#: 38 | |
657 public void ldx(final GPR rs1, final int simm13, final GPR rd) { | |
658 int instruction = 0xC0582000; | |
659 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
660 instruction |= ((rs1.value() & 0x1f) << 14); | |
661 instruction |= (simm13 & 0x1fff); | |
662 instruction |= ((rd.value() & 0x1f) << 25); | |
663 emitInt(instruction); | |
664 } | |
665 | |
666 /** | |
667 * Pseudo-external assembler syntax: {@code ldd }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
668 * Example disassembly syntax: {@code ldd [%g0 + %g0], %g0} | |
669 * | |
670 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.27" | |
671 */ | |
672 // Template#: 39, Serial#: 39 | |
673 public void ldd(final GPR rs1, final GPR rs2, final GPR.Even rd) { | |
674 int instruction = 0xC0180000; | |
675 instruction |= ((rs1.value() & 0x1f) << 14); | |
676 instruction |= (rs2.value() & 0x1f); | |
677 instruction |= ((rd.value() & 0x1f) << 25); | |
678 emitInt(instruction); | |
679 } | |
680 | |
681 /** | |
682 * Pseudo-external assembler syntax: {@code ldd }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
683 * Example disassembly syntax: {@code ldd [%g0 + -4096], %g0} | |
684 * <p> | |
685 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
686 * | |
687 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.27" | |
688 */ | |
689 // Template#: 40, Serial#: 40 | |
690 public void ldd(final GPR rs1, final int simm13, final GPR.Even rd) { | |
691 int instruction = 0xC0182000; | |
692 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
693 instruction |= ((rs1.value() & 0x1f) << 14); | |
694 instruction |= (simm13 & 0x1fff); | |
695 instruction |= ((rd.value() & 0x1f) << 25); | |
696 emitInt(instruction); | |
697 } | |
698 | |
699 /** | |
700 * Pseudo-external assembler syntax: {@code ldsba }<i>rs1</i>, <i>rs2</i>, <i>immAsi</i>, <i>rd</i> | |
701 * Example disassembly syntax: {@code ldsba [%g0 + %g0] 0x0, %g0} | |
702 * <p> | |
703 * Constraint: {@code 0 <= immAsi && immAsi <= 255}<br /> | |
704 * | |
705 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.28" | |
706 */ | |
707 // Template#: 41, Serial#: 41 | |
708 public void ldsba(final GPR rs1, final GPR rs2, final int immAsi, final GPR rd) { | |
709 int instruction = 0xC0C80000; | |
710 checkConstraint(0 <= immAsi && immAsi <= 255, "0 <= immAsi && immAsi <= 255"); | |
711 instruction |= ((rs1.value() & 0x1f) << 14); | |
712 instruction |= (rs2.value() & 0x1f); | |
713 instruction |= ((immAsi & 0xff) << 5); | |
714 instruction |= ((rd.value() & 0x1f) << 25); | |
715 emitInt(instruction); | |
716 } | |
717 | |
718 /** | |
719 * Pseudo-external assembler syntax: {@code ldsba }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
720 * Example disassembly syntax: {@code ldsba [%g0 + -4096] %asi, %g0} | |
721 * <p> | |
722 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
723 * | |
724 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.28" | |
725 */ | |
726 // Template#: 42, Serial#: 42 | |
727 public void ldsba(final GPR rs1, final int simm13, final GPR rd) { | |
728 int instruction = 0xC0C82000; | |
729 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
730 instruction |= ((rs1.value() & 0x1f) << 14); | |
731 instruction |= (simm13 & 0x1fff); | |
732 instruction |= ((rd.value() & 0x1f) << 25); | |
733 emitInt(instruction); | |
734 } | |
735 | |
736 /** | |
737 * Pseudo-external assembler syntax: {@code ldsha }<i>rs1</i>, <i>rs2</i>, <i>immAsi</i>, <i>rd</i> | |
738 * Example disassembly syntax: {@code ldsha [%g0 + %g0] 0x0, %g0} | |
739 * <p> | |
740 * Constraint: {@code 0 <= immAsi && immAsi <= 255}<br /> | |
741 * | |
742 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.28" | |
743 */ | |
744 // Template#: 43, Serial#: 43 | |
745 public void ldsha(final GPR rs1, final GPR rs2, final int immAsi, final GPR rd) { | |
746 int instruction = 0xC0D00000; | |
747 checkConstraint(0 <= immAsi && immAsi <= 255, "0 <= immAsi && immAsi <= 255"); | |
748 instruction |= ((rs1.value() & 0x1f) << 14); | |
749 instruction |= (rs2.value() & 0x1f); | |
750 instruction |= ((immAsi & 0xff) << 5); | |
751 instruction |= ((rd.value() & 0x1f) << 25); | |
752 emitInt(instruction); | |
753 } | |
754 | |
755 /** | |
756 * Pseudo-external assembler syntax: {@code ldsha }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
757 * Example disassembly syntax: {@code ldsha [%g0 + -4096] %asi, %g0} | |
758 * <p> | |
759 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
760 * | |
761 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.28" | |
762 */ | |
763 // Template#: 44, Serial#: 44 | |
764 public void ldsha(final GPR rs1, final int simm13, final GPR rd) { | |
765 int instruction = 0xC0D02000; | |
766 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
767 instruction |= ((rs1.value() & 0x1f) << 14); | |
768 instruction |= (simm13 & 0x1fff); | |
769 instruction |= ((rd.value() & 0x1f) << 25); | |
770 emitInt(instruction); | |
771 } | |
772 | |
773 /** | |
774 * Pseudo-external assembler syntax: {@code ldswa }<i>rs1</i>, <i>rs2</i>, <i>immAsi</i>, <i>rd</i> | |
775 * Example disassembly syntax: {@code ldswa [%g0 + %g0] 0x0, %g0} | |
776 * <p> | |
777 * Constraint: {@code 0 <= immAsi && immAsi <= 255}<br /> | |
778 * | |
779 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.28" | |
780 */ | |
781 // Template#: 45, Serial#: 45 | |
782 public void ldswa(final GPR rs1, final GPR rs2, final int immAsi, final GPR rd) { | |
783 int instruction = 0xC0C00000; | |
784 checkConstraint(0 <= immAsi && immAsi <= 255, "0 <= immAsi && immAsi <= 255"); | |
785 instruction |= ((rs1.value() & 0x1f) << 14); | |
786 instruction |= (rs2.value() & 0x1f); | |
787 instruction |= ((immAsi & 0xff) << 5); | |
788 instruction |= ((rd.value() & 0x1f) << 25); | |
789 emitInt(instruction); | |
790 } | |
791 | |
792 /** | |
793 * Pseudo-external assembler syntax: {@code ldswa }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
794 * Example disassembly syntax: {@code ldswa [%g0 + -4096] %asi, %g0} | |
795 * <p> | |
796 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
797 * | |
798 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.28" | |
799 */ | |
800 // Template#: 46, Serial#: 46 | |
801 public void ldswa(final GPR rs1, final int simm13, final GPR rd) { | |
802 int instruction = 0xC0C02000; | |
803 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
804 instruction |= ((rs1.value() & 0x1f) << 14); | |
805 instruction |= (simm13 & 0x1fff); | |
806 instruction |= ((rd.value() & 0x1f) << 25); | |
807 emitInt(instruction); | |
808 } | |
809 | |
810 /** | |
811 * Pseudo-external assembler syntax: {@code lduba }<i>rs1</i>, <i>rs2</i>, <i>immAsi</i>, <i>rd</i> | |
812 * Example disassembly syntax: {@code lduba [%g0 + %g0] 0x0, %g0} | |
813 * <p> | |
814 * Constraint: {@code 0 <= immAsi && immAsi <= 255}<br /> | |
815 * | |
816 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.28" | |
817 */ | |
818 // Template#: 47, Serial#: 47 | |
819 public void lduba(final GPR rs1, final GPR rs2, final int immAsi, final GPR rd) { | |
820 int instruction = 0xC0880000; | |
821 checkConstraint(0 <= immAsi && immAsi <= 255, "0 <= immAsi && immAsi <= 255"); | |
822 instruction |= ((rs1.value() & 0x1f) << 14); | |
823 instruction |= (rs2.value() & 0x1f); | |
824 instruction |= ((immAsi & 0xff) << 5); | |
825 instruction |= ((rd.value() & 0x1f) << 25); | |
826 emitInt(instruction); | |
827 } | |
828 | |
829 /** | |
830 * Pseudo-external assembler syntax: {@code lduba }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
831 * Example disassembly syntax: {@code lduba [%g0 + -4096] %asi, %g0} | |
832 * <p> | |
833 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
834 * | |
835 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.28" | |
836 */ | |
837 // Template#: 48, Serial#: 48 | |
838 public void lduba(final GPR rs1, final int simm13, final GPR rd) { | |
839 int instruction = 0xC0882000; | |
840 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
841 instruction |= ((rs1.value() & 0x1f) << 14); | |
842 instruction |= (simm13 & 0x1fff); | |
843 instruction |= ((rd.value() & 0x1f) << 25); | |
844 emitInt(instruction); | |
845 } | |
846 | |
847 /** | |
848 * Pseudo-external assembler syntax: {@code lduha }<i>rs1</i>, <i>rs2</i>, <i>immAsi</i>, <i>rd</i> | |
849 * Example disassembly syntax: {@code lduha [%g0 + %g0] 0x0, %g0} | |
850 * <p> | |
851 * Constraint: {@code 0 <= immAsi && immAsi <= 255}<br /> | |
852 * | |
853 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.28" | |
854 */ | |
855 // Template#: 49, Serial#: 49 | |
856 public void lduha(final GPR rs1, final GPR rs2, final int immAsi, final GPR rd) { | |
857 int instruction = 0xC0900000; | |
858 checkConstraint(0 <= immAsi && immAsi <= 255, "0 <= immAsi && immAsi <= 255"); | |
859 instruction |= ((rs1.value() & 0x1f) << 14); | |
860 instruction |= (rs2.value() & 0x1f); | |
861 instruction |= ((immAsi & 0xff) << 5); | |
862 instruction |= ((rd.value() & 0x1f) << 25); | |
863 emitInt(instruction); | |
864 } | |
865 | |
866 /** | |
867 * Pseudo-external assembler syntax: {@code lduha }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
868 * Example disassembly syntax: {@code lduha [%g0 + -4096] %asi, %g0} | |
869 * <p> | |
870 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
871 * | |
872 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.28" | |
873 */ | |
874 // Template#: 50, Serial#: 50 | |
875 public void lduha(final GPR rs1, final int simm13, final GPR rd) { | |
876 int instruction = 0xC0902000; | |
877 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
878 instruction |= ((rs1.value() & 0x1f) << 14); | |
879 instruction |= (simm13 & 0x1fff); | |
880 instruction |= ((rd.value() & 0x1f) << 25); | |
881 emitInt(instruction); | |
882 } | |
883 | |
884 /** | |
885 * Pseudo-external assembler syntax: {@code lduwa }<i>rs1</i>, <i>rs2</i>, <i>immAsi</i>, <i>rd</i> | |
886 * Example disassembly syntax: {@code lduwa [%g0 + %g0] 0x0, %g0} | |
887 * <p> | |
888 * Constraint: {@code 0 <= immAsi && immAsi <= 255}<br /> | |
889 * | |
890 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.28" | |
891 */ | |
892 // Template#: 51, Serial#: 51 | |
893 public void lduwa(final GPR rs1, final GPR rs2, final int immAsi, final GPR rd) { | |
894 int instruction = 0xC0800000; | |
895 checkConstraint(0 <= immAsi && immAsi <= 255, "0 <= immAsi && immAsi <= 255"); | |
896 instruction |= ((rs1.value() & 0x1f) << 14); | |
897 instruction |= (rs2.value() & 0x1f); | |
898 instruction |= ((immAsi & 0xff) << 5); | |
899 instruction |= ((rd.value() & 0x1f) << 25); | |
900 emitInt(instruction); | |
901 } | |
902 | |
903 /** | |
904 * Pseudo-external assembler syntax: {@code lduwa }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
905 * Example disassembly syntax: {@code lduwa [%g0 + -4096] %asi, %g0} | |
906 * <p> | |
907 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
908 * | |
909 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.28" | |
910 */ | |
911 // Template#: 52, Serial#: 52 | |
912 public void lduwa(final GPR rs1, final int simm13, final GPR rd) { | |
913 int instruction = 0xC0802000; | |
914 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
915 instruction |= ((rs1.value() & 0x1f) << 14); | |
916 instruction |= (simm13 & 0x1fff); | |
917 instruction |= ((rd.value() & 0x1f) << 25); | |
918 emitInt(instruction); | |
919 } | |
920 | |
921 /** | |
922 * Pseudo-external assembler syntax: {@code ldxa }<i>rs1</i>, <i>rs2</i>, <i>immAsi</i>, <i>rd</i> | |
923 * Example disassembly syntax: {@code ldxa [%g0 + %g0] 0x0, %g0} | |
924 * <p> | |
925 * Constraint: {@code 0 <= immAsi && immAsi <= 255}<br /> | |
926 * | |
927 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.28" | |
928 */ | |
929 // Template#: 53, Serial#: 53 | |
930 public void ldxa(final GPR rs1, final GPR rs2, final int immAsi, final GPR rd) { | |
931 int instruction = 0xC0D80000; | |
932 checkConstraint(0 <= immAsi && immAsi <= 255, "0 <= immAsi && immAsi <= 255"); | |
933 instruction |= ((rs1.value() & 0x1f) << 14); | |
934 instruction |= (rs2.value() & 0x1f); | |
935 instruction |= ((immAsi & 0xff) << 5); | |
936 instruction |= ((rd.value() & 0x1f) << 25); | |
937 emitInt(instruction); | |
938 } | |
939 | |
940 /** | |
941 * Pseudo-external assembler syntax: {@code ldxa }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
942 * Example disassembly syntax: {@code ldxa [%g0 + -4096] %asi, %g0} | |
943 * <p> | |
944 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
945 * | |
946 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.28" | |
947 */ | |
948 // Template#: 54, Serial#: 54 | |
949 public void ldxa(final GPR rs1, final int simm13, final GPR rd) { | |
950 int instruction = 0xC0D82000; | |
951 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
952 instruction |= ((rs1.value() & 0x1f) << 14); | |
953 instruction |= (simm13 & 0x1fff); | |
954 instruction |= ((rd.value() & 0x1f) << 25); | |
955 emitInt(instruction); | |
956 } | |
957 | |
958 /** | |
959 * Pseudo-external assembler syntax: {@code ldda }<i>rs1</i>, <i>rs2</i>, <i>immAsi</i>, <i>rd</i> | |
960 * Example disassembly syntax: {@code ldda [%g0 + %g0] 0x0, %g0} | |
961 * <p> | |
962 * Constraint: {@code 0 <= immAsi && immAsi <= 255}<br /> | |
963 * | |
964 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.28" | |
965 */ | |
966 // Template#: 55, Serial#: 55 | |
967 public void ldda(final GPR rs1, final GPR rs2, final int immAsi, final GPR.Even rd) { | |
968 int instruction = 0xC0980000; | |
969 checkConstraint(0 <= immAsi && immAsi <= 255, "0 <= immAsi && immAsi <= 255"); | |
970 instruction |= ((rs1.value() & 0x1f) << 14); | |
971 instruction |= (rs2.value() & 0x1f); | |
972 instruction |= ((immAsi & 0xff) << 5); | |
973 instruction |= ((rd.value() & 0x1f) << 25); | |
974 emitInt(instruction); | |
975 } | |
976 | |
977 /** | |
978 * Pseudo-external assembler syntax: {@code ldda }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
979 * Example disassembly syntax: {@code ldda [%g0 + -4096] %asi, %g0} | |
980 * <p> | |
981 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
982 * | |
983 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.28" | |
984 */ | |
985 // Template#: 56, Serial#: 56 | |
986 public void ldda(final GPR rs1, final int simm13, final GPR.Even rd) { | |
987 int instruction = 0xC0982000; | |
988 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
989 instruction |= ((rs1.value() & 0x1f) << 14); | |
990 instruction |= (simm13 & 0x1fff); | |
991 instruction |= ((rd.value() & 0x1f) << 25); | |
992 emitInt(instruction); | |
993 } | |
994 | |
995 /** | |
996 * Pseudo-external assembler syntax: {@code ldstub }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
997 * Example disassembly syntax: {@code ldstub [%g0 + %g0], %g0} | |
998 * | |
999 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.29" | |
1000 */ | |
1001 // Template#: 57, Serial#: 57 | |
1002 public void ldstub(final GPR rs1, final GPR rs2, final GPR rd) { | |
1003 int instruction = 0xC0680000; | |
1004 instruction |= ((rs1.value() & 0x1f) << 14); | |
1005 instruction |= (rs2.value() & 0x1f); | |
1006 instruction |= ((rd.value() & 0x1f) << 25); | |
1007 emitInt(instruction); | |
1008 } | |
1009 | |
1010 /** | |
1011 * Pseudo-external assembler syntax: {@code ldstub }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
1012 * Example disassembly syntax: {@code ldstub [%g0 + -4096], %g0} | |
1013 * <p> | |
1014 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1015 * | |
1016 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.29" | |
1017 */ | |
1018 // Template#: 58, Serial#: 58 | |
1019 public void ldstub(final GPR rs1, final int simm13, final GPR rd) { | |
1020 int instruction = 0xC0682000; | |
1021 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1022 instruction |= ((rs1.value() & 0x1f) << 14); | |
1023 instruction |= (simm13 & 0x1fff); | |
1024 instruction |= ((rd.value() & 0x1f) << 25); | |
1025 emitInt(instruction); | |
1026 } | |
1027 | |
1028 /** | |
1029 * Pseudo-external assembler syntax: {@code ldstuba }<i>rs1</i>, <i>rs2</i>, <i>immAsi</i>, <i>rd</i> | |
1030 * Example disassembly syntax: {@code ldstuba [%g0 + %g0] 0x0, %g0} | |
1031 * <p> | |
1032 * Constraint: {@code 0 <= immAsi && immAsi <= 255}<br /> | |
1033 * | |
1034 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.30" | |
1035 */ | |
1036 // Template#: 59, Serial#: 59 | |
1037 public void ldstuba(final GPR rs1, final GPR rs2, final int immAsi, final GPR rd) { | |
1038 int instruction = 0xC0E80000; | |
1039 checkConstraint(0 <= immAsi && immAsi <= 255, "0 <= immAsi && immAsi <= 255"); | |
1040 instruction |= ((rs1.value() & 0x1f) << 14); | |
1041 instruction |= (rs2.value() & 0x1f); | |
1042 instruction |= ((immAsi & 0xff) << 5); | |
1043 instruction |= ((rd.value() & 0x1f) << 25); | |
1044 emitInt(instruction); | |
1045 } | |
1046 | |
1047 /** | |
1048 * Pseudo-external assembler syntax: {@code ldstuba }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
1049 * Example disassembly syntax: {@code ldstuba [%g0 + -4096] %asi, %g0} | |
1050 * <p> | |
1051 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1052 * | |
1053 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.30" | |
1054 */ | |
1055 // Template#: 60, Serial#: 60 | |
1056 public void ldstuba(final GPR rs1, final int simm13, final GPR rd) { | |
1057 int instruction = 0xC0E82000; | |
1058 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1059 instruction |= ((rs1.value() & 0x1f) << 14); | |
1060 instruction |= (simm13 & 0x1fff); | |
1061 instruction |= ((rd.value() & 0x1f) << 25); | |
1062 emitInt(instruction); | |
1063 } | |
1064 | |
1065 /** | |
1066 * Pseudo-external assembler syntax: {@code prefetch }<i>rs1</i>, <i>rs2</i>, <i>fcn</i> | |
1067 * Example disassembly syntax: {@code prefetch [%g0 + %g0], 0x0} | |
1068 * <p> | |
1069 * Constraint: {@code 0 <= fcn && fcn <= 31}<br /> | |
1070 * | |
1071 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.41" | |
1072 */ | |
1073 // Template#: 61, Serial#: 61 | |
1074 public void prefetch(final GPR rs1, final GPR rs2, final int fcn) { | |
1075 int instruction = 0xC1680000; | |
1076 checkConstraint(0 <= fcn && fcn <= 31, "0 <= fcn && fcn <= 31"); | |
1077 instruction |= ((rs1.value() & 0x1f) << 14); | |
1078 instruction |= (rs2.value() & 0x1f); | |
1079 instruction |= ((fcn & 0x1f) << 25); | |
1080 emitInt(instruction); | |
1081 } | |
1082 | |
1083 /** | |
1084 * Pseudo-external assembler syntax: {@code prefetch }<i>rs1</i>, <i>simm13</i>, <i>fcn</i> | |
1085 * Example disassembly syntax: {@code prefetch [%g0 + -4096], 0x0} | |
1086 * <p> | |
1087 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1088 * Constraint: {@code 0 <= fcn && fcn <= 31}<br /> | |
1089 * | |
1090 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.41" | |
1091 */ | |
1092 // Template#: 62, Serial#: 62 | |
1093 public void prefetch(final GPR rs1, final int simm13, final int fcn) { | |
1094 int instruction = 0xC1682000; | |
1095 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1096 checkConstraint(0 <= fcn && fcn <= 31, "0 <= fcn && fcn <= 31"); | |
1097 instruction |= ((rs1.value() & 0x1f) << 14); | |
1098 instruction |= (simm13 & 0x1fff); | |
1099 instruction |= ((fcn & 0x1f) << 25); | |
1100 emitInt(instruction); | |
1101 } | |
1102 | |
1103 /** | |
1104 * Pseudo-external assembler syntax: {@code prefetcha }<i>rs1</i>, <i>rs2</i>, <i>immAsi</i>, <i>fcn</i> | |
1105 * Example disassembly syntax: {@code prefetcha [%g0 + %g0] 0x0, 0x0} | |
1106 * <p> | |
1107 * Constraint: {@code 0 <= immAsi && immAsi <= 255}<br /> | |
1108 * Constraint: {@code 0 <= fcn && fcn <= 31}<br /> | |
1109 * | |
1110 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.41" | |
1111 */ | |
1112 // Template#: 63, Serial#: 63 | |
1113 public void prefetcha(final GPR rs1, final GPR rs2, final int immAsi, final int fcn) { | |
1114 int instruction = 0xC1E80000; | |
1115 checkConstraint(0 <= immAsi && immAsi <= 255, "0 <= immAsi && immAsi <= 255"); | |
1116 checkConstraint(0 <= fcn && fcn <= 31, "0 <= fcn && fcn <= 31"); | |
1117 instruction |= ((rs1.value() & 0x1f) << 14); | |
1118 instruction |= (rs2.value() & 0x1f); | |
1119 instruction |= ((immAsi & 0xff) << 5); | |
1120 instruction |= ((fcn & 0x1f) << 25); | |
1121 emitInt(instruction); | |
1122 } | |
1123 | |
1124 /** | |
1125 * Pseudo-external assembler syntax: {@code prefetcha }<i>rs1</i>, <i>simm13</i>, <i>fcn</i> | |
1126 * Example disassembly syntax: {@code prefetcha [%g0 + -4096] %asi, 0x0} | |
1127 * <p> | |
1128 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1129 * Constraint: {@code 0 <= fcn && fcn <= 31}<br /> | |
1130 * | |
1131 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.41" | |
1132 */ | |
1133 // Template#: 64, Serial#: 64 | |
1134 public void prefetcha(final GPR rs1, final int simm13, final int fcn) { | |
1135 int instruction = 0xC1E82000; | |
1136 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1137 checkConstraint(0 <= fcn && fcn <= 31, "0 <= fcn && fcn <= 31"); | |
1138 instruction |= ((rs1.value() & 0x1f) << 14); | |
1139 instruction |= (simm13 & 0x1fff); | |
1140 instruction |= ((fcn & 0x1f) << 25); | |
1141 emitInt(instruction); | |
1142 } | |
1143 | |
1144 /** | |
1145 * Pseudo-external assembler syntax: {@code st }<i>rd</i>, <i>rs1</i>, <i>rs2</i> | |
1146 * Example disassembly syntax: {@code st %f0, [%g0 + %g0]} | |
1147 * | |
1148 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.51" | |
1149 */ | |
1150 // Template#: 65, Serial#: 65 | |
1151 public void st(final SFPR rd, final GPR rs1, final GPR rs2) { | |
1152 int instruction = 0xC1200000; | |
1153 instruction |= ((rd.value() & 0x1f) << 25); | |
1154 instruction |= ((rs1.value() & 0x1f) << 14); | |
1155 instruction |= (rs2.value() & 0x1f); | |
1156 emitInt(instruction); | |
1157 } | |
1158 | |
1159 /** | |
1160 * Pseudo-external assembler syntax: {@code st }<i>rd</i>, <i>rs1</i>, <i>simm13</i> | |
1161 * Example disassembly syntax: {@code st %f0, [%g0 + -4096]} | |
1162 * <p> | |
1163 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1164 * | |
1165 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.51" | |
1166 */ | |
1167 // Template#: 66, Serial#: 66 | |
1168 public void st(final SFPR rd, final GPR rs1, final int simm13) { | |
1169 int instruction = 0xC1202000; | |
1170 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1171 instruction |= ((rd.value() & 0x1f) << 25); | |
1172 instruction |= ((rs1.value() & 0x1f) << 14); | |
1173 instruction |= (simm13 & 0x1fff); | |
1174 emitInt(instruction); | |
1175 } | |
1176 | |
1177 /** | |
1178 * Pseudo-external assembler syntax: {@code std }<i>rd</i>, <i>rs1</i>, <i>rs2</i> | |
1179 * Example disassembly syntax: {@code std %f0, [%g0 + %g0]} | |
1180 * | |
1181 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.51" | |
1182 */ | |
1183 // Template#: 67, Serial#: 67 | |
1184 public void std(final DFPR rd, final GPR rs1, final GPR rs2) { | |
1185 int instruction = 0xC1380000; | |
1186 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
1187 instruction |= ((rs1.value() & 0x1f) << 14); | |
1188 instruction |= (rs2.value() & 0x1f); | |
1189 emitInt(instruction); | |
1190 } | |
1191 | |
1192 /** | |
1193 * Pseudo-external assembler syntax: {@code std }<i>rd</i>, <i>rs1</i>, <i>simm13</i> | |
1194 * Example disassembly syntax: {@code std %f0, [%g0 + -4096]} | |
1195 * <p> | |
1196 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1197 * | |
1198 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.51" | |
1199 */ | |
1200 // Template#: 68, Serial#: 68 | |
1201 public void std(final DFPR rd, final GPR rs1, final int simm13) { | |
1202 int instruction = 0xC1382000; | |
1203 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1204 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
1205 instruction |= ((rs1.value() & 0x1f) << 14); | |
1206 instruction |= (simm13 & 0x1fff); | |
1207 emitInt(instruction); | |
1208 } | |
1209 | |
1210 /** | |
1211 * Pseudo-external assembler syntax: {@code stq }<i>rd</i>, <i>rs1</i>, <i>rs2</i> | |
1212 * Example disassembly syntax: {@code stq %f0, [%g0 + %g0]} | |
1213 * | |
1214 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.51" | |
1215 */ | |
1216 // Template#: 69, Serial#: 69 | |
1217 public void stq(final QFPR rd, final GPR rs1, final GPR rs2) { | |
1218 int instruction = 0xC1300000; | |
1219 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
1220 instruction |= ((rs1.value() & 0x1f) << 14); | |
1221 instruction |= (rs2.value() & 0x1f); | |
1222 emitInt(instruction); | |
1223 } | |
1224 | |
1225 /** | |
1226 * Pseudo-external assembler syntax: {@code stq }<i>rd</i>, <i>rs1</i>, <i>simm13</i> | |
1227 * Example disassembly syntax: {@code stq %f0, [%g0 + -4096]} | |
1228 * <p> | |
1229 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1230 * | |
1231 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.51" | |
1232 */ | |
1233 // Template#: 70, Serial#: 70 | |
1234 public void stq(final QFPR rd, final GPR rs1, final int simm13) { | |
1235 int instruction = 0xC1302000; | |
1236 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1237 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
1238 instruction |= ((rs1.value() & 0x1f) << 14); | |
1239 instruction |= (simm13 & 0x1fff); | |
1240 emitInt(instruction); | |
1241 } | |
1242 | |
1243 /** | |
1244 * Pseudo-external assembler syntax: {@code stx }<i>rs1</i>, <i>rs2</i> | |
1245 * Example disassembly syntax: {@code stx %fsr, [%g0 + %g0]} | |
1246 * | |
1247 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.51" | |
1248 */ | |
1249 // Template#: 71, Serial#: 71 | |
1250 public void stx_fsr(final GPR rs1, final GPR rs2) { | |
1251 int instruction = 0xC3280000; | |
1252 instruction |= ((rs1.value() & 0x1f) << 14); | |
1253 instruction |= (rs2.value() & 0x1f); | |
1254 emitInt(instruction); | |
1255 } | |
1256 | |
1257 /** | |
1258 * Pseudo-external assembler syntax: {@code stx }<i>rs1</i>, <i>simm13</i> | |
1259 * Example disassembly syntax: {@code stx %fsr, [%g0 + -4096]} | |
1260 * <p> | |
1261 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1262 * | |
1263 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.51" | |
1264 */ | |
1265 // Template#: 72, Serial#: 72 | |
1266 public void stx_fsr(final GPR rs1, final int simm13) { | |
1267 int instruction = 0xC3282000; | |
1268 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1269 instruction |= ((rs1.value() & 0x1f) << 14); | |
1270 instruction |= (simm13 & 0x1fff); | |
1271 emitInt(instruction); | |
1272 } | |
1273 | |
1274 /** | |
1275 * Pseudo-external assembler syntax: {@code st }<i>rs1</i>, <i>rs2</i> | |
1276 * Example disassembly syntax: {@code st %fsr, [%g0 + %g0]} | |
1277 * | |
1278 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.51" | |
1279 */ | |
1280 // Template#: 73, Serial#: 73 | |
1281 public void st_fsr(final GPR rs1, final GPR rs2) { | |
1282 int instruction = 0xC1280000; | |
1283 instruction |= ((rs1.value() & 0x1f) << 14); | |
1284 instruction |= (rs2.value() & 0x1f); | |
1285 emitInt(instruction); | |
1286 } | |
1287 | |
1288 /** | |
1289 * Pseudo-external assembler syntax: {@code st }<i>rs1</i>, <i>simm13</i> | |
1290 * Example disassembly syntax: {@code st %fsr, [%g0 + -4096]} | |
1291 * <p> | |
1292 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1293 * | |
1294 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.51" | |
1295 */ | |
1296 // Template#: 74, Serial#: 74 | |
1297 public void st_fsr(final GPR rs1, final int simm13) { | |
1298 int instruction = 0xC1282000; | |
1299 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1300 instruction |= ((rs1.value() & 0x1f) << 14); | |
1301 instruction |= (simm13 & 0x1fff); | |
1302 emitInt(instruction); | |
1303 } | |
1304 | |
1305 /** | |
1306 * Pseudo-external assembler syntax: {@code sta }<i>rd</i>, <i>rs1</i>, <i>rs2</i>, <i>immAsi</i> | |
1307 * Example disassembly syntax: {@code sta %f0, [%g0 + %g0]0x0} | |
1308 * <p> | |
1309 * Constraint: {@code 0 <= immAsi && immAsi <= 255}<br /> | |
1310 * | |
1311 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.52" | |
1312 */ | |
1313 // Template#: 75, Serial#: 75 | |
1314 public void sta(final SFPR rd, final GPR rs1, final GPR rs2, final int immAsi) { | |
1315 int instruction = 0xC1A00000; | |
1316 checkConstraint(0 <= immAsi && immAsi <= 255, "0 <= immAsi && immAsi <= 255"); | |
1317 instruction |= ((rd.value() & 0x1f) << 25); | |
1318 instruction |= ((rs1.value() & 0x1f) << 14); | |
1319 instruction |= (rs2.value() & 0x1f); | |
1320 instruction |= ((immAsi & 0xff) << 5); | |
1321 emitInt(instruction); | |
1322 } | |
1323 | |
1324 /** | |
1325 * Pseudo-external assembler syntax: {@code sta }<i>rd</i>, <i>rs1</i>, <i>simm13</i> | |
1326 * Example disassembly syntax: {@code sta %f0, [%g0 + -4096] %asi} | |
1327 * <p> | |
1328 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1329 * | |
1330 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.52" | |
1331 */ | |
1332 // Template#: 76, Serial#: 76 | |
1333 public void sta(final SFPR rd, final GPR rs1, final int simm13) { | |
1334 int instruction = 0xC1A02000; | |
1335 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1336 instruction |= ((rd.value() & 0x1f) << 25); | |
1337 instruction |= ((rs1.value() & 0x1f) << 14); | |
1338 instruction |= (simm13 & 0x1fff); | |
1339 emitInt(instruction); | |
1340 } | |
1341 | |
1342 /** | |
1343 * Pseudo-external assembler syntax: {@code stda }<i>rd</i>, <i>rs1</i>, <i>rs2</i>, <i>immAsi</i> | |
1344 * Example disassembly syntax: {@code stda %f0, [%g0 + %g0]0x0} | |
1345 * <p> | |
1346 * Constraint: {@code 0 <= immAsi && immAsi <= 255}<br /> | |
1347 * | |
1348 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.52" | |
1349 */ | |
1350 // Template#: 77, Serial#: 77 | |
1351 public void stda(final DFPR rd, final GPR rs1, final GPR rs2, final int immAsi) { | |
1352 int instruction = 0xC1B80000; | |
1353 checkConstraint(0 <= immAsi && immAsi <= 255, "0 <= immAsi && immAsi <= 255"); | |
1354 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
1355 instruction |= ((rs1.value() & 0x1f) << 14); | |
1356 instruction |= (rs2.value() & 0x1f); | |
1357 instruction |= ((immAsi & 0xff) << 5); | |
1358 emitInt(instruction); | |
1359 } | |
1360 | |
1361 /** | |
1362 * Pseudo-external assembler syntax: {@code stda }<i>rd</i>, <i>rs1</i>, <i>simm13</i> | |
1363 * Example disassembly syntax: {@code stda %f0, [%g0 + -4096] %asi} | |
1364 * <p> | |
1365 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1366 * | |
1367 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.52" | |
1368 */ | |
1369 // Template#: 78, Serial#: 78 | |
1370 public void stda(final DFPR rd, final GPR rs1, final int simm13) { | |
1371 int instruction = 0xC1B82000; | |
1372 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1373 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
1374 instruction |= ((rs1.value() & 0x1f) << 14); | |
1375 instruction |= (simm13 & 0x1fff); | |
1376 emitInt(instruction); | |
1377 } | |
1378 | |
1379 /** | |
1380 * Pseudo-external assembler syntax: {@code stqa }<i>rd</i>, <i>rs1</i>, <i>rs2</i>, <i>immAsi</i> | |
1381 * Example disassembly syntax: {@code stqa %f0, [%g0 + %g0]0x0} | |
1382 * <p> | |
1383 * Constraint: {@code 0 <= immAsi && immAsi <= 255}<br /> | |
1384 * | |
1385 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.52" | |
1386 */ | |
1387 // Template#: 79, Serial#: 79 | |
1388 public void stqa(final QFPR rd, final GPR rs1, final GPR rs2, final int immAsi) { | |
1389 int instruction = 0xC1B00000; | |
1390 checkConstraint(0 <= immAsi && immAsi <= 255, "0 <= immAsi && immAsi <= 255"); | |
1391 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
1392 instruction |= ((rs1.value() & 0x1f) << 14); | |
1393 instruction |= (rs2.value() & 0x1f); | |
1394 instruction |= ((immAsi & 0xff) << 5); | |
1395 emitInt(instruction); | |
1396 } | |
1397 | |
1398 /** | |
1399 * Pseudo-external assembler syntax: {@code stqa }<i>rd</i>, <i>rs1</i>, <i>simm13</i> | |
1400 * Example disassembly syntax: {@code stqa %f0, [%g0 + -4096] %asi} | |
1401 * <p> | |
1402 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1403 * | |
1404 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.52" | |
1405 */ | |
1406 // Template#: 80, Serial#: 80 | |
1407 public void stqa(final QFPR rd, final GPR rs1, final int simm13) { | |
1408 int instruction = 0xC1B02000; | |
1409 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1410 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
1411 instruction |= ((rs1.value() & 0x1f) << 14); | |
1412 instruction |= (simm13 & 0x1fff); | |
1413 emitInt(instruction); | |
1414 } | |
1415 | |
1416 /** | |
1417 * Pseudo-external assembler syntax: {@code stb }<i>rd</i>, <i>rs1</i>, <i>rs2</i> | |
1418 * Example disassembly syntax: {@code stb %g0, [%g0 + %g0]} | |
1419 * | |
1420 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.53" | |
1421 */ | |
1422 // Template#: 81, Serial#: 81 | |
1423 public void stb(final GPR rd, final GPR rs1, final GPR rs2) { | |
1424 int instruction = 0xC0280000; | |
1425 instruction |= ((rd.value() & 0x1f) << 25); | |
1426 instruction |= ((rs1.value() & 0x1f) << 14); | |
1427 instruction |= (rs2.value() & 0x1f); | |
1428 emitInt(instruction); | |
1429 } | |
1430 | |
1431 /** | |
1432 * Pseudo-external assembler syntax: {@code stb }<i>rd</i>, <i>rs1</i>, <i>simm13</i> | |
1433 * Example disassembly syntax: {@code stb %g0, [%g0 + -4096]} | |
1434 * <p> | |
1435 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1436 * | |
1437 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.53" | |
1438 */ | |
1439 // Template#: 82, Serial#: 82 | |
1440 public void stb(final GPR rd, final GPR rs1, final int simm13) { | |
1441 int instruction = 0xC0282000; | |
1442 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1443 instruction |= ((rd.value() & 0x1f) << 25); | |
1444 instruction |= ((rs1.value() & 0x1f) << 14); | |
1445 instruction |= (simm13 & 0x1fff); | |
1446 emitInt(instruction); | |
1447 } | |
1448 | |
1449 /** | |
1450 * Pseudo-external assembler syntax: {@code sth }<i>rd</i>, <i>rs1</i>, <i>rs2</i> | |
1451 * Example disassembly syntax: {@code sth %g0, [%g0 + %g0]} | |
1452 * | |
1453 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.53" | |
1454 */ | |
1455 // Template#: 83, Serial#: 83 | |
1456 public void sth(final GPR rd, final GPR rs1, final GPR rs2) { | |
1457 int instruction = 0xC0300000; | |
1458 instruction |= ((rd.value() & 0x1f) << 25); | |
1459 instruction |= ((rs1.value() & 0x1f) << 14); | |
1460 instruction |= (rs2.value() & 0x1f); | |
1461 emitInt(instruction); | |
1462 } | |
1463 | |
1464 /** | |
1465 * Pseudo-external assembler syntax: {@code sth }<i>rd</i>, <i>rs1</i>, <i>simm13</i> | |
1466 * Example disassembly syntax: {@code sth %g0, [%g0 + -4096]} | |
1467 * <p> | |
1468 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1469 * | |
1470 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.53" | |
1471 */ | |
1472 // Template#: 84, Serial#: 84 | |
1473 public void sth(final GPR rd, final GPR rs1, final int simm13) { | |
1474 int instruction = 0xC0302000; | |
1475 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1476 instruction |= ((rd.value() & 0x1f) << 25); | |
1477 instruction |= ((rs1.value() & 0x1f) << 14); | |
1478 instruction |= (simm13 & 0x1fff); | |
1479 emitInt(instruction); | |
1480 } | |
1481 | |
1482 /** | |
1483 * Pseudo-external assembler syntax: {@code stw }<i>rd</i>, <i>rs1</i>, <i>rs2</i> | |
1484 * Example disassembly syntax: {@code stw %g0, [%g0 + %g0]} | |
1485 * | |
1486 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.53" | |
1487 */ | |
1488 // Template#: 85, Serial#: 85 | |
1489 public void stw(final GPR rd, final GPR rs1, final GPR rs2) { | |
1490 int instruction = 0xC0200000; | |
1491 instruction |= ((rd.value() & 0x1f) << 25); | |
1492 instruction |= ((rs1.value() & 0x1f) << 14); | |
1493 instruction |= (rs2.value() & 0x1f); | |
1494 emitInt(instruction); | |
1495 } | |
1496 | |
1497 /** | |
1498 * Pseudo-external assembler syntax: {@code stw }<i>rd</i>, <i>rs1</i>, <i>simm13</i> | |
1499 * Example disassembly syntax: {@code stw %g0, [%g0 + -4096]} | |
1500 * <p> | |
1501 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1502 * | |
1503 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.53" | |
1504 */ | |
1505 // Template#: 86, Serial#: 86 | |
1506 public void stw(final GPR rd, final GPR rs1, final int simm13) { | |
1507 int instruction = 0xC0202000; | |
1508 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1509 instruction |= ((rd.value() & 0x1f) << 25); | |
1510 instruction |= ((rs1.value() & 0x1f) << 14); | |
1511 instruction |= (simm13 & 0x1fff); | |
1512 emitInt(instruction); | |
1513 } | |
1514 | |
1515 /** | |
1516 * Pseudo-external assembler syntax: {@code stx }<i>rd</i>, <i>rs1</i>, <i>rs2</i> | |
1517 * Example disassembly syntax: {@code stx %g0, [%g0 + %g0]} | |
1518 * | |
1519 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.53" | |
1520 */ | |
1521 // Template#: 87, Serial#: 87 | |
1522 public void stx(final GPR rd, final GPR rs1, final GPR rs2) { | |
1523 int instruction = 0xC0700000; | |
1524 instruction |= ((rd.value() & 0x1f) << 25); | |
1525 instruction |= ((rs1.value() & 0x1f) << 14); | |
1526 instruction |= (rs2.value() & 0x1f); | |
1527 emitInt(instruction); | |
1528 } | |
1529 | |
1530 /** | |
1531 * Pseudo-external assembler syntax: {@code stx }<i>rd</i>, <i>rs1</i>, <i>simm13</i> | |
1532 * Example disassembly syntax: {@code stx %g0, [%g0 + -4096]} | |
1533 * <p> | |
1534 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1535 * | |
1536 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.53" | |
1537 */ | |
1538 // Template#: 88, Serial#: 88 | |
1539 public void stx(final GPR rd, final GPR rs1, final int simm13) { | |
1540 int instruction = 0xC0702000; | |
1541 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1542 instruction |= ((rd.value() & 0x1f) << 25); | |
1543 instruction |= ((rs1.value() & 0x1f) << 14); | |
1544 instruction |= (simm13 & 0x1fff); | |
1545 emitInt(instruction); | |
1546 } | |
1547 | |
1548 /** | |
1549 * Pseudo-external assembler syntax: {@code std }<i>rd</i>, <i>rs1</i>, <i>rs2</i> | |
1550 * Example disassembly syntax: {@code std %g0, [%g0 + %g0]} | |
1551 * | |
1552 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.53" | |
1553 */ | |
1554 // Template#: 89, Serial#: 89 | |
1555 public void std(final GPR.Even rd, final GPR rs1, final GPR rs2) { | |
1556 int instruction = 0xC0380000; | |
1557 instruction |= ((rd.value() & 0x1f) << 25); | |
1558 instruction |= ((rs1.value() & 0x1f) << 14); | |
1559 instruction |= (rs2.value() & 0x1f); | |
1560 emitInt(instruction); | |
1561 } | |
1562 | |
1563 /** | |
1564 * Pseudo-external assembler syntax: {@code std }<i>rd</i>, <i>rs1</i>, <i>simm13</i> | |
1565 * Example disassembly syntax: {@code std %g0, [%g0 + -4096]} | |
1566 * <p> | |
1567 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1568 * | |
1569 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.53" | |
1570 */ | |
1571 // Template#: 90, Serial#: 90 | |
1572 public void std(final GPR.Even rd, final GPR rs1, final int simm13) { | |
1573 int instruction = 0xC0382000; | |
1574 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1575 instruction |= ((rd.value() & 0x1f) << 25); | |
1576 instruction |= ((rs1.value() & 0x1f) << 14); | |
1577 instruction |= (simm13 & 0x1fff); | |
1578 emitInt(instruction); | |
1579 } | |
1580 | |
1581 /** | |
1582 * Pseudo-external assembler syntax: {@code stba }<i>rd</i>, <i>rs1</i>, <i>rs2</i>, <i>immAsi</i> | |
1583 * Example disassembly syntax: {@code stba %g0, [%g0 + %g0]0x0} | |
1584 * <p> | |
1585 * Constraint: {@code 0 <= immAsi && immAsi <= 255}<br /> | |
1586 * | |
1587 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.54" | |
1588 */ | |
1589 // Template#: 91, Serial#: 91 | |
1590 public void stba(final GPR rd, final GPR rs1, final GPR rs2, final int immAsi) { | |
1591 int instruction = 0xC0A80000; | |
1592 checkConstraint(0 <= immAsi && immAsi <= 255, "0 <= immAsi && immAsi <= 255"); | |
1593 instruction |= ((rd.value() & 0x1f) << 25); | |
1594 instruction |= ((rs1.value() & 0x1f) << 14); | |
1595 instruction |= (rs2.value() & 0x1f); | |
1596 instruction |= ((immAsi & 0xff) << 5); | |
1597 emitInt(instruction); | |
1598 } | |
1599 | |
1600 /** | |
1601 * Pseudo-external assembler syntax: {@code stba }<i>rd</i>, <i>rs1</i>, <i>simm13</i> | |
1602 * Example disassembly syntax: {@code stba %g0, [%g0 + -4096] %asi} | |
1603 * <p> | |
1604 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1605 * | |
1606 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.54" | |
1607 */ | |
1608 // Template#: 92, Serial#: 92 | |
1609 public void stba(final GPR rd, final GPR rs1, final int simm13) { | |
1610 int instruction = 0xC0A82000; | |
1611 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1612 instruction |= ((rd.value() & 0x1f) << 25); | |
1613 instruction |= ((rs1.value() & 0x1f) << 14); | |
1614 instruction |= (simm13 & 0x1fff); | |
1615 emitInt(instruction); | |
1616 } | |
1617 | |
1618 /** | |
1619 * Pseudo-external assembler syntax: {@code stha }<i>rd</i>, <i>rs1</i>, <i>rs2</i>, <i>immAsi</i> | |
1620 * Example disassembly syntax: {@code stha %g0, [%g0 + %g0]0x0} | |
1621 * <p> | |
1622 * Constraint: {@code 0 <= immAsi && immAsi <= 255}<br /> | |
1623 * | |
1624 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.54" | |
1625 */ | |
1626 // Template#: 93, Serial#: 93 | |
1627 public void stha(final GPR rd, final GPR rs1, final GPR rs2, final int immAsi) { | |
1628 int instruction = 0xC0B00000; | |
1629 checkConstraint(0 <= immAsi && immAsi <= 255, "0 <= immAsi && immAsi <= 255"); | |
1630 instruction |= ((rd.value() & 0x1f) << 25); | |
1631 instruction |= ((rs1.value() & 0x1f) << 14); | |
1632 instruction |= (rs2.value() & 0x1f); | |
1633 instruction |= ((immAsi & 0xff) << 5); | |
1634 emitInt(instruction); | |
1635 } | |
1636 | |
1637 /** | |
1638 * Pseudo-external assembler syntax: {@code stha }<i>rd</i>, <i>rs1</i>, <i>simm13</i> | |
1639 * Example disassembly syntax: {@code stha %g0, [%g0 + -4096] %asi} | |
1640 * <p> | |
1641 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1642 * | |
1643 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.54" | |
1644 */ | |
1645 // Template#: 94, Serial#: 94 | |
1646 public void stha(final GPR rd, final GPR rs1, final int simm13) { | |
1647 int instruction = 0xC0B02000; | |
1648 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1649 instruction |= ((rd.value() & 0x1f) << 25); | |
1650 instruction |= ((rs1.value() & 0x1f) << 14); | |
1651 instruction |= (simm13 & 0x1fff); | |
1652 emitInt(instruction); | |
1653 } | |
1654 | |
1655 /** | |
1656 * Pseudo-external assembler syntax: {@code stwa }<i>rd</i>, <i>rs1</i>, <i>rs2</i>, <i>immAsi</i> | |
1657 * Example disassembly syntax: {@code stwa %g0, [%g0 + %g0]0x0} | |
1658 * <p> | |
1659 * Constraint: {@code 0 <= immAsi && immAsi <= 255}<br /> | |
1660 * | |
1661 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.54" | |
1662 */ | |
1663 // Template#: 95, Serial#: 95 | |
1664 public void stwa(final GPR rd, final GPR rs1, final GPR rs2, final int immAsi) { | |
1665 int instruction = 0xC0A00000; | |
1666 checkConstraint(0 <= immAsi && immAsi <= 255, "0 <= immAsi && immAsi <= 255"); | |
1667 instruction |= ((rd.value() & 0x1f) << 25); | |
1668 instruction |= ((rs1.value() & 0x1f) << 14); | |
1669 instruction |= (rs2.value() & 0x1f); | |
1670 instruction |= ((immAsi & 0xff) << 5); | |
1671 emitInt(instruction); | |
1672 } | |
1673 | |
1674 /** | |
1675 * Pseudo-external assembler syntax: {@code stwa }<i>rd</i>, <i>rs1</i>, <i>simm13</i> | |
1676 * Example disassembly syntax: {@code stwa %g0, [%g0 + -4096] %asi} | |
1677 * <p> | |
1678 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1679 * | |
1680 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.54" | |
1681 */ | |
1682 // Template#: 96, Serial#: 96 | |
1683 public void stwa(final GPR rd, final GPR rs1, final int simm13) { | |
1684 int instruction = 0xC0A02000; | |
1685 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1686 instruction |= ((rd.value() & 0x1f) << 25); | |
1687 instruction |= ((rs1.value() & 0x1f) << 14); | |
1688 instruction |= (simm13 & 0x1fff); | |
1689 emitInt(instruction); | |
1690 } | |
1691 | |
1692 /** | |
1693 * Pseudo-external assembler syntax: {@code stxa }<i>rd</i>, <i>rs1</i>, <i>rs2</i>, <i>immAsi</i> | |
1694 * Example disassembly syntax: {@code stxa %g0, [%g0 + %g0]0x0} | |
1695 * <p> | |
1696 * Constraint: {@code 0 <= immAsi && immAsi <= 255}<br /> | |
1697 * | |
1698 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.54" | |
1699 */ | |
1700 // Template#: 97, Serial#: 97 | |
1701 public void stxa(final GPR rd, final GPR rs1, final GPR rs2, final int immAsi) { | |
1702 int instruction = 0xC0F00000; | |
1703 checkConstraint(0 <= immAsi && immAsi <= 255, "0 <= immAsi && immAsi <= 255"); | |
1704 instruction |= ((rd.value() & 0x1f) << 25); | |
1705 instruction |= ((rs1.value() & 0x1f) << 14); | |
1706 instruction |= (rs2.value() & 0x1f); | |
1707 instruction |= ((immAsi & 0xff) << 5); | |
1708 emitInt(instruction); | |
1709 } | |
1710 | |
1711 /** | |
1712 * Pseudo-external assembler syntax: {@code stxa }<i>rd</i>, <i>rs1</i>, <i>simm13</i> | |
1713 * Example disassembly syntax: {@code stxa %g0, [%g0 + -4096] %asi} | |
1714 * <p> | |
1715 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1716 * | |
1717 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.54" | |
1718 */ | |
1719 // Template#: 98, Serial#: 98 | |
1720 public void stxa(final GPR rd, final GPR rs1, final int simm13) { | |
1721 int instruction = 0xC0F02000; | |
1722 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1723 instruction |= ((rd.value() & 0x1f) << 25); | |
1724 instruction |= ((rs1.value() & 0x1f) << 14); | |
1725 instruction |= (simm13 & 0x1fff); | |
1726 emitInt(instruction); | |
1727 } | |
1728 | |
1729 /** | |
1730 * Pseudo-external assembler syntax: {@code stda }<i>rd</i>, <i>rs1</i>, <i>rs2</i>, <i>immAsi</i> | |
1731 * Example disassembly syntax: {@code stda %g0, [%g0 + %g0]0x0} | |
1732 * <p> | |
1733 * Constraint: {@code 0 <= immAsi && immAsi <= 255}<br /> | |
1734 * | |
1735 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.54" | |
1736 */ | |
1737 // Template#: 99, Serial#: 99 | |
1738 public void stda(final GPR.Even rd, final GPR rs1, final GPR rs2, final int immAsi) { | |
1739 int instruction = 0xC0B80000; | |
1740 checkConstraint(0 <= immAsi && immAsi <= 255, "0 <= immAsi && immAsi <= 255"); | |
1741 instruction |= ((rd.value() & 0x1f) << 25); | |
1742 instruction |= ((rs1.value() & 0x1f) << 14); | |
1743 instruction |= (rs2.value() & 0x1f); | |
1744 instruction |= ((immAsi & 0xff) << 5); | |
1745 emitInt(instruction); | |
1746 } | |
1747 | |
1748 /** | |
1749 * Pseudo-external assembler syntax: {@code stda }<i>rd</i>, <i>rs1</i>, <i>simm13</i> | |
1750 * Example disassembly syntax: {@code stda %g0, [%g0 + -4096] %asi} | |
1751 * <p> | |
1752 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1753 * | |
1754 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.54" | |
1755 */ | |
1756 // Template#: 100, Serial#: 100 | |
1757 public void stda(final GPR.Even rd, final GPR rs1, final int simm13) { | |
1758 int instruction = 0xC0B82000; | |
1759 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1760 instruction |= ((rd.value() & 0x1f) << 25); | |
1761 instruction |= ((rs1.value() & 0x1f) << 14); | |
1762 instruction |= (simm13 & 0x1fff); | |
1763 emitInt(instruction); | |
1764 } | |
1765 | |
1766 /** | |
1767 * Pseudo-external assembler syntax: {@code membar }<i>membarMask</i> | |
1768 * Example disassembly syntax: {@code membar 0} | |
1769 * | |
1770 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.32" | |
1771 */ | |
1772 // Template#: 101, Serial#: 101 | |
1773 public void membar(final MembarOperand membarMask) { | |
1774 int instruction = 0x8143E000; | |
1775 instruction |= (membarMask.value() & 0x7f); | |
1776 emitInt(instruction); | |
1777 } | |
1778 | |
1779 /** | |
1780 * Pseudo-external assembler syntax: {@code stbar } | |
1781 * Example disassembly syntax: {@code stbar } | |
1782 * | |
1783 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.51" | |
1784 */ | |
1785 // Template#: 102, Serial#: 102 | |
1786 public void stbar() { | |
1787 int instruction = 0x8143C000; | |
1788 emitInt(instruction); | |
1789 } | |
1790 | |
1791 /** | |
1792 * Pseudo-external assembler syntax: {@code add }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
1793 * Example disassembly syntax: {@code add %g0, %g0, %g0} | |
1794 * | |
1795 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.2" | |
1796 */ | |
1797 // Template#: 103, Serial#: 103 | |
1798 public void add(final GPR rs1, final GPR rs2, final GPR rd) { | |
1799 int instruction = 0x80000000; | |
1800 instruction |= ((rs1.value() & 0x1f) << 14); | |
1801 instruction |= (rs2.value() & 0x1f); | |
1802 instruction |= ((rd.value() & 0x1f) << 25); | |
1803 emitInt(instruction); | |
1804 } | |
1805 | |
1806 /** | |
1807 * Pseudo-external assembler syntax: {@code add }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
1808 * Example disassembly syntax: {@code add %g0, -4096, %g0} | |
1809 * <p> | |
1810 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1811 * | |
1812 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.2" | |
1813 */ | |
1814 // Template#: 104, Serial#: 104 | |
1815 public void add(final GPR rs1, final int simm13, final GPR rd) { | |
1816 int instruction = 0x80002000; | |
1817 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1818 instruction |= ((rs1.value() & 0x1f) << 14); | |
1819 instruction |= (simm13 & 0x1fff); | |
1820 instruction |= ((rd.value() & 0x1f) << 25); | |
1821 emitInt(instruction); | |
1822 } | |
1823 | |
1824 /** | |
1825 * Pseudo-external assembler syntax: {@code addc }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
1826 * Example disassembly syntax: {@code addc %g0, %g0, %g0} | |
1827 * | |
1828 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.2" | |
1829 */ | |
1830 // Template#: 105, Serial#: 105 | |
1831 public void addc(final GPR rs1, final GPR rs2, final GPR rd) { | |
1832 int instruction = 0x80400000; | |
1833 instruction |= ((rs1.value() & 0x1f) << 14); | |
1834 instruction |= (rs2.value() & 0x1f); | |
1835 instruction |= ((rd.value() & 0x1f) << 25); | |
1836 emitInt(instruction); | |
1837 } | |
1838 | |
1839 /** | |
1840 * Pseudo-external assembler syntax: {@code addc }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
1841 * Example disassembly syntax: {@code addc %g0, -4096, %g0} | |
1842 * <p> | |
1843 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1844 * | |
1845 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.2" | |
1846 */ | |
1847 // Template#: 106, Serial#: 106 | |
1848 public void addc(final GPR rs1, final int simm13, final GPR rd) { | |
1849 int instruction = 0x80402000; | |
1850 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1851 instruction |= ((rs1.value() & 0x1f) << 14); | |
1852 instruction |= (simm13 & 0x1fff); | |
1853 instruction |= ((rd.value() & 0x1f) << 25); | |
1854 emitInt(instruction); | |
1855 } | |
1856 | |
1857 /** | |
1858 * Pseudo-external assembler syntax: {@code addcc }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
1859 * Example disassembly syntax: {@code addcc %g0, %g0, %g0} | |
1860 * | |
1861 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.2" | |
1862 */ | |
1863 // Template#: 107, Serial#: 107 | |
1864 public void addcc(final GPR rs1, final GPR rs2, final GPR rd) { | |
1865 int instruction = 0x80800000; | |
1866 instruction |= ((rs1.value() & 0x1f) << 14); | |
1867 instruction |= (rs2.value() & 0x1f); | |
1868 instruction |= ((rd.value() & 0x1f) << 25); | |
1869 emitInt(instruction); | |
1870 } | |
1871 | |
1872 /** | |
1873 * Pseudo-external assembler syntax: {@code addcc }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
1874 * Example disassembly syntax: {@code addcc %g0, -4096, %g0} | |
1875 * <p> | |
1876 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1877 * | |
1878 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.2" | |
1879 */ | |
1880 // Template#: 108, Serial#: 108 | |
1881 public void addcc(final GPR rs1, final int simm13, final GPR rd) { | |
1882 int instruction = 0x80802000; | |
1883 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1884 instruction |= ((rs1.value() & 0x1f) << 14); | |
1885 instruction |= (simm13 & 0x1fff); | |
1886 instruction |= ((rd.value() & 0x1f) << 25); | |
1887 emitInt(instruction); | |
1888 } | |
1889 | |
1890 /** | |
1891 * Pseudo-external assembler syntax: {@code addccc }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
1892 * Example disassembly syntax: {@code addccc %g0, %g0, %g0} | |
1893 * | |
1894 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.2" | |
1895 */ | |
1896 // Template#: 109, Serial#: 109 | |
1897 public void addccc(final GPR rs1, final GPR rs2, final GPR rd) { | |
1898 int instruction = 0x80C00000; | |
1899 instruction |= ((rs1.value() & 0x1f) << 14); | |
1900 instruction |= (rs2.value() & 0x1f); | |
1901 instruction |= ((rd.value() & 0x1f) << 25); | |
1902 emitInt(instruction); | |
1903 } | |
1904 | |
1905 /** | |
1906 * Pseudo-external assembler syntax: {@code addccc }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
1907 * Example disassembly syntax: {@code addccc %g0, -4096, %g0} | |
1908 * <p> | |
1909 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1910 * | |
1911 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.2" | |
1912 */ | |
1913 // Template#: 110, Serial#: 110 | |
1914 public void addccc(final GPR rs1, final int simm13, final GPR rd) { | |
1915 int instruction = 0x80C02000; | |
1916 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1917 instruction |= ((rs1.value() & 0x1f) << 14); | |
1918 instruction |= (simm13 & 0x1fff); | |
1919 instruction |= ((rd.value() & 0x1f) << 25); | |
1920 emitInt(instruction); | |
1921 } | |
1922 | |
1923 /** | |
1924 * Pseudo-external assembler syntax: {@code udiv }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
1925 * Example disassembly syntax: {@code udiv %g0, %g0, %g0} | |
1926 * | |
1927 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.10" | |
1928 */ | |
1929 // Template#: 111, Serial#: 111 | |
1930 public void udiv(final GPR rs1, final GPR rs2, final GPR rd) { | |
1931 int instruction = 0x80700000; | |
1932 instruction |= ((rs1.value() & 0x1f) << 14); | |
1933 instruction |= (rs2.value() & 0x1f); | |
1934 instruction |= ((rd.value() & 0x1f) << 25); | |
1935 emitInt(instruction); | |
1936 } | |
1937 | |
1938 /** | |
1939 * Pseudo-external assembler syntax: {@code udiv }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
1940 * Example disassembly syntax: {@code udiv %g0, -4096, %g0} | |
1941 * <p> | |
1942 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1943 * | |
1944 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.10" | |
1945 */ | |
1946 // Template#: 112, Serial#: 112 | |
1947 public void udiv(final GPR rs1, final int simm13, final GPR rd) { | |
1948 int instruction = 0x80702000; | |
1949 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1950 instruction |= ((rs1.value() & 0x1f) << 14); | |
1951 instruction |= (simm13 & 0x1fff); | |
1952 instruction |= ((rd.value() & 0x1f) << 25); | |
1953 emitInt(instruction); | |
1954 } | |
1955 | |
1956 /** | |
1957 * Pseudo-external assembler syntax: {@code sdiv }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
1958 * Example disassembly syntax: {@code sdiv %g0, %g0, %g0} | |
1959 * | |
1960 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.10" | |
1961 */ | |
1962 // Template#: 113, Serial#: 113 | |
1963 public void sdiv(final GPR rs1, final GPR rs2, final GPR rd) { | |
1964 int instruction = 0x80780000; | |
1965 instruction |= ((rs1.value() & 0x1f) << 14); | |
1966 instruction |= (rs2.value() & 0x1f); | |
1967 instruction |= ((rd.value() & 0x1f) << 25); | |
1968 emitInt(instruction); | |
1969 } | |
1970 | |
1971 /** | |
1972 * Pseudo-external assembler syntax: {@code sdiv }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
1973 * Example disassembly syntax: {@code sdiv %g0, -4096, %g0} | |
1974 * <p> | |
1975 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
1976 * | |
1977 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.10" | |
1978 */ | |
1979 // Template#: 114, Serial#: 114 | |
1980 public void sdiv(final GPR rs1, final int simm13, final GPR rd) { | |
1981 int instruction = 0x80782000; | |
1982 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
1983 instruction |= ((rs1.value() & 0x1f) << 14); | |
1984 instruction |= (simm13 & 0x1fff); | |
1985 instruction |= ((rd.value() & 0x1f) << 25); | |
1986 emitInt(instruction); | |
1987 } | |
1988 | |
1989 /** | |
1990 * Pseudo-external assembler syntax: {@code udivcc }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
1991 * Example disassembly syntax: {@code udivcc %g0, %g0, %g0} | |
1992 * | |
1993 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.10" | |
1994 */ | |
1995 // Template#: 115, Serial#: 115 | |
1996 public void udivcc(final GPR rs1, final GPR rs2, final GPR rd) { | |
1997 int instruction = 0x80F00000; | |
1998 instruction |= ((rs1.value() & 0x1f) << 14); | |
1999 instruction |= (rs2.value() & 0x1f); | |
2000 instruction |= ((rd.value() & 0x1f) << 25); | |
2001 emitInt(instruction); | |
2002 } | |
2003 | |
2004 /** | |
2005 * Pseudo-external assembler syntax: {@code udivcc }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
2006 * Example disassembly syntax: {@code udivcc %g0, -4096, %g0} | |
2007 * <p> | |
2008 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
2009 * | |
2010 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.10" | |
2011 */ | |
2012 // Template#: 116, Serial#: 116 | |
2013 public void udivcc(final GPR rs1, final int simm13, final GPR rd) { | |
2014 int instruction = 0x80F02000; | |
2015 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
2016 instruction |= ((rs1.value() & 0x1f) << 14); | |
2017 instruction |= (simm13 & 0x1fff); | |
2018 instruction |= ((rd.value() & 0x1f) << 25); | |
2019 emitInt(instruction); | |
2020 } | |
2021 | |
2022 /** | |
2023 * Pseudo-external assembler syntax: {@code sdivcc }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2024 * Example disassembly syntax: {@code sdivcc %g0, %g0, %g0} | |
2025 * | |
2026 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.10" | |
2027 */ | |
2028 // Template#: 117, Serial#: 117 | |
2029 public void sdivcc(final GPR rs1, final GPR rs2, final GPR rd) { | |
2030 int instruction = 0x80F80000; | |
2031 instruction |= ((rs1.value() & 0x1f) << 14); | |
2032 instruction |= (rs2.value() & 0x1f); | |
2033 instruction |= ((rd.value() & 0x1f) << 25); | |
2034 emitInt(instruction); | |
2035 } | |
2036 | |
2037 /** | |
2038 * Pseudo-external assembler syntax: {@code sdivcc }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
2039 * Example disassembly syntax: {@code sdivcc %g0, -4096, %g0} | |
2040 * <p> | |
2041 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
2042 * | |
2043 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.10" | |
2044 */ | |
2045 // Template#: 118, Serial#: 118 | |
2046 public void sdivcc(final GPR rs1, final int simm13, final GPR rd) { | |
2047 int instruction = 0x80F82000; | |
2048 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
2049 instruction |= ((rs1.value() & 0x1f) << 14); | |
2050 instruction |= (simm13 & 0x1fff); | |
2051 instruction |= ((rd.value() & 0x1f) << 25); | |
2052 emitInt(instruction); | |
2053 } | |
2054 | |
2055 /** | |
2056 * Pseudo-external assembler syntax: {@code and }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2057 * Example disassembly syntax: {@code and %g0, %g0, %g0} | |
2058 * | |
2059 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.31" | |
2060 */ | |
2061 // Template#: 119, Serial#: 119 | |
2062 public void and(final GPR rs1, final GPR rs2, final GPR rd) { | |
2063 int instruction = 0x80080000; | |
2064 instruction |= ((rs1.value() & 0x1f) << 14); | |
2065 instruction |= (rs2.value() & 0x1f); | |
2066 instruction |= ((rd.value() & 0x1f) << 25); | |
2067 emitInt(instruction); | |
2068 } | |
2069 | |
2070 /** | |
2071 * Pseudo-external assembler syntax: {@code and }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
2072 * Example disassembly syntax: {@code and %g0, -4096, %g0} | |
2073 * <p> | |
2074 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
2075 * | |
2076 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.31" | |
2077 */ | |
2078 // Template#: 120, Serial#: 120 | |
2079 public void and(final GPR rs1, final int simm13, final GPR rd) { | |
2080 int instruction = 0x80082000; | |
2081 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
2082 instruction |= ((rs1.value() & 0x1f) << 14); | |
2083 instruction |= (simm13 & 0x1fff); | |
2084 instruction |= ((rd.value() & 0x1f) << 25); | |
2085 emitInt(instruction); | |
2086 } | |
2087 | |
2088 /** | |
2089 * Pseudo-external assembler syntax: {@code andcc }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2090 * Example disassembly syntax: {@code andcc %g0, %g0, %g0} | |
2091 * | |
2092 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.31" | |
2093 */ | |
2094 // Template#: 121, Serial#: 121 | |
2095 public void andcc(final GPR rs1, final GPR rs2, final GPR rd) { | |
2096 int instruction = 0x80880000; | |
2097 instruction |= ((rs1.value() & 0x1f) << 14); | |
2098 instruction |= (rs2.value() & 0x1f); | |
2099 instruction |= ((rd.value() & 0x1f) << 25); | |
2100 emitInt(instruction); | |
2101 } | |
2102 | |
2103 /** | |
2104 * Pseudo-external assembler syntax: {@code andcc }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
2105 * Example disassembly syntax: {@code andcc %g0, -4096, %g0} | |
2106 * <p> | |
2107 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
2108 * | |
2109 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.31" | |
2110 */ | |
2111 // Template#: 122, Serial#: 122 | |
2112 public void andcc(final GPR rs1, final int simm13, final GPR rd) { | |
2113 int instruction = 0x80882000; | |
2114 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
2115 instruction |= ((rs1.value() & 0x1f) << 14); | |
2116 instruction |= (simm13 & 0x1fff); | |
2117 instruction |= ((rd.value() & 0x1f) << 25); | |
2118 emitInt(instruction); | |
2119 } | |
2120 | |
2121 /** | |
2122 * Pseudo-external assembler syntax: {@code andn }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2123 * Example disassembly syntax: {@code andn %g0, %g0, %g0} | |
2124 * | |
2125 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.31" | |
2126 */ | |
2127 // Template#: 123, Serial#: 123 | |
2128 public void andn(final GPR rs1, final GPR rs2, final GPR rd) { | |
2129 int instruction = 0x80280000; | |
2130 instruction |= ((rs1.value() & 0x1f) << 14); | |
2131 instruction |= (rs2.value() & 0x1f); | |
2132 instruction |= ((rd.value() & 0x1f) << 25); | |
2133 emitInt(instruction); | |
2134 } | |
2135 | |
2136 /** | |
2137 * Pseudo-external assembler syntax: {@code andn }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
2138 * Example disassembly syntax: {@code andn %g0, -4096, %g0} | |
2139 * <p> | |
2140 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
2141 * | |
2142 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.31" | |
2143 */ | |
2144 // Template#: 124, Serial#: 124 | |
2145 public void andn(final GPR rs1, final int simm13, final GPR rd) { | |
2146 int instruction = 0x80282000; | |
2147 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
2148 instruction |= ((rs1.value() & 0x1f) << 14); | |
2149 instruction |= (simm13 & 0x1fff); | |
2150 instruction |= ((rd.value() & 0x1f) << 25); | |
2151 emitInt(instruction); | |
2152 } | |
2153 | |
2154 /** | |
2155 * Pseudo-external assembler syntax: {@code andncc }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2156 * Example disassembly syntax: {@code andncc %g0, %g0, %g0} | |
2157 * | |
2158 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.31" | |
2159 */ | |
2160 // Template#: 125, Serial#: 125 | |
2161 public void andncc(final GPR rs1, final GPR rs2, final GPR rd) { | |
2162 int instruction = 0x80A80000; | |
2163 instruction |= ((rs1.value() & 0x1f) << 14); | |
2164 instruction |= (rs2.value() & 0x1f); | |
2165 instruction |= ((rd.value() & 0x1f) << 25); | |
2166 emitInt(instruction); | |
2167 } | |
2168 | |
2169 /** | |
2170 * Pseudo-external assembler syntax: {@code andncc }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
2171 * Example disassembly syntax: {@code andncc %g0, -4096, %g0} | |
2172 * <p> | |
2173 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
2174 * | |
2175 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.31" | |
2176 */ | |
2177 // Template#: 126, Serial#: 126 | |
2178 public void andncc(final GPR rs1, final int simm13, final GPR rd) { | |
2179 int instruction = 0x80A82000; | |
2180 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
2181 instruction |= ((rs1.value() & 0x1f) << 14); | |
2182 instruction |= (simm13 & 0x1fff); | |
2183 instruction |= ((rd.value() & 0x1f) << 25); | |
2184 emitInt(instruction); | |
2185 } | |
2186 | |
2187 /** | |
2188 * Pseudo-external assembler syntax: {@code or }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2189 * Example disassembly syntax: {@code or %g0, %g0, %g0} | |
2190 * | |
2191 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.31" | |
2192 */ | |
2193 // Template#: 127, Serial#: 127 | |
2194 public void or(final GPR rs1, final GPR rs2, final GPR rd) { | |
2195 int instruction = 0x80100000; | |
2196 instruction |= ((rs1.value() & 0x1f) << 14); | |
2197 instruction |= (rs2.value() & 0x1f); | |
2198 instruction |= ((rd.value() & 0x1f) << 25); | |
2199 emitInt(instruction); | |
2200 } | |
2201 | |
2202 /** | |
2203 * Pseudo-external assembler syntax: {@code or }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
2204 * Example disassembly syntax: {@code or %g0, -4096, %g0} | |
2205 * <p> | |
2206 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
2207 * | |
2208 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.31" | |
2209 */ | |
2210 // Template#: 128, Serial#: 128 | |
2211 public void or(final GPR rs1, final int simm13, final GPR rd) { | |
2212 int instruction = 0x80102000; | |
2213 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
2214 instruction |= ((rs1.value() & 0x1f) << 14); | |
2215 instruction |= (simm13 & 0x1fff); | |
2216 instruction |= ((rd.value() & 0x1f) << 25); | |
2217 emitInt(instruction); | |
2218 } | |
2219 | |
2220 /** | |
2221 * Pseudo-external assembler syntax: {@code orcc }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2222 * Example disassembly syntax: {@code orcc %g0, %g0, %g0} | |
2223 * | |
2224 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.31" | |
2225 */ | |
2226 // Template#: 129, Serial#: 129 | |
2227 public void orcc(final GPR rs1, final GPR rs2, final GPR rd) { | |
2228 int instruction = 0x80900000; | |
2229 instruction |= ((rs1.value() & 0x1f) << 14); | |
2230 instruction |= (rs2.value() & 0x1f); | |
2231 instruction |= ((rd.value() & 0x1f) << 25); | |
2232 emitInt(instruction); | |
2233 } | |
2234 | |
2235 /** | |
2236 * Pseudo-external assembler syntax: {@code orcc }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
2237 * Example disassembly syntax: {@code orcc %g0, -4096, %g0} | |
2238 * <p> | |
2239 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
2240 * | |
2241 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.31" | |
2242 */ | |
2243 // Template#: 130, Serial#: 130 | |
2244 public void orcc(final GPR rs1, final int simm13, final GPR rd) { | |
2245 int instruction = 0x80902000; | |
2246 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
2247 instruction |= ((rs1.value() & 0x1f) << 14); | |
2248 instruction |= (simm13 & 0x1fff); | |
2249 instruction |= ((rd.value() & 0x1f) << 25); | |
2250 emitInt(instruction); | |
2251 } | |
2252 | |
2253 /** | |
2254 * Pseudo-external assembler syntax: {@code orn }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2255 * Example disassembly syntax: {@code orn %g0, %g0, %g0} | |
2256 * | |
2257 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.31" | |
2258 */ | |
2259 // Template#: 131, Serial#: 131 | |
2260 public void orn(final GPR rs1, final GPR rs2, final GPR rd) { | |
2261 int instruction = 0x80300000; | |
2262 instruction |= ((rs1.value() & 0x1f) << 14); | |
2263 instruction |= (rs2.value() & 0x1f); | |
2264 instruction |= ((rd.value() & 0x1f) << 25); | |
2265 emitInt(instruction); | |
2266 } | |
2267 | |
2268 /** | |
2269 * Pseudo-external assembler syntax: {@code orn }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
2270 * Example disassembly syntax: {@code orn %g0, -4096, %g0} | |
2271 * <p> | |
2272 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
2273 * | |
2274 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.31" | |
2275 */ | |
2276 // Template#: 132, Serial#: 132 | |
2277 public void orn(final GPR rs1, final int simm13, final GPR rd) { | |
2278 int instruction = 0x80302000; | |
2279 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
2280 instruction |= ((rs1.value() & 0x1f) << 14); | |
2281 instruction |= (simm13 & 0x1fff); | |
2282 instruction |= ((rd.value() & 0x1f) << 25); | |
2283 emitInt(instruction); | |
2284 } | |
2285 | |
2286 /** | |
2287 * Pseudo-external assembler syntax: {@code orncc }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2288 * Example disassembly syntax: {@code orncc %g0, %g0, %g0} | |
2289 * | |
2290 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.31" | |
2291 */ | |
2292 // Template#: 133, Serial#: 133 | |
2293 public void orncc(final GPR rs1, final GPR rs2, final GPR rd) { | |
2294 int instruction = 0x80B00000; | |
2295 instruction |= ((rs1.value() & 0x1f) << 14); | |
2296 instruction |= (rs2.value() & 0x1f); | |
2297 instruction |= ((rd.value() & 0x1f) << 25); | |
2298 emitInt(instruction); | |
2299 } | |
2300 | |
2301 /** | |
2302 * Pseudo-external assembler syntax: {@code orncc }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
2303 * Example disassembly syntax: {@code orncc %g0, -4096, %g0} | |
2304 * <p> | |
2305 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
2306 * | |
2307 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.31" | |
2308 */ | |
2309 // Template#: 134, Serial#: 134 | |
2310 public void orncc(final GPR rs1, final int simm13, final GPR rd) { | |
2311 int instruction = 0x80B02000; | |
2312 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
2313 instruction |= ((rs1.value() & 0x1f) << 14); | |
2314 instruction |= (simm13 & 0x1fff); | |
2315 instruction |= ((rd.value() & 0x1f) << 25); | |
2316 emitInt(instruction); | |
2317 } | |
2318 | |
2319 /** | |
2320 * Pseudo-external assembler syntax: {@code xor }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2321 * Example disassembly syntax: {@code xor %g0, %g0, %g0} | |
2322 * | |
2323 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.31" | |
2324 */ | |
2325 // Template#: 135, Serial#: 135 | |
2326 public void xor(final GPR rs1, final GPR rs2, final GPR rd) { | |
2327 int instruction = 0x80180000; | |
2328 instruction |= ((rs1.value() & 0x1f) << 14); | |
2329 instruction |= (rs2.value() & 0x1f); | |
2330 instruction |= ((rd.value() & 0x1f) << 25); | |
2331 emitInt(instruction); | |
2332 } | |
2333 | |
2334 /** | |
2335 * Pseudo-external assembler syntax: {@code xor }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
2336 * Example disassembly syntax: {@code xor %g0, -4096, %g0} | |
2337 * <p> | |
2338 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
2339 * | |
2340 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.31" | |
2341 */ | |
2342 // Template#: 136, Serial#: 136 | |
2343 public void xor(final GPR rs1, final int simm13, final GPR rd) { | |
2344 int instruction = 0x80182000; | |
2345 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
2346 instruction |= ((rs1.value() & 0x1f) << 14); | |
2347 instruction |= (simm13 & 0x1fff); | |
2348 instruction |= ((rd.value() & 0x1f) << 25); | |
2349 emitInt(instruction); | |
2350 } | |
2351 | |
2352 /** | |
2353 * Pseudo-external assembler syntax: {@code xorcc }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2354 * Example disassembly syntax: {@code xorcc %g0, %g0, %g0} | |
2355 * | |
2356 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.31" | |
2357 */ | |
2358 // Template#: 137, Serial#: 137 | |
2359 public void xorcc(final GPR rs1, final GPR rs2, final GPR rd) { | |
2360 int instruction = 0x80980000; | |
2361 instruction |= ((rs1.value() & 0x1f) << 14); | |
2362 instruction |= (rs2.value() & 0x1f); | |
2363 instruction |= ((rd.value() & 0x1f) << 25); | |
2364 emitInt(instruction); | |
2365 } | |
2366 | |
2367 /** | |
2368 * Pseudo-external assembler syntax: {@code xorcc }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
2369 * Example disassembly syntax: {@code xorcc %g0, -4096, %g0} | |
2370 * <p> | |
2371 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
2372 * | |
2373 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.31" | |
2374 */ | |
2375 // Template#: 138, Serial#: 138 | |
2376 public void xorcc(final GPR rs1, final int simm13, final GPR rd) { | |
2377 int instruction = 0x80982000; | |
2378 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
2379 instruction |= ((rs1.value() & 0x1f) << 14); | |
2380 instruction |= (simm13 & 0x1fff); | |
2381 instruction |= ((rd.value() & 0x1f) << 25); | |
2382 emitInt(instruction); | |
2383 } | |
2384 | |
2385 /** | |
2386 * Pseudo-external assembler syntax: {@code xnor }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2387 * Example disassembly syntax: {@code xnor %g0, %g0, %g0} | |
2388 * | |
2389 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.31" | |
2390 */ | |
2391 // Template#: 139, Serial#: 139 | |
2392 public void xnor(final GPR rs1, final GPR rs2, final GPR rd) { | |
2393 int instruction = 0x80380000; | |
2394 instruction |= ((rs1.value() & 0x1f) << 14); | |
2395 instruction |= (rs2.value() & 0x1f); | |
2396 instruction |= ((rd.value() & 0x1f) << 25); | |
2397 emitInt(instruction); | |
2398 } | |
2399 | |
2400 /** | |
2401 * Pseudo-external assembler syntax: {@code xnor }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
2402 * Example disassembly syntax: {@code xnor %g0, -4096, %g0} | |
2403 * <p> | |
2404 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
2405 * | |
2406 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.31" | |
2407 */ | |
2408 // Template#: 140, Serial#: 140 | |
2409 public void xnor(final GPR rs1, final int simm13, final GPR rd) { | |
2410 int instruction = 0x80382000; | |
2411 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
2412 instruction |= ((rs1.value() & 0x1f) << 14); | |
2413 instruction |= (simm13 & 0x1fff); | |
2414 instruction |= ((rd.value() & 0x1f) << 25); | |
2415 emitInt(instruction); | |
2416 } | |
2417 | |
2418 /** | |
2419 * Pseudo-external assembler syntax: {@code xnorcc }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2420 * Example disassembly syntax: {@code xnorcc %g0, %g0, %g0} | |
2421 * | |
2422 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.31" | |
2423 */ | |
2424 // Template#: 141, Serial#: 141 | |
2425 public void xnorcc(final GPR rs1, final GPR rs2, final GPR rd) { | |
2426 int instruction = 0x80B80000; | |
2427 instruction |= ((rs1.value() & 0x1f) << 14); | |
2428 instruction |= (rs2.value() & 0x1f); | |
2429 instruction |= ((rd.value() & 0x1f) << 25); | |
2430 emitInt(instruction); | |
2431 } | |
2432 | |
2433 /** | |
2434 * Pseudo-external assembler syntax: {@code xnorcc }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
2435 * Example disassembly syntax: {@code xnorcc %g0, -4096, %g0} | |
2436 * <p> | |
2437 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
2438 * | |
2439 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.31" | |
2440 */ | |
2441 // Template#: 142, Serial#: 142 | |
2442 public void xnorcc(final GPR rs1, final int simm13, final GPR rd) { | |
2443 int instruction = 0x80B82000; | |
2444 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
2445 instruction |= ((rs1.value() & 0x1f) << 14); | |
2446 instruction |= (simm13 & 0x1fff); | |
2447 instruction |= ((rd.value() & 0x1f) << 25); | |
2448 emitInt(instruction); | |
2449 } | |
2450 | |
2451 /** | |
2452 * Pseudo-external assembler syntax: {@code mulx }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2453 * Example disassembly syntax: {@code mulx %g0, %g0, %g0} | |
2454 * | |
2455 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.36" | |
2456 */ | |
2457 // Template#: 143, Serial#: 143 | |
2458 public void mulx(final GPR rs1, final GPR rs2, final GPR rd) { | |
2459 int instruction = 0x80480000; | |
2460 instruction |= ((rs1.value() & 0x1f) << 14); | |
2461 instruction |= (rs2.value() & 0x1f); | |
2462 instruction |= ((rd.value() & 0x1f) << 25); | |
2463 emitInt(instruction); | |
2464 } | |
2465 | |
2466 /** | |
2467 * Pseudo-external assembler syntax: {@code mulx }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
2468 * Example disassembly syntax: {@code mulx %g0, -4096, %g0} | |
2469 * <p> | |
2470 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
2471 * | |
2472 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.36" | |
2473 */ | |
2474 // Template#: 144, Serial#: 144 | |
2475 public void mulx(final GPR rs1, final int simm13, final GPR rd) { | |
2476 int instruction = 0x80482000; | |
2477 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
2478 instruction |= ((rs1.value() & 0x1f) << 14); | |
2479 instruction |= (simm13 & 0x1fff); | |
2480 instruction |= ((rd.value() & 0x1f) << 25); | |
2481 emitInt(instruction); | |
2482 } | |
2483 | |
2484 /** | |
2485 * Pseudo-external assembler syntax: {@code sdivx }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2486 * Example disassembly syntax: {@code sdivx %g0, %g0, %g0} | |
2487 * | |
2488 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.36" | |
2489 */ | |
2490 // Template#: 145, Serial#: 145 | |
2491 public void sdivx(final GPR rs1, final GPR rs2, final GPR rd) { | |
2492 int instruction = 0x81680000; | |
2493 instruction |= ((rs1.value() & 0x1f) << 14); | |
2494 instruction |= (rs2.value() & 0x1f); | |
2495 instruction |= ((rd.value() & 0x1f) << 25); | |
2496 emitInt(instruction); | |
2497 } | |
2498 | |
2499 /** | |
2500 * Pseudo-external assembler syntax: {@code sdivx }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
2501 * Example disassembly syntax: {@code sdivx %g0, -4096, %g0} | |
2502 * <p> | |
2503 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
2504 * | |
2505 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.36" | |
2506 */ | |
2507 // Template#: 146, Serial#: 146 | |
2508 public void sdivx(final GPR rs1, final int simm13, final GPR rd) { | |
2509 int instruction = 0x81682000; | |
2510 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
2511 instruction |= ((rs1.value() & 0x1f) << 14); | |
2512 instruction |= (simm13 & 0x1fff); | |
2513 instruction |= ((rd.value() & 0x1f) << 25); | |
2514 emitInt(instruction); | |
2515 } | |
2516 | |
2517 /** | |
2518 * Pseudo-external assembler syntax: {@code udivx }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2519 * Example disassembly syntax: {@code udivx %g0, %g0, %g0} | |
2520 * | |
2521 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.36" | |
2522 */ | |
2523 // Template#: 147, Serial#: 147 | |
2524 public void udivx(final GPR rs1, final GPR rs2, final GPR rd) { | |
2525 int instruction = 0x80680000; | |
2526 instruction |= ((rs1.value() & 0x1f) << 14); | |
2527 instruction |= (rs2.value() & 0x1f); | |
2528 instruction |= ((rd.value() & 0x1f) << 25); | |
2529 emitInt(instruction); | |
2530 } | |
2531 | |
2532 /** | |
2533 * Pseudo-external assembler syntax: {@code udivx }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
2534 * Example disassembly syntax: {@code udivx %g0, -4096, %g0} | |
2535 * <p> | |
2536 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
2537 * | |
2538 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.36" | |
2539 */ | |
2540 // Template#: 148, Serial#: 148 | |
2541 public void udivx(final GPR rs1, final int simm13, final GPR rd) { | |
2542 int instruction = 0x80682000; | |
2543 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
2544 instruction |= ((rs1.value() & 0x1f) << 14); | |
2545 instruction |= (simm13 & 0x1fff); | |
2546 instruction |= ((rd.value() & 0x1f) << 25); | |
2547 emitInt(instruction); | |
2548 } | |
2549 | |
2550 /** | |
2551 * Pseudo-external assembler syntax: {@code umul }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2552 * Example disassembly syntax: {@code umul %g0, %g0, %g0} | |
2553 * | |
2554 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.38" | |
2555 */ | |
2556 // Template#: 149, Serial#: 149 | |
2557 public void umul(final GPR rs1, final GPR rs2, final GPR rd) { | |
2558 int instruction = 0x80500000; | |
2559 instruction |= ((rs1.value() & 0x1f) << 14); | |
2560 instruction |= (rs2.value() & 0x1f); | |
2561 instruction |= ((rd.value() & 0x1f) << 25); | |
2562 emitInt(instruction); | |
2563 } | |
2564 | |
2565 /** | |
2566 * Pseudo-external assembler syntax: {@code umul }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
2567 * Example disassembly syntax: {@code umul %g0, -4096, %g0} | |
2568 * <p> | |
2569 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
2570 * | |
2571 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.38" | |
2572 */ | |
2573 // Template#: 150, Serial#: 150 | |
2574 public void umul(final GPR rs1, final int simm13, final GPR rd) { | |
2575 int instruction = 0x80502000; | |
2576 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
2577 instruction |= ((rs1.value() & 0x1f) << 14); | |
2578 instruction |= (simm13 & 0x1fff); | |
2579 instruction |= ((rd.value() & 0x1f) << 25); | |
2580 emitInt(instruction); | |
2581 } | |
2582 | |
2583 /** | |
2584 * Pseudo-external assembler syntax: {@code smul }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2585 * Example disassembly syntax: {@code smul %g0, %g0, %g0} | |
2586 * | |
2587 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.38" | |
2588 */ | |
2589 // Template#: 151, Serial#: 151 | |
2590 public void smul(final GPR rs1, final GPR rs2, final GPR rd) { | |
2591 int instruction = 0x80580000; | |
2592 instruction |= ((rs1.value() & 0x1f) << 14); | |
2593 instruction |= (rs2.value() & 0x1f); | |
2594 instruction |= ((rd.value() & 0x1f) << 25); | |
2595 emitInt(instruction); | |
2596 } | |
2597 | |
2598 /** | |
2599 * Pseudo-external assembler syntax: {@code smul }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
2600 * Example disassembly syntax: {@code smul %g0, -4096, %g0} | |
2601 * <p> | |
2602 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
2603 * | |
2604 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.38" | |
2605 */ | |
2606 // Template#: 152, Serial#: 152 | |
2607 public void smul(final GPR rs1, final int simm13, final GPR rd) { | |
2608 int instruction = 0x80582000; | |
2609 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
2610 instruction |= ((rs1.value() & 0x1f) << 14); | |
2611 instruction |= (simm13 & 0x1fff); | |
2612 instruction |= ((rd.value() & 0x1f) << 25); | |
2613 emitInt(instruction); | |
2614 } | |
2615 | |
2616 /** | |
2617 * Pseudo-external assembler syntax: {@code umulcc }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2618 * Example disassembly syntax: {@code umulcc %g0, %g0, %g0} | |
2619 * | |
2620 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.38" | |
2621 */ | |
2622 // Template#: 153, Serial#: 153 | |
2623 public void umulcc(final GPR rs1, final GPR rs2, final GPR rd) { | |
2624 int instruction = 0x80D00000; | |
2625 instruction |= ((rs1.value() & 0x1f) << 14); | |
2626 instruction |= (rs2.value() & 0x1f); | |
2627 instruction |= ((rd.value() & 0x1f) << 25); | |
2628 emitInt(instruction); | |
2629 } | |
2630 | |
2631 /** | |
2632 * Pseudo-external assembler syntax: {@code umulcc }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
2633 * Example disassembly syntax: {@code umulcc %g0, -4096, %g0} | |
2634 * <p> | |
2635 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
2636 * | |
2637 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.38" | |
2638 */ | |
2639 // Template#: 154, Serial#: 154 | |
2640 public void umulcc(final GPR rs1, final int simm13, final GPR rd) { | |
2641 int instruction = 0x80D02000; | |
2642 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
2643 instruction |= ((rs1.value() & 0x1f) << 14); | |
2644 instruction |= (simm13 & 0x1fff); | |
2645 instruction |= ((rd.value() & 0x1f) << 25); | |
2646 emitInt(instruction); | |
2647 } | |
2648 | |
2649 /** | |
2650 * Pseudo-external assembler syntax: {@code smulcc }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2651 * Example disassembly syntax: {@code smulcc %g0, %g0, %g0} | |
2652 * | |
2653 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.38" | |
2654 */ | |
2655 // Template#: 155, Serial#: 155 | |
2656 public void smulcc(final GPR rs1, final GPR rs2, final GPR rd) { | |
2657 int instruction = 0x80D80000; | |
2658 instruction |= ((rs1.value() & 0x1f) << 14); | |
2659 instruction |= (rs2.value() & 0x1f); | |
2660 instruction |= ((rd.value() & 0x1f) << 25); | |
2661 emitInt(instruction); | |
2662 } | |
2663 | |
2664 /** | |
2665 * Pseudo-external assembler syntax: {@code smulcc }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
2666 * Example disassembly syntax: {@code smulcc %g0, -4096, %g0} | |
2667 * <p> | |
2668 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
2669 * | |
2670 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.38" | |
2671 */ | |
2672 // Template#: 156, Serial#: 156 | |
2673 public void smulcc(final GPR rs1, final int simm13, final GPR rd) { | |
2674 int instruction = 0x80D82000; | |
2675 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
2676 instruction |= ((rs1.value() & 0x1f) << 14); | |
2677 instruction |= (simm13 & 0x1fff); | |
2678 instruction |= ((rd.value() & 0x1f) << 25); | |
2679 emitInt(instruction); | |
2680 } | |
2681 | |
2682 /** | |
2683 * Pseudo-external assembler syntax: {@code mulscc }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2684 * Example disassembly syntax: {@code mulscc %g0, %g0, %g0} | |
2685 * | |
2686 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.39" | |
2687 */ | |
2688 // Template#: 157, Serial#: 157 | |
2689 public void mulscc(final GPR rs1, final GPR rs2, final GPR rd) { | |
2690 int instruction = 0x81200000; | |
2691 instruction |= ((rs1.value() & 0x1f) << 14); | |
2692 instruction |= (rs2.value() & 0x1f); | |
2693 instruction |= ((rd.value() & 0x1f) << 25); | |
2694 emitInt(instruction); | |
2695 } | |
2696 | |
2697 /** | |
2698 * Pseudo-external assembler syntax: {@code mulscc }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
2699 * Example disassembly syntax: {@code mulscc %g0, -4096, %g0} | |
2700 * <p> | |
2701 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
2702 * | |
2703 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.39" | |
2704 */ | |
2705 // Template#: 158, Serial#: 158 | |
2706 public void mulscc(final GPR rs1, final int simm13, final GPR rd) { | |
2707 int instruction = 0x81202000; | |
2708 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
2709 instruction |= ((rs1.value() & 0x1f) << 14); | |
2710 instruction |= (simm13 & 0x1fff); | |
2711 instruction |= ((rd.value() & 0x1f) << 25); | |
2712 emitInt(instruction); | |
2713 } | |
2714 | |
2715 /** | |
2716 * Pseudo-external assembler syntax: {@code popc }<i>rs2</i>, <i>rd</i> | |
2717 * Example disassembly syntax: {@code popc %g0, %g0} | |
2718 * | |
2719 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.41" | |
2720 */ | |
2721 // Template#: 159, Serial#: 159 | |
2722 public void popc(final GPR rs2, final GPR rd) { | |
2723 int instruction = 0x81700000; | |
2724 instruction |= (rs2.value() & 0x1f); | |
2725 instruction |= ((rd.value() & 0x1f) << 25); | |
2726 emitInt(instruction); | |
2727 } | |
2728 | |
2729 /** | |
2730 * Pseudo-external assembler syntax: {@code popc }<i>simm13</i>, <i>rd</i> | |
2731 * Example disassembly syntax: {@code popc -4096, %g0} | |
2732 * <p> | |
2733 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
2734 * | |
2735 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.41" | |
2736 */ | |
2737 // Template#: 160, Serial#: 160 | |
2738 public void popc(final int simm13, final GPR rd) { | |
2739 int instruction = 0x81702000; | |
2740 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
2741 instruction |= (simm13 & 0x1fff); | |
2742 instruction |= ((rd.value() & 0x1f) << 25); | |
2743 emitInt(instruction); | |
2744 } | |
2745 | |
2746 /** | |
2747 * Pseudo-external assembler syntax: {@code sethi }<i>imm22</i>, <i>rd</i> | |
2748 * Example disassembly syntax: {@code sethi 0x0, %g0} | |
2749 * <p> | |
2750 * Constraint: {@code -2097152 <= imm22 && imm22 <= 4194303}<br /> | |
2751 * | |
2752 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.48" | |
2753 */ | |
2754 // Template#: 161, Serial#: 161 | |
2755 public void sethi(final int imm22, final GPR rd) { | |
2756 int instruction = 0x01000000; | |
2757 checkConstraint(-2097152 <= imm22 && imm22 <= 4194303, "-2097152 <= imm22 && imm22 <= 4194303"); | |
2758 instruction |= (imm22 & 0x3fffff); | |
2759 instruction |= ((rd.value() & 0x1f) << 25); | |
2760 emitInt(instruction); | |
2761 } | |
2762 | |
2763 /** | |
2764 * Pseudo-external assembler syntax: {@code sll }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2765 * Example disassembly syntax: {@code sll %g0, %g0, %g0} | |
2766 * | |
2767 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.49" | |
2768 */ | |
2769 // Template#: 162, Serial#: 162 | |
2770 public void sll(final GPR rs1, final GPR rs2, final GPR rd) { | |
2771 int instruction = 0x81280000; | |
2772 instruction |= ((rs1.value() & 0x1f) << 14); | |
2773 instruction |= (rs2.value() & 0x1f); | |
2774 instruction |= ((rd.value() & 0x1f) << 25); | |
2775 emitInt(instruction); | |
2776 } | |
2777 | |
2778 /** | |
2779 * Pseudo-external assembler syntax: {@code sllx }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2780 * Example disassembly syntax: {@code sllx %g0, %g0, %g0} | |
2781 * | |
2782 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.49" | |
2783 */ | |
2784 // Template#: 163, Serial#: 163 | |
2785 public void sllx(final GPR rs1, final GPR rs2, final GPR rd) { | |
2786 int instruction = 0x81281000; | |
2787 instruction |= ((rs1.value() & 0x1f) << 14); | |
2788 instruction |= (rs2.value() & 0x1f); | |
2789 instruction |= ((rd.value() & 0x1f) << 25); | |
2790 emitInt(instruction); | |
2791 } | |
2792 | |
2793 /** | |
2794 * Pseudo-external assembler syntax: {@code sll }<i>rs1</i>, <i>shcnt32</i>, <i>rd</i> | |
2795 * Example disassembly syntax: {@code sll %g0, 0x0, %g0} | |
2796 * <p> | |
2797 * Constraint: {@code 0 <= shcnt32 && shcnt32 <= 31}<br /> | |
2798 * | |
2799 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.49" | |
2800 */ | |
2801 // Template#: 164, Serial#: 164 | |
2802 public void sll(final GPR rs1, final int shcnt32, final GPR rd) { | |
2803 int instruction = 0x81282000; | |
2804 checkConstraint(0 <= shcnt32 && shcnt32 <= 31, "0 <= shcnt32 && shcnt32 <= 31"); | |
2805 instruction |= ((rs1.value() & 0x1f) << 14); | |
2806 instruction |= (shcnt32 & 0x1f); | |
2807 instruction |= ((rd.value() & 0x1f) << 25); | |
2808 emitInt(instruction); | |
2809 } | |
2810 | |
2811 /** | |
2812 * Pseudo-external assembler syntax: {@code sllx }<i>rs1</i>, <i>shcnt64</i>, <i>rd</i> | |
2813 * Example disassembly syntax: {@code sllx %g0, 0x0, %g0} | |
2814 * <p> | |
2815 * Constraint: {@code 0 <= shcnt64 && shcnt64 <= 63}<br /> | |
2816 * | |
2817 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.49" | |
2818 */ | |
2819 // Template#: 165, Serial#: 165 | |
2820 public void sllx(final GPR rs1, final int shcnt64, final GPR rd) { | |
2821 int instruction = 0x81283000; | |
2822 checkConstraint(0 <= shcnt64 && shcnt64 <= 63, "0 <= shcnt64 && shcnt64 <= 63"); | |
2823 instruction |= ((rs1.value() & 0x1f) << 14); | |
2824 instruction |= (shcnt64 & 0x3f); | |
2825 instruction |= ((rd.value() & 0x1f) << 25); | |
2826 emitInt(instruction); | |
2827 } | |
2828 | |
2829 /** | |
2830 * Pseudo-external assembler syntax: {@code srl }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2831 * Example disassembly syntax: {@code srl %g0, %g0, %g0} | |
2832 * | |
2833 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.49" | |
2834 */ | |
2835 // Template#: 166, Serial#: 166 | |
2836 public void srl(final GPR rs1, final GPR rs2, final GPR rd) { | |
2837 int instruction = 0x81300000; | |
2838 instruction |= ((rs1.value() & 0x1f) << 14); | |
2839 instruction |= (rs2.value() & 0x1f); | |
2840 instruction |= ((rd.value() & 0x1f) << 25); | |
2841 emitInt(instruction); | |
2842 } | |
2843 | |
2844 /** | |
2845 * Pseudo-external assembler syntax: {@code srlx }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2846 * Example disassembly syntax: {@code srlx %g0, %g0, %g0} | |
2847 * | |
2848 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.49" | |
2849 */ | |
2850 // Template#: 167, Serial#: 167 | |
2851 public void srlx(final GPR rs1, final GPR rs2, final GPR rd) { | |
2852 int instruction = 0x81301000; | |
2853 instruction |= ((rs1.value() & 0x1f) << 14); | |
2854 instruction |= (rs2.value() & 0x1f); | |
2855 instruction |= ((rd.value() & 0x1f) << 25); | |
2856 emitInt(instruction); | |
2857 } | |
2858 | |
2859 /** | |
2860 * Pseudo-external assembler syntax: {@code srl }<i>rs1</i>, <i>shcnt32</i>, <i>rd</i> | |
2861 * Example disassembly syntax: {@code srl %g0, 0x0, %g0} | |
2862 * <p> | |
2863 * Constraint: {@code 0 <= shcnt32 && shcnt32 <= 31}<br /> | |
2864 * | |
2865 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.49" | |
2866 */ | |
2867 // Template#: 168, Serial#: 168 | |
2868 public void srl(final GPR rs1, final int shcnt32, final GPR rd) { | |
2869 int instruction = 0x81302000; | |
2870 checkConstraint(0 <= shcnt32 && shcnt32 <= 31, "0 <= shcnt32 && shcnt32 <= 31"); | |
2871 instruction |= ((rs1.value() & 0x1f) << 14); | |
2872 instruction |= (shcnt32 & 0x1f); | |
2873 instruction |= ((rd.value() & 0x1f) << 25); | |
2874 emitInt(instruction); | |
2875 } | |
2876 | |
2877 /** | |
2878 * Pseudo-external assembler syntax: {@code srlx }<i>rs1</i>, <i>shcnt64</i>, <i>rd</i> | |
2879 * Example disassembly syntax: {@code srlx %g0, 0x0, %g0} | |
2880 * <p> | |
2881 * Constraint: {@code 0 <= shcnt64 && shcnt64 <= 63}<br /> | |
2882 * | |
2883 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.49" | |
2884 */ | |
2885 // Template#: 169, Serial#: 169 | |
2886 public void srlx(final GPR rs1, final int shcnt64, final GPR rd) { | |
2887 int instruction = 0x81303000; | |
2888 checkConstraint(0 <= shcnt64 && shcnt64 <= 63, "0 <= shcnt64 && shcnt64 <= 63"); | |
2889 instruction |= ((rs1.value() & 0x1f) << 14); | |
2890 instruction |= (shcnt64 & 0x3f); | |
2891 instruction |= ((rd.value() & 0x1f) << 25); | |
2892 emitInt(instruction); | |
2893 } | |
2894 | |
2895 /** | |
2896 * Pseudo-external assembler syntax: {@code sra }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2897 * Example disassembly syntax: {@code sra %g0, %g0, %g0} | |
2898 * | |
2899 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.49" | |
2900 */ | |
2901 // Template#: 170, Serial#: 170 | |
2902 public void sra(final GPR rs1, final GPR rs2, final GPR rd) { | |
2903 int instruction = 0x81380000; | |
2904 instruction |= ((rs1.value() & 0x1f) << 14); | |
2905 instruction |= (rs2.value() & 0x1f); | |
2906 instruction |= ((rd.value() & 0x1f) << 25); | |
2907 emitInt(instruction); | |
2908 } | |
2909 | |
2910 /** | |
2911 * Pseudo-external assembler syntax: {@code srax }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2912 * Example disassembly syntax: {@code srax %g0, %g0, %g0} | |
2913 * | |
2914 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.49" | |
2915 */ | |
2916 // Template#: 171, Serial#: 171 | |
2917 public void srax(final GPR rs1, final GPR rs2, final GPR rd) { | |
2918 int instruction = 0x81381000; | |
2919 instruction |= ((rs1.value() & 0x1f) << 14); | |
2920 instruction |= (rs2.value() & 0x1f); | |
2921 instruction |= ((rd.value() & 0x1f) << 25); | |
2922 emitInt(instruction); | |
2923 } | |
2924 | |
2925 /** | |
2926 * Pseudo-external assembler syntax: {@code sra }<i>rs1</i>, <i>shcnt32</i>, <i>rd</i> | |
2927 * Example disassembly syntax: {@code sra %g0, 0x0, %g0} | |
2928 * <p> | |
2929 * Constraint: {@code 0 <= shcnt32 && shcnt32 <= 31}<br /> | |
2930 * | |
2931 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.49" | |
2932 */ | |
2933 // Template#: 172, Serial#: 172 | |
2934 public void sra(final GPR rs1, final int shcnt32, final GPR rd) { | |
2935 int instruction = 0x81382000; | |
2936 checkConstraint(0 <= shcnt32 && shcnt32 <= 31, "0 <= shcnt32 && shcnt32 <= 31"); | |
2937 instruction |= ((rs1.value() & 0x1f) << 14); | |
2938 instruction |= (shcnt32 & 0x1f); | |
2939 instruction |= ((rd.value() & 0x1f) << 25); | |
2940 emitInt(instruction); | |
2941 } | |
2942 | |
2943 /** | |
2944 * Pseudo-external assembler syntax: {@code srax }<i>rs1</i>, <i>shcnt64</i>, <i>rd</i> | |
2945 * Example disassembly syntax: {@code srax %g0, 0x0, %g0} | |
2946 * <p> | |
2947 * Constraint: {@code 0 <= shcnt64 && shcnt64 <= 63}<br /> | |
2948 * | |
2949 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.49" | |
2950 */ | |
2951 // Template#: 173, Serial#: 173 | |
2952 public void srax(final GPR rs1, final int shcnt64, final GPR rd) { | |
2953 int instruction = 0x81383000; | |
2954 checkConstraint(0 <= shcnt64 && shcnt64 <= 63, "0 <= shcnt64 && shcnt64 <= 63"); | |
2955 instruction |= ((rs1.value() & 0x1f) << 14); | |
2956 instruction |= (shcnt64 & 0x3f); | |
2957 instruction |= ((rd.value() & 0x1f) << 25); | |
2958 emitInt(instruction); | |
2959 } | |
2960 | |
2961 /** | |
2962 * Pseudo-external assembler syntax: {@code sub }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2963 * Example disassembly syntax: {@code sub %g0, %g0, %g0} | |
2964 * | |
2965 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.56" | |
2966 */ | |
2967 // Template#: 174, Serial#: 174 | |
2968 public void sub(final GPR rs1, final GPR rs2, final GPR rd) { | |
2969 int instruction = 0x80200000; | |
2970 instruction |= ((rs1.value() & 0x1f) << 14); | |
2971 instruction |= (rs2.value() & 0x1f); | |
2972 instruction |= ((rd.value() & 0x1f) << 25); | |
2973 emitInt(instruction); | |
2974 } | |
2975 | |
2976 /** | |
2977 * Pseudo-external assembler syntax: {@code sub }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
2978 * Example disassembly syntax: {@code sub %g0, -4096, %g0} | |
2979 * <p> | |
2980 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
2981 * | |
2982 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.56" | |
2983 */ | |
2984 // Template#: 175, Serial#: 175 | |
2985 public void sub(final GPR rs1, final int simm13, final GPR rd) { | |
2986 int instruction = 0x80202000; | |
2987 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
2988 instruction |= ((rs1.value() & 0x1f) << 14); | |
2989 instruction |= (simm13 & 0x1fff); | |
2990 instruction |= ((rd.value() & 0x1f) << 25); | |
2991 emitInt(instruction); | |
2992 } | |
2993 | |
2994 /** | |
2995 * Pseudo-external assembler syntax: {@code subcc }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
2996 * Example disassembly syntax: {@code subcc %g0, %g0, %g0} | |
2997 * | |
2998 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.56" | |
2999 */ | |
3000 // Template#: 176, Serial#: 176 | |
3001 public void subcc(final GPR rs1, final GPR rs2, final GPR rd) { | |
3002 int instruction = 0x80A00000; | |
3003 instruction |= ((rs1.value() & 0x1f) << 14); | |
3004 instruction |= (rs2.value() & 0x1f); | |
3005 instruction |= ((rd.value() & 0x1f) << 25); | |
3006 emitInt(instruction); | |
3007 } | |
3008 | |
3009 /** | |
3010 * Pseudo-external assembler syntax: {@code subcc }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
3011 * Example disassembly syntax: {@code subcc %g0, -4096, %g0} | |
3012 * <p> | |
3013 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
3014 * | |
3015 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.56" | |
3016 */ | |
3017 // Template#: 177, Serial#: 177 | |
3018 public void subcc(final GPR rs1, final int simm13, final GPR rd) { | |
3019 int instruction = 0x80A02000; | |
3020 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
3021 instruction |= ((rs1.value() & 0x1f) << 14); | |
3022 instruction |= (simm13 & 0x1fff); | |
3023 instruction |= ((rd.value() & 0x1f) << 25); | |
3024 emitInt(instruction); | |
3025 } | |
3026 | |
3027 /** | |
3028 * Pseudo-external assembler syntax: {@code subc }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
3029 * Example disassembly syntax: {@code subc %g0, %g0, %g0} | |
3030 * | |
3031 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.56" | |
3032 */ | |
3033 // Template#: 178, Serial#: 178 | |
3034 public void subc(final GPR rs1, final GPR rs2, final GPR rd) { | |
3035 int instruction = 0x80600000; | |
3036 instruction |= ((rs1.value() & 0x1f) << 14); | |
3037 instruction |= (rs2.value() & 0x1f); | |
3038 instruction |= ((rd.value() & 0x1f) << 25); | |
3039 emitInt(instruction); | |
3040 } | |
3041 | |
3042 /** | |
3043 * Pseudo-external assembler syntax: {@code subc }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
3044 * Example disassembly syntax: {@code subc %g0, -4096, %g0} | |
3045 * <p> | |
3046 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
3047 * | |
3048 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.56" | |
3049 */ | |
3050 // Template#: 179, Serial#: 179 | |
3051 public void subc(final GPR rs1, final int simm13, final GPR rd) { | |
3052 int instruction = 0x80602000; | |
3053 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
3054 instruction |= ((rs1.value() & 0x1f) << 14); | |
3055 instruction |= (simm13 & 0x1fff); | |
3056 instruction |= ((rd.value() & 0x1f) << 25); | |
3057 emitInt(instruction); | |
3058 } | |
3059 | |
3060 /** | |
3061 * Pseudo-external assembler syntax: {@code subccc }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
3062 * Example disassembly syntax: {@code subccc %g0, %g0, %g0} | |
3063 * | |
3064 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.56" | |
3065 */ | |
3066 // Template#: 180, Serial#: 180 | |
3067 public void subccc(final GPR rs1, final GPR rs2, final GPR rd) { | |
3068 int instruction = 0x80E00000; | |
3069 instruction |= ((rs1.value() & 0x1f) << 14); | |
3070 instruction |= (rs2.value() & 0x1f); | |
3071 instruction |= ((rd.value() & 0x1f) << 25); | |
3072 emitInt(instruction); | |
3073 } | |
3074 | |
3075 /** | |
3076 * Pseudo-external assembler syntax: {@code subccc }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
3077 * Example disassembly syntax: {@code subccc %g0, -4096, %g0} | |
3078 * <p> | |
3079 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
3080 * | |
3081 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.56" | |
3082 */ | |
3083 // Template#: 181, Serial#: 181 | |
3084 public void subccc(final GPR rs1, final int simm13, final GPR rd) { | |
3085 int instruction = 0x80E02000; | |
3086 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
3087 instruction |= ((rs1.value() & 0x1f) << 14); | |
3088 instruction |= (simm13 & 0x1fff); | |
3089 instruction |= ((rd.value() & 0x1f) << 25); | |
3090 emitInt(instruction); | |
3091 } | |
3092 | |
3093 /** | |
3094 * Pseudo-external assembler syntax: {@code taddcc }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
3095 * Example disassembly syntax: {@code taddcc %g0, %g0, %g0} | |
3096 * | |
3097 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.59" | |
3098 */ | |
3099 // Template#: 182, Serial#: 182 | |
3100 public void taddcc(final GPR rs1, final GPR rs2, final GPR rd) { | |
3101 int instruction = 0x81000000; | |
3102 instruction |= ((rs1.value() & 0x1f) << 14); | |
3103 instruction |= (rs2.value() & 0x1f); | |
3104 instruction |= ((rd.value() & 0x1f) << 25); | |
3105 emitInt(instruction); | |
3106 } | |
3107 | |
3108 /** | |
3109 * Pseudo-external assembler syntax: {@code taddcc }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
3110 * Example disassembly syntax: {@code taddcc %g0, -4096, %g0} | |
3111 * <p> | |
3112 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
3113 * | |
3114 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.59" | |
3115 */ | |
3116 // Template#: 183, Serial#: 183 | |
3117 public void taddcc(final GPR rs1, final int simm13, final GPR rd) { | |
3118 int instruction = 0x81002000; | |
3119 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
3120 instruction |= ((rs1.value() & 0x1f) << 14); | |
3121 instruction |= (simm13 & 0x1fff); | |
3122 instruction |= ((rd.value() & 0x1f) << 25); | |
3123 emitInt(instruction); | |
3124 } | |
3125 | |
3126 /** | |
3127 * Pseudo-external assembler syntax: {@code taddcctv }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
3128 * Example disassembly syntax: {@code taddcctv %g0, %g0, %g0} | |
3129 * | |
3130 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.59" | |
3131 */ | |
3132 // Template#: 184, Serial#: 184 | |
3133 public void taddcctv(final GPR rs1, final GPR rs2, final GPR rd) { | |
3134 int instruction = 0x81100000; | |
3135 instruction |= ((rs1.value() & 0x1f) << 14); | |
3136 instruction |= (rs2.value() & 0x1f); | |
3137 instruction |= ((rd.value() & 0x1f) << 25); | |
3138 emitInt(instruction); | |
3139 } | |
3140 | |
3141 /** | |
3142 * Pseudo-external assembler syntax: {@code taddcctv }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
3143 * Example disassembly syntax: {@code taddcctv %g0, -4096, %g0} | |
3144 * <p> | |
3145 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
3146 * | |
3147 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.59" | |
3148 */ | |
3149 // Template#: 185, Serial#: 185 | |
3150 public void taddcctv(final GPR rs1, final int simm13, final GPR rd) { | |
3151 int instruction = 0x81102000; | |
3152 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
3153 instruction |= ((rs1.value() & 0x1f) << 14); | |
3154 instruction |= (simm13 & 0x1fff); | |
3155 instruction |= ((rd.value() & 0x1f) << 25); | |
3156 emitInt(instruction); | |
3157 } | |
3158 | |
3159 /** | |
3160 * Pseudo-external assembler syntax: {@code tsubcc }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
3161 * Example disassembly syntax: {@code tsubcc %g0, %g0, %g0} | |
3162 * | |
3163 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.60" | |
3164 */ | |
3165 // Template#: 186, Serial#: 186 | |
3166 public void tsubcc(final GPR rs1, final GPR rs2, final GPR rd) { | |
3167 int instruction = 0x81080000; | |
3168 instruction |= ((rs1.value() & 0x1f) << 14); | |
3169 instruction |= (rs2.value() & 0x1f); | |
3170 instruction |= ((rd.value() & 0x1f) << 25); | |
3171 emitInt(instruction); | |
3172 } | |
3173 | |
3174 /** | |
3175 * Pseudo-external assembler syntax: {@code tsubcc }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
3176 * Example disassembly syntax: {@code tsubcc %g0, -4096, %g0} | |
3177 * <p> | |
3178 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
3179 * | |
3180 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.60" | |
3181 */ | |
3182 // Template#: 187, Serial#: 187 | |
3183 public void tsubcc(final GPR rs1, final int simm13, final GPR rd) { | |
3184 int instruction = 0x81082000; | |
3185 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
3186 instruction |= ((rs1.value() & 0x1f) << 14); | |
3187 instruction |= (simm13 & 0x1fff); | |
3188 instruction |= ((rd.value() & 0x1f) << 25); | |
3189 emitInt(instruction); | |
3190 } | |
3191 | |
3192 /** | |
3193 * Pseudo-external assembler syntax: {@code tsubcctv }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
3194 * Example disassembly syntax: {@code tsubcctv %g0, %g0, %g0} | |
3195 * | |
3196 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.60" | |
3197 */ | |
3198 // Template#: 188, Serial#: 188 | |
3199 public void tsubcctv(final GPR rs1, final GPR rs2, final GPR rd) { | |
3200 int instruction = 0x81180000; | |
3201 instruction |= ((rs1.value() & 0x1f) << 14); | |
3202 instruction |= (rs2.value() & 0x1f); | |
3203 instruction |= ((rd.value() & 0x1f) << 25); | |
3204 emitInt(instruction); | |
3205 } | |
3206 | |
3207 /** | |
3208 * Pseudo-external assembler syntax: {@code tsubcctv }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
3209 * Example disassembly syntax: {@code tsubcctv %g0, -4096, %g0} | |
3210 * <p> | |
3211 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
3212 * | |
3213 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.60" | |
3214 */ | |
3215 // Template#: 189, Serial#: 189 | |
3216 public void tsubcctv(final GPR rs1, final int simm13, final GPR rd) { | |
3217 int instruction = 0x81182000; | |
3218 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
3219 instruction |= ((rs1.value() & 0x1f) << 14); | |
3220 instruction |= (simm13 & 0x1fff); | |
3221 instruction |= ((rd.value() & 0x1f) << 25); | |
3222 emitInt(instruction); | |
3223 } | |
3224 | |
3225 /** | |
3226 * Pseudo-external assembler syntax: {@code brz{,a}{,pn|,pt} }<i>rs1</i>, <i>label</i> | |
3227 * Example disassembly syntax: {@code brz,pn %g0, L1: -131072} | |
3228 * <p> | |
3229 * Constraint: {@code (-131072 <= label && label <= 131068) && ((label % 4) == 0)}<br /> | |
3230 * | |
3231 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.3" | |
3232 */ | |
3233 // Template#: 190, Serial#: 190 | |
3234 public void brz(final AnnulBit a, final BranchPredictionBit p, final GPR rs1, final int label) { | |
3235 int instruction = 0x02C00000; | |
3236 checkConstraint((-131072 <= label && label <= 131068) && ((label % 4) == 0), "(-131072 <= label && label <= 131068) && ((label % 4) == 0)"); | |
3237 instruction |= ((a.value() & 0x1) << 29); | |
3238 instruction |= ((p.value() & 0x1) << 19); | |
3239 instruction |= ((rs1.value() & 0x1f) << 14); | |
3240 instruction |= ((label >> 2) & 0x3fff) | ((((label >> 2) >> 14) & 0x3) << 20); | |
3241 emitInt(instruction); | |
3242 } | |
3243 | |
3244 /** | |
3245 * Pseudo-external assembler syntax: {@code brlez{,a}{,pn|,pt} }<i>rs1</i>, <i>label</i> | |
3246 * Example disassembly syntax: {@code brlez,pn %g0, L1: -131072} | |
3247 * <p> | |
3248 * Constraint: {@code (-131072 <= label && label <= 131068) && ((label % 4) == 0)}<br /> | |
3249 * | |
3250 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.3" | |
3251 */ | |
3252 // Template#: 191, Serial#: 191 | |
3253 public void brlez(final AnnulBit a, final BranchPredictionBit p, final GPR rs1, final int label) { | |
3254 int instruction = 0x04C00000; | |
3255 checkConstraint((-131072 <= label && label <= 131068) && ((label % 4) == 0), "(-131072 <= label && label <= 131068) && ((label % 4) == 0)"); | |
3256 instruction |= ((a.value() & 0x1) << 29); | |
3257 instruction |= ((p.value() & 0x1) << 19); | |
3258 instruction |= ((rs1.value() & 0x1f) << 14); | |
3259 instruction |= ((label >> 2) & 0x3fff) | ((((label >> 2) >> 14) & 0x3) << 20); | |
3260 emitInt(instruction); | |
3261 } | |
3262 | |
3263 /** | |
3264 * Pseudo-external assembler syntax: {@code brlz{,a}{,pn|,pt} }<i>rs1</i>, <i>label</i> | |
3265 * Example disassembly syntax: {@code brlz,pn %g0, L1: -131072} | |
3266 * <p> | |
3267 * Constraint: {@code (-131072 <= label && label <= 131068) && ((label % 4) == 0)}<br /> | |
3268 * | |
3269 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.3" | |
3270 */ | |
3271 // Template#: 192, Serial#: 192 | |
3272 public void brlz(final AnnulBit a, final BranchPredictionBit p, final GPR rs1, final int label) { | |
3273 int instruction = 0x06C00000; | |
3274 checkConstraint((-131072 <= label && label <= 131068) && ((label % 4) == 0), "(-131072 <= label && label <= 131068) && ((label % 4) == 0)"); | |
3275 instruction |= ((a.value() & 0x1) << 29); | |
3276 instruction |= ((p.value() & 0x1) << 19); | |
3277 instruction |= ((rs1.value() & 0x1f) << 14); | |
3278 instruction |= ((label >> 2) & 0x3fff) | ((((label >> 2) >> 14) & 0x3) << 20); | |
3279 emitInt(instruction); | |
3280 } | |
3281 | |
3282 /** | |
3283 * Pseudo-external assembler syntax: {@code brnz{,a}{,pn|,pt} }<i>rs1</i>, <i>label</i> | |
3284 * Example disassembly syntax: {@code brnz,pn %g0, L1: -131072} | |
3285 * <p> | |
3286 * Constraint: {@code (-131072 <= label && label <= 131068) && ((label % 4) == 0)}<br /> | |
3287 * | |
3288 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.3" | |
3289 */ | |
3290 // Template#: 193, Serial#: 193 | |
3291 public void brnz(final AnnulBit a, final BranchPredictionBit p, final GPR rs1, final int label) { | |
3292 int instruction = 0x0AC00000; | |
3293 checkConstraint((-131072 <= label && label <= 131068) && ((label % 4) == 0), "(-131072 <= label && label <= 131068) && ((label % 4) == 0)"); | |
3294 instruction |= ((a.value() & 0x1) << 29); | |
3295 instruction |= ((p.value() & 0x1) << 19); | |
3296 instruction |= ((rs1.value() & 0x1f) << 14); | |
3297 instruction |= ((label >> 2) & 0x3fff) | ((((label >> 2) >> 14) & 0x3) << 20); | |
3298 emitInt(instruction); | |
3299 } | |
3300 | |
3301 /** | |
3302 * Pseudo-external assembler syntax: {@code brgz{,a}{,pn|,pt} }<i>rs1</i>, <i>label</i> | |
3303 * Example disassembly syntax: {@code brgz,pn %g0, L1: -131072} | |
3304 * <p> | |
3305 * Constraint: {@code (-131072 <= label && label <= 131068) && ((label % 4) == 0)}<br /> | |
3306 * | |
3307 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.3" | |
3308 */ | |
3309 // Template#: 194, Serial#: 194 | |
3310 public void brgz(final AnnulBit a, final BranchPredictionBit p, final GPR rs1, final int label) { | |
3311 int instruction = 0x0CC00000; | |
3312 checkConstraint((-131072 <= label && label <= 131068) && ((label % 4) == 0), "(-131072 <= label && label <= 131068) && ((label % 4) == 0)"); | |
3313 instruction |= ((a.value() & 0x1) << 29); | |
3314 instruction |= ((p.value() & 0x1) << 19); | |
3315 instruction |= ((rs1.value() & 0x1f) << 14); | |
3316 instruction |= ((label >> 2) & 0x3fff) | ((((label >> 2) >> 14) & 0x3) << 20); | |
3317 emitInt(instruction); | |
3318 } | |
3319 | |
3320 /** | |
3321 * Pseudo-external assembler syntax: {@code brgez{,a}{,pn|,pt} }<i>rs1</i>, <i>label</i> | |
3322 * Example disassembly syntax: {@code brgez,pn %g0, L1: -131072} | |
3323 * <p> | |
3324 * Constraint: {@code (-131072 <= label && label <= 131068) && ((label % 4) == 0)}<br /> | |
3325 * | |
3326 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.3" | |
3327 */ | |
3328 // Template#: 195, Serial#: 195 | |
3329 public void brgez(final AnnulBit a, final BranchPredictionBit p, final GPR rs1, final int label) { | |
3330 int instruction = 0x0EC00000; | |
3331 checkConstraint((-131072 <= label && label <= 131068) && ((label % 4) == 0), "(-131072 <= label && label <= 131068) && ((label % 4) == 0)"); | |
3332 instruction |= ((a.value() & 0x1) << 29); | |
3333 instruction |= ((p.value() & 0x1) << 19); | |
3334 instruction |= ((rs1.value() & 0x1f) << 14); | |
3335 instruction |= ((label >> 2) & 0x3fff) | ((((label >> 2) >> 14) & 0x3) << 20); | |
3336 emitInt(instruction); | |
3337 } | |
3338 | |
3339 /** | |
3340 * Pseudo-external assembler syntax: {@code brz }<i>rs1</i>, <i>label</i> | |
3341 * Example disassembly syntax: {@code brz %g0, L1: -131072} | |
3342 * <p> | |
3343 * Constraint: {@code (-131072 <= label && label <= 131068) && ((label % 4) == 0)}<br /> | |
3344 * | |
3345 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.3" | |
3346 */ | |
3347 // Template#: 196, Serial#: 196 | |
3348 public void brz(final GPR rs1, final int label) { | |
3349 int instruction = 0x02C80000; | |
3350 checkConstraint((-131072 <= label && label <= 131068) && ((label % 4) == 0), "(-131072 <= label && label <= 131068) && ((label % 4) == 0)"); | |
3351 instruction |= ((rs1.value() & 0x1f) << 14); | |
3352 instruction |= ((label >> 2) & 0x3fff) | ((((label >> 2) >> 14) & 0x3) << 20); | |
3353 emitInt(instruction); | |
3354 } | |
3355 | |
3356 /** | |
3357 * Pseudo-external assembler syntax: {@code brlez }<i>rs1</i>, <i>label</i> | |
3358 * Example disassembly syntax: {@code brlez %g0, L1: -131072} | |
3359 * <p> | |
3360 * Constraint: {@code (-131072 <= label && label <= 131068) && ((label % 4) == 0)}<br /> | |
3361 * | |
3362 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.3" | |
3363 */ | |
3364 // Template#: 197, Serial#: 197 | |
3365 public void brlez(final GPR rs1, final int label) { | |
3366 int instruction = 0x04C80000; | |
3367 checkConstraint((-131072 <= label && label <= 131068) && ((label % 4) == 0), "(-131072 <= label && label <= 131068) && ((label % 4) == 0)"); | |
3368 instruction |= ((rs1.value() & 0x1f) << 14); | |
3369 instruction |= ((label >> 2) & 0x3fff) | ((((label >> 2) >> 14) & 0x3) << 20); | |
3370 emitInt(instruction); | |
3371 } | |
3372 | |
3373 /** | |
3374 * Pseudo-external assembler syntax: {@code brlz }<i>rs1</i>, <i>label</i> | |
3375 * Example disassembly syntax: {@code brlz %g0, L1: -131072} | |
3376 * <p> | |
3377 * Constraint: {@code (-131072 <= label && label <= 131068) && ((label % 4) == 0)}<br /> | |
3378 * | |
3379 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.3" | |
3380 */ | |
3381 // Template#: 198, Serial#: 198 | |
3382 public void brlz(final GPR rs1, final int label) { | |
3383 int instruction = 0x06C80000; | |
3384 checkConstraint((-131072 <= label && label <= 131068) && ((label % 4) == 0), "(-131072 <= label && label <= 131068) && ((label % 4) == 0)"); | |
3385 instruction |= ((rs1.value() & 0x1f) << 14); | |
3386 instruction |= ((label >> 2) & 0x3fff) | ((((label >> 2) >> 14) & 0x3) << 20); | |
3387 emitInt(instruction); | |
3388 } | |
3389 | |
3390 /** | |
3391 * Pseudo-external assembler syntax: {@code brnz }<i>rs1</i>, <i>label</i> | |
3392 * Example disassembly syntax: {@code brnz %g0, L1: -131072} | |
3393 * <p> | |
3394 * Constraint: {@code (-131072 <= label && label <= 131068) && ((label % 4) == 0)}<br /> | |
3395 * | |
3396 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.3" | |
3397 */ | |
3398 // Template#: 199, Serial#: 199 | |
3399 public void brnz(final GPR rs1, final int label) { | |
3400 int instruction = 0x0AC80000; | |
3401 checkConstraint((-131072 <= label && label <= 131068) && ((label % 4) == 0), "(-131072 <= label && label <= 131068) && ((label % 4) == 0)"); | |
3402 instruction |= ((rs1.value() & 0x1f) << 14); | |
3403 instruction |= ((label >> 2) & 0x3fff) | ((((label >> 2) >> 14) & 0x3) << 20); | |
3404 emitInt(instruction); | |
3405 } | |
3406 | |
3407 /** | |
3408 * Pseudo-external assembler syntax: {@code brgz }<i>rs1</i>, <i>label</i> | |
3409 * Example disassembly syntax: {@code brgz %g0, L1: -131072} | |
3410 * <p> | |
3411 * Constraint: {@code (-131072 <= label && label <= 131068) && ((label % 4) == 0)}<br /> | |
3412 * | |
3413 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.3" | |
3414 */ | |
3415 // Template#: 200, Serial#: 200 | |
3416 public void brgz(final GPR rs1, final int label) { | |
3417 int instruction = 0x0CC80000; | |
3418 checkConstraint((-131072 <= label && label <= 131068) && ((label % 4) == 0), "(-131072 <= label && label <= 131068) && ((label % 4) == 0)"); | |
3419 instruction |= ((rs1.value() & 0x1f) << 14); | |
3420 instruction |= ((label >> 2) & 0x3fff) | ((((label >> 2) >> 14) & 0x3) << 20); | |
3421 emitInt(instruction); | |
3422 } | |
3423 | |
3424 /** | |
3425 * Pseudo-external assembler syntax: {@code brgez }<i>rs1</i>, <i>label</i> | |
3426 * Example disassembly syntax: {@code brgez %g0, L1: -131072} | |
3427 * <p> | |
3428 * Constraint: {@code (-131072 <= label && label <= 131068) && ((label % 4) == 0)}<br /> | |
3429 * | |
3430 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.3" | |
3431 */ | |
3432 // Template#: 201, Serial#: 201 | |
3433 public void brgez(final GPR rs1, final int label) { | |
3434 int instruction = 0x0EC80000; | |
3435 checkConstraint((-131072 <= label && label <= 131068) && ((label % 4) == 0), "(-131072 <= label && label <= 131068) && ((label % 4) == 0)"); | |
3436 instruction |= ((rs1.value() & 0x1f) << 14); | |
3437 instruction |= ((label >> 2) & 0x3fff) | ((((label >> 2) >> 14) & 0x3) << 20); | |
3438 emitInt(instruction); | |
3439 } | |
3440 | |
3441 /** | |
3442 * Pseudo-external assembler syntax: {@code br[z|lez|lz|nz|gz|gez]{,a}{,pn|,pt} }<i>rs1</i>, <i>label</i> | |
3443 * Example disassembly syntax: {@code brz,pn %g0, L1: -131072} | |
3444 * <p> | |
3445 * Constraint: {@code (-131072 <= label && label <= 131068) && ((label % 4) == 0)}<br /> | |
3446 * | |
3447 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.3" | |
3448 */ | |
3449 // Template#: 202, Serial#: 202 | |
3450 public void br(final BPr cond, final AnnulBit a, final BranchPredictionBit p, final GPR rs1, final int label) { | |
3451 int instruction = 0x00C00000; | |
3452 checkConstraint((-131072 <= label && label <= 131068) && ((label % 4) == 0), "(-131072 <= label && label <= 131068) && ((label % 4) == 0)"); | |
3453 instruction |= ((cond.value() & 0x7) << 25); | |
3454 instruction |= ((a.value() & 0x1) << 29); | |
3455 instruction |= ((p.value() & 0x1) << 19); | |
3456 instruction |= ((rs1.value() & 0x1f) << 14); | |
3457 instruction |= ((label >> 2) & 0x3fff) | ((((label >> 2) >> 14) & 0x3) << 20); | |
3458 emitInt(instruction); | |
3459 } | |
3460 | |
3461 /** | |
3462 * Pseudo-external assembler syntax: {@code fba{,a} }<i>label</i> | |
3463 * Example disassembly syntax: {@code fba L1: -8388608} | |
3464 * <p> | |
3465 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3466 * | |
3467 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3468 */ | |
3469 // Template#: 203, Serial#: 203 | |
3470 public void fba(final AnnulBit a, final int label) { | |
3471 int instruction = 0x11800000; | |
3472 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3473 instruction |= ((a.value() & 0x1) << 29); | |
3474 instruction |= ((label >> 2) & 0x3fffff); | |
3475 emitInt(instruction); | |
3476 } | |
3477 | |
3478 /** | |
3479 * Pseudo-external assembler syntax: {@code fbn{,a} }<i>label</i> | |
3480 * Example disassembly syntax: {@code fbn L1: -8388608} | |
3481 * <p> | |
3482 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3483 * | |
3484 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3485 */ | |
3486 // Template#: 204, Serial#: 204 | |
3487 public void fbn(final AnnulBit a, final int label) { | |
3488 int instruction = 0x01800000; | |
3489 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3490 instruction |= ((a.value() & 0x1) << 29); | |
3491 instruction |= ((label >> 2) & 0x3fffff); | |
3492 emitInt(instruction); | |
3493 } | |
3494 | |
3495 /** | |
3496 * Pseudo-external assembler syntax: {@code fbu{,a} }<i>label</i> | |
3497 * Example disassembly syntax: {@code fbu L1: -8388608} | |
3498 * <p> | |
3499 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3500 * | |
3501 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3502 */ | |
3503 // Template#: 205, Serial#: 205 | |
3504 public void fbu(final AnnulBit a, final int label) { | |
3505 int instruction = 0x0F800000; | |
3506 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3507 instruction |= ((a.value() & 0x1) << 29); | |
3508 instruction |= ((label >> 2) & 0x3fffff); | |
3509 emitInt(instruction); | |
3510 } | |
3511 | |
3512 /** | |
3513 * Pseudo-external assembler syntax: {@code fbg{,a} }<i>label</i> | |
3514 * Example disassembly syntax: {@code fbg L1: -8388608} | |
3515 * <p> | |
3516 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3517 * | |
3518 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3519 */ | |
3520 // Template#: 206, Serial#: 206 | |
3521 public void fbg(final AnnulBit a, final int label) { | |
3522 int instruction = 0x0D800000; | |
3523 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3524 instruction |= ((a.value() & 0x1) << 29); | |
3525 instruction |= ((label >> 2) & 0x3fffff); | |
3526 emitInt(instruction); | |
3527 } | |
3528 | |
3529 /** | |
3530 * Pseudo-external assembler syntax: {@code fbug{,a} }<i>label</i> | |
3531 * Example disassembly syntax: {@code fbug L1: -8388608} | |
3532 * <p> | |
3533 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3534 * | |
3535 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3536 */ | |
3537 // Template#: 207, Serial#: 207 | |
3538 public void fbug(final AnnulBit a, final int label) { | |
3539 int instruction = 0x0B800000; | |
3540 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3541 instruction |= ((a.value() & 0x1) << 29); | |
3542 instruction |= ((label >> 2) & 0x3fffff); | |
3543 emitInt(instruction); | |
3544 } | |
3545 | |
3546 /** | |
3547 * Pseudo-external assembler syntax: {@code fbl{,a} }<i>label</i> | |
3548 * Example disassembly syntax: {@code fbl L1: -8388608} | |
3549 * <p> | |
3550 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3551 * | |
3552 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3553 */ | |
3554 // Template#: 208, Serial#: 208 | |
3555 public void fbl(final AnnulBit a, final int label) { | |
3556 int instruction = 0x09800000; | |
3557 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3558 instruction |= ((a.value() & 0x1) << 29); | |
3559 instruction |= ((label >> 2) & 0x3fffff); | |
3560 emitInt(instruction); | |
3561 } | |
3562 | |
3563 /** | |
3564 * Pseudo-external assembler syntax: {@code fbul{,a} }<i>label</i> | |
3565 * Example disassembly syntax: {@code fbul L1: -8388608} | |
3566 * <p> | |
3567 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3568 * | |
3569 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3570 */ | |
3571 // Template#: 209, Serial#: 209 | |
3572 public void fbul(final AnnulBit a, final int label) { | |
3573 int instruction = 0x07800000; | |
3574 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3575 instruction |= ((a.value() & 0x1) << 29); | |
3576 instruction |= ((label >> 2) & 0x3fffff); | |
3577 emitInt(instruction); | |
3578 } | |
3579 | |
3580 /** | |
3581 * Pseudo-external assembler syntax: {@code fblg{,a} }<i>label</i> | |
3582 * Example disassembly syntax: {@code fblg L1: -8388608} | |
3583 * <p> | |
3584 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3585 * | |
3586 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3587 */ | |
3588 // Template#: 210, Serial#: 210 | |
3589 public void fblg(final AnnulBit a, final int label) { | |
3590 int instruction = 0x05800000; | |
3591 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3592 instruction |= ((a.value() & 0x1) << 29); | |
3593 instruction |= ((label >> 2) & 0x3fffff); | |
3594 emitInt(instruction); | |
3595 } | |
3596 | |
3597 /** | |
3598 * Pseudo-external assembler syntax: {@code fbne{,a} }<i>label</i> | |
3599 * Example disassembly syntax: {@code fbne L1: -8388608} | |
3600 * <p> | |
3601 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3602 * | |
3603 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3604 */ | |
3605 // Template#: 211, Serial#: 211 | |
3606 public void fbne(final AnnulBit a, final int label) { | |
3607 int instruction = 0x03800000; | |
3608 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3609 instruction |= ((a.value() & 0x1) << 29); | |
3610 instruction |= ((label >> 2) & 0x3fffff); | |
3611 emitInt(instruction); | |
3612 } | |
3613 | |
3614 /** | |
3615 * Pseudo-external assembler syntax: {@code fbe{,a} }<i>label</i> | |
3616 * Example disassembly syntax: {@code fbe L1: -8388608} | |
3617 * <p> | |
3618 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3619 * | |
3620 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3621 */ | |
3622 // Template#: 212, Serial#: 212 | |
3623 public void fbe(final AnnulBit a, final int label) { | |
3624 int instruction = 0x13800000; | |
3625 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3626 instruction |= ((a.value() & 0x1) << 29); | |
3627 instruction |= ((label >> 2) & 0x3fffff); | |
3628 emitInt(instruction); | |
3629 } | |
3630 | |
3631 /** | |
3632 * Pseudo-external assembler syntax: {@code fbue{,a} }<i>label</i> | |
3633 * Example disassembly syntax: {@code fbue L1: -8388608} | |
3634 * <p> | |
3635 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3636 * | |
3637 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3638 */ | |
3639 // Template#: 213, Serial#: 213 | |
3640 public void fbue(final AnnulBit a, final int label) { | |
3641 int instruction = 0x15800000; | |
3642 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3643 instruction |= ((a.value() & 0x1) << 29); | |
3644 instruction |= ((label >> 2) & 0x3fffff); | |
3645 emitInt(instruction); | |
3646 } | |
3647 | |
3648 /** | |
3649 * Pseudo-external assembler syntax: {@code fbge{,a} }<i>label</i> | |
3650 * Example disassembly syntax: {@code fbge L1: -8388608} | |
3651 * <p> | |
3652 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3653 * | |
3654 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3655 */ | |
3656 // Template#: 214, Serial#: 214 | |
3657 public void fbge(final AnnulBit a, final int label) { | |
3658 int instruction = 0x17800000; | |
3659 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3660 instruction |= ((a.value() & 0x1) << 29); | |
3661 instruction |= ((label >> 2) & 0x3fffff); | |
3662 emitInt(instruction); | |
3663 } | |
3664 | |
3665 /** | |
3666 * Pseudo-external assembler syntax: {@code fbuge{,a} }<i>label</i> | |
3667 * Example disassembly syntax: {@code fbuge L1: -8388608} | |
3668 * <p> | |
3669 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3670 * | |
3671 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3672 */ | |
3673 // Template#: 215, Serial#: 215 | |
3674 public void fbuge(final AnnulBit a, final int label) { | |
3675 int instruction = 0x19800000; | |
3676 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3677 instruction |= ((a.value() & 0x1) << 29); | |
3678 instruction |= ((label >> 2) & 0x3fffff); | |
3679 emitInt(instruction); | |
3680 } | |
3681 | |
3682 /** | |
3683 * Pseudo-external assembler syntax: {@code fble{,a} }<i>label</i> | |
3684 * Example disassembly syntax: {@code fble L1: -8388608} | |
3685 * <p> | |
3686 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3687 * | |
3688 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3689 */ | |
3690 // Template#: 216, Serial#: 216 | |
3691 public void fble(final AnnulBit a, final int label) { | |
3692 int instruction = 0x1B800000; | |
3693 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3694 instruction |= ((a.value() & 0x1) << 29); | |
3695 instruction |= ((label >> 2) & 0x3fffff); | |
3696 emitInt(instruction); | |
3697 } | |
3698 | |
3699 /** | |
3700 * Pseudo-external assembler syntax: {@code fbule{,a} }<i>label</i> | |
3701 * Example disassembly syntax: {@code fbule L1: -8388608} | |
3702 * <p> | |
3703 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3704 * | |
3705 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3706 */ | |
3707 // Template#: 217, Serial#: 217 | |
3708 public void fbule(final AnnulBit a, final int label) { | |
3709 int instruction = 0x1D800000; | |
3710 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3711 instruction |= ((a.value() & 0x1) << 29); | |
3712 instruction |= ((label >> 2) & 0x3fffff); | |
3713 emitInt(instruction); | |
3714 } | |
3715 | |
3716 /** | |
3717 * Pseudo-external assembler syntax: {@code fbo{,a} }<i>label</i> | |
3718 * Example disassembly syntax: {@code fbo L1: -8388608} | |
3719 * <p> | |
3720 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3721 * | |
3722 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3723 */ | |
3724 // Template#: 218, Serial#: 218 | |
3725 public void fbo(final AnnulBit a, final int label) { | |
3726 int instruction = 0x1F800000; | |
3727 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3728 instruction |= ((a.value() & 0x1) << 29); | |
3729 instruction |= ((label >> 2) & 0x3fffff); | |
3730 emitInt(instruction); | |
3731 } | |
3732 | |
3733 /** | |
3734 * Pseudo-external assembler syntax: {@code fba }<i>label</i> | |
3735 * Example disassembly syntax: {@code fba L1: -8388608} | |
3736 * <p> | |
3737 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3738 * | |
3739 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3740 */ | |
3741 // Template#: 219, Serial#: 219 | |
3742 public void fba(final int label) { | |
3743 int instruction = 0x11800000; | |
3744 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3745 instruction |= ((label >> 2) & 0x3fffff); | |
3746 emitInt(instruction); | |
3747 } | |
3748 | |
3749 /** | |
3750 * Pseudo-external assembler syntax: {@code fbn }<i>label</i> | |
3751 * Example disassembly syntax: {@code fbn L1: -8388608} | |
3752 * <p> | |
3753 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3754 * | |
3755 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3756 */ | |
3757 // Template#: 220, Serial#: 220 | |
3758 public void fbn(final int label) { | |
3759 int instruction = 0x01800000; | |
3760 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3761 instruction |= ((label >> 2) & 0x3fffff); | |
3762 emitInt(instruction); | |
3763 } | |
3764 | |
3765 /** | |
3766 * Pseudo-external assembler syntax: {@code fbu }<i>label</i> | |
3767 * Example disassembly syntax: {@code fbu L1: -8388608} | |
3768 * <p> | |
3769 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3770 * | |
3771 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3772 */ | |
3773 // Template#: 221, Serial#: 221 | |
3774 public void fbu(final int label) { | |
3775 int instruction = 0x0F800000; | |
3776 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3777 instruction |= ((label >> 2) & 0x3fffff); | |
3778 emitInt(instruction); | |
3779 } | |
3780 | |
3781 /** | |
3782 * Pseudo-external assembler syntax: {@code fbg }<i>label</i> | |
3783 * Example disassembly syntax: {@code fbg L1: -8388608} | |
3784 * <p> | |
3785 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3786 * | |
3787 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3788 */ | |
3789 // Template#: 222, Serial#: 222 | |
3790 public void fbg(final int label) { | |
3791 int instruction = 0x0D800000; | |
3792 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3793 instruction |= ((label >> 2) & 0x3fffff); | |
3794 emitInt(instruction); | |
3795 } | |
3796 | |
3797 /** | |
3798 * Pseudo-external assembler syntax: {@code fbug }<i>label</i> | |
3799 * Example disassembly syntax: {@code fbug L1: -8388608} | |
3800 * <p> | |
3801 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3802 * | |
3803 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3804 */ | |
3805 // Template#: 223, Serial#: 223 | |
3806 public void fbug(final int label) { | |
3807 int instruction = 0x0B800000; | |
3808 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3809 instruction |= ((label >> 2) & 0x3fffff); | |
3810 emitInt(instruction); | |
3811 } | |
3812 | |
3813 /** | |
3814 * Pseudo-external assembler syntax: {@code fbl }<i>label</i> | |
3815 * Example disassembly syntax: {@code fbl L1: -8388608} | |
3816 * <p> | |
3817 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3818 * | |
3819 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3820 */ | |
3821 // Template#: 224, Serial#: 224 | |
3822 public void fbl(final int label) { | |
3823 int instruction = 0x09800000; | |
3824 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3825 instruction |= ((label >> 2) & 0x3fffff); | |
3826 emitInt(instruction); | |
3827 } | |
3828 | |
3829 /** | |
3830 * Pseudo-external assembler syntax: {@code fbul }<i>label</i> | |
3831 * Example disassembly syntax: {@code fbul L1: -8388608} | |
3832 * <p> | |
3833 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3834 * | |
3835 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3836 */ | |
3837 // Template#: 225, Serial#: 225 | |
3838 public void fbul(final int label) { | |
3839 int instruction = 0x07800000; | |
3840 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3841 instruction |= ((label >> 2) & 0x3fffff); | |
3842 emitInt(instruction); | |
3843 } | |
3844 | |
3845 /** | |
3846 * Pseudo-external assembler syntax: {@code fblg }<i>label</i> | |
3847 * Example disassembly syntax: {@code fblg L1: -8388608} | |
3848 * <p> | |
3849 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3850 * | |
3851 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3852 */ | |
3853 // Template#: 226, Serial#: 226 | |
3854 public void fblg(final int label) { | |
3855 int instruction = 0x05800000; | |
3856 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3857 instruction |= ((label >> 2) & 0x3fffff); | |
3858 emitInt(instruction); | |
3859 } | |
3860 | |
3861 /** | |
3862 * Pseudo-external assembler syntax: {@code fbne }<i>label</i> | |
3863 * Example disassembly syntax: {@code fbne L1: -8388608} | |
3864 * <p> | |
3865 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3866 * | |
3867 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3868 */ | |
3869 // Template#: 227, Serial#: 227 | |
3870 public void fbne(final int label) { | |
3871 int instruction = 0x03800000; | |
3872 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3873 instruction |= ((label >> 2) & 0x3fffff); | |
3874 emitInt(instruction); | |
3875 } | |
3876 | |
3877 /** | |
3878 * Pseudo-external assembler syntax: {@code fbe }<i>label</i> | |
3879 * Example disassembly syntax: {@code fbe L1: -8388608} | |
3880 * <p> | |
3881 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3882 * | |
3883 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3884 */ | |
3885 // Template#: 228, Serial#: 228 | |
3886 public void fbe(final int label) { | |
3887 int instruction = 0x13800000; | |
3888 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3889 instruction |= ((label >> 2) & 0x3fffff); | |
3890 emitInt(instruction); | |
3891 } | |
3892 | |
3893 /** | |
3894 * Pseudo-external assembler syntax: {@code fbue }<i>label</i> | |
3895 * Example disassembly syntax: {@code fbue L1: -8388608} | |
3896 * <p> | |
3897 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3898 * | |
3899 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3900 */ | |
3901 // Template#: 229, Serial#: 229 | |
3902 public void fbue(final int label) { | |
3903 int instruction = 0x15800000; | |
3904 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3905 instruction |= ((label >> 2) & 0x3fffff); | |
3906 emitInt(instruction); | |
3907 } | |
3908 | |
3909 /** | |
3910 * Pseudo-external assembler syntax: {@code fbge }<i>label</i> | |
3911 * Example disassembly syntax: {@code fbge L1: -8388608} | |
3912 * <p> | |
3913 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3914 * | |
3915 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3916 */ | |
3917 // Template#: 230, Serial#: 230 | |
3918 public void fbge(final int label) { | |
3919 int instruction = 0x17800000; | |
3920 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3921 instruction |= ((label >> 2) & 0x3fffff); | |
3922 emitInt(instruction); | |
3923 } | |
3924 | |
3925 /** | |
3926 * Pseudo-external assembler syntax: {@code fbuge }<i>label</i> | |
3927 * Example disassembly syntax: {@code fbuge L1: -8388608} | |
3928 * <p> | |
3929 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3930 * | |
3931 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3932 */ | |
3933 // Template#: 231, Serial#: 231 | |
3934 public void fbuge(final int label) { | |
3935 int instruction = 0x19800000; | |
3936 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3937 instruction |= ((label >> 2) & 0x3fffff); | |
3938 emitInt(instruction); | |
3939 } | |
3940 | |
3941 /** | |
3942 * Pseudo-external assembler syntax: {@code fble }<i>label</i> | |
3943 * Example disassembly syntax: {@code fble L1: -8388608} | |
3944 * <p> | |
3945 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3946 * | |
3947 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3948 */ | |
3949 // Template#: 232, Serial#: 232 | |
3950 public void fble(final int label) { | |
3951 int instruction = 0x1B800000; | |
3952 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3953 instruction |= ((label >> 2) & 0x3fffff); | |
3954 emitInt(instruction); | |
3955 } | |
3956 | |
3957 /** | |
3958 * Pseudo-external assembler syntax: {@code fbule }<i>label</i> | |
3959 * Example disassembly syntax: {@code fbule L1: -8388608} | |
3960 * <p> | |
3961 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3962 * | |
3963 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3964 */ | |
3965 // Template#: 233, Serial#: 233 | |
3966 public void fbule(final int label) { | |
3967 int instruction = 0x1D800000; | |
3968 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3969 instruction |= ((label >> 2) & 0x3fffff); | |
3970 emitInt(instruction); | |
3971 } | |
3972 | |
3973 /** | |
3974 * Pseudo-external assembler syntax: {@code fbo }<i>label</i> | |
3975 * Example disassembly syntax: {@code fbo L1: -8388608} | |
3976 * <p> | |
3977 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3978 * | |
3979 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3980 */ | |
3981 // Template#: 234, Serial#: 234 | |
3982 public void fbo(final int label) { | |
3983 int instruction = 0x1F800000; | |
3984 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
3985 instruction |= ((label >> 2) & 0x3fffff); | |
3986 emitInt(instruction); | |
3987 } | |
3988 | |
3989 /** | |
3990 * Pseudo-external assembler syntax: {@code fb[a|n|u|g|ug|l|ul|lg|ne|e|ue|ge|uge|le|ule|o]{,a} }<i>label</i> | |
3991 * Example disassembly syntax: {@code fba L1: -8388608} | |
3992 * <p> | |
3993 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
3994 * | |
3995 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.4" | |
3996 */ | |
3997 // Template#: 235, Serial#: 235 | |
3998 public void fb(final FBfcc cond, final AnnulBit a, final int label) { | |
3999 int instruction = 0x01800000; | |
4000 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4001 instruction |= ((cond.value() & 0xf) << 25); | |
4002 instruction |= ((a.value() & 0x1) << 29); | |
4003 instruction |= ((label >> 2) & 0x3fffff); | |
4004 emitInt(instruction); | |
4005 } | |
4006 | |
4007 /** | |
4008 * Pseudo-external assembler syntax: {@code fba{,a}{,pn|,pt} }<i>n</i>, <i>label</i> | |
4009 * Example disassembly syntax: {@code fba,pn %fcc0, L1: -1048576} | |
4010 * <p> | |
4011 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4012 * | |
4013 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4014 */ | |
4015 // Template#: 236, Serial#: 236 | |
4016 public void fba(final AnnulBit a, final BranchPredictionBit p, final FCCOperand n, final int label) { | |
4017 int instruction = 0x11400000; | |
4018 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4019 instruction |= ((a.value() & 0x1) << 29); | |
4020 instruction |= ((p.value() & 0x1) << 19); | |
4021 instruction |= ((n.value() & 0x3) << 20); | |
4022 instruction |= ((label >> 2) & 0x7ffff); | |
4023 emitInt(instruction); | |
4024 } | |
4025 | |
4026 /** | |
4027 * Pseudo-external assembler syntax: {@code fbn{,a}{,pn|,pt} }<i>n</i>, <i>label</i> | |
4028 * Example disassembly syntax: {@code fbn,pn %fcc0, L1: -1048576} | |
4029 * <p> | |
4030 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4031 * | |
4032 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4033 */ | |
4034 // Template#: 237, Serial#: 237 | |
4035 public void fbn(final AnnulBit a, final BranchPredictionBit p, final FCCOperand n, final int label) { | |
4036 int instruction = 0x01400000; | |
4037 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4038 instruction |= ((a.value() & 0x1) << 29); | |
4039 instruction |= ((p.value() & 0x1) << 19); | |
4040 instruction |= ((n.value() & 0x3) << 20); | |
4041 instruction |= ((label >> 2) & 0x7ffff); | |
4042 emitInt(instruction); | |
4043 } | |
4044 | |
4045 /** | |
4046 * Pseudo-external assembler syntax: {@code fbu{,a}{,pn|,pt} }<i>n</i>, <i>label</i> | |
4047 * Example disassembly syntax: {@code fbu,pn %fcc0, L1: -1048576} | |
4048 * <p> | |
4049 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4050 * | |
4051 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4052 */ | |
4053 // Template#: 238, Serial#: 238 | |
4054 public void fbu(final AnnulBit a, final BranchPredictionBit p, final FCCOperand n, final int label) { | |
4055 int instruction = 0x0F400000; | |
4056 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4057 instruction |= ((a.value() & 0x1) << 29); | |
4058 instruction |= ((p.value() & 0x1) << 19); | |
4059 instruction |= ((n.value() & 0x3) << 20); | |
4060 instruction |= ((label >> 2) & 0x7ffff); | |
4061 emitInt(instruction); | |
4062 } | |
4063 | |
4064 /** | |
4065 * Pseudo-external assembler syntax: {@code fbg{,a}{,pn|,pt} }<i>n</i>, <i>label</i> | |
4066 * Example disassembly syntax: {@code fbg,pn %fcc0, L1: -1048576} | |
4067 * <p> | |
4068 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4069 * | |
4070 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4071 */ | |
4072 // Template#: 239, Serial#: 239 | |
4073 public void fbg(final AnnulBit a, final BranchPredictionBit p, final FCCOperand n, final int label) { | |
4074 int instruction = 0x0D400000; | |
4075 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4076 instruction |= ((a.value() & 0x1) << 29); | |
4077 instruction |= ((p.value() & 0x1) << 19); | |
4078 instruction |= ((n.value() & 0x3) << 20); | |
4079 instruction |= ((label >> 2) & 0x7ffff); | |
4080 emitInt(instruction); | |
4081 } | |
4082 | |
4083 /** | |
4084 * Pseudo-external assembler syntax: {@code fbug{,a}{,pn|,pt} }<i>n</i>, <i>label</i> | |
4085 * Example disassembly syntax: {@code fbug,pn %fcc0, L1: -1048576} | |
4086 * <p> | |
4087 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4088 * | |
4089 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4090 */ | |
4091 // Template#: 240, Serial#: 240 | |
4092 public void fbug(final AnnulBit a, final BranchPredictionBit p, final FCCOperand n, final int label) { | |
4093 int instruction = 0x0B400000; | |
4094 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4095 instruction |= ((a.value() & 0x1) << 29); | |
4096 instruction |= ((p.value() & 0x1) << 19); | |
4097 instruction |= ((n.value() & 0x3) << 20); | |
4098 instruction |= ((label >> 2) & 0x7ffff); | |
4099 emitInt(instruction); | |
4100 } | |
4101 | |
4102 /** | |
4103 * Pseudo-external assembler syntax: {@code fbl{,a}{,pn|,pt} }<i>n</i>, <i>label</i> | |
4104 * Example disassembly syntax: {@code fbl,pn %fcc0, L1: -1048576} | |
4105 * <p> | |
4106 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4107 * | |
4108 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4109 */ | |
4110 // Template#: 241, Serial#: 241 | |
4111 public void fbl(final AnnulBit a, final BranchPredictionBit p, final FCCOperand n, final int label) { | |
4112 int instruction = 0x09400000; | |
4113 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4114 instruction |= ((a.value() & 0x1) << 29); | |
4115 instruction |= ((p.value() & 0x1) << 19); | |
4116 instruction |= ((n.value() & 0x3) << 20); | |
4117 instruction |= ((label >> 2) & 0x7ffff); | |
4118 emitInt(instruction); | |
4119 } | |
4120 | |
4121 /** | |
4122 * Pseudo-external assembler syntax: {@code fbul{,a}{,pn|,pt} }<i>n</i>, <i>label</i> | |
4123 * Example disassembly syntax: {@code fbul,pn %fcc0, L1: -1048576} | |
4124 * <p> | |
4125 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4126 * | |
4127 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4128 */ | |
4129 // Template#: 242, Serial#: 242 | |
4130 public void fbul(final AnnulBit a, final BranchPredictionBit p, final FCCOperand n, final int label) { | |
4131 int instruction = 0x07400000; | |
4132 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4133 instruction |= ((a.value() & 0x1) << 29); | |
4134 instruction |= ((p.value() & 0x1) << 19); | |
4135 instruction |= ((n.value() & 0x3) << 20); | |
4136 instruction |= ((label >> 2) & 0x7ffff); | |
4137 emitInt(instruction); | |
4138 } | |
4139 | |
4140 /** | |
4141 * Pseudo-external assembler syntax: {@code fblg{,a}{,pn|,pt} }<i>n</i>, <i>label</i> | |
4142 * Example disassembly syntax: {@code fblg,pn %fcc0, L1: -1048576} | |
4143 * <p> | |
4144 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4145 * | |
4146 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4147 */ | |
4148 // Template#: 243, Serial#: 243 | |
4149 public void fblg(final AnnulBit a, final BranchPredictionBit p, final FCCOperand n, final int label) { | |
4150 int instruction = 0x05400000; | |
4151 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4152 instruction |= ((a.value() & 0x1) << 29); | |
4153 instruction |= ((p.value() & 0x1) << 19); | |
4154 instruction |= ((n.value() & 0x3) << 20); | |
4155 instruction |= ((label >> 2) & 0x7ffff); | |
4156 emitInt(instruction); | |
4157 } | |
4158 | |
4159 /** | |
4160 * Pseudo-external assembler syntax: {@code fbne{,a}{,pn|,pt} }<i>n</i>, <i>label</i> | |
4161 * Example disassembly syntax: {@code fbne,pn %fcc0, L1: -1048576} | |
4162 * <p> | |
4163 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4164 * | |
4165 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4166 */ | |
4167 // Template#: 244, Serial#: 244 | |
4168 public void fbne(final AnnulBit a, final BranchPredictionBit p, final FCCOperand n, final int label) { | |
4169 int instruction = 0x03400000; | |
4170 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4171 instruction |= ((a.value() & 0x1) << 29); | |
4172 instruction |= ((p.value() & 0x1) << 19); | |
4173 instruction |= ((n.value() & 0x3) << 20); | |
4174 instruction |= ((label >> 2) & 0x7ffff); | |
4175 emitInt(instruction); | |
4176 } | |
4177 | |
4178 /** | |
4179 * Pseudo-external assembler syntax: {@code fbe{,a}{,pn|,pt} }<i>n</i>, <i>label</i> | |
4180 * Example disassembly syntax: {@code fbe,pn %fcc0, L1: -1048576} | |
4181 * <p> | |
4182 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4183 * | |
4184 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4185 */ | |
4186 // Template#: 245, Serial#: 245 | |
4187 public void fbe(final AnnulBit a, final BranchPredictionBit p, final FCCOperand n, final int label) { | |
4188 int instruction = 0x13400000; | |
4189 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4190 instruction |= ((a.value() & 0x1) << 29); | |
4191 instruction |= ((p.value() & 0x1) << 19); | |
4192 instruction |= ((n.value() & 0x3) << 20); | |
4193 instruction |= ((label >> 2) & 0x7ffff); | |
4194 emitInt(instruction); | |
4195 } | |
4196 | |
4197 /** | |
4198 * Pseudo-external assembler syntax: {@code fbue{,a}{,pn|,pt} }<i>n</i>, <i>label</i> | |
4199 * Example disassembly syntax: {@code fbue,pn %fcc0, L1: -1048576} | |
4200 * <p> | |
4201 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4202 * | |
4203 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4204 */ | |
4205 // Template#: 246, Serial#: 246 | |
4206 public void fbue(final AnnulBit a, final BranchPredictionBit p, final FCCOperand n, final int label) { | |
4207 int instruction = 0x15400000; | |
4208 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4209 instruction |= ((a.value() & 0x1) << 29); | |
4210 instruction |= ((p.value() & 0x1) << 19); | |
4211 instruction |= ((n.value() & 0x3) << 20); | |
4212 instruction |= ((label >> 2) & 0x7ffff); | |
4213 emitInt(instruction); | |
4214 } | |
4215 | |
4216 /** | |
4217 * Pseudo-external assembler syntax: {@code fbge{,a}{,pn|,pt} }<i>n</i>, <i>label</i> | |
4218 * Example disassembly syntax: {@code fbge,pn %fcc0, L1: -1048576} | |
4219 * <p> | |
4220 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4221 * | |
4222 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4223 */ | |
4224 // Template#: 247, Serial#: 247 | |
4225 public void fbge(final AnnulBit a, final BranchPredictionBit p, final FCCOperand n, final int label) { | |
4226 int instruction = 0x17400000; | |
4227 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4228 instruction |= ((a.value() & 0x1) << 29); | |
4229 instruction |= ((p.value() & 0x1) << 19); | |
4230 instruction |= ((n.value() & 0x3) << 20); | |
4231 instruction |= ((label >> 2) & 0x7ffff); | |
4232 emitInt(instruction); | |
4233 } | |
4234 | |
4235 /** | |
4236 * Pseudo-external assembler syntax: {@code fbuge{,a}{,pn|,pt} }<i>n</i>, <i>label</i> | |
4237 * Example disassembly syntax: {@code fbuge,pn %fcc0, L1: -1048576} | |
4238 * <p> | |
4239 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4240 * | |
4241 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4242 */ | |
4243 // Template#: 248, Serial#: 248 | |
4244 public void fbuge(final AnnulBit a, final BranchPredictionBit p, final FCCOperand n, final int label) { | |
4245 int instruction = 0x19400000; | |
4246 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4247 instruction |= ((a.value() & 0x1) << 29); | |
4248 instruction |= ((p.value() & 0x1) << 19); | |
4249 instruction |= ((n.value() & 0x3) << 20); | |
4250 instruction |= ((label >> 2) & 0x7ffff); | |
4251 emitInt(instruction); | |
4252 } | |
4253 | |
4254 /** | |
4255 * Pseudo-external assembler syntax: {@code fble{,a}{,pn|,pt} }<i>n</i>, <i>label</i> | |
4256 * Example disassembly syntax: {@code fble,pn %fcc0, L1: -1048576} | |
4257 * <p> | |
4258 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4259 * | |
4260 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4261 */ | |
4262 // Template#: 249, Serial#: 249 | |
4263 public void fble(final AnnulBit a, final BranchPredictionBit p, final FCCOperand n, final int label) { | |
4264 int instruction = 0x1B400000; | |
4265 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4266 instruction |= ((a.value() & 0x1) << 29); | |
4267 instruction |= ((p.value() & 0x1) << 19); | |
4268 instruction |= ((n.value() & 0x3) << 20); | |
4269 instruction |= ((label >> 2) & 0x7ffff); | |
4270 emitInt(instruction); | |
4271 } | |
4272 | |
4273 /** | |
4274 * Pseudo-external assembler syntax: {@code fbule{,a}{,pn|,pt} }<i>n</i>, <i>label</i> | |
4275 * Example disassembly syntax: {@code fbule,pn %fcc0, L1: -1048576} | |
4276 * <p> | |
4277 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4278 * | |
4279 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4280 */ | |
4281 // Template#: 250, Serial#: 250 | |
4282 public void fbule(final AnnulBit a, final BranchPredictionBit p, final FCCOperand n, final int label) { | |
4283 int instruction = 0x1D400000; | |
4284 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4285 instruction |= ((a.value() & 0x1) << 29); | |
4286 instruction |= ((p.value() & 0x1) << 19); | |
4287 instruction |= ((n.value() & 0x3) << 20); | |
4288 instruction |= ((label >> 2) & 0x7ffff); | |
4289 emitInt(instruction); | |
4290 } | |
4291 | |
4292 /** | |
4293 * Pseudo-external assembler syntax: {@code fbo{,a}{,pn|,pt} }<i>n</i>, <i>label</i> | |
4294 * Example disassembly syntax: {@code fbo,pn %fcc0, L1: -1048576} | |
4295 * <p> | |
4296 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4297 * | |
4298 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4299 */ | |
4300 // Template#: 251, Serial#: 251 | |
4301 public void fbo(final AnnulBit a, final BranchPredictionBit p, final FCCOperand n, final int label) { | |
4302 int instruction = 0x1F400000; | |
4303 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4304 instruction |= ((a.value() & 0x1) << 29); | |
4305 instruction |= ((p.value() & 0x1) << 19); | |
4306 instruction |= ((n.value() & 0x3) << 20); | |
4307 instruction |= ((label >> 2) & 0x7ffff); | |
4308 emitInt(instruction); | |
4309 } | |
4310 | |
4311 /** | |
4312 * Pseudo-external assembler syntax: {@code fba }<i>n</i>, <i>label</i> | |
4313 * Example disassembly syntax: {@code fba %fcc0, L1: -1048576} | |
4314 * <p> | |
4315 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4316 * | |
4317 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4318 */ | |
4319 // Template#: 252, Serial#: 252 | |
4320 public void fba(final FCCOperand n, final int label) { | |
4321 int instruction = 0x11480000; | |
4322 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4323 instruction |= ((n.value() & 0x3) << 20); | |
4324 instruction |= ((label >> 2) & 0x7ffff); | |
4325 emitInt(instruction); | |
4326 } | |
4327 | |
4328 /** | |
4329 * Pseudo-external assembler syntax: {@code fbn }<i>n</i>, <i>label</i> | |
4330 * Example disassembly syntax: {@code fbn %fcc0, L1: -1048576} | |
4331 * <p> | |
4332 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4333 * | |
4334 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4335 */ | |
4336 // Template#: 253, Serial#: 253 | |
4337 public void fbn(final FCCOperand n, final int label) { | |
4338 int instruction = 0x01480000; | |
4339 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4340 instruction |= ((n.value() & 0x3) << 20); | |
4341 instruction |= ((label >> 2) & 0x7ffff); | |
4342 emitInt(instruction); | |
4343 } | |
4344 | |
4345 /** | |
4346 * Pseudo-external assembler syntax: {@code fbu }<i>n</i>, <i>label</i> | |
4347 * Example disassembly syntax: {@code fbu %fcc0, L1: -1048576} | |
4348 * <p> | |
4349 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4350 * | |
4351 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4352 */ | |
4353 // Template#: 254, Serial#: 254 | |
4354 public void fbu(final FCCOperand n, final int label) { | |
4355 int instruction = 0x0F480000; | |
4356 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4357 instruction |= ((n.value() & 0x3) << 20); | |
4358 instruction |= ((label >> 2) & 0x7ffff); | |
4359 emitInt(instruction); | |
4360 } | |
4361 | |
4362 /** | |
4363 * Pseudo-external assembler syntax: {@code fbg }<i>n</i>, <i>label</i> | |
4364 * Example disassembly syntax: {@code fbg %fcc0, L1: -1048576} | |
4365 * <p> | |
4366 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4367 * | |
4368 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4369 */ | |
4370 // Template#: 255, Serial#: 255 | |
4371 public void fbg(final FCCOperand n, final int label) { | |
4372 int instruction = 0x0D480000; | |
4373 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4374 instruction |= ((n.value() & 0x3) << 20); | |
4375 instruction |= ((label >> 2) & 0x7ffff); | |
4376 emitInt(instruction); | |
4377 } | |
4378 | |
4379 /** | |
4380 * Pseudo-external assembler syntax: {@code fbug }<i>n</i>, <i>label</i> | |
4381 * Example disassembly syntax: {@code fbug %fcc0, L1: -1048576} | |
4382 * <p> | |
4383 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4384 * | |
4385 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4386 */ | |
4387 // Template#: 256, Serial#: 256 | |
4388 public void fbug(final FCCOperand n, final int label) { | |
4389 int instruction = 0x0B480000; | |
4390 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4391 instruction |= ((n.value() & 0x3) << 20); | |
4392 instruction |= ((label >> 2) & 0x7ffff); | |
4393 emitInt(instruction); | |
4394 } | |
4395 | |
4396 /** | |
4397 * Pseudo-external assembler syntax: {@code fbl }<i>n</i>, <i>label</i> | |
4398 * Example disassembly syntax: {@code fbl %fcc0, L1: -1048576} | |
4399 * <p> | |
4400 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4401 * | |
4402 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4403 */ | |
4404 // Template#: 257, Serial#: 257 | |
4405 public void fbl(final FCCOperand n, final int label) { | |
4406 int instruction = 0x09480000; | |
4407 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4408 instruction |= ((n.value() & 0x3) << 20); | |
4409 instruction |= ((label >> 2) & 0x7ffff); | |
4410 emitInt(instruction); | |
4411 } | |
4412 | |
4413 /** | |
4414 * Pseudo-external assembler syntax: {@code fbul }<i>n</i>, <i>label</i> | |
4415 * Example disassembly syntax: {@code fbul %fcc0, L1: -1048576} | |
4416 * <p> | |
4417 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4418 * | |
4419 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4420 */ | |
4421 // Template#: 258, Serial#: 258 | |
4422 public void fbul(final FCCOperand n, final int label) { | |
4423 int instruction = 0x07480000; | |
4424 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4425 instruction |= ((n.value() & 0x3) << 20); | |
4426 instruction |= ((label >> 2) & 0x7ffff); | |
4427 emitInt(instruction); | |
4428 } | |
4429 | |
4430 /** | |
4431 * Pseudo-external assembler syntax: {@code fblg }<i>n</i>, <i>label</i> | |
4432 * Example disassembly syntax: {@code fblg %fcc0, L1: -1048576} | |
4433 * <p> | |
4434 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4435 * | |
4436 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4437 */ | |
4438 // Template#: 259, Serial#: 259 | |
4439 public void fblg(final FCCOperand n, final int label) { | |
4440 int instruction = 0x05480000; | |
4441 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4442 instruction |= ((n.value() & 0x3) << 20); | |
4443 instruction |= ((label >> 2) & 0x7ffff); | |
4444 emitInt(instruction); | |
4445 } | |
4446 | |
4447 /** | |
4448 * Pseudo-external assembler syntax: {@code fbne }<i>n</i>, <i>label</i> | |
4449 * Example disassembly syntax: {@code fbne %fcc0, L1: -1048576} | |
4450 * <p> | |
4451 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4452 * | |
4453 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4454 */ | |
4455 // Template#: 260, Serial#: 260 | |
4456 public void fbne(final FCCOperand n, final int label) { | |
4457 int instruction = 0x03480000; | |
4458 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4459 instruction |= ((n.value() & 0x3) << 20); | |
4460 instruction |= ((label >> 2) & 0x7ffff); | |
4461 emitInt(instruction); | |
4462 } | |
4463 | |
4464 /** | |
4465 * Pseudo-external assembler syntax: {@code fbe }<i>n</i>, <i>label</i> | |
4466 * Example disassembly syntax: {@code fbe %fcc0, L1: -1048576} | |
4467 * <p> | |
4468 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4469 * | |
4470 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4471 */ | |
4472 // Template#: 261, Serial#: 261 | |
4473 public void fbe(final FCCOperand n, final int label) { | |
4474 int instruction = 0x13480000; | |
4475 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4476 instruction |= ((n.value() & 0x3) << 20); | |
4477 instruction |= ((label >> 2) & 0x7ffff); | |
4478 emitInt(instruction); | |
4479 } | |
4480 | |
4481 /** | |
4482 * Pseudo-external assembler syntax: {@code fbue }<i>n</i>, <i>label</i> | |
4483 * Example disassembly syntax: {@code fbue %fcc0, L1: -1048576} | |
4484 * <p> | |
4485 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4486 * | |
4487 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4488 */ | |
4489 // Template#: 262, Serial#: 262 | |
4490 public void fbue(final FCCOperand n, final int label) { | |
4491 int instruction = 0x15480000; | |
4492 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4493 instruction |= ((n.value() & 0x3) << 20); | |
4494 instruction |= ((label >> 2) & 0x7ffff); | |
4495 emitInt(instruction); | |
4496 } | |
4497 | |
4498 /** | |
4499 * Pseudo-external assembler syntax: {@code fbge }<i>n</i>, <i>label</i> | |
4500 * Example disassembly syntax: {@code fbge %fcc0, L1: -1048576} | |
4501 * <p> | |
4502 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4503 * | |
4504 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4505 */ | |
4506 // Template#: 263, Serial#: 263 | |
4507 public void fbge(final FCCOperand n, final int label) { | |
4508 int instruction = 0x17480000; | |
4509 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4510 instruction |= ((n.value() & 0x3) << 20); | |
4511 instruction |= ((label >> 2) & 0x7ffff); | |
4512 emitInt(instruction); | |
4513 } | |
4514 | |
4515 /** | |
4516 * Pseudo-external assembler syntax: {@code fbuge }<i>n</i>, <i>label</i> | |
4517 * Example disassembly syntax: {@code fbuge %fcc0, L1: -1048576} | |
4518 * <p> | |
4519 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4520 * | |
4521 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4522 */ | |
4523 // Template#: 264, Serial#: 264 | |
4524 public void fbuge(final FCCOperand n, final int label) { | |
4525 int instruction = 0x19480000; | |
4526 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4527 instruction |= ((n.value() & 0x3) << 20); | |
4528 instruction |= ((label >> 2) & 0x7ffff); | |
4529 emitInt(instruction); | |
4530 } | |
4531 | |
4532 /** | |
4533 * Pseudo-external assembler syntax: {@code fble }<i>n</i>, <i>label</i> | |
4534 * Example disassembly syntax: {@code fble %fcc0, L1: -1048576} | |
4535 * <p> | |
4536 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4537 * | |
4538 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4539 */ | |
4540 // Template#: 265, Serial#: 265 | |
4541 public void fble(final FCCOperand n, final int label) { | |
4542 int instruction = 0x1B480000; | |
4543 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4544 instruction |= ((n.value() & 0x3) << 20); | |
4545 instruction |= ((label >> 2) & 0x7ffff); | |
4546 emitInt(instruction); | |
4547 } | |
4548 | |
4549 /** | |
4550 * Pseudo-external assembler syntax: {@code fbule }<i>n</i>, <i>label</i> | |
4551 * Example disassembly syntax: {@code fbule %fcc0, L1: -1048576} | |
4552 * <p> | |
4553 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4554 * | |
4555 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4556 */ | |
4557 // Template#: 266, Serial#: 266 | |
4558 public void fbule(final FCCOperand n, final int label) { | |
4559 int instruction = 0x1D480000; | |
4560 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4561 instruction |= ((n.value() & 0x3) << 20); | |
4562 instruction |= ((label >> 2) & 0x7ffff); | |
4563 emitInt(instruction); | |
4564 } | |
4565 | |
4566 /** | |
4567 * Pseudo-external assembler syntax: {@code fbo }<i>n</i>, <i>label</i> | |
4568 * Example disassembly syntax: {@code fbo %fcc0, L1: -1048576} | |
4569 * <p> | |
4570 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4571 * | |
4572 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4573 */ | |
4574 // Template#: 267, Serial#: 267 | |
4575 public void fbo(final FCCOperand n, final int label) { | |
4576 int instruction = 0x1F480000; | |
4577 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4578 instruction |= ((n.value() & 0x3) << 20); | |
4579 instruction |= ((label >> 2) & 0x7ffff); | |
4580 emitInt(instruction); | |
4581 } | |
4582 | |
4583 /** | |
4584 * Pseudo-external assembler syntax: {@code fb[a|n|u|g|ug|l|ul|lg|ne|e|ue|ge|uge|le|ule|o]{,a}{,pn|,pt} }<i>n</i>, <i>label</i> | |
4585 * Example disassembly syntax: {@code fba,pn %fcc0, L1: -1048576} | |
4586 * <p> | |
4587 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
4588 * | |
4589 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.5" | |
4590 */ | |
4591 // Template#: 268, Serial#: 268 | |
4592 public void fb(final FBfcc cond, final AnnulBit a, final BranchPredictionBit p, final FCCOperand n, final int label) { | |
4593 int instruction = 0x01400000; | |
4594 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
4595 instruction |= ((cond.value() & 0xf) << 25); | |
4596 instruction |= ((a.value() & 0x1) << 29); | |
4597 instruction |= ((p.value() & 0x1) << 19); | |
4598 instruction |= ((n.value() & 0x3) << 20); | |
4599 instruction |= ((label >> 2) & 0x7ffff); | |
4600 emitInt(instruction); | |
4601 } | |
4602 | |
4603 /** | |
4604 * Pseudo-external assembler syntax: {@code ba{,a} }<i>label</i> | |
4605 * Example disassembly syntax: {@code ba L1: -8388608} | |
4606 * <p> | |
4607 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
4608 * | |
4609 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
4610 */ | |
4611 // Template#: 269, Serial#: 269 | |
4612 public void ba(final AnnulBit a, final int label) { | |
4613 int instruction = 0x10800000; | |
4614 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4615 instruction |= ((a.value() & 0x1) << 29); | |
4616 instruction |= ((label >> 2) & 0x3fffff); | |
4617 emitInt(instruction); | |
4618 } | |
4619 | |
4620 /** | |
4621 * Pseudo-external assembler syntax: {@code bn{,a} }<i>label</i> | |
4622 * Example disassembly syntax: {@code bn L1: -8388608} | |
4623 * <p> | |
4624 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
4625 * | |
4626 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
4627 */ | |
4628 // Template#: 270, Serial#: 270 | |
4629 public void bn(final AnnulBit a, final int label) { | |
4630 int instruction = 0x00800000; | |
4631 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4632 instruction |= ((a.value() & 0x1) << 29); | |
4633 instruction |= ((label >> 2) & 0x3fffff); | |
4634 emitInt(instruction); | |
4635 } | |
4636 | |
4637 /** | |
4638 * Pseudo-external assembler syntax: {@code bne{,a} }<i>label</i> | |
4639 * Example disassembly syntax: {@code bne L1: -8388608} | |
4640 * <p> | |
4641 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
4642 * | |
4643 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
4644 */ | |
4645 // Template#: 271, Serial#: 271 | |
4646 public void bne(final AnnulBit a, final int label) { | |
4647 int instruction = 0x12800000; | |
4648 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4649 instruction |= ((a.value() & 0x1) << 29); | |
4650 instruction |= ((label >> 2) & 0x3fffff); | |
4651 emitInt(instruction); | |
4652 } | |
4653 | |
4654 /** | |
4655 * Pseudo-external assembler syntax: {@code be{,a} }<i>label</i> | |
4656 * Example disassembly syntax: {@code be L1: -8388608} | |
4657 * <p> | |
4658 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
4659 * | |
4660 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
4661 */ | |
4662 // Template#: 272, Serial#: 272 | |
4663 public void be(final AnnulBit a, final int label) { | |
4664 int instruction = 0x02800000; | |
4665 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4666 instruction |= ((a.value() & 0x1) << 29); | |
4667 instruction |= ((label >> 2) & 0x3fffff); | |
4668 emitInt(instruction); | |
4669 } | |
4670 | |
4671 /** | |
4672 * Pseudo-external assembler syntax: {@code bg{,a} }<i>label</i> | |
4673 * Example disassembly syntax: {@code bg L1: -8388608} | |
4674 * <p> | |
4675 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
4676 * | |
4677 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
4678 */ | |
4679 // Template#: 273, Serial#: 273 | |
4680 public void bg(final AnnulBit a, final int label) { | |
4681 int instruction = 0x14800000; | |
4682 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4683 instruction |= ((a.value() & 0x1) << 29); | |
4684 instruction |= ((label >> 2) & 0x3fffff); | |
4685 emitInt(instruction); | |
4686 } | |
4687 | |
4688 /** | |
4689 * Pseudo-external assembler syntax: {@code ble{,a} }<i>label</i> | |
4690 * Example disassembly syntax: {@code ble L1: -8388608} | |
4691 * <p> | |
4692 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
4693 * | |
4694 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
4695 */ | |
4696 // Template#: 274, Serial#: 274 | |
4697 public void ble(final AnnulBit a, final int label) { | |
4698 int instruction = 0x04800000; | |
4699 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4700 instruction |= ((a.value() & 0x1) << 29); | |
4701 instruction |= ((label >> 2) & 0x3fffff); | |
4702 emitInt(instruction); | |
4703 } | |
4704 | |
4705 /** | |
4706 * Pseudo-external assembler syntax: {@code bge{,a} }<i>label</i> | |
4707 * Example disassembly syntax: {@code bge L1: -8388608} | |
4708 * <p> | |
4709 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
4710 * | |
4711 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
4712 */ | |
4713 // Template#: 275, Serial#: 275 | |
4714 public void bge(final AnnulBit a, final int label) { | |
4715 int instruction = 0x16800000; | |
4716 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4717 instruction |= ((a.value() & 0x1) << 29); | |
4718 instruction |= ((label >> 2) & 0x3fffff); | |
4719 emitInt(instruction); | |
4720 } | |
4721 | |
4722 /** | |
4723 * Pseudo-external assembler syntax: {@code bl{,a} }<i>label</i> | |
4724 * Example disassembly syntax: {@code bl L1: -8388608} | |
4725 * <p> | |
4726 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
4727 * | |
4728 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
4729 */ | |
4730 // Template#: 276, Serial#: 276 | |
4731 public void bl(final AnnulBit a, final int label) { | |
4732 int instruction = 0x06800000; | |
4733 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4734 instruction |= ((a.value() & 0x1) << 29); | |
4735 instruction |= ((label >> 2) & 0x3fffff); | |
4736 emitInt(instruction); | |
4737 } | |
4738 | |
4739 /** | |
4740 * Pseudo-external assembler syntax: {@code bgu{,a} }<i>label</i> | |
4741 * Example disassembly syntax: {@code bgu L1: -8388608} | |
4742 * <p> | |
4743 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
4744 * | |
4745 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
4746 */ | |
4747 // Template#: 277, Serial#: 277 | |
4748 public void bgu(final AnnulBit a, final int label) { | |
4749 int instruction = 0x18800000; | |
4750 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4751 instruction |= ((a.value() & 0x1) << 29); | |
4752 instruction |= ((label >> 2) & 0x3fffff); | |
4753 emitInt(instruction); | |
4754 } | |
4755 | |
4756 /** | |
4757 * Pseudo-external assembler syntax: {@code bleu{,a} }<i>label</i> | |
4758 * Example disassembly syntax: {@code bleu L1: -8388608} | |
4759 * <p> | |
4760 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
4761 * | |
4762 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
4763 */ | |
4764 // Template#: 278, Serial#: 278 | |
4765 public void bleu(final AnnulBit a, final int label) { | |
4766 int instruction = 0x08800000; | |
4767 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4768 instruction |= ((a.value() & 0x1) << 29); | |
4769 instruction |= ((label >> 2) & 0x3fffff); | |
4770 emitInt(instruction); | |
4771 } | |
4772 | |
4773 /** | |
4774 * Pseudo-external assembler syntax: {@code bcc{,a} }<i>label</i> | |
4775 * Example disassembly syntax: {@code bcc L1: -8388608} | |
4776 * <p> | |
4777 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
4778 * | |
4779 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
4780 */ | |
4781 // Template#: 279, Serial#: 279 | |
4782 public void bcc(final AnnulBit a, final int label) { | |
4783 int instruction = 0x1A800000; | |
4784 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4785 instruction |= ((a.value() & 0x1) << 29); | |
4786 instruction |= ((label >> 2) & 0x3fffff); | |
4787 emitInt(instruction); | |
4788 } | |
4789 | |
4790 /** | |
4791 * Pseudo-external assembler syntax: {@code bcs{,a} }<i>label</i> | |
4792 * Example disassembly syntax: {@code bcs L1: -8388608} | |
4793 * <p> | |
4794 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
4795 * | |
4796 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
4797 */ | |
4798 // Template#: 280, Serial#: 280 | |
4799 public void bcs(final AnnulBit a, final int label) { | |
4800 int instruction = 0x0A800000; | |
4801 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4802 instruction |= ((a.value() & 0x1) << 29); | |
4803 instruction |= ((label >> 2) & 0x3fffff); | |
4804 emitInt(instruction); | |
4805 } | |
4806 | |
4807 /** | |
4808 * Pseudo-external assembler syntax: {@code bpos{,a} }<i>label</i> | |
4809 * Example disassembly syntax: {@code bpos L1: -8388608} | |
4810 * <p> | |
4811 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
4812 * | |
4813 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
4814 */ | |
4815 // Template#: 281, Serial#: 281 | |
4816 public void bpos(final AnnulBit a, final int label) { | |
4817 int instruction = 0x1C800000; | |
4818 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4819 instruction |= ((a.value() & 0x1) << 29); | |
4820 instruction |= ((label >> 2) & 0x3fffff); | |
4821 emitInt(instruction); | |
4822 } | |
4823 | |
4824 /** | |
4825 * Pseudo-external assembler syntax: {@code bneg{,a} }<i>label</i> | |
4826 * Example disassembly syntax: {@code bneg L1: -8388608} | |
4827 * <p> | |
4828 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
4829 * | |
4830 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
4831 */ | |
4832 // Template#: 282, Serial#: 282 | |
4833 public void bneg(final AnnulBit a, final int label) { | |
4834 int instruction = 0x0C800000; | |
4835 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4836 instruction |= ((a.value() & 0x1) << 29); | |
4837 instruction |= ((label >> 2) & 0x3fffff); | |
4838 emitInt(instruction); | |
4839 } | |
4840 | |
4841 /** | |
4842 * Pseudo-external assembler syntax: {@code bvc{,a} }<i>label</i> | |
4843 * Example disassembly syntax: {@code bvc L1: -8388608} | |
4844 * <p> | |
4845 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
4846 * | |
4847 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
4848 */ | |
4849 // Template#: 283, Serial#: 283 | |
4850 public void bvc(final AnnulBit a, final int label) { | |
4851 int instruction = 0x1E800000; | |
4852 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4853 instruction |= ((a.value() & 0x1) << 29); | |
4854 instruction |= ((label >> 2) & 0x3fffff); | |
4855 emitInt(instruction); | |
4856 } | |
4857 | |
4858 /** | |
4859 * Pseudo-external assembler syntax: {@code bvs{,a} }<i>label</i> | |
4860 * Example disassembly syntax: {@code bvs L1: -8388608} | |
4861 * <p> | |
4862 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
4863 * | |
4864 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
4865 */ | |
4866 // Template#: 284, Serial#: 284 | |
4867 public void bvs(final AnnulBit a, final int label) { | |
4868 int instruction = 0x0E800000; | |
4869 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4870 instruction |= ((a.value() & 0x1) << 29); | |
4871 instruction |= ((label >> 2) & 0x3fffff); | |
4872 emitInt(instruction); | |
4873 } | |
4874 | |
4875 /** | |
4876 * Pseudo-external assembler syntax: {@code ba }<i>label</i> | |
4877 * Example disassembly syntax: {@code ba L1: -8388608} | |
4878 * <p> | |
4879 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
4880 * | |
4881 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
4882 */ | |
4883 // Template#: 285, Serial#: 285 | |
4884 public void ba(final int label) { | |
4885 int instruction = 0x10800000; | |
4886 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4887 instruction |= ((label >> 2) & 0x3fffff); | |
4888 emitInt(instruction); | |
4889 } | |
4890 | |
4891 /** | |
4892 * Pseudo-external assembler syntax: {@code bn }<i>label</i> | |
4893 * Example disassembly syntax: {@code bn L1: -8388608} | |
4894 * <p> | |
4895 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
4896 * | |
4897 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
4898 */ | |
4899 // Template#: 286, Serial#: 286 | |
4900 public void bn(final int label) { | |
4901 int instruction = 0x00800000; | |
4902 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4903 instruction |= ((label >> 2) & 0x3fffff); | |
4904 emitInt(instruction); | |
4905 } | |
4906 | |
4907 /** | |
4908 * Pseudo-external assembler syntax: {@code bne }<i>label</i> | |
4909 * Example disassembly syntax: {@code bne L1: -8388608} | |
4910 * <p> | |
4911 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
4912 * | |
4913 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
4914 */ | |
4915 // Template#: 287, Serial#: 287 | |
4916 public void bne(final int label) { | |
4917 int instruction = 0x12800000; | |
4918 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4919 instruction |= ((label >> 2) & 0x3fffff); | |
4920 emitInt(instruction); | |
4921 } | |
4922 | |
4923 /** | |
4924 * Pseudo-external assembler syntax: {@code be }<i>label</i> | |
4925 * Example disassembly syntax: {@code be L1: -8388608} | |
4926 * <p> | |
4927 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
4928 * | |
4929 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
4930 */ | |
4931 // Template#: 288, Serial#: 288 | |
4932 public void be(final int label) { | |
4933 int instruction = 0x02800000; | |
4934 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4935 instruction |= ((label >> 2) & 0x3fffff); | |
4936 emitInt(instruction); | |
4937 } | |
4938 | |
4939 /** | |
4940 * Pseudo-external assembler syntax: {@code bg }<i>label</i> | |
4941 * Example disassembly syntax: {@code bg L1: -8388608} | |
4942 * <p> | |
4943 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
4944 * | |
4945 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
4946 */ | |
4947 // Template#: 289, Serial#: 289 | |
4948 public void bg(final int label) { | |
4949 int instruction = 0x14800000; | |
4950 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4951 instruction |= ((label >> 2) & 0x3fffff); | |
4952 emitInt(instruction); | |
4953 } | |
4954 | |
4955 /** | |
4956 * Pseudo-external assembler syntax: {@code ble }<i>label</i> | |
4957 * Example disassembly syntax: {@code ble L1: -8388608} | |
4958 * <p> | |
4959 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
4960 * | |
4961 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
4962 */ | |
4963 // Template#: 290, Serial#: 290 | |
4964 public void ble(final int label) { | |
4965 int instruction = 0x04800000; | |
4966 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4967 instruction |= ((label >> 2) & 0x3fffff); | |
4968 emitInt(instruction); | |
4969 } | |
4970 | |
4971 /** | |
4972 * Pseudo-external assembler syntax: {@code bge }<i>label</i> | |
4973 * Example disassembly syntax: {@code bge L1: -8388608} | |
4974 * <p> | |
4975 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
4976 * | |
4977 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
4978 */ | |
4979 // Template#: 291, Serial#: 291 | |
4980 public void bge(final int label) { | |
4981 int instruction = 0x16800000; | |
4982 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4983 instruction |= ((label >> 2) & 0x3fffff); | |
4984 emitInt(instruction); | |
4985 } | |
4986 | |
4987 /** | |
4988 * Pseudo-external assembler syntax: {@code bl }<i>label</i> | |
4989 * Example disassembly syntax: {@code bl L1: -8388608} | |
4990 * <p> | |
4991 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
4992 * | |
4993 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
4994 */ | |
4995 // Template#: 292, Serial#: 292 | |
4996 public void bl(final int label) { | |
4997 int instruction = 0x06800000; | |
4998 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
4999 instruction |= ((label >> 2) & 0x3fffff); | |
5000 emitInt(instruction); | |
5001 } | |
5002 | |
5003 /** | |
5004 * Pseudo-external assembler syntax: {@code bgu }<i>label</i> | |
5005 * Example disassembly syntax: {@code bgu L1: -8388608} | |
5006 * <p> | |
5007 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
5008 * | |
5009 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
5010 */ | |
5011 // Template#: 293, Serial#: 293 | |
5012 public void bgu(final int label) { | |
5013 int instruction = 0x18800000; | |
5014 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
5015 instruction |= ((label >> 2) & 0x3fffff); | |
5016 emitInt(instruction); | |
5017 } | |
5018 | |
5019 /** | |
5020 * Pseudo-external assembler syntax: {@code bleu }<i>label</i> | |
5021 * Example disassembly syntax: {@code bleu L1: -8388608} | |
5022 * <p> | |
5023 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
5024 * | |
5025 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
5026 */ | |
5027 // Template#: 294, Serial#: 294 | |
5028 public void bleu(final int label) { | |
5029 int instruction = 0x08800000; | |
5030 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
5031 instruction |= ((label >> 2) & 0x3fffff); | |
5032 emitInt(instruction); | |
5033 } | |
5034 | |
5035 /** | |
5036 * Pseudo-external assembler syntax: {@code bcc }<i>label</i> | |
5037 * Example disassembly syntax: {@code bcc L1: -8388608} | |
5038 * <p> | |
5039 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
5040 * | |
5041 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
5042 */ | |
5043 // Template#: 295, Serial#: 295 | |
5044 public void bcc(final int label) { | |
5045 int instruction = 0x1A800000; | |
5046 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
5047 instruction |= ((label >> 2) & 0x3fffff); | |
5048 emitInt(instruction); | |
5049 } | |
5050 | |
5051 /** | |
5052 * Pseudo-external assembler syntax: {@code bcs }<i>label</i> | |
5053 * Example disassembly syntax: {@code bcs L1: -8388608} | |
5054 * <p> | |
5055 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
5056 * | |
5057 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
5058 */ | |
5059 // Template#: 296, Serial#: 296 | |
5060 public void bcs(final int label) { | |
5061 int instruction = 0x0A800000; | |
5062 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
5063 instruction |= ((label >> 2) & 0x3fffff); | |
5064 emitInt(instruction); | |
5065 } | |
5066 | |
5067 /** | |
5068 * Pseudo-external assembler syntax: {@code bpos }<i>label</i> | |
5069 * Example disassembly syntax: {@code bpos L1: -8388608} | |
5070 * <p> | |
5071 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
5072 * | |
5073 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
5074 */ | |
5075 // Template#: 297, Serial#: 297 | |
5076 public void bpos(final int label) { | |
5077 int instruction = 0x1C800000; | |
5078 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
5079 instruction |= ((label >> 2) & 0x3fffff); | |
5080 emitInt(instruction); | |
5081 } | |
5082 | |
5083 /** | |
5084 * Pseudo-external assembler syntax: {@code bneg }<i>label</i> | |
5085 * Example disassembly syntax: {@code bneg L1: -8388608} | |
5086 * <p> | |
5087 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
5088 * | |
5089 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
5090 */ | |
5091 // Template#: 298, Serial#: 298 | |
5092 public void bneg(final int label) { | |
5093 int instruction = 0x0C800000; | |
5094 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
5095 instruction |= ((label >> 2) & 0x3fffff); | |
5096 emitInt(instruction); | |
5097 } | |
5098 | |
5099 /** | |
5100 * Pseudo-external assembler syntax: {@code bvc }<i>label</i> | |
5101 * Example disassembly syntax: {@code bvc L1: -8388608} | |
5102 * <p> | |
5103 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
5104 * | |
5105 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
5106 */ | |
5107 // Template#: 299, Serial#: 299 | |
5108 public void bvc(final int label) { | |
5109 int instruction = 0x1E800000; | |
5110 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
5111 instruction |= ((label >> 2) & 0x3fffff); | |
5112 emitInt(instruction); | |
5113 } | |
5114 | |
5115 /** | |
5116 * Pseudo-external assembler syntax: {@code bvs }<i>label</i> | |
5117 * Example disassembly syntax: {@code bvs L1: -8388608} | |
5118 * <p> | |
5119 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
5120 * | |
5121 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
5122 */ | |
5123 // Template#: 300, Serial#: 300 | |
5124 public void bvs(final int label) { | |
5125 int instruction = 0x0E800000; | |
5126 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
5127 instruction |= ((label >> 2) & 0x3fffff); | |
5128 emitInt(instruction); | |
5129 } | |
5130 | |
5131 /** | |
5132 * Pseudo-external assembler syntax: {@code b[a|n|ne|e|g|le|ge|l|gu|leu|cc|cs|pos|neg|vc|vs]{,a} }<i>label</i> | |
5133 * Example disassembly syntax: {@code ba L1: -8388608} | |
5134 * <p> | |
5135 * Constraint: {@code (-8388608 <= label && label <= 8388604) && ((label % 4) == 0)}<br /> | |
5136 * | |
5137 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.6" | |
5138 */ | |
5139 // Template#: 301, Serial#: 301 | |
5140 public void b(final Bicc cond, final AnnulBit a, final int label) { | |
5141 int instruction = 0x00800000; | |
5142 checkConstraint((-8388608 <= label && label <= 8388604) && ((label % 4) == 0), "(-8388608 <= label && label <= 8388604) && ((label % 4) == 0)"); | |
5143 instruction |= ((cond.value() & 0xf) << 25); | |
5144 instruction |= ((a.value() & 0x1) << 29); | |
5145 instruction |= ((label >> 2) & 0x3fffff); | |
5146 emitInt(instruction); | |
5147 } | |
5148 | |
5149 /** | |
5150 * Pseudo-external assembler syntax: {@code ba{,a}{,pn|,pt} }<i>i_or_x_cc</i>, <i>label</i> | |
5151 * Example disassembly syntax: {@code ba,pn %icc, L1: -1048576} | |
5152 * <p> | |
5153 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5154 * | |
5155 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5156 */ | |
5157 // Template#: 302, Serial#: 302 | |
5158 public void ba(final AnnulBit a, final BranchPredictionBit p, final ICCOperand i_or_x_cc, final int label) { | |
5159 int instruction = 0x10400000; | |
5160 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5161 instruction |= ((a.value() & 0x1) << 29); | |
5162 instruction |= ((p.value() & 0x1) << 19); | |
5163 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5164 instruction |= ((label >> 2) & 0x7ffff); | |
5165 emitInt(instruction); | |
5166 } | |
5167 | |
5168 /** | |
5169 * Pseudo-external assembler syntax: {@code bn{,a}{,pn|,pt} }<i>i_or_x_cc</i>, <i>label</i> | |
5170 * Example disassembly syntax: {@code bn,pn %icc, L1: -1048576} | |
5171 * <p> | |
5172 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5173 * | |
5174 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5175 */ | |
5176 // Template#: 303, Serial#: 303 | |
5177 public void bn(final AnnulBit a, final BranchPredictionBit p, final ICCOperand i_or_x_cc, final int label) { | |
5178 int instruction = 0x00400000; | |
5179 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5180 instruction |= ((a.value() & 0x1) << 29); | |
5181 instruction |= ((p.value() & 0x1) << 19); | |
5182 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5183 instruction |= ((label >> 2) & 0x7ffff); | |
5184 emitInt(instruction); | |
5185 } | |
5186 | |
5187 /** | |
5188 * Pseudo-external assembler syntax: {@code bne{,a}{,pn|,pt} }<i>i_or_x_cc</i>, <i>label</i> | |
5189 * Example disassembly syntax: {@code bne,pn %icc, L1: -1048576} | |
5190 * <p> | |
5191 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5192 * | |
5193 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5194 */ | |
5195 // Template#: 304, Serial#: 304 | |
5196 public void bne(final AnnulBit a, final BranchPredictionBit p, final ICCOperand i_or_x_cc, final int label) { | |
5197 int instruction = 0x12400000; | |
5198 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5199 instruction |= ((a.value() & 0x1) << 29); | |
5200 instruction |= ((p.value() & 0x1) << 19); | |
5201 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5202 instruction |= ((label >> 2) & 0x7ffff); | |
5203 emitInt(instruction); | |
5204 } | |
5205 | |
5206 /** | |
5207 * Pseudo-external assembler syntax: {@code be{,a}{,pn|,pt} }<i>i_or_x_cc</i>, <i>label</i> | |
5208 * Example disassembly syntax: {@code be,pn %icc, L1: -1048576} | |
5209 * <p> | |
5210 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5211 * | |
5212 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5213 */ | |
5214 // Template#: 305, Serial#: 305 | |
5215 public void be(final AnnulBit a, final BranchPredictionBit p, final ICCOperand i_or_x_cc, final int label) { | |
5216 int instruction = 0x02400000; | |
5217 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5218 instruction |= ((a.value() & 0x1) << 29); | |
5219 instruction |= ((p.value() & 0x1) << 19); | |
5220 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5221 instruction |= ((label >> 2) & 0x7ffff); | |
5222 emitInt(instruction); | |
5223 } | |
5224 | |
5225 /** | |
5226 * Pseudo-external assembler syntax: {@code bg{,a}{,pn|,pt} }<i>i_or_x_cc</i>, <i>label</i> | |
5227 * Example disassembly syntax: {@code bg,pn %icc, L1: -1048576} | |
5228 * <p> | |
5229 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5230 * | |
5231 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5232 */ | |
5233 // Template#: 306, Serial#: 306 | |
5234 public void bg(final AnnulBit a, final BranchPredictionBit p, final ICCOperand i_or_x_cc, final int label) { | |
5235 int instruction = 0x14400000; | |
5236 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5237 instruction |= ((a.value() & 0x1) << 29); | |
5238 instruction |= ((p.value() & 0x1) << 19); | |
5239 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5240 instruction |= ((label >> 2) & 0x7ffff); | |
5241 emitInt(instruction); | |
5242 } | |
5243 | |
5244 /** | |
5245 * Pseudo-external assembler syntax: {@code ble{,a}{,pn|,pt} }<i>i_or_x_cc</i>, <i>label</i> | |
5246 * Example disassembly syntax: {@code ble,pn %icc, L1: -1048576} | |
5247 * <p> | |
5248 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5249 * | |
5250 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5251 */ | |
5252 // Template#: 307, Serial#: 307 | |
5253 public void ble(final AnnulBit a, final BranchPredictionBit p, final ICCOperand i_or_x_cc, final int label) { | |
5254 int instruction = 0x04400000; | |
5255 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5256 instruction |= ((a.value() & 0x1) << 29); | |
5257 instruction |= ((p.value() & 0x1) << 19); | |
5258 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5259 instruction |= ((label >> 2) & 0x7ffff); | |
5260 emitInt(instruction); | |
5261 } | |
5262 | |
5263 /** | |
5264 * Pseudo-external assembler syntax: {@code bge{,a}{,pn|,pt} }<i>i_or_x_cc</i>, <i>label</i> | |
5265 * Example disassembly syntax: {@code bge,pn %icc, L1: -1048576} | |
5266 * <p> | |
5267 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5268 * | |
5269 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5270 */ | |
5271 // Template#: 308, Serial#: 308 | |
5272 public void bge(final AnnulBit a, final BranchPredictionBit p, final ICCOperand i_or_x_cc, final int label) { | |
5273 int instruction = 0x16400000; | |
5274 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5275 instruction |= ((a.value() & 0x1) << 29); | |
5276 instruction |= ((p.value() & 0x1) << 19); | |
5277 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5278 instruction |= ((label >> 2) & 0x7ffff); | |
5279 emitInt(instruction); | |
5280 } | |
5281 | |
5282 /** | |
5283 * Pseudo-external assembler syntax: {@code bl{,a}{,pn|,pt} }<i>i_or_x_cc</i>, <i>label</i> | |
5284 * Example disassembly syntax: {@code bl,pn %icc, L1: -1048576} | |
5285 * <p> | |
5286 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5287 * | |
5288 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5289 */ | |
5290 // Template#: 309, Serial#: 309 | |
5291 public void bl(final AnnulBit a, final BranchPredictionBit p, final ICCOperand i_or_x_cc, final int label) { | |
5292 int instruction = 0x06400000; | |
5293 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5294 instruction |= ((a.value() & 0x1) << 29); | |
5295 instruction |= ((p.value() & 0x1) << 19); | |
5296 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5297 instruction |= ((label >> 2) & 0x7ffff); | |
5298 emitInt(instruction); | |
5299 } | |
5300 | |
5301 /** | |
5302 * Pseudo-external assembler syntax: {@code bgu{,a}{,pn|,pt} }<i>i_or_x_cc</i>, <i>label</i> | |
5303 * Example disassembly syntax: {@code bgu,pn %icc, L1: -1048576} | |
5304 * <p> | |
5305 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5306 * | |
5307 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5308 */ | |
5309 // Template#: 310, Serial#: 310 | |
5310 public void bgu(final AnnulBit a, final BranchPredictionBit p, final ICCOperand i_or_x_cc, final int label) { | |
5311 int instruction = 0x18400000; | |
5312 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5313 instruction |= ((a.value() & 0x1) << 29); | |
5314 instruction |= ((p.value() & 0x1) << 19); | |
5315 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5316 instruction |= ((label >> 2) & 0x7ffff); | |
5317 emitInt(instruction); | |
5318 } | |
5319 | |
5320 /** | |
5321 * Pseudo-external assembler syntax: {@code bleu{,a}{,pn|,pt} }<i>i_or_x_cc</i>, <i>label</i> | |
5322 * Example disassembly syntax: {@code bleu,pn %icc, L1: -1048576} | |
5323 * <p> | |
5324 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5325 * | |
5326 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5327 */ | |
5328 // Template#: 311, Serial#: 311 | |
5329 public void bleu(final AnnulBit a, final BranchPredictionBit p, final ICCOperand i_or_x_cc, final int label) { | |
5330 int instruction = 0x08400000; | |
5331 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5332 instruction |= ((a.value() & 0x1) << 29); | |
5333 instruction |= ((p.value() & 0x1) << 19); | |
5334 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5335 instruction |= ((label >> 2) & 0x7ffff); | |
5336 emitInt(instruction); | |
5337 } | |
5338 | |
5339 /** | |
5340 * Pseudo-external assembler syntax: {@code bcc{,a}{,pn|,pt} }<i>i_or_x_cc</i>, <i>label</i> | |
5341 * Example disassembly syntax: {@code bcc,pn %icc, L1: -1048576} | |
5342 * <p> | |
5343 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5344 * | |
5345 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5346 */ | |
5347 // Template#: 312, Serial#: 312 | |
5348 public void bcc(final AnnulBit a, final BranchPredictionBit p, final ICCOperand i_or_x_cc, final int label) { | |
5349 int instruction = 0x1A400000; | |
5350 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5351 instruction |= ((a.value() & 0x1) << 29); | |
5352 instruction |= ((p.value() & 0x1) << 19); | |
5353 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5354 instruction |= ((label >> 2) & 0x7ffff); | |
5355 emitInt(instruction); | |
5356 } | |
5357 | |
5358 /** | |
5359 * Pseudo-external assembler syntax: {@code bcs{,a}{,pn|,pt} }<i>i_or_x_cc</i>, <i>label</i> | |
5360 * Example disassembly syntax: {@code bcs,pn %icc, L1: -1048576} | |
5361 * <p> | |
5362 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5363 * | |
5364 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5365 */ | |
5366 // Template#: 313, Serial#: 313 | |
5367 public void bcs(final AnnulBit a, final BranchPredictionBit p, final ICCOperand i_or_x_cc, final int label) { | |
5368 int instruction = 0x0A400000; | |
5369 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5370 instruction |= ((a.value() & 0x1) << 29); | |
5371 instruction |= ((p.value() & 0x1) << 19); | |
5372 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5373 instruction |= ((label >> 2) & 0x7ffff); | |
5374 emitInt(instruction); | |
5375 } | |
5376 | |
5377 /** | |
5378 * Pseudo-external assembler syntax: {@code bpos{,a}{,pn|,pt} }<i>i_or_x_cc</i>, <i>label</i> | |
5379 * Example disassembly syntax: {@code bpos,pn %icc, L1: -1048576} | |
5380 * <p> | |
5381 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5382 * | |
5383 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5384 */ | |
5385 // Template#: 314, Serial#: 314 | |
5386 public void bpos(final AnnulBit a, final BranchPredictionBit p, final ICCOperand i_or_x_cc, final int label) { | |
5387 int instruction = 0x1C400000; | |
5388 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5389 instruction |= ((a.value() & 0x1) << 29); | |
5390 instruction |= ((p.value() & 0x1) << 19); | |
5391 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5392 instruction |= ((label >> 2) & 0x7ffff); | |
5393 emitInt(instruction); | |
5394 } | |
5395 | |
5396 /** | |
5397 * Pseudo-external assembler syntax: {@code bneg{,a}{,pn|,pt} }<i>i_or_x_cc</i>, <i>label</i> | |
5398 * Example disassembly syntax: {@code bneg,pn %icc, L1: -1048576} | |
5399 * <p> | |
5400 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5401 * | |
5402 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5403 */ | |
5404 // Template#: 315, Serial#: 315 | |
5405 public void bneg(final AnnulBit a, final BranchPredictionBit p, final ICCOperand i_or_x_cc, final int label) { | |
5406 int instruction = 0x0C400000; | |
5407 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5408 instruction |= ((a.value() & 0x1) << 29); | |
5409 instruction |= ((p.value() & 0x1) << 19); | |
5410 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5411 instruction |= ((label >> 2) & 0x7ffff); | |
5412 emitInt(instruction); | |
5413 } | |
5414 | |
5415 /** | |
5416 * Pseudo-external assembler syntax: {@code bvc{,a}{,pn|,pt} }<i>i_or_x_cc</i>, <i>label</i> | |
5417 * Example disassembly syntax: {@code bvc,pn %icc, L1: -1048576} | |
5418 * <p> | |
5419 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5420 * | |
5421 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5422 */ | |
5423 // Template#: 316, Serial#: 316 | |
5424 public void bvc(final AnnulBit a, final BranchPredictionBit p, final ICCOperand i_or_x_cc, final int label) { | |
5425 int instruction = 0x1E400000; | |
5426 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5427 instruction |= ((a.value() & 0x1) << 29); | |
5428 instruction |= ((p.value() & 0x1) << 19); | |
5429 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5430 instruction |= ((label >> 2) & 0x7ffff); | |
5431 emitInt(instruction); | |
5432 } | |
5433 | |
5434 /** | |
5435 * Pseudo-external assembler syntax: {@code bvs{,a}{,pn|,pt} }<i>i_or_x_cc</i>, <i>label</i> | |
5436 * Example disassembly syntax: {@code bvs,pn %icc, L1: -1048576} | |
5437 * <p> | |
5438 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5439 * | |
5440 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5441 */ | |
5442 // Template#: 317, Serial#: 317 | |
5443 public void bvs(final AnnulBit a, final BranchPredictionBit p, final ICCOperand i_or_x_cc, final int label) { | |
5444 int instruction = 0x0E400000; | |
5445 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5446 instruction |= ((a.value() & 0x1) << 29); | |
5447 instruction |= ((p.value() & 0x1) << 19); | |
5448 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5449 instruction |= ((label >> 2) & 0x7ffff); | |
5450 emitInt(instruction); | |
5451 } | |
5452 | |
5453 /** | |
5454 * Pseudo-external assembler syntax: {@code ba }<i>i_or_x_cc</i>, <i>label</i> | |
5455 * Example disassembly syntax: {@code ba %icc, L1: -1048576} | |
5456 * <p> | |
5457 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5458 * | |
5459 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5460 */ | |
5461 // Template#: 318, Serial#: 318 | |
5462 public void ba(final ICCOperand i_or_x_cc, final int label) { | |
5463 int instruction = 0x10480000; | |
5464 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5465 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5466 instruction |= ((label >> 2) & 0x7ffff); | |
5467 emitInt(instruction); | |
5468 } | |
5469 | |
5470 /** | |
5471 * Pseudo-external assembler syntax: {@code bn }<i>i_or_x_cc</i>, <i>label</i> | |
5472 * Example disassembly syntax: {@code bn %icc, L1: -1048576} | |
5473 * <p> | |
5474 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5475 * | |
5476 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5477 */ | |
5478 // Template#: 319, Serial#: 319 | |
5479 public void bn(final ICCOperand i_or_x_cc, final int label) { | |
5480 int instruction = 0x00480000; | |
5481 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5482 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5483 instruction |= ((label >> 2) & 0x7ffff); | |
5484 emitInt(instruction); | |
5485 } | |
5486 | |
5487 /** | |
5488 * Pseudo-external assembler syntax: {@code bne }<i>i_or_x_cc</i>, <i>label</i> | |
5489 * Example disassembly syntax: {@code bne %icc, L1: -1048576} | |
5490 * <p> | |
5491 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5492 * | |
5493 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5494 */ | |
5495 // Template#: 320, Serial#: 320 | |
5496 public void bne(final ICCOperand i_or_x_cc, final int label) { | |
5497 int instruction = 0x12480000; | |
5498 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5499 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5500 instruction |= ((label >> 2) & 0x7ffff); | |
5501 emitInt(instruction); | |
5502 } | |
5503 | |
5504 /** | |
5505 * Pseudo-external assembler syntax: {@code be }<i>i_or_x_cc</i>, <i>label</i> | |
5506 * Example disassembly syntax: {@code be %icc, L1: -1048576} | |
5507 * <p> | |
5508 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5509 * | |
5510 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5511 */ | |
5512 // Template#: 321, Serial#: 321 | |
5513 public void be(final ICCOperand i_or_x_cc, final int label) { | |
5514 int instruction = 0x02480000; | |
5515 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5516 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5517 instruction |= ((label >> 2) & 0x7ffff); | |
5518 emitInt(instruction); | |
5519 } | |
5520 | |
5521 /** | |
5522 * Pseudo-external assembler syntax: {@code bg }<i>i_or_x_cc</i>, <i>label</i> | |
5523 * Example disassembly syntax: {@code bg %icc, L1: -1048576} | |
5524 * <p> | |
5525 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5526 * | |
5527 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5528 */ | |
5529 // Template#: 322, Serial#: 322 | |
5530 public void bg(final ICCOperand i_or_x_cc, final int label) { | |
5531 int instruction = 0x14480000; | |
5532 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5533 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5534 instruction |= ((label >> 2) & 0x7ffff); | |
5535 emitInt(instruction); | |
5536 } | |
5537 | |
5538 /** | |
5539 * Pseudo-external assembler syntax: {@code ble }<i>i_or_x_cc</i>, <i>label</i> | |
5540 * Example disassembly syntax: {@code ble %icc, L1: -1048576} | |
5541 * <p> | |
5542 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5543 * | |
5544 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5545 */ | |
5546 // Template#: 323, Serial#: 323 | |
5547 public void ble(final ICCOperand i_or_x_cc, final int label) { | |
5548 int instruction = 0x04480000; | |
5549 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5550 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5551 instruction |= ((label >> 2) & 0x7ffff); | |
5552 emitInt(instruction); | |
5553 } | |
5554 | |
5555 /** | |
5556 * Pseudo-external assembler syntax: {@code bge }<i>i_or_x_cc</i>, <i>label</i> | |
5557 * Example disassembly syntax: {@code bge %icc, L1: -1048576} | |
5558 * <p> | |
5559 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5560 * | |
5561 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5562 */ | |
5563 // Template#: 324, Serial#: 324 | |
5564 public void bge(final ICCOperand i_or_x_cc, final int label) { | |
5565 int instruction = 0x16480000; | |
5566 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5567 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5568 instruction |= ((label >> 2) & 0x7ffff); | |
5569 emitInt(instruction); | |
5570 } | |
5571 | |
5572 /** | |
5573 * Pseudo-external assembler syntax: {@code bl }<i>i_or_x_cc</i>, <i>label</i> | |
5574 * Example disassembly syntax: {@code bl %icc, L1: -1048576} | |
5575 * <p> | |
5576 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5577 * | |
5578 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5579 */ | |
5580 // Template#: 325, Serial#: 325 | |
5581 public void bl(final ICCOperand i_or_x_cc, final int label) { | |
5582 int instruction = 0x06480000; | |
5583 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5584 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5585 instruction |= ((label >> 2) & 0x7ffff); | |
5586 emitInt(instruction); | |
5587 } | |
5588 | |
5589 /** | |
5590 * Pseudo-external assembler syntax: {@code bgu }<i>i_or_x_cc</i>, <i>label</i> | |
5591 * Example disassembly syntax: {@code bgu %icc, L1: -1048576} | |
5592 * <p> | |
5593 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5594 * | |
5595 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5596 */ | |
5597 // Template#: 326, Serial#: 326 | |
5598 public void bgu(final ICCOperand i_or_x_cc, final int label) { | |
5599 int instruction = 0x18480000; | |
5600 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5601 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5602 instruction |= ((label >> 2) & 0x7ffff); | |
5603 emitInt(instruction); | |
5604 } | |
5605 | |
5606 /** | |
5607 * Pseudo-external assembler syntax: {@code bleu }<i>i_or_x_cc</i>, <i>label</i> | |
5608 * Example disassembly syntax: {@code bleu %icc, L1: -1048576} | |
5609 * <p> | |
5610 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5611 * | |
5612 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5613 */ | |
5614 // Template#: 327, Serial#: 327 | |
5615 public void bleu(final ICCOperand i_or_x_cc, final int label) { | |
5616 int instruction = 0x08480000; | |
5617 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5618 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5619 instruction |= ((label >> 2) & 0x7ffff); | |
5620 emitInt(instruction); | |
5621 } | |
5622 | |
5623 /** | |
5624 * Pseudo-external assembler syntax: {@code bcc }<i>i_or_x_cc</i>, <i>label</i> | |
5625 * Example disassembly syntax: {@code bcc %icc, L1: -1048576} | |
5626 * <p> | |
5627 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5628 * | |
5629 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5630 */ | |
5631 // Template#: 328, Serial#: 328 | |
5632 public void bcc(final ICCOperand i_or_x_cc, final int label) { | |
5633 int instruction = 0x1A480000; | |
5634 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5635 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5636 instruction |= ((label >> 2) & 0x7ffff); | |
5637 emitInt(instruction); | |
5638 } | |
5639 | |
5640 /** | |
5641 * Pseudo-external assembler syntax: {@code bcs }<i>i_or_x_cc</i>, <i>label</i> | |
5642 * Example disassembly syntax: {@code bcs %icc, L1: -1048576} | |
5643 * <p> | |
5644 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5645 * | |
5646 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5647 */ | |
5648 // Template#: 329, Serial#: 329 | |
5649 public void bcs(final ICCOperand i_or_x_cc, final int label) { | |
5650 int instruction = 0x0A480000; | |
5651 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5652 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5653 instruction |= ((label >> 2) & 0x7ffff); | |
5654 emitInt(instruction); | |
5655 } | |
5656 | |
5657 /** | |
5658 * Pseudo-external assembler syntax: {@code bpos }<i>i_or_x_cc</i>, <i>label</i> | |
5659 * Example disassembly syntax: {@code bpos %icc, L1: -1048576} | |
5660 * <p> | |
5661 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5662 * | |
5663 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5664 */ | |
5665 // Template#: 330, Serial#: 330 | |
5666 public void bpos(final ICCOperand i_or_x_cc, final int label) { | |
5667 int instruction = 0x1C480000; | |
5668 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5669 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5670 instruction |= ((label >> 2) & 0x7ffff); | |
5671 emitInt(instruction); | |
5672 } | |
5673 | |
5674 /** | |
5675 * Pseudo-external assembler syntax: {@code bneg }<i>i_or_x_cc</i>, <i>label</i> | |
5676 * Example disassembly syntax: {@code bneg %icc, L1: -1048576} | |
5677 * <p> | |
5678 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5679 * | |
5680 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5681 */ | |
5682 // Template#: 331, Serial#: 331 | |
5683 public void bneg(final ICCOperand i_or_x_cc, final int label) { | |
5684 int instruction = 0x0C480000; | |
5685 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5686 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5687 instruction |= ((label >> 2) & 0x7ffff); | |
5688 emitInt(instruction); | |
5689 } | |
5690 | |
5691 /** | |
5692 * Pseudo-external assembler syntax: {@code bvc }<i>i_or_x_cc</i>, <i>label</i> | |
5693 * Example disassembly syntax: {@code bvc %icc, L1: -1048576} | |
5694 * <p> | |
5695 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5696 * | |
5697 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5698 */ | |
5699 // Template#: 332, Serial#: 332 | |
5700 public void bvc(final ICCOperand i_or_x_cc, final int label) { | |
5701 int instruction = 0x1E480000; | |
5702 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5703 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5704 instruction |= ((label >> 2) & 0x7ffff); | |
5705 emitInt(instruction); | |
5706 } | |
5707 | |
5708 /** | |
5709 * Pseudo-external assembler syntax: {@code bvs }<i>i_or_x_cc</i>, <i>label</i> | |
5710 * Example disassembly syntax: {@code bvs %icc, L1: -1048576} | |
5711 * <p> | |
5712 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5713 * | |
5714 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5715 */ | |
5716 // Template#: 333, Serial#: 333 | |
5717 public void bvs(final ICCOperand i_or_x_cc, final int label) { | |
5718 int instruction = 0x0E480000; | |
5719 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5720 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5721 instruction |= ((label >> 2) & 0x7ffff); | |
5722 emitInt(instruction); | |
5723 } | |
5724 | |
5725 /** | |
5726 * Pseudo-external assembler syntax: {@code b[a|n|ne|e|g|le|ge|l|gu|leu|cc|cs|pos|neg|vc|vs]{,a}{,pn|,pt} }<i>i_or_x_cc</i>, <i>label</i> | |
5727 * Example disassembly syntax: {@code ba,pn %icc, L1: -1048576} | |
5728 * <p> | |
5729 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
5730 * | |
5731 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.7" | |
5732 */ | |
5733 // Template#: 334, Serial#: 334 | |
5734 public void b(final Bicc cond, final AnnulBit a, final BranchPredictionBit p, final ICCOperand i_or_x_cc, final int label) { | |
5735 int instruction = 0x00400000; | |
5736 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
5737 instruction |= ((cond.value() & 0xf) << 25); | |
5738 instruction |= ((a.value() & 0x1) << 29); | |
5739 instruction |= ((p.value() & 0x1) << 19); | |
5740 instruction |= ((i_or_x_cc.value() & 0x3) << 20); | |
5741 instruction |= ((label >> 2) & 0x7ffff); | |
5742 emitInt(instruction); | |
5743 } | |
5744 | |
5745 /** | |
5746 * Pseudo-external assembler syntax: {@code call }<i>label</i> | |
5747 * Example disassembly syntax: {@code call L1: -2147483648} | |
5748 * <p> | |
5749 * Constraint: {@code (-2147483648 <= label && label <= 2147483644) && ((label % 4) == 0)}<br /> | |
5750 * | |
5751 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.8" | |
5752 */ | |
5753 // Template#: 335, Serial#: 335 | |
5754 public void call(final int label) { | |
5755 int instruction = 0x40000000; | |
5756 checkConstraint((-2147483648 <= label && label <= 2147483644) && ((label % 4) == 0), "(-2147483648 <= label && label <= 2147483644) && ((label % 4) == 0)"); | |
5757 instruction |= ((label >> 2) & 0x3fffffff); | |
5758 emitInt(instruction); | |
5759 } | |
5760 | |
5761 /** | |
5762 * Pseudo-external assembler syntax: {@code done } | |
5763 * Example disassembly syntax: {@code done } | |
5764 * | |
5765 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.11" | |
5766 */ | |
5767 // Template#: 336, Serial#: 336 | |
5768 public void done() { | |
5769 int instruction = 0x81F00000; | |
5770 emitInt(instruction); | |
5771 } | |
5772 | |
5773 /** | |
5774 * Pseudo-external assembler syntax: {@code retry } | |
5775 * Example disassembly syntax: {@code retry } | |
5776 * | |
5777 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.11" | |
5778 */ | |
5779 // Template#: 337, Serial#: 337 | |
5780 public void retry() { | |
5781 int instruction = 0x83F00000; | |
5782 emitInt(instruction); | |
5783 } | |
5784 | |
5785 /** | |
5786 * Pseudo-external assembler syntax: {@code illtrap }<i>const22</i> | |
5787 * Example disassembly syntax: {@code illtrap 0x0} | |
5788 * <p> | |
5789 * Constraint: {@code 0 <= const22 && const22 <= 4194303}<br /> | |
5790 * | |
5791 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.22" | |
5792 */ | |
5793 // Template#: 338, Serial#: 338 | |
5794 public void illtrap(final int const22) { | |
5795 int instruction = 0x00000000; | |
5796 checkConstraint(0 <= const22 && const22 <= 4194303, "0 <= const22 && const22 <= 4194303"); | |
5797 instruction |= (const22 & 0x3fffff); | |
5798 emitInt(instruction); | |
5799 } | |
5800 | |
5801 /** | |
5802 * Pseudo-external assembler syntax: {@code jmpl }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
5803 * Example disassembly syntax: {@code jmpl %g0 + %g0, %g0} | |
5804 * | |
5805 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.24" | |
5806 */ | |
5807 // Template#: 339, Serial#: 339 | |
5808 public void jmpl(final GPR rs1, final GPR rs2, final GPR rd) { | |
5809 int instruction = 0x81C00000; | |
5810 instruction |= ((rs1.value() & 0x1f) << 14); | |
5811 instruction |= (rs2.value() & 0x1f); | |
5812 instruction |= ((rd.value() & 0x1f) << 25); | |
5813 emitInt(instruction); | |
5814 } | |
5815 | |
5816 /** | |
5817 * Pseudo-external assembler syntax: {@code jmpl }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
5818 * Example disassembly syntax: {@code jmpl %g0 + -4096, %g0} | |
5819 * <p> | |
5820 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
5821 * | |
5822 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.24" | |
5823 */ | |
5824 // Template#: 340, Serial#: 340 | |
5825 public void jmpl(final GPR rs1, final int simm13, final GPR rd) { | |
5826 int instruction = 0x81C02000; | |
5827 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
5828 instruction |= ((rs1.value() & 0x1f) << 14); | |
5829 instruction |= (simm13 & 0x1fff); | |
5830 instruction |= ((rd.value() & 0x1f) << 25); | |
5831 emitInt(instruction); | |
5832 } | |
5833 | |
5834 /** | |
5835 * Pseudo-external assembler syntax: {@code return }<i>rs1</i>, <i>rs2</i> | |
5836 * Example disassembly syntax: {@code return %g0 + %g0} | |
5837 * | |
5838 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.45" | |
5839 */ | |
5840 // Template#: 341, Serial#: 341 | |
5841 public void return_(final GPR rs1, final GPR rs2) { | |
5842 int instruction = 0x81C80000; | |
5843 instruction |= ((rs1.value() & 0x1f) << 14); | |
5844 instruction |= (rs2.value() & 0x1f); | |
5845 emitInt(instruction); | |
5846 } | |
5847 | |
5848 /** | |
5849 * Pseudo-external assembler syntax: {@code return }<i>rs1</i>, <i>simm13</i> | |
5850 * Example disassembly syntax: {@code return %g0 + -4096} | |
5851 * <p> | |
5852 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
5853 * | |
5854 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.45" | |
5855 */ | |
5856 // Template#: 342, Serial#: 342 | |
5857 public void return_(final GPR rs1, final int simm13) { | |
5858 int instruction = 0x81C82000; | |
5859 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
5860 instruction |= ((rs1.value() & 0x1f) << 14); | |
5861 instruction |= (simm13 & 0x1fff); | |
5862 emitInt(instruction); | |
5863 } | |
5864 | |
5865 /** | |
5866 * Pseudo-external assembler syntax: {@code sir }<i>simm13</i> | |
5867 * Example disassembly syntax: {@code sir -4096} | |
5868 * <p> | |
5869 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
5870 * | |
5871 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.50" | |
5872 */ | |
5873 // Template#: 343, Serial#: 343 | |
5874 public void sir(final int simm13) { | |
5875 int instruction = 0x9F802000; | |
5876 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
5877 instruction |= (simm13 & 0x1fff); | |
5878 emitInt(instruction); | |
5879 } | |
5880 | |
5881 /** | |
5882 * Pseudo-external assembler syntax: {@code ta }<i>i_or_x_cc</i>, <i>rs1</i>, <i>rs2</i> | |
5883 * Example disassembly syntax: {@code ta %icc, %g0 + %g0} | |
5884 * | |
5885 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
5886 */ | |
5887 // Template#: 344, Serial#: 344 | |
5888 public void ta(final ICCOperand i_or_x_cc, final GPR rs1, final GPR rs2) { | |
5889 int instruction = 0x91D00000; | |
5890 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
5891 instruction |= ((rs1.value() & 0x1f) << 14); | |
5892 instruction |= (rs2.value() & 0x1f); | |
5893 emitInt(instruction); | |
5894 } | |
5895 | |
5896 /** | |
5897 * Pseudo-external assembler syntax: {@code tn }<i>i_or_x_cc</i>, <i>rs1</i>, <i>rs2</i> | |
5898 * Example disassembly syntax: {@code tn %icc, %g0 + %g0} | |
5899 * | |
5900 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
5901 */ | |
5902 // Template#: 345, Serial#: 345 | |
5903 public void tn(final ICCOperand i_or_x_cc, final GPR rs1, final GPR rs2) { | |
5904 int instruction = 0x81D00000; | |
5905 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
5906 instruction |= ((rs1.value() & 0x1f) << 14); | |
5907 instruction |= (rs2.value() & 0x1f); | |
5908 emitInt(instruction); | |
5909 } | |
5910 | |
5911 /** | |
5912 * Pseudo-external assembler syntax: {@code tne }<i>i_or_x_cc</i>, <i>rs1</i>, <i>rs2</i> | |
5913 * Example disassembly syntax: {@code tne %icc, %g0 + %g0} | |
5914 * | |
5915 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
5916 */ | |
5917 // Template#: 346, Serial#: 346 | |
5918 public void tne(final ICCOperand i_or_x_cc, final GPR rs1, final GPR rs2) { | |
5919 int instruction = 0x93D00000; | |
5920 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
5921 instruction |= ((rs1.value() & 0x1f) << 14); | |
5922 instruction |= (rs2.value() & 0x1f); | |
5923 emitInt(instruction); | |
5924 } | |
5925 | |
5926 /** | |
5927 * Pseudo-external assembler syntax: {@code te }<i>i_or_x_cc</i>, <i>rs1</i>, <i>rs2</i> | |
5928 * Example disassembly syntax: {@code te %icc, %g0 + %g0} | |
5929 * | |
5930 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
5931 */ | |
5932 // Template#: 347, Serial#: 347 | |
5933 public void te(final ICCOperand i_or_x_cc, final GPR rs1, final GPR rs2) { | |
5934 int instruction = 0x83D00000; | |
5935 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
5936 instruction |= ((rs1.value() & 0x1f) << 14); | |
5937 instruction |= (rs2.value() & 0x1f); | |
5938 emitInt(instruction); | |
5939 } | |
5940 | |
5941 /** | |
5942 * Pseudo-external assembler syntax: {@code tg }<i>i_or_x_cc</i>, <i>rs1</i>, <i>rs2</i> | |
5943 * Example disassembly syntax: {@code tg %icc, %g0 + %g0} | |
5944 * | |
5945 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
5946 */ | |
5947 // Template#: 348, Serial#: 348 | |
5948 public void tg(final ICCOperand i_or_x_cc, final GPR rs1, final GPR rs2) { | |
5949 int instruction = 0x95D00000; | |
5950 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
5951 instruction |= ((rs1.value() & 0x1f) << 14); | |
5952 instruction |= (rs2.value() & 0x1f); | |
5953 emitInt(instruction); | |
5954 } | |
5955 | |
5956 /** | |
5957 * Pseudo-external assembler syntax: {@code tle }<i>i_or_x_cc</i>, <i>rs1</i>, <i>rs2</i> | |
5958 * Example disassembly syntax: {@code tle %icc, %g0 + %g0} | |
5959 * | |
5960 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
5961 */ | |
5962 // Template#: 349, Serial#: 349 | |
5963 public void tle(final ICCOperand i_or_x_cc, final GPR rs1, final GPR rs2) { | |
5964 int instruction = 0x85D00000; | |
5965 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
5966 instruction |= ((rs1.value() & 0x1f) << 14); | |
5967 instruction |= (rs2.value() & 0x1f); | |
5968 emitInt(instruction); | |
5969 } | |
5970 | |
5971 /** | |
5972 * Pseudo-external assembler syntax: {@code tge }<i>i_or_x_cc</i>, <i>rs1</i>, <i>rs2</i> | |
5973 * Example disassembly syntax: {@code tge %icc, %g0 + %g0} | |
5974 * | |
5975 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
5976 */ | |
5977 // Template#: 350, Serial#: 350 | |
5978 public void tge(final ICCOperand i_or_x_cc, final GPR rs1, final GPR rs2) { | |
5979 int instruction = 0x97D00000; | |
5980 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
5981 instruction |= ((rs1.value() & 0x1f) << 14); | |
5982 instruction |= (rs2.value() & 0x1f); | |
5983 emitInt(instruction); | |
5984 } | |
5985 | |
5986 /** | |
5987 * Pseudo-external assembler syntax: {@code tl }<i>i_or_x_cc</i>, <i>rs1</i>, <i>rs2</i> | |
5988 * Example disassembly syntax: {@code tl %icc, %g0 + %g0} | |
5989 * | |
5990 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
5991 */ | |
5992 // Template#: 351, Serial#: 351 | |
5993 public void tl(final ICCOperand i_or_x_cc, final GPR rs1, final GPR rs2) { | |
5994 int instruction = 0x87D00000; | |
5995 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
5996 instruction |= ((rs1.value() & 0x1f) << 14); | |
5997 instruction |= (rs2.value() & 0x1f); | |
5998 emitInt(instruction); | |
5999 } | |
6000 | |
6001 /** | |
6002 * Pseudo-external assembler syntax: {@code tgu }<i>i_or_x_cc</i>, <i>rs1</i>, <i>rs2</i> | |
6003 * Example disassembly syntax: {@code tgu %icc, %g0 + %g0} | |
6004 * | |
6005 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
6006 */ | |
6007 // Template#: 352, Serial#: 352 | |
6008 public void tgu(final ICCOperand i_or_x_cc, final GPR rs1, final GPR rs2) { | |
6009 int instruction = 0x99D00000; | |
6010 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6011 instruction |= ((rs1.value() & 0x1f) << 14); | |
6012 instruction |= (rs2.value() & 0x1f); | |
6013 emitInt(instruction); | |
6014 } | |
6015 | |
6016 /** | |
6017 * Pseudo-external assembler syntax: {@code tleu }<i>i_or_x_cc</i>, <i>rs1</i>, <i>rs2</i> | |
6018 * Example disassembly syntax: {@code tleu %icc, %g0 + %g0} | |
6019 * | |
6020 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
6021 */ | |
6022 // Template#: 353, Serial#: 353 | |
6023 public void tleu(final ICCOperand i_or_x_cc, final GPR rs1, final GPR rs2) { | |
6024 int instruction = 0x89D00000; | |
6025 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6026 instruction |= ((rs1.value() & 0x1f) << 14); | |
6027 instruction |= (rs2.value() & 0x1f); | |
6028 emitInt(instruction); | |
6029 } | |
6030 | |
6031 /** | |
6032 * Pseudo-external assembler syntax: {@code tcc }<i>i_or_x_cc</i>, <i>rs1</i>, <i>rs2</i> | |
6033 * Example disassembly syntax: {@code tcc %icc, %g0 + %g0} | |
6034 * | |
6035 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
6036 */ | |
6037 // Template#: 354, Serial#: 354 | |
6038 public void tcc(final ICCOperand i_or_x_cc, final GPR rs1, final GPR rs2) { | |
6039 int instruction = 0x9BD00000; | |
6040 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6041 instruction |= ((rs1.value() & 0x1f) << 14); | |
6042 instruction |= (rs2.value() & 0x1f); | |
6043 emitInt(instruction); | |
6044 } | |
6045 | |
6046 /** | |
6047 * Pseudo-external assembler syntax: {@code tcs }<i>i_or_x_cc</i>, <i>rs1</i>, <i>rs2</i> | |
6048 * Example disassembly syntax: {@code tcs %icc, %g0 + %g0} | |
6049 * | |
6050 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
6051 */ | |
6052 // Template#: 355, Serial#: 355 | |
6053 public void tcs(final ICCOperand i_or_x_cc, final GPR rs1, final GPR rs2) { | |
6054 int instruction = 0x8BD00000; | |
6055 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6056 instruction |= ((rs1.value() & 0x1f) << 14); | |
6057 instruction |= (rs2.value() & 0x1f); | |
6058 emitInt(instruction); | |
6059 } | |
6060 | |
6061 /** | |
6062 * Pseudo-external assembler syntax: {@code tpos }<i>i_or_x_cc</i>, <i>rs1</i>, <i>rs2</i> | |
6063 * Example disassembly syntax: {@code tpos %icc, %g0 + %g0} | |
6064 * | |
6065 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
6066 */ | |
6067 // Template#: 356, Serial#: 356 | |
6068 public void tpos(final ICCOperand i_or_x_cc, final GPR rs1, final GPR rs2) { | |
6069 int instruction = 0x9DD00000; | |
6070 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6071 instruction |= ((rs1.value() & 0x1f) << 14); | |
6072 instruction |= (rs2.value() & 0x1f); | |
6073 emitInt(instruction); | |
6074 } | |
6075 | |
6076 /** | |
6077 * Pseudo-external assembler syntax: {@code tneg }<i>i_or_x_cc</i>, <i>rs1</i>, <i>rs2</i> | |
6078 * Example disassembly syntax: {@code tneg %icc, %g0 + %g0} | |
6079 * | |
6080 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
6081 */ | |
6082 // Template#: 357, Serial#: 357 | |
6083 public void tneg(final ICCOperand i_or_x_cc, final GPR rs1, final GPR rs2) { | |
6084 int instruction = 0x8DD00000; | |
6085 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6086 instruction |= ((rs1.value() & 0x1f) << 14); | |
6087 instruction |= (rs2.value() & 0x1f); | |
6088 emitInt(instruction); | |
6089 } | |
6090 | |
6091 /** | |
6092 * Pseudo-external assembler syntax: {@code tvc }<i>i_or_x_cc</i>, <i>rs1</i>, <i>rs2</i> | |
6093 * Example disassembly syntax: {@code tvc %icc, %g0 + %g0} | |
6094 * | |
6095 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
6096 */ | |
6097 // Template#: 358, Serial#: 358 | |
6098 public void tvc(final ICCOperand i_or_x_cc, final GPR rs1, final GPR rs2) { | |
6099 int instruction = 0x9FD00000; | |
6100 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6101 instruction |= ((rs1.value() & 0x1f) << 14); | |
6102 instruction |= (rs2.value() & 0x1f); | |
6103 emitInt(instruction); | |
6104 } | |
6105 | |
6106 /** | |
6107 * Pseudo-external assembler syntax: {@code tvs }<i>i_or_x_cc</i>, <i>rs1</i>, <i>rs2</i> | |
6108 * Example disassembly syntax: {@code tvs %icc, %g0 + %g0} | |
6109 * | |
6110 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
6111 */ | |
6112 // Template#: 359, Serial#: 359 | |
6113 public void tvs(final ICCOperand i_or_x_cc, final GPR rs1, final GPR rs2) { | |
6114 int instruction = 0x8FD00000; | |
6115 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6116 instruction |= ((rs1.value() & 0x1f) << 14); | |
6117 instruction |= (rs2.value() & 0x1f); | |
6118 emitInt(instruction); | |
6119 } | |
6120 | |
6121 /** | |
6122 * Pseudo-external assembler syntax: {@code ta }<i>i_or_x_cc</i>, <i>rs1</i>, <i>software_trap_number</i> | |
6123 * Example disassembly syntax: {@code ta %icc, %g0 + 0x0} | |
6124 * <p> | |
6125 * Constraint: {@code 0 <= software_trap_number && software_trap_number <= 127}<br /> | |
6126 * | |
6127 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
6128 */ | |
6129 // Template#: 360, Serial#: 360 | |
6130 public void ta(final ICCOperand i_or_x_cc, final GPR rs1, final int software_trap_number) { | |
6131 int instruction = 0x91D02000; | |
6132 checkConstraint(0 <= software_trap_number && software_trap_number <= 127, "0 <= software_trap_number && software_trap_number <= 127"); | |
6133 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6134 instruction |= ((rs1.value() & 0x1f) << 14); | |
6135 instruction |= (software_trap_number & 0x7f); | |
6136 emitInt(instruction); | |
6137 } | |
6138 | |
6139 /** | |
6140 * Pseudo-external assembler syntax: {@code tn }<i>i_or_x_cc</i>, <i>rs1</i>, <i>software_trap_number</i> | |
6141 * Example disassembly syntax: {@code tn %icc, %g0 + 0x0} | |
6142 * <p> | |
6143 * Constraint: {@code 0 <= software_trap_number && software_trap_number <= 127}<br /> | |
6144 * | |
6145 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
6146 */ | |
6147 // Template#: 361, Serial#: 361 | |
6148 public void tn(final ICCOperand i_or_x_cc, final GPR rs1, final int software_trap_number) { | |
6149 int instruction = 0x81D02000; | |
6150 checkConstraint(0 <= software_trap_number && software_trap_number <= 127, "0 <= software_trap_number && software_trap_number <= 127"); | |
6151 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6152 instruction |= ((rs1.value() & 0x1f) << 14); | |
6153 instruction |= (software_trap_number & 0x7f); | |
6154 emitInt(instruction); | |
6155 } | |
6156 | |
6157 /** | |
6158 * Pseudo-external assembler syntax: {@code tne }<i>i_or_x_cc</i>, <i>rs1</i>, <i>software_trap_number</i> | |
6159 * Example disassembly syntax: {@code tne %icc, %g0 + 0x0} | |
6160 * <p> | |
6161 * Constraint: {@code 0 <= software_trap_number && software_trap_number <= 127}<br /> | |
6162 * | |
6163 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
6164 */ | |
6165 // Template#: 362, Serial#: 362 | |
6166 public void tne(final ICCOperand i_or_x_cc, final GPR rs1, final int software_trap_number) { | |
6167 int instruction = 0x93D02000; | |
6168 checkConstraint(0 <= software_trap_number && software_trap_number <= 127, "0 <= software_trap_number && software_trap_number <= 127"); | |
6169 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6170 instruction |= ((rs1.value() & 0x1f) << 14); | |
6171 instruction |= (software_trap_number & 0x7f); | |
6172 emitInt(instruction); | |
6173 } | |
6174 | |
6175 /** | |
6176 * Pseudo-external assembler syntax: {@code te }<i>i_or_x_cc</i>, <i>rs1</i>, <i>software_trap_number</i> | |
6177 * Example disassembly syntax: {@code te %icc, %g0 + 0x0} | |
6178 * <p> | |
6179 * Constraint: {@code 0 <= software_trap_number && software_trap_number <= 127}<br /> | |
6180 * | |
6181 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
6182 */ | |
6183 // Template#: 363, Serial#: 363 | |
6184 public void te(final ICCOperand i_or_x_cc, final GPR rs1, final int software_trap_number) { | |
6185 int instruction = 0x83D02000; | |
6186 checkConstraint(0 <= software_trap_number && software_trap_number <= 127, "0 <= software_trap_number && software_trap_number <= 127"); | |
6187 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6188 instruction |= ((rs1.value() & 0x1f) << 14); | |
6189 instruction |= (software_trap_number & 0x7f); | |
6190 emitInt(instruction); | |
6191 } | |
6192 | |
6193 /** | |
6194 * Pseudo-external assembler syntax: {@code tg }<i>i_or_x_cc</i>, <i>rs1</i>, <i>software_trap_number</i> | |
6195 * Example disassembly syntax: {@code tg %icc, %g0 + 0x0} | |
6196 * <p> | |
6197 * Constraint: {@code 0 <= software_trap_number && software_trap_number <= 127}<br /> | |
6198 * | |
6199 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
6200 */ | |
6201 // Template#: 364, Serial#: 364 | |
6202 public void tg(final ICCOperand i_or_x_cc, final GPR rs1, final int software_trap_number) { | |
6203 int instruction = 0x95D02000; | |
6204 checkConstraint(0 <= software_trap_number && software_trap_number <= 127, "0 <= software_trap_number && software_trap_number <= 127"); | |
6205 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6206 instruction |= ((rs1.value() & 0x1f) << 14); | |
6207 instruction |= (software_trap_number & 0x7f); | |
6208 emitInt(instruction); | |
6209 } | |
6210 | |
6211 /** | |
6212 * Pseudo-external assembler syntax: {@code tle }<i>i_or_x_cc</i>, <i>rs1</i>, <i>software_trap_number</i> | |
6213 * Example disassembly syntax: {@code tle %icc, %g0 + 0x0} | |
6214 * <p> | |
6215 * Constraint: {@code 0 <= software_trap_number && software_trap_number <= 127}<br /> | |
6216 * | |
6217 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
6218 */ | |
6219 // Template#: 365, Serial#: 365 | |
6220 public void tle(final ICCOperand i_or_x_cc, final GPR rs1, final int software_trap_number) { | |
6221 int instruction = 0x85D02000; | |
6222 checkConstraint(0 <= software_trap_number && software_trap_number <= 127, "0 <= software_trap_number && software_trap_number <= 127"); | |
6223 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6224 instruction |= ((rs1.value() & 0x1f) << 14); | |
6225 instruction |= (software_trap_number & 0x7f); | |
6226 emitInt(instruction); | |
6227 } | |
6228 | |
6229 /** | |
6230 * Pseudo-external assembler syntax: {@code tge }<i>i_or_x_cc</i>, <i>rs1</i>, <i>software_trap_number</i> | |
6231 * Example disassembly syntax: {@code tge %icc, %g0 + 0x0} | |
6232 * <p> | |
6233 * Constraint: {@code 0 <= software_trap_number && software_trap_number <= 127}<br /> | |
6234 * | |
6235 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
6236 */ | |
6237 // Template#: 366, Serial#: 366 | |
6238 public void tge(final ICCOperand i_or_x_cc, final GPR rs1, final int software_trap_number) { | |
6239 int instruction = 0x97D02000; | |
6240 checkConstraint(0 <= software_trap_number && software_trap_number <= 127, "0 <= software_trap_number && software_trap_number <= 127"); | |
6241 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6242 instruction |= ((rs1.value() & 0x1f) << 14); | |
6243 instruction |= (software_trap_number & 0x7f); | |
6244 emitInt(instruction); | |
6245 } | |
6246 | |
6247 /** | |
6248 * Pseudo-external assembler syntax: {@code tl }<i>i_or_x_cc</i>, <i>rs1</i>, <i>software_trap_number</i> | |
6249 * Example disassembly syntax: {@code tl %icc, %g0 + 0x0} | |
6250 * <p> | |
6251 * Constraint: {@code 0 <= software_trap_number && software_trap_number <= 127}<br /> | |
6252 * | |
6253 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
6254 */ | |
6255 // Template#: 367, Serial#: 367 | |
6256 public void tl(final ICCOperand i_or_x_cc, final GPR rs1, final int software_trap_number) { | |
6257 int instruction = 0x87D02000; | |
6258 checkConstraint(0 <= software_trap_number && software_trap_number <= 127, "0 <= software_trap_number && software_trap_number <= 127"); | |
6259 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6260 instruction |= ((rs1.value() & 0x1f) << 14); | |
6261 instruction |= (software_trap_number & 0x7f); | |
6262 emitInt(instruction); | |
6263 } | |
6264 | |
6265 /** | |
6266 * Pseudo-external assembler syntax: {@code tgu }<i>i_or_x_cc</i>, <i>rs1</i>, <i>software_trap_number</i> | |
6267 * Example disassembly syntax: {@code tgu %icc, %g0 + 0x0} | |
6268 * <p> | |
6269 * Constraint: {@code 0 <= software_trap_number && software_trap_number <= 127}<br /> | |
6270 * | |
6271 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
6272 */ | |
6273 // Template#: 368, Serial#: 368 | |
6274 public void tgu(final ICCOperand i_or_x_cc, final GPR rs1, final int software_trap_number) { | |
6275 int instruction = 0x99D02000; | |
6276 checkConstraint(0 <= software_trap_number && software_trap_number <= 127, "0 <= software_trap_number && software_trap_number <= 127"); | |
6277 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6278 instruction |= ((rs1.value() & 0x1f) << 14); | |
6279 instruction |= (software_trap_number & 0x7f); | |
6280 emitInt(instruction); | |
6281 } | |
6282 | |
6283 /** | |
6284 * Pseudo-external assembler syntax: {@code tleu }<i>i_or_x_cc</i>, <i>rs1</i>, <i>software_trap_number</i> | |
6285 * Example disassembly syntax: {@code tleu %icc, %g0 + 0x0} | |
6286 * <p> | |
6287 * Constraint: {@code 0 <= software_trap_number && software_trap_number <= 127}<br /> | |
6288 * | |
6289 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
6290 */ | |
6291 // Template#: 369, Serial#: 369 | |
6292 public void tleu(final ICCOperand i_or_x_cc, final GPR rs1, final int software_trap_number) { | |
6293 int instruction = 0x89D02000; | |
6294 checkConstraint(0 <= software_trap_number && software_trap_number <= 127, "0 <= software_trap_number && software_trap_number <= 127"); | |
6295 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6296 instruction |= ((rs1.value() & 0x1f) << 14); | |
6297 instruction |= (software_trap_number & 0x7f); | |
6298 emitInt(instruction); | |
6299 } | |
6300 | |
6301 /** | |
6302 * Pseudo-external assembler syntax: {@code tcc }<i>i_or_x_cc</i>, <i>rs1</i>, <i>software_trap_number</i> | |
6303 * Example disassembly syntax: {@code tcc %icc, %g0 + 0x0} | |
6304 * <p> | |
6305 * Constraint: {@code 0 <= software_trap_number && software_trap_number <= 127}<br /> | |
6306 * | |
6307 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
6308 */ | |
6309 // Template#: 370, Serial#: 370 | |
6310 public void tcc(final ICCOperand i_or_x_cc, final GPR rs1, final int software_trap_number) { | |
6311 int instruction = 0x9BD02000; | |
6312 checkConstraint(0 <= software_trap_number && software_trap_number <= 127, "0 <= software_trap_number && software_trap_number <= 127"); | |
6313 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6314 instruction |= ((rs1.value() & 0x1f) << 14); | |
6315 instruction |= (software_trap_number & 0x7f); | |
6316 emitInt(instruction); | |
6317 } | |
6318 | |
6319 /** | |
6320 * Pseudo-external assembler syntax: {@code tcs }<i>i_or_x_cc</i>, <i>rs1</i>, <i>software_trap_number</i> | |
6321 * Example disassembly syntax: {@code tcs %icc, %g0 + 0x0} | |
6322 * <p> | |
6323 * Constraint: {@code 0 <= software_trap_number && software_trap_number <= 127}<br /> | |
6324 * | |
6325 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
6326 */ | |
6327 // Template#: 371, Serial#: 371 | |
6328 public void tcs(final ICCOperand i_or_x_cc, final GPR rs1, final int software_trap_number) { | |
6329 int instruction = 0x8BD02000; | |
6330 checkConstraint(0 <= software_trap_number && software_trap_number <= 127, "0 <= software_trap_number && software_trap_number <= 127"); | |
6331 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6332 instruction |= ((rs1.value() & 0x1f) << 14); | |
6333 instruction |= (software_trap_number & 0x7f); | |
6334 emitInt(instruction); | |
6335 } | |
6336 | |
6337 /** | |
6338 * Pseudo-external assembler syntax: {@code tpos }<i>i_or_x_cc</i>, <i>rs1</i>, <i>software_trap_number</i> | |
6339 * Example disassembly syntax: {@code tpos %icc, %g0 + 0x0} | |
6340 * <p> | |
6341 * Constraint: {@code 0 <= software_trap_number && software_trap_number <= 127}<br /> | |
6342 * | |
6343 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
6344 */ | |
6345 // Template#: 372, Serial#: 372 | |
6346 public void tpos(final ICCOperand i_or_x_cc, final GPR rs1, final int software_trap_number) { | |
6347 int instruction = 0x9DD02000; | |
6348 checkConstraint(0 <= software_trap_number && software_trap_number <= 127, "0 <= software_trap_number && software_trap_number <= 127"); | |
6349 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6350 instruction |= ((rs1.value() & 0x1f) << 14); | |
6351 instruction |= (software_trap_number & 0x7f); | |
6352 emitInt(instruction); | |
6353 } | |
6354 | |
6355 /** | |
6356 * Pseudo-external assembler syntax: {@code tneg }<i>i_or_x_cc</i>, <i>rs1</i>, <i>software_trap_number</i> | |
6357 * Example disassembly syntax: {@code tneg %icc, %g0 + 0x0} | |
6358 * <p> | |
6359 * Constraint: {@code 0 <= software_trap_number && software_trap_number <= 127}<br /> | |
6360 * | |
6361 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
6362 */ | |
6363 // Template#: 373, Serial#: 373 | |
6364 public void tneg(final ICCOperand i_or_x_cc, final GPR rs1, final int software_trap_number) { | |
6365 int instruction = 0x8DD02000; | |
6366 checkConstraint(0 <= software_trap_number && software_trap_number <= 127, "0 <= software_trap_number && software_trap_number <= 127"); | |
6367 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6368 instruction |= ((rs1.value() & 0x1f) << 14); | |
6369 instruction |= (software_trap_number & 0x7f); | |
6370 emitInt(instruction); | |
6371 } | |
6372 | |
6373 /** | |
6374 * Pseudo-external assembler syntax: {@code tvc }<i>i_or_x_cc</i>, <i>rs1</i>, <i>software_trap_number</i> | |
6375 * Example disassembly syntax: {@code tvc %icc, %g0 + 0x0} | |
6376 * <p> | |
6377 * Constraint: {@code 0 <= software_trap_number && software_trap_number <= 127}<br /> | |
6378 * | |
6379 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
6380 */ | |
6381 // Template#: 374, Serial#: 374 | |
6382 public void tvc(final ICCOperand i_or_x_cc, final GPR rs1, final int software_trap_number) { | |
6383 int instruction = 0x9FD02000; | |
6384 checkConstraint(0 <= software_trap_number && software_trap_number <= 127, "0 <= software_trap_number && software_trap_number <= 127"); | |
6385 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6386 instruction |= ((rs1.value() & 0x1f) << 14); | |
6387 instruction |= (software_trap_number & 0x7f); | |
6388 emitInt(instruction); | |
6389 } | |
6390 | |
6391 /** | |
6392 * Pseudo-external assembler syntax: {@code tvs }<i>i_or_x_cc</i>, <i>rs1</i>, <i>software_trap_number</i> | |
6393 * Example disassembly syntax: {@code tvs %icc, %g0 + 0x0} | |
6394 * <p> | |
6395 * Constraint: {@code 0 <= software_trap_number && software_trap_number <= 127}<br /> | |
6396 * | |
6397 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
6398 */ | |
6399 // Template#: 375, Serial#: 375 | |
6400 public void tvs(final ICCOperand i_or_x_cc, final GPR rs1, final int software_trap_number) { | |
6401 int instruction = 0x8FD02000; | |
6402 checkConstraint(0 <= software_trap_number && software_trap_number <= 127, "0 <= software_trap_number && software_trap_number <= 127"); | |
6403 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6404 instruction |= ((rs1.value() & 0x1f) << 14); | |
6405 instruction |= (software_trap_number & 0x7f); | |
6406 emitInt(instruction); | |
6407 } | |
6408 | |
6409 /** | |
6410 * Pseudo-external assembler syntax: {@code fmovrse }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
6411 * Example disassembly syntax: {@code fmovrse %g0, %f0, %f0} | |
6412 * | |
6413 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.34" | |
6414 */ | |
6415 // Template#: 376, Serial#: 376 | |
6416 public void fmovrse(final GPR rs1, final SFPR rs2, final SFPR rd) { | |
6417 int instruction = 0x81A804A0; | |
6418 instruction |= ((rs1.value() & 0x1f) << 14); | |
6419 instruction |= (rs2.value() & 0x1f); | |
6420 instruction |= ((rd.value() & 0x1f) << 25); | |
6421 emitInt(instruction); | |
6422 } | |
6423 | |
6424 /** | |
6425 * Pseudo-external assembler syntax: {@code fmovrde }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
6426 * Example disassembly syntax: {@code fmovrde %g0, %f0, %f0} | |
6427 * | |
6428 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.34" | |
6429 */ | |
6430 // Template#: 377, Serial#: 377 | |
6431 public void fmovrde(final GPR rs1, final DFPR rs2, final DFPR rd) { | |
6432 int instruction = 0x81A804C0; | |
6433 instruction |= ((rs1.value() & 0x1f) << 14); | |
6434 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
6435 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
6436 emitInt(instruction); | |
6437 } | |
6438 | |
6439 /** | |
6440 * Pseudo-external assembler syntax: {@code fmovrqe }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
6441 * Example disassembly syntax: {@code fmovrqe %g0, %f0, %f0} | |
6442 * | |
6443 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.34" | |
6444 */ | |
6445 // Template#: 378, Serial#: 378 | |
6446 public void fmovrqe(final GPR rs1, final QFPR rs2, final QFPR rd) { | |
6447 int instruction = 0x81A804E0; | |
6448 instruction |= ((rs1.value() & 0x1f) << 14); | |
6449 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
6450 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
6451 emitInt(instruction); | |
6452 } | |
6453 | |
6454 /** | |
6455 * Pseudo-external assembler syntax: {@code movre }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
6456 * Example disassembly syntax: {@code movre %g0, %g0, %g0} | |
6457 * | |
6458 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.36" | |
6459 */ | |
6460 // Template#: 379, Serial#: 379 | |
6461 public void movre(final GPR rs1, final GPR rs2, final GPR rd) { | |
6462 int instruction = 0x81780400; | |
6463 instruction |= ((rs1.value() & 0x1f) << 14); | |
6464 instruction |= (rs2.value() & 0x1f); | |
6465 instruction |= ((rd.value() & 0x1f) << 25); | |
6466 emitInt(instruction); | |
6467 } | |
6468 | |
6469 /** | |
6470 * Pseudo-external assembler syntax: {@code movre }<i>rs1</i>, <i>simm10</i>, <i>rd</i> | |
6471 * Example disassembly syntax: {@code movre %g0, -512, %g0} | |
6472 * <p> | |
6473 * Constraint: {@code -512 <= simm10 && simm10 <= 511}<br /> | |
6474 * | |
6475 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.36" | |
6476 */ | |
6477 // Template#: 380, Serial#: 380 | |
6478 public void movre(final GPR rs1, final int simm10, final GPR rd) { | |
6479 int instruction = 0x81782400; | |
6480 checkConstraint(-512 <= simm10 && simm10 <= 511, "-512 <= simm10 && simm10 <= 511"); | |
6481 instruction |= ((rs1.value() & 0x1f) << 14); | |
6482 instruction |= (simm10 & 0x3ff); | |
6483 instruction |= ((rd.value() & 0x1f) << 25); | |
6484 emitInt(instruction); | |
6485 } | |
6486 | |
6487 /** | |
6488 * Pseudo-external assembler syntax: {@code fmovrslez }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
6489 * Example disassembly syntax: {@code fmovrslez %g0, %f0, %f0} | |
6490 * | |
6491 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.34" | |
6492 */ | |
6493 // Template#: 381, Serial#: 381 | |
6494 public void fmovrslez(final GPR rs1, final SFPR rs2, final SFPR rd) { | |
6495 int instruction = 0x81A808A0; | |
6496 instruction |= ((rs1.value() & 0x1f) << 14); | |
6497 instruction |= (rs2.value() & 0x1f); | |
6498 instruction |= ((rd.value() & 0x1f) << 25); | |
6499 emitInt(instruction); | |
6500 } | |
6501 | |
6502 /** | |
6503 * Pseudo-external assembler syntax: {@code fmovrdlez }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
6504 * Example disassembly syntax: {@code fmovrdlez %g0, %f0, %f0} | |
6505 * | |
6506 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.34" | |
6507 */ | |
6508 // Template#: 382, Serial#: 382 | |
6509 public void fmovrdlez(final GPR rs1, final DFPR rs2, final DFPR rd) { | |
6510 int instruction = 0x81A808C0; | |
6511 instruction |= ((rs1.value() & 0x1f) << 14); | |
6512 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
6513 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
6514 emitInt(instruction); | |
6515 } | |
6516 | |
6517 /** | |
6518 * Pseudo-external assembler syntax: {@code fmovrqlez }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
6519 * Example disassembly syntax: {@code fmovrqlez %g0, %f0, %f0} | |
6520 * | |
6521 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.34" | |
6522 */ | |
6523 // Template#: 383, Serial#: 383 | |
6524 public void fmovrqlez(final GPR rs1, final QFPR rs2, final QFPR rd) { | |
6525 int instruction = 0x81A808E0; | |
6526 instruction |= ((rs1.value() & 0x1f) << 14); | |
6527 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
6528 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
6529 emitInt(instruction); | |
6530 } | |
6531 | |
6532 /** | |
6533 * Pseudo-external assembler syntax: {@code movrlez }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
6534 * Example disassembly syntax: {@code movrlez %g0, %g0, %g0} | |
6535 * | |
6536 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.36" | |
6537 */ | |
6538 // Template#: 384, Serial#: 384 | |
6539 public void movrlez(final GPR rs1, final GPR rs2, final GPR rd) { | |
6540 int instruction = 0x81780800; | |
6541 instruction |= ((rs1.value() & 0x1f) << 14); | |
6542 instruction |= (rs2.value() & 0x1f); | |
6543 instruction |= ((rd.value() & 0x1f) << 25); | |
6544 emitInt(instruction); | |
6545 } | |
6546 | |
6547 /** | |
6548 * Pseudo-external assembler syntax: {@code movrlez }<i>rs1</i>, <i>simm10</i>, <i>rd</i> | |
6549 * Example disassembly syntax: {@code movrlez %g0, -512, %g0} | |
6550 * <p> | |
6551 * Constraint: {@code -512 <= simm10 && simm10 <= 511}<br /> | |
6552 * | |
6553 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.36" | |
6554 */ | |
6555 // Template#: 385, Serial#: 385 | |
6556 public void movrlez(final GPR rs1, final int simm10, final GPR rd) { | |
6557 int instruction = 0x81782800; | |
6558 checkConstraint(-512 <= simm10 && simm10 <= 511, "-512 <= simm10 && simm10 <= 511"); | |
6559 instruction |= ((rs1.value() & 0x1f) << 14); | |
6560 instruction |= (simm10 & 0x3ff); | |
6561 instruction |= ((rd.value() & 0x1f) << 25); | |
6562 emitInt(instruction); | |
6563 } | |
6564 | |
6565 /** | |
6566 * Pseudo-external assembler syntax: {@code fmovrslz }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
6567 * Example disassembly syntax: {@code fmovrslz %g0, %f0, %f0} | |
6568 * | |
6569 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.34" | |
6570 */ | |
6571 // Template#: 386, Serial#: 386 | |
6572 public void fmovrslz(final GPR rs1, final SFPR rs2, final SFPR rd) { | |
6573 int instruction = 0x81A80CA0; | |
6574 instruction |= ((rs1.value() & 0x1f) << 14); | |
6575 instruction |= (rs2.value() & 0x1f); | |
6576 instruction |= ((rd.value() & 0x1f) << 25); | |
6577 emitInt(instruction); | |
6578 } | |
6579 | |
6580 /** | |
6581 * Pseudo-external assembler syntax: {@code fmovrdlz }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
6582 * Example disassembly syntax: {@code fmovrdlz %g0, %f0, %f0} | |
6583 * | |
6584 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.34" | |
6585 */ | |
6586 // Template#: 387, Serial#: 387 | |
6587 public void fmovrdlz(final GPR rs1, final DFPR rs2, final DFPR rd) { | |
6588 int instruction = 0x81A80CC0; | |
6589 instruction |= ((rs1.value() & 0x1f) << 14); | |
6590 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
6591 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
6592 emitInt(instruction); | |
6593 } | |
6594 | |
6595 /** | |
6596 * Pseudo-external assembler syntax: {@code fmovrqlz }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
6597 * Example disassembly syntax: {@code fmovrqlz %g0, %f0, %f0} | |
6598 * | |
6599 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.34" | |
6600 */ | |
6601 // Template#: 388, Serial#: 388 | |
6602 public void fmovrqlz(final GPR rs1, final QFPR rs2, final QFPR rd) { | |
6603 int instruction = 0x81A80CE0; | |
6604 instruction |= ((rs1.value() & 0x1f) << 14); | |
6605 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
6606 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
6607 emitInt(instruction); | |
6608 } | |
6609 | |
6610 /** | |
6611 * Pseudo-external assembler syntax: {@code movrlz }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
6612 * Example disassembly syntax: {@code movrlz %g0, %g0, %g0} | |
6613 * | |
6614 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.36" | |
6615 */ | |
6616 // Template#: 389, Serial#: 389 | |
6617 public void movrlz(final GPR rs1, final GPR rs2, final GPR rd) { | |
6618 int instruction = 0x81780C00; | |
6619 instruction |= ((rs1.value() & 0x1f) << 14); | |
6620 instruction |= (rs2.value() & 0x1f); | |
6621 instruction |= ((rd.value() & 0x1f) << 25); | |
6622 emitInt(instruction); | |
6623 } | |
6624 | |
6625 /** | |
6626 * Pseudo-external assembler syntax: {@code movrlz }<i>rs1</i>, <i>simm10</i>, <i>rd</i> | |
6627 * Example disassembly syntax: {@code movrlz %g0, -512, %g0} | |
6628 * <p> | |
6629 * Constraint: {@code -512 <= simm10 && simm10 <= 511}<br /> | |
6630 * | |
6631 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.36" | |
6632 */ | |
6633 // Template#: 390, Serial#: 390 | |
6634 public void movrlz(final GPR rs1, final int simm10, final GPR rd) { | |
6635 int instruction = 0x81782C00; | |
6636 checkConstraint(-512 <= simm10 && simm10 <= 511, "-512 <= simm10 && simm10 <= 511"); | |
6637 instruction |= ((rs1.value() & 0x1f) << 14); | |
6638 instruction |= (simm10 & 0x3ff); | |
6639 instruction |= ((rd.value() & 0x1f) << 25); | |
6640 emitInt(instruction); | |
6641 } | |
6642 | |
6643 /** | |
6644 * Pseudo-external assembler syntax: {@code fmovrsne }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
6645 * Example disassembly syntax: {@code fmovrsne %g0, %f0, %f0} | |
6646 * | |
6647 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.34" | |
6648 */ | |
6649 // Template#: 391, Serial#: 391 | |
6650 public void fmovrsne(final GPR rs1, final SFPR rs2, final SFPR rd) { | |
6651 int instruction = 0x81A814A0; | |
6652 instruction |= ((rs1.value() & 0x1f) << 14); | |
6653 instruction |= (rs2.value() & 0x1f); | |
6654 instruction |= ((rd.value() & 0x1f) << 25); | |
6655 emitInt(instruction); | |
6656 } | |
6657 | |
6658 /** | |
6659 * Pseudo-external assembler syntax: {@code fmovrdne }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
6660 * Example disassembly syntax: {@code fmovrdne %g0, %f0, %f0} | |
6661 * | |
6662 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.34" | |
6663 */ | |
6664 // Template#: 392, Serial#: 392 | |
6665 public void fmovrdne(final GPR rs1, final DFPR rs2, final DFPR rd) { | |
6666 int instruction = 0x81A814C0; | |
6667 instruction |= ((rs1.value() & 0x1f) << 14); | |
6668 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
6669 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
6670 emitInt(instruction); | |
6671 } | |
6672 | |
6673 /** | |
6674 * Pseudo-external assembler syntax: {@code fmovrqne }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
6675 * Example disassembly syntax: {@code fmovrqne %g0, %f0, %f0} | |
6676 * | |
6677 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.34" | |
6678 */ | |
6679 // Template#: 393, Serial#: 393 | |
6680 public void fmovrqne(final GPR rs1, final QFPR rs2, final QFPR rd) { | |
6681 int instruction = 0x81A814E0; | |
6682 instruction |= ((rs1.value() & 0x1f) << 14); | |
6683 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
6684 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
6685 emitInt(instruction); | |
6686 } | |
6687 | |
6688 /** | |
6689 * Pseudo-external assembler syntax: {@code movrne }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
6690 * Example disassembly syntax: {@code movrne %g0, %g0, %g0} | |
6691 * | |
6692 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.36" | |
6693 */ | |
6694 // Template#: 394, Serial#: 394 | |
6695 public void movrne(final GPR rs1, final GPR rs2, final GPR rd) { | |
6696 int instruction = 0x81781400; | |
6697 instruction |= ((rs1.value() & 0x1f) << 14); | |
6698 instruction |= (rs2.value() & 0x1f); | |
6699 instruction |= ((rd.value() & 0x1f) << 25); | |
6700 emitInt(instruction); | |
6701 } | |
6702 | |
6703 /** | |
6704 * Pseudo-external assembler syntax: {@code movrne }<i>rs1</i>, <i>simm10</i>, <i>rd</i> | |
6705 * Example disassembly syntax: {@code movrne %g0, -512, %g0} | |
6706 * <p> | |
6707 * Constraint: {@code -512 <= simm10 && simm10 <= 511}<br /> | |
6708 * | |
6709 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.36" | |
6710 */ | |
6711 // Template#: 395, Serial#: 395 | |
6712 public void movrne(final GPR rs1, final int simm10, final GPR rd) { | |
6713 int instruction = 0x81783400; | |
6714 checkConstraint(-512 <= simm10 && simm10 <= 511, "-512 <= simm10 && simm10 <= 511"); | |
6715 instruction |= ((rs1.value() & 0x1f) << 14); | |
6716 instruction |= (simm10 & 0x3ff); | |
6717 instruction |= ((rd.value() & 0x1f) << 25); | |
6718 emitInt(instruction); | |
6719 } | |
6720 | |
6721 /** | |
6722 * Pseudo-external assembler syntax: {@code fmovrsgz }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
6723 * Example disassembly syntax: {@code fmovrsgz %g0, %f0, %f0} | |
6724 * | |
6725 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.34" | |
6726 */ | |
6727 // Template#: 396, Serial#: 396 | |
6728 public void fmovrsgz(final GPR rs1, final SFPR rs2, final SFPR rd) { | |
6729 int instruction = 0x81A818A0; | |
6730 instruction |= ((rs1.value() & 0x1f) << 14); | |
6731 instruction |= (rs2.value() & 0x1f); | |
6732 instruction |= ((rd.value() & 0x1f) << 25); | |
6733 emitInt(instruction); | |
6734 } | |
6735 | |
6736 /** | |
6737 * Pseudo-external assembler syntax: {@code fmovrdgz }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
6738 * Example disassembly syntax: {@code fmovrdgz %g0, %f0, %f0} | |
6739 * | |
6740 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.34" | |
6741 */ | |
6742 // Template#: 397, Serial#: 397 | |
6743 public void fmovrdgz(final GPR rs1, final DFPR rs2, final DFPR rd) { | |
6744 int instruction = 0x81A818C0; | |
6745 instruction |= ((rs1.value() & 0x1f) << 14); | |
6746 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
6747 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
6748 emitInt(instruction); | |
6749 } | |
6750 | |
6751 /** | |
6752 * Pseudo-external assembler syntax: {@code fmovrqgz }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
6753 * Example disassembly syntax: {@code fmovrqgz %g0, %f0, %f0} | |
6754 * | |
6755 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.34" | |
6756 */ | |
6757 // Template#: 398, Serial#: 398 | |
6758 public void fmovrqgz(final GPR rs1, final QFPR rs2, final QFPR rd) { | |
6759 int instruction = 0x81A818E0; | |
6760 instruction |= ((rs1.value() & 0x1f) << 14); | |
6761 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
6762 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
6763 emitInt(instruction); | |
6764 } | |
6765 | |
6766 /** | |
6767 * Pseudo-external assembler syntax: {@code movrgz }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
6768 * Example disassembly syntax: {@code movrgz %g0, %g0, %g0} | |
6769 * | |
6770 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.36" | |
6771 */ | |
6772 // Template#: 399, Serial#: 399 | |
6773 public void movrgz(final GPR rs1, final GPR rs2, final GPR rd) { | |
6774 int instruction = 0x81781800; | |
6775 instruction |= ((rs1.value() & 0x1f) << 14); | |
6776 instruction |= (rs2.value() & 0x1f); | |
6777 instruction |= ((rd.value() & 0x1f) << 25); | |
6778 emitInt(instruction); | |
6779 } | |
6780 | |
6781 /** | |
6782 * Pseudo-external assembler syntax: {@code movrgz }<i>rs1</i>, <i>simm10</i>, <i>rd</i> | |
6783 * Example disassembly syntax: {@code movrgz %g0, -512, %g0} | |
6784 * <p> | |
6785 * Constraint: {@code -512 <= simm10 && simm10 <= 511}<br /> | |
6786 * | |
6787 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.36" | |
6788 */ | |
6789 // Template#: 400, Serial#: 400 | |
6790 public void movrgz(final GPR rs1, final int simm10, final GPR rd) { | |
6791 int instruction = 0x81783800; | |
6792 checkConstraint(-512 <= simm10 && simm10 <= 511, "-512 <= simm10 && simm10 <= 511"); | |
6793 instruction |= ((rs1.value() & 0x1f) << 14); | |
6794 instruction |= (simm10 & 0x3ff); | |
6795 instruction |= ((rd.value() & 0x1f) << 25); | |
6796 emitInt(instruction); | |
6797 } | |
6798 | |
6799 /** | |
6800 * Pseudo-external assembler syntax: {@code fmovrsgez }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
6801 * Example disassembly syntax: {@code fmovrsgez %g0, %f0, %f0} | |
6802 * | |
6803 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.34" | |
6804 */ | |
6805 // Template#: 401, Serial#: 401 | |
6806 public void fmovrsgez(final GPR rs1, final SFPR rs2, final SFPR rd) { | |
6807 int instruction = 0x81A81CA0; | |
6808 instruction |= ((rs1.value() & 0x1f) << 14); | |
6809 instruction |= (rs2.value() & 0x1f); | |
6810 instruction |= ((rd.value() & 0x1f) << 25); | |
6811 emitInt(instruction); | |
6812 } | |
6813 | |
6814 /** | |
6815 * Pseudo-external assembler syntax: {@code fmovrdgez }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
6816 * Example disassembly syntax: {@code fmovrdgez %g0, %f0, %f0} | |
6817 * | |
6818 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.34" | |
6819 */ | |
6820 // Template#: 402, Serial#: 402 | |
6821 public void fmovrdgez(final GPR rs1, final DFPR rs2, final DFPR rd) { | |
6822 int instruction = 0x81A81CC0; | |
6823 instruction |= ((rs1.value() & 0x1f) << 14); | |
6824 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
6825 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
6826 emitInt(instruction); | |
6827 } | |
6828 | |
6829 /** | |
6830 * Pseudo-external assembler syntax: {@code fmovrqgez }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
6831 * Example disassembly syntax: {@code fmovrqgez %g0, %f0, %f0} | |
6832 * | |
6833 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.34" | |
6834 */ | |
6835 // Template#: 403, Serial#: 403 | |
6836 public void fmovrqgez(final GPR rs1, final QFPR rs2, final QFPR rd) { | |
6837 int instruction = 0x81A81CE0; | |
6838 instruction |= ((rs1.value() & 0x1f) << 14); | |
6839 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
6840 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
6841 emitInt(instruction); | |
6842 } | |
6843 | |
6844 /** | |
6845 * Pseudo-external assembler syntax: {@code movrgez }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
6846 * Example disassembly syntax: {@code movrgez %g0, %g0, %g0} | |
6847 * | |
6848 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.36" | |
6849 */ | |
6850 // Template#: 404, Serial#: 404 | |
6851 public void movrgez(final GPR rs1, final GPR rs2, final GPR rd) { | |
6852 int instruction = 0x81781C00; | |
6853 instruction |= ((rs1.value() & 0x1f) << 14); | |
6854 instruction |= (rs2.value() & 0x1f); | |
6855 instruction |= ((rd.value() & 0x1f) << 25); | |
6856 emitInt(instruction); | |
6857 } | |
6858 | |
6859 /** | |
6860 * Pseudo-external assembler syntax: {@code movrgez }<i>rs1</i>, <i>simm10</i>, <i>rd</i> | |
6861 * Example disassembly syntax: {@code movrgez %g0, -512, %g0} | |
6862 * <p> | |
6863 * Constraint: {@code -512 <= simm10 && simm10 <= 511}<br /> | |
6864 * | |
6865 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.36" | |
6866 */ | |
6867 // Template#: 405, Serial#: 405 | |
6868 public void movrgez(final GPR rs1, final int simm10, final GPR rd) { | |
6869 int instruction = 0x81783C00; | |
6870 checkConstraint(-512 <= simm10 && simm10 <= 511, "-512 <= simm10 && simm10 <= 511"); | |
6871 instruction |= ((rs1.value() & 0x1f) << 14); | |
6872 instruction |= (simm10 & 0x3ff); | |
6873 instruction |= ((rd.value() & 0x1f) << 25); | |
6874 emitInt(instruction); | |
6875 } | |
6876 | |
6877 /** | |
6878 * Pseudo-external assembler syntax: {@code fmovsa }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
6879 * Example disassembly syntax: {@code fmovsa %icc, %f0, %f0} | |
6880 * | |
6881 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
6882 */ | |
6883 // Template#: 406, Serial#: 406 | |
6884 public void fmovsa(final ICCOperand i_or_x_cc, final SFPR rs2, final SFPR rd) { | |
6885 int instruction = 0x81AA2020; | |
6886 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6887 instruction |= (rs2.value() & 0x1f); | |
6888 instruction |= ((rd.value() & 0x1f) << 25); | |
6889 emitInt(instruction); | |
6890 } | |
6891 | |
6892 /** | |
6893 * Pseudo-external assembler syntax: {@code fmovda }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
6894 * Example disassembly syntax: {@code fmovda %icc, %f0, %f0} | |
6895 * | |
6896 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
6897 */ | |
6898 // Template#: 407, Serial#: 407 | |
6899 public void fmovda(final ICCOperand i_or_x_cc, final DFPR rs2, final DFPR rd) { | |
6900 int instruction = 0x81AA2040; | |
6901 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6902 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
6903 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
6904 emitInt(instruction); | |
6905 } | |
6906 | |
6907 /** | |
6908 * Pseudo-external assembler syntax: {@code fmovqa }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
6909 * Example disassembly syntax: {@code fmovqa %icc, %f0, %f0} | |
6910 * | |
6911 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
6912 */ | |
6913 // Template#: 408, Serial#: 408 | |
6914 public void fmovqa(final ICCOperand i_or_x_cc, final QFPR rs2, final QFPR rd) { | |
6915 int instruction = 0x81AA2060; | |
6916 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6917 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
6918 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
6919 emitInt(instruction); | |
6920 } | |
6921 | |
6922 /** | |
6923 * Pseudo-external assembler syntax: {@code mova }<i>i_or_x_cc</i>, <i>simm11</i>, <i>rd</i> | |
6924 * Example disassembly syntax: {@code mova %icc, -1024, %g0} | |
6925 * <p> | |
6926 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
6927 * | |
6928 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
6929 */ | |
6930 // Template#: 409, Serial#: 409 | |
6931 public void mova(final ICCOperand i_or_x_cc, final int simm11, final GPR rd) { | |
6932 int instruction = 0x81662000; | |
6933 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
6934 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6935 instruction |= (simm11 & 0x7ff); | |
6936 instruction |= ((rd.value() & 0x1f) << 25); | |
6937 emitInt(instruction); | |
6938 } | |
6939 | |
6940 /** | |
6941 * Pseudo-external assembler syntax: {@code mova }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
6942 * Example disassembly syntax: {@code mova %icc, %g0, %g0} | |
6943 * | |
6944 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
6945 */ | |
6946 // Template#: 410, Serial#: 410 | |
6947 public void mova(final ICCOperand i_or_x_cc, final GPR rs2, final GPR rd) { | |
6948 int instruction = 0x81660000; | |
6949 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6950 instruction |= (rs2.value() & 0x1f); | |
6951 instruction |= ((rd.value() & 0x1f) << 25); | |
6952 emitInt(instruction); | |
6953 } | |
6954 | |
6955 /** | |
6956 * Pseudo-external assembler syntax: {@code fmovsn }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
6957 * Example disassembly syntax: {@code fmovsn %icc, %f0, %f0} | |
6958 * | |
6959 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
6960 */ | |
6961 // Template#: 411, Serial#: 411 | |
6962 public void fmovsn(final ICCOperand i_or_x_cc, final SFPR rs2, final SFPR rd) { | |
6963 int instruction = 0x81A82020; | |
6964 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6965 instruction |= (rs2.value() & 0x1f); | |
6966 instruction |= ((rd.value() & 0x1f) << 25); | |
6967 emitInt(instruction); | |
6968 } | |
6969 | |
6970 /** | |
6971 * Pseudo-external assembler syntax: {@code fmovdn }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
6972 * Example disassembly syntax: {@code fmovdn %icc, %f0, %f0} | |
6973 * | |
6974 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
6975 */ | |
6976 // Template#: 412, Serial#: 412 | |
6977 public void fmovdn(final ICCOperand i_or_x_cc, final DFPR rs2, final DFPR rd) { | |
6978 int instruction = 0x81A82040; | |
6979 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6980 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
6981 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
6982 emitInt(instruction); | |
6983 } | |
6984 | |
6985 /** | |
6986 * Pseudo-external assembler syntax: {@code fmovqn }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
6987 * Example disassembly syntax: {@code fmovqn %icc, %f0, %f0} | |
6988 * | |
6989 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
6990 */ | |
6991 // Template#: 413, Serial#: 413 | |
6992 public void fmovqn(final ICCOperand i_or_x_cc, final QFPR rs2, final QFPR rd) { | |
6993 int instruction = 0x81A82060; | |
6994 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
6995 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
6996 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
6997 emitInt(instruction); | |
6998 } | |
6999 | |
7000 /** | |
7001 * Pseudo-external assembler syntax: {@code movn }<i>i_or_x_cc</i>, <i>simm11</i>, <i>rd</i> | |
7002 * Example disassembly syntax: {@code movn %icc, -1024, %g0} | |
7003 * <p> | |
7004 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
7005 * | |
7006 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7007 */ | |
7008 // Template#: 414, Serial#: 414 | |
7009 public void movn(final ICCOperand i_or_x_cc, final int simm11, final GPR rd) { | |
7010 int instruction = 0x81642000; | |
7011 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
7012 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7013 instruction |= (simm11 & 0x7ff); | |
7014 instruction |= ((rd.value() & 0x1f) << 25); | |
7015 emitInt(instruction); | |
7016 } | |
7017 | |
7018 /** | |
7019 * Pseudo-external assembler syntax: {@code movn }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7020 * Example disassembly syntax: {@code movn %icc, %g0, %g0} | |
7021 * | |
7022 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7023 */ | |
7024 // Template#: 415, Serial#: 415 | |
7025 public void movn(final ICCOperand i_or_x_cc, final GPR rs2, final GPR rd) { | |
7026 int instruction = 0x81640000; | |
7027 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7028 instruction |= (rs2.value() & 0x1f); | |
7029 instruction |= ((rd.value() & 0x1f) << 25); | |
7030 emitInt(instruction); | |
7031 } | |
7032 | |
7033 /** | |
7034 * Pseudo-external assembler syntax: {@code fmovsne }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7035 * Example disassembly syntax: {@code fmovsne %icc, %f0, %f0} | |
7036 * | |
7037 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7038 */ | |
7039 // Template#: 416, Serial#: 416 | |
7040 public void fmovsne(final ICCOperand i_or_x_cc, final SFPR rs2, final SFPR rd) { | |
7041 int instruction = 0x81AA6020; | |
7042 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7043 instruction |= (rs2.value() & 0x1f); | |
7044 instruction |= ((rd.value() & 0x1f) << 25); | |
7045 emitInt(instruction); | |
7046 } | |
7047 | |
7048 /** | |
7049 * Pseudo-external assembler syntax: {@code fmovdne }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7050 * Example disassembly syntax: {@code fmovdne %icc, %f0, %f0} | |
7051 * | |
7052 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7053 */ | |
7054 // Template#: 417, Serial#: 417 | |
7055 public void fmovdne(final ICCOperand i_or_x_cc, final DFPR rs2, final DFPR rd) { | |
7056 int instruction = 0x81AA6040; | |
7057 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7058 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
7059 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
7060 emitInt(instruction); | |
7061 } | |
7062 | |
7063 /** | |
7064 * Pseudo-external assembler syntax: {@code fmovqne }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7065 * Example disassembly syntax: {@code fmovqne %icc, %f0, %f0} | |
7066 * | |
7067 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7068 */ | |
7069 // Template#: 418, Serial#: 418 | |
7070 public void fmovqne(final ICCOperand i_or_x_cc, final QFPR rs2, final QFPR rd) { | |
7071 int instruction = 0x81AA6060; | |
7072 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7073 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
7074 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
7075 emitInt(instruction); | |
7076 } | |
7077 | |
7078 /** | |
7079 * Pseudo-external assembler syntax: {@code movne }<i>i_or_x_cc</i>, <i>simm11</i>, <i>rd</i> | |
7080 * Example disassembly syntax: {@code movne %icc, -1024, %g0} | |
7081 * <p> | |
7082 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
7083 * | |
7084 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7085 */ | |
7086 // Template#: 419, Serial#: 419 | |
7087 public void movne(final ICCOperand i_or_x_cc, final int simm11, final GPR rd) { | |
7088 int instruction = 0x81666000; | |
7089 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
7090 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7091 instruction |= (simm11 & 0x7ff); | |
7092 instruction |= ((rd.value() & 0x1f) << 25); | |
7093 emitInt(instruction); | |
7094 } | |
7095 | |
7096 /** | |
7097 * Pseudo-external assembler syntax: {@code movne }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7098 * Example disassembly syntax: {@code movne %icc, %g0, %g0} | |
7099 * | |
7100 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7101 */ | |
7102 // Template#: 420, Serial#: 420 | |
7103 public void movne(final ICCOperand i_or_x_cc, final GPR rs2, final GPR rd) { | |
7104 int instruction = 0x81664000; | |
7105 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7106 instruction |= (rs2.value() & 0x1f); | |
7107 instruction |= ((rd.value() & 0x1f) << 25); | |
7108 emitInt(instruction); | |
7109 } | |
7110 | |
7111 /** | |
7112 * Pseudo-external assembler syntax: {@code fmovse }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7113 * Example disassembly syntax: {@code fmovse %icc, %f0, %f0} | |
7114 * | |
7115 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7116 */ | |
7117 // Template#: 421, Serial#: 421 | |
7118 public void fmovse(final ICCOperand i_or_x_cc, final SFPR rs2, final SFPR rd) { | |
7119 int instruction = 0x81A86020; | |
7120 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7121 instruction |= (rs2.value() & 0x1f); | |
7122 instruction |= ((rd.value() & 0x1f) << 25); | |
7123 emitInt(instruction); | |
7124 } | |
7125 | |
7126 /** | |
7127 * Pseudo-external assembler syntax: {@code fmovde }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7128 * Example disassembly syntax: {@code fmovde %icc, %f0, %f0} | |
7129 * | |
7130 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7131 */ | |
7132 // Template#: 422, Serial#: 422 | |
7133 public void fmovde(final ICCOperand i_or_x_cc, final DFPR rs2, final DFPR rd) { | |
7134 int instruction = 0x81A86040; | |
7135 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7136 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
7137 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
7138 emitInt(instruction); | |
7139 } | |
7140 | |
7141 /** | |
7142 * Pseudo-external assembler syntax: {@code fmovqe }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7143 * Example disassembly syntax: {@code fmovqe %icc, %f0, %f0} | |
7144 * | |
7145 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7146 */ | |
7147 // Template#: 423, Serial#: 423 | |
7148 public void fmovqe(final ICCOperand i_or_x_cc, final QFPR rs2, final QFPR rd) { | |
7149 int instruction = 0x81A86060; | |
7150 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7151 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
7152 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
7153 emitInt(instruction); | |
7154 } | |
7155 | |
7156 /** | |
7157 * Pseudo-external assembler syntax: {@code move }<i>i_or_x_cc</i>, <i>simm11</i>, <i>rd</i> | |
7158 * Example disassembly syntax: {@code move %icc, -1024, %g0} | |
7159 * <p> | |
7160 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
7161 * | |
7162 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7163 */ | |
7164 // Template#: 424, Serial#: 424 | |
7165 public void move(final ICCOperand i_or_x_cc, final int simm11, final GPR rd) { | |
7166 int instruction = 0x81646000; | |
7167 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
7168 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7169 instruction |= (simm11 & 0x7ff); | |
7170 instruction |= ((rd.value() & 0x1f) << 25); | |
7171 emitInt(instruction); | |
7172 } | |
7173 | |
7174 /** | |
7175 * Pseudo-external assembler syntax: {@code move }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7176 * Example disassembly syntax: {@code move %icc, %g0, %g0} | |
7177 * | |
7178 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7179 */ | |
7180 // Template#: 425, Serial#: 425 | |
7181 public void move(final ICCOperand i_or_x_cc, final GPR rs2, final GPR rd) { | |
7182 int instruction = 0x81644000; | |
7183 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7184 instruction |= (rs2.value() & 0x1f); | |
7185 instruction |= ((rd.value() & 0x1f) << 25); | |
7186 emitInt(instruction); | |
7187 } | |
7188 | |
7189 /** | |
7190 * Pseudo-external assembler syntax: {@code fmovsg }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7191 * Example disassembly syntax: {@code fmovsg %icc, %f0, %f0} | |
7192 * | |
7193 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7194 */ | |
7195 // Template#: 426, Serial#: 426 | |
7196 public void fmovsg(final ICCOperand i_or_x_cc, final SFPR rs2, final SFPR rd) { | |
7197 int instruction = 0x81AAA020; | |
7198 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7199 instruction |= (rs2.value() & 0x1f); | |
7200 instruction |= ((rd.value() & 0x1f) << 25); | |
7201 emitInt(instruction); | |
7202 } | |
7203 | |
7204 /** | |
7205 * Pseudo-external assembler syntax: {@code fmovdg }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7206 * Example disassembly syntax: {@code fmovdg %icc, %f0, %f0} | |
7207 * | |
7208 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7209 */ | |
7210 // Template#: 427, Serial#: 427 | |
7211 public void fmovdg(final ICCOperand i_or_x_cc, final DFPR rs2, final DFPR rd) { | |
7212 int instruction = 0x81AAA040; | |
7213 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7214 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
7215 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
7216 emitInt(instruction); | |
7217 } | |
7218 | |
7219 /** | |
7220 * Pseudo-external assembler syntax: {@code fmovqg }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7221 * Example disassembly syntax: {@code fmovqg %icc, %f0, %f0} | |
7222 * | |
7223 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7224 */ | |
7225 // Template#: 428, Serial#: 428 | |
7226 public void fmovqg(final ICCOperand i_or_x_cc, final QFPR rs2, final QFPR rd) { | |
7227 int instruction = 0x81AAA060; | |
7228 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7229 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
7230 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
7231 emitInt(instruction); | |
7232 } | |
7233 | |
7234 /** | |
7235 * Pseudo-external assembler syntax: {@code movg }<i>i_or_x_cc</i>, <i>simm11</i>, <i>rd</i> | |
7236 * Example disassembly syntax: {@code movg %icc, -1024, %g0} | |
7237 * <p> | |
7238 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
7239 * | |
7240 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7241 */ | |
7242 // Template#: 429, Serial#: 429 | |
7243 public void movg(final ICCOperand i_or_x_cc, final int simm11, final GPR rd) { | |
7244 int instruction = 0x8166A000; | |
7245 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
7246 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7247 instruction |= (simm11 & 0x7ff); | |
7248 instruction |= ((rd.value() & 0x1f) << 25); | |
7249 emitInt(instruction); | |
7250 } | |
7251 | |
7252 /** | |
7253 * Pseudo-external assembler syntax: {@code movg }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7254 * Example disassembly syntax: {@code movg %icc, %g0, %g0} | |
7255 * | |
7256 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7257 */ | |
7258 // Template#: 430, Serial#: 430 | |
7259 public void movg(final ICCOperand i_or_x_cc, final GPR rs2, final GPR rd) { | |
7260 int instruction = 0x81668000; | |
7261 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7262 instruction |= (rs2.value() & 0x1f); | |
7263 instruction |= ((rd.value() & 0x1f) << 25); | |
7264 emitInt(instruction); | |
7265 } | |
7266 | |
7267 /** | |
7268 * Pseudo-external assembler syntax: {@code fmovsle }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7269 * Example disassembly syntax: {@code fmovsle %icc, %f0, %f0} | |
7270 * | |
7271 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7272 */ | |
7273 // Template#: 431, Serial#: 431 | |
7274 public void fmovsle(final ICCOperand i_or_x_cc, final SFPR rs2, final SFPR rd) { | |
7275 int instruction = 0x81A8A020; | |
7276 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7277 instruction |= (rs2.value() & 0x1f); | |
7278 instruction |= ((rd.value() & 0x1f) << 25); | |
7279 emitInt(instruction); | |
7280 } | |
7281 | |
7282 /** | |
7283 * Pseudo-external assembler syntax: {@code fmovdle }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7284 * Example disassembly syntax: {@code fmovdle %icc, %f0, %f0} | |
7285 * | |
7286 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7287 */ | |
7288 // Template#: 432, Serial#: 432 | |
7289 public void fmovdle(final ICCOperand i_or_x_cc, final DFPR rs2, final DFPR rd) { | |
7290 int instruction = 0x81A8A040; | |
7291 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7292 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
7293 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
7294 emitInt(instruction); | |
7295 } | |
7296 | |
7297 /** | |
7298 * Pseudo-external assembler syntax: {@code fmovqle }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7299 * Example disassembly syntax: {@code fmovqle %icc, %f0, %f0} | |
7300 * | |
7301 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7302 */ | |
7303 // Template#: 433, Serial#: 433 | |
7304 public void fmovqle(final ICCOperand i_or_x_cc, final QFPR rs2, final QFPR rd) { | |
7305 int instruction = 0x81A8A060; | |
7306 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7307 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
7308 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
7309 emitInt(instruction); | |
7310 } | |
7311 | |
7312 /** | |
7313 * Pseudo-external assembler syntax: {@code movle }<i>i_or_x_cc</i>, <i>simm11</i>, <i>rd</i> | |
7314 * Example disassembly syntax: {@code movle %icc, -1024, %g0} | |
7315 * <p> | |
7316 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
7317 * | |
7318 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7319 */ | |
7320 // Template#: 434, Serial#: 434 | |
7321 public void movle(final ICCOperand i_or_x_cc, final int simm11, final GPR rd) { | |
7322 int instruction = 0x8164A000; | |
7323 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
7324 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7325 instruction |= (simm11 & 0x7ff); | |
7326 instruction |= ((rd.value() & 0x1f) << 25); | |
7327 emitInt(instruction); | |
7328 } | |
7329 | |
7330 /** | |
7331 * Pseudo-external assembler syntax: {@code movle }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7332 * Example disassembly syntax: {@code movle %icc, %g0, %g0} | |
7333 * | |
7334 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7335 */ | |
7336 // Template#: 435, Serial#: 435 | |
7337 public void movle(final ICCOperand i_or_x_cc, final GPR rs2, final GPR rd) { | |
7338 int instruction = 0x81648000; | |
7339 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7340 instruction |= (rs2.value() & 0x1f); | |
7341 instruction |= ((rd.value() & 0x1f) << 25); | |
7342 emitInt(instruction); | |
7343 } | |
7344 | |
7345 /** | |
7346 * Pseudo-external assembler syntax: {@code fmovsge }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7347 * Example disassembly syntax: {@code fmovsge %icc, %f0, %f0} | |
7348 * | |
7349 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7350 */ | |
7351 // Template#: 436, Serial#: 436 | |
7352 public void fmovsge(final ICCOperand i_or_x_cc, final SFPR rs2, final SFPR rd) { | |
7353 int instruction = 0x81AAE020; | |
7354 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7355 instruction |= (rs2.value() & 0x1f); | |
7356 instruction |= ((rd.value() & 0x1f) << 25); | |
7357 emitInt(instruction); | |
7358 } | |
7359 | |
7360 /** | |
7361 * Pseudo-external assembler syntax: {@code fmovdge }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7362 * Example disassembly syntax: {@code fmovdge %icc, %f0, %f0} | |
7363 * | |
7364 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7365 */ | |
7366 // Template#: 437, Serial#: 437 | |
7367 public void fmovdge(final ICCOperand i_or_x_cc, final DFPR rs2, final DFPR rd) { | |
7368 int instruction = 0x81AAE040; | |
7369 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7370 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
7371 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
7372 emitInt(instruction); | |
7373 } | |
7374 | |
7375 /** | |
7376 * Pseudo-external assembler syntax: {@code fmovqge }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7377 * Example disassembly syntax: {@code fmovqge %icc, %f0, %f0} | |
7378 * | |
7379 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7380 */ | |
7381 // Template#: 438, Serial#: 438 | |
7382 public void fmovqge(final ICCOperand i_or_x_cc, final QFPR rs2, final QFPR rd) { | |
7383 int instruction = 0x81AAE060; | |
7384 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7385 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
7386 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
7387 emitInt(instruction); | |
7388 } | |
7389 | |
7390 /** | |
7391 * Pseudo-external assembler syntax: {@code movge }<i>i_or_x_cc</i>, <i>simm11</i>, <i>rd</i> | |
7392 * Example disassembly syntax: {@code movge %icc, -1024, %g0} | |
7393 * <p> | |
7394 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
7395 * | |
7396 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7397 */ | |
7398 // Template#: 439, Serial#: 439 | |
7399 public void movge(final ICCOperand i_or_x_cc, final int simm11, final GPR rd) { | |
7400 int instruction = 0x8166E000; | |
7401 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
7402 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7403 instruction |= (simm11 & 0x7ff); | |
7404 instruction |= ((rd.value() & 0x1f) << 25); | |
7405 emitInt(instruction); | |
7406 } | |
7407 | |
7408 /** | |
7409 * Pseudo-external assembler syntax: {@code movge }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7410 * Example disassembly syntax: {@code movge %icc, %g0, %g0} | |
7411 * | |
7412 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7413 */ | |
7414 // Template#: 440, Serial#: 440 | |
7415 public void movge(final ICCOperand i_or_x_cc, final GPR rs2, final GPR rd) { | |
7416 int instruction = 0x8166C000; | |
7417 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7418 instruction |= (rs2.value() & 0x1f); | |
7419 instruction |= ((rd.value() & 0x1f) << 25); | |
7420 emitInt(instruction); | |
7421 } | |
7422 | |
7423 /** | |
7424 * Pseudo-external assembler syntax: {@code fmovsl }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7425 * Example disassembly syntax: {@code fmovsl %icc, %f0, %f0} | |
7426 * | |
7427 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7428 */ | |
7429 // Template#: 441, Serial#: 441 | |
7430 public void fmovsl(final ICCOperand i_or_x_cc, final SFPR rs2, final SFPR rd) { | |
7431 int instruction = 0x81A8E020; | |
7432 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7433 instruction |= (rs2.value() & 0x1f); | |
7434 instruction |= ((rd.value() & 0x1f) << 25); | |
7435 emitInt(instruction); | |
7436 } | |
7437 | |
7438 /** | |
7439 * Pseudo-external assembler syntax: {@code fmovdl }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7440 * Example disassembly syntax: {@code fmovdl %icc, %f0, %f0} | |
7441 * | |
7442 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7443 */ | |
7444 // Template#: 442, Serial#: 442 | |
7445 public void fmovdl(final ICCOperand i_or_x_cc, final DFPR rs2, final DFPR rd) { | |
7446 int instruction = 0x81A8E040; | |
7447 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7448 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
7449 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
7450 emitInt(instruction); | |
7451 } | |
7452 | |
7453 /** | |
7454 * Pseudo-external assembler syntax: {@code fmovql }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7455 * Example disassembly syntax: {@code fmovql %icc, %f0, %f0} | |
7456 * | |
7457 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7458 */ | |
7459 // Template#: 443, Serial#: 443 | |
7460 public void fmovql(final ICCOperand i_or_x_cc, final QFPR rs2, final QFPR rd) { | |
7461 int instruction = 0x81A8E060; | |
7462 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7463 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
7464 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
7465 emitInt(instruction); | |
7466 } | |
7467 | |
7468 /** | |
7469 * Pseudo-external assembler syntax: {@code movl }<i>i_or_x_cc</i>, <i>simm11</i>, <i>rd</i> | |
7470 * Example disassembly syntax: {@code movl %icc, -1024, %g0} | |
7471 * <p> | |
7472 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
7473 * | |
7474 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7475 */ | |
7476 // Template#: 444, Serial#: 444 | |
7477 public void movl(final ICCOperand i_or_x_cc, final int simm11, final GPR rd) { | |
7478 int instruction = 0x8164E000; | |
7479 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
7480 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7481 instruction |= (simm11 & 0x7ff); | |
7482 instruction |= ((rd.value() & 0x1f) << 25); | |
7483 emitInt(instruction); | |
7484 } | |
7485 | |
7486 /** | |
7487 * Pseudo-external assembler syntax: {@code movl }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7488 * Example disassembly syntax: {@code movl %icc, %g0, %g0} | |
7489 * | |
7490 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7491 */ | |
7492 // Template#: 445, Serial#: 445 | |
7493 public void movl(final ICCOperand i_or_x_cc, final GPR rs2, final GPR rd) { | |
7494 int instruction = 0x8164C000; | |
7495 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7496 instruction |= (rs2.value() & 0x1f); | |
7497 instruction |= ((rd.value() & 0x1f) << 25); | |
7498 emitInt(instruction); | |
7499 } | |
7500 | |
7501 /** | |
7502 * Pseudo-external assembler syntax: {@code fmovsgu }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7503 * Example disassembly syntax: {@code fmovsgu %icc, %f0, %f0} | |
7504 * | |
7505 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7506 */ | |
7507 // Template#: 446, Serial#: 446 | |
7508 public void fmovsgu(final ICCOperand i_or_x_cc, final SFPR rs2, final SFPR rd) { | |
7509 int instruction = 0x81AB2020; | |
7510 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7511 instruction |= (rs2.value() & 0x1f); | |
7512 instruction |= ((rd.value() & 0x1f) << 25); | |
7513 emitInt(instruction); | |
7514 } | |
7515 | |
7516 /** | |
7517 * Pseudo-external assembler syntax: {@code fmovdgu }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7518 * Example disassembly syntax: {@code fmovdgu %icc, %f0, %f0} | |
7519 * | |
7520 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7521 */ | |
7522 // Template#: 447, Serial#: 447 | |
7523 public void fmovdgu(final ICCOperand i_or_x_cc, final DFPR rs2, final DFPR rd) { | |
7524 int instruction = 0x81AB2040; | |
7525 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7526 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
7527 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
7528 emitInt(instruction); | |
7529 } | |
7530 | |
7531 /** | |
7532 * Pseudo-external assembler syntax: {@code fmovqgu }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7533 * Example disassembly syntax: {@code fmovqgu %icc, %f0, %f0} | |
7534 * | |
7535 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7536 */ | |
7537 // Template#: 448, Serial#: 448 | |
7538 public void fmovqgu(final ICCOperand i_or_x_cc, final QFPR rs2, final QFPR rd) { | |
7539 int instruction = 0x81AB2060; | |
7540 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7541 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
7542 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
7543 emitInt(instruction); | |
7544 } | |
7545 | |
7546 /** | |
7547 * Pseudo-external assembler syntax: {@code movgu }<i>i_or_x_cc</i>, <i>simm11</i>, <i>rd</i> | |
7548 * Example disassembly syntax: {@code movgu %icc, -1024, %g0} | |
7549 * <p> | |
7550 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
7551 * | |
7552 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7553 */ | |
7554 // Template#: 449, Serial#: 449 | |
7555 public void movgu(final ICCOperand i_or_x_cc, final int simm11, final GPR rd) { | |
7556 int instruction = 0x81672000; | |
7557 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
7558 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7559 instruction |= (simm11 & 0x7ff); | |
7560 instruction |= ((rd.value() & 0x1f) << 25); | |
7561 emitInt(instruction); | |
7562 } | |
7563 | |
7564 /** | |
7565 * Pseudo-external assembler syntax: {@code movgu }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7566 * Example disassembly syntax: {@code movgu %icc, %g0, %g0} | |
7567 * | |
7568 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7569 */ | |
7570 // Template#: 450, Serial#: 450 | |
7571 public void movgu(final ICCOperand i_or_x_cc, final GPR rs2, final GPR rd) { | |
7572 int instruction = 0x81670000; | |
7573 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7574 instruction |= (rs2.value() & 0x1f); | |
7575 instruction |= ((rd.value() & 0x1f) << 25); | |
7576 emitInt(instruction); | |
7577 } | |
7578 | |
7579 /** | |
7580 * Pseudo-external assembler syntax: {@code fmovsleu }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7581 * Example disassembly syntax: {@code fmovsleu %icc, %f0, %f0} | |
7582 * | |
7583 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7584 */ | |
7585 // Template#: 451, Serial#: 451 | |
7586 public void fmovsleu(final ICCOperand i_or_x_cc, final SFPR rs2, final SFPR rd) { | |
7587 int instruction = 0x81A92020; | |
7588 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7589 instruction |= (rs2.value() & 0x1f); | |
7590 instruction |= ((rd.value() & 0x1f) << 25); | |
7591 emitInt(instruction); | |
7592 } | |
7593 | |
7594 /** | |
7595 * Pseudo-external assembler syntax: {@code fmovdleu }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7596 * Example disassembly syntax: {@code fmovdleu %icc, %f0, %f0} | |
7597 * | |
7598 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7599 */ | |
7600 // Template#: 452, Serial#: 452 | |
7601 public void fmovdleu(final ICCOperand i_or_x_cc, final DFPR rs2, final DFPR rd) { | |
7602 int instruction = 0x81A92040; | |
7603 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7604 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
7605 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
7606 emitInt(instruction); | |
7607 } | |
7608 | |
7609 /** | |
7610 * Pseudo-external assembler syntax: {@code fmovqleu }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7611 * Example disassembly syntax: {@code fmovqleu %icc, %f0, %f0} | |
7612 * | |
7613 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7614 */ | |
7615 // Template#: 453, Serial#: 453 | |
7616 public void fmovqleu(final ICCOperand i_or_x_cc, final QFPR rs2, final QFPR rd) { | |
7617 int instruction = 0x81A92060; | |
7618 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7619 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
7620 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
7621 emitInt(instruction); | |
7622 } | |
7623 | |
7624 /** | |
7625 * Pseudo-external assembler syntax: {@code movleu }<i>i_or_x_cc</i>, <i>simm11</i>, <i>rd</i> | |
7626 * Example disassembly syntax: {@code movleu %icc, -1024, %g0} | |
7627 * <p> | |
7628 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
7629 * | |
7630 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7631 */ | |
7632 // Template#: 454, Serial#: 454 | |
7633 public void movleu(final ICCOperand i_or_x_cc, final int simm11, final GPR rd) { | |
7634 int instruction = 0x81652000; | |
7635 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
7636 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7637 instruction |= (simm11 & 0x7ff); | |
7638 instruction |= ((rd.value() & 0x1f) << 25); | |
7639 emitInt(instruction); | |
7640 } | |
7641 | |
7642 /** | |
7643 * Pseudo-external assembler syntax: {@code movleu }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7644 * Example disassembly syntax: {@code movleu %icc, %g0, %g0} | |
7645 * | |
7646 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7647 */ | |
7648 // Template#: 455, Serial#: 455 | |
7649 public void movleu(final ICCOperand i_or_x_cc, final GPR rs2, final GPR rd) { | |
7650 int instruction = 0x81650000; | |
7651 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7652 instruction |= (rs2.value() & 0x1f); | |
7653 instruction |= ((rd.value() & 0x1f) << 25); | |
7654 emitInt(instruction); | |
7655 } | |
7656 | |
7657 /** | |
7658 * Pseudo-external assembler syntax: {@code fmovscc }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7659 * Example disassembly syntax: {@code fmovscc %icc, %f0, %f0} | |
7660 * | |
7661 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7662 */ | |
7663 // Template#: 456, Serial#: 456 | |
7664 public void fmovscc(final ICCOperand i_or_x_cc, final SFPR rs2, final SFPR rd) { | |
7665 int instruction = 0x81AB6020; | |
7666 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7667 instruction |= (rs2.value() & 0x1f); | |
7668 instruction |= ((rd.value() & 0x1f) << 25); | |
7669 emitInt(instruction); | |
7670 } | |
7671 | |
7672 /** | |
7673 * Pseudo-external assembler syntax: {@code fmovdcc }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7674 * Example disassembly syntax: {@code fmovdcc %icc, %f0, %f0} | |
7675 * | |
7676 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7677 */ | |
7678 // Template#: 457, Serial#: 457 | |
7679 public void fmovdcc(final ICCOperand i_or_x_cc, final DFPR rs2, final DFPR rd) { | |
7680 int instruction = 0x81AB6040; | |
7681 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7682 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
7683 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
7684 emitInt(instruction); | |
7685 } | |
7686 | |
7687 /** | |
7688 * Pseudo-external assembler syntax: {@code fmovqcc }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7689 * Example disassembly syntax: {@code fmovqcc %icc, %f0, %f0} | |
7690 * | |
7691 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7692 */ | |
7693 // Template#: 458, Serial#: 458 | |
7694 public void fmovqcc(final ICCOperand i_or_x_cc, final QFPR rs2, final QFPR rd) { | |
7695 int instruction = 0x81AB6060; | |
7696 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7697 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
7698 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
7699 emitInt(instruction); | |
7700 } | |
7701 | |
7702 /** | |
7703 * Pseudo-external assembler syntax: {@code movcc }<i>i_or_x_cc</i>, <i>simm11</i>, <i>rd</i> | |
7704 * Example disassembly syntax: {@code movcc %icc, -1024, %g0} | |
7705 * <p> | |
7706 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
7707 * | |
7708 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7709 */ | |
7710 // Template#: 459, Serial#: 459 | |
7711 public void movcc(final ICCOperand i_or_x_cc, final int simm11, final GPR rd) { | |
7712 int instruction = 0x81676000; | |
7713 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
7714 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7715 instruction |= (simm11 & 0x7ff); | |
7716 instruction |= ((rd.value() & 0x1f) << 25); | |
7717 emitInt(instruction); | |
7718 } | |
7719 | |
7720 /** | |
7721 * Pseudo-external assembler syntax: {@code movcc }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7722 * Example disassembly syntax: {@code movcc %icc, %g0, %g0} | |
7723 * | |
7724 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7725 */ | |
7726 // Template#: 460, Serial#: 460 | |
7727 public void movcc(final ICCOperand i_or_x_cc, final GPR rs2, final GPR rd) { | |
7728 int instruction = 0x81674000; | |
7729 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7730 instruction |= (rs2.value() & 0x1f); | |
7731 instruction |= ((rd.value() & 0x1f) << 25); | |
7732 emitInt(instruction); | |
7733 } | |
7734 | |
7735 /** | |
7736 * Pseudo-external assembler syntax: {@code fmovscs }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7737 * Example disassembly syntax: {@code fmovscs %icc, %f0, %f0} | |
7738 * | |
7739 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7740 */ | |
7741 // Template#: 461, Serial#: 461 | |
7742 public void fmovscs(final ICCOperand i_or_x_cc, final SFPR rs2, final SFPR rd) { | |
7743 int instruction = 0x81A96020; | |
7744 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7745 instruction |= (rs2.value() & 0x1f); | |
7746 instruction |= ((rd.value() & 0x1f) << 25); | |
7747 emitInt(instruction); | |
7748 } | |
7749 | |
7750 /** | |
7751 * Pseudo-external assembler syntax: {@code fmovdcs }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7752 * Example disassembly syntax: {@code fmovdcs %icc, %f0, %f0} | |
7753 * | |
7754 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7755 */ | |
7756 // Template#: 462, Serial#: 462 | |
7757 public void fmovdcs(final ICCOperand i_or_x_cc, final DFPR rs2, final DFPR rd) { | |
7758 int instruction = 0x81A96040; | |
7759 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7760 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
7761 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
7762 emitInt(instruction); | |
7763 } | |
7764 | |
7765 /** | |
7766 * Pseudo-external assembler syntax: {@code fmovqcs }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7767 * Example disassembly syntax: {@code fmovqcs %icc, %f0, %f0} | |
7768 * | |
7769 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7770 */ | |
7771 // Template#: 463, Serial#: 463 | |
7772 public void fmovqcs(final ICCOperand i_or_x_cc, final QFPR rs2, final QFPR rd) { | |
7773 int instruction = 0x81A96060; | |
7774 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7775 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
7776 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
7777 emitInt(instruction); | |
7778 } | |
7779 | |
7780 /** | |
7781 * Pseudo-external assembler syntax: {@code movcs }<i>i_or_x_cc</i>, <i>simm11</i>, <i>rd</i> | |
7782 * Example disassembly syntax: {@code movcs %icc, -1024, %g0} | |
7783 * <p> | |
7784 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
7785 * | |
7786 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7787 */ | |
7788 // Template#: 464, Serial#: 464 | |
7789 public void movcs(final ICCOperand i_or_x_cc, final int simm11, final GPR rd) { | |
7790 int instruction = 0x81656000; | |
7791 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
7792 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7793 instruction |= (simm11 & 0x7ff); | |
7794 instruction |= ((rd.value() & 0x1f) << 25); | |
7795 emitInt(instruction); | |
7796 } | |
7797 | |
7798 /** | |
7799 * Pseudo-external assembler syntax: {@code movcs }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7800 * Example disassembly syntax: {@code movcs %icc, %g0, %g0} | |
7801 * | |
7802 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7803 */ | |
7804 // Template#: 465, Serial#: 465 | |
7805 public void movcs(final ICCOperand i_or_x_cc, final GPR rs2, final GPR rd) { | |
7806 int instruction = 0x81654000; | |
7807 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7808 instruction |= (rs2.value() & 0x1f); | |
7809 instruction |= ((rd.value() & 0x1f) << 25); | |
7810 emitInt(instruction); | |
7811 } | |
7812 | |
7813 /** | |
7814 * Pseudo-external assembler syntax: {@code fmovspos }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7815 * Example disassembly syntax: {@code fmovspos %icc, %f0, %f0} | |
7816 * | |
7817 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7818 */ | |
7819 // Template#: 466, Serial#: 466 | |
7820 public void fmovspos(final ICCOperand i_or_x_cc, final SFPR rs2, final SFPR rd) { | |
7821 int instruction = 0x81ABA020; | |
7822 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7823 instruction |= (rs2.value() & 0x1f); | |
7824 instruction |= ((rd.value() & 0x1f) << 25); | |
7825 emitInt(instruction); | |
7826 } | |
7827 | |
7828 /** | |
7829 * Pseudo-external assembler syntax: {@code fmovdpos }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7830 * Example disassembly syntax: {@code fmovdpos %icc, %f0, %f0} | |
7831 * | |
7832 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7833 */ | |
7834 // Template#: 467, Serial#: 467 | |
7835 public void fmovdpos(final ICCOperand i_or_x_cc, final DFPR rs2, final DFPR rd) { | |
7836 int instruction = 0x81ABA040; | |
7837 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7838 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
7839 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
7840 emitInt(instruction); | |
7841 } | |
7842 | |
7843 /** | |
7844 * Pseudo-external assembler syntax: {@code fmovqpos }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7845 * Example disassembly syntax: {@code fmovqpos %icc, %f0, %f0} | |
7846 * | |
7847 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7848 */ | |
7849 // Template#: 468, Serial#: 468 | |
7850 public void fmovqpos(final ICCOperand i_or_x_cc, final QFPR rs2, final QFPR rd) { | |
7851 int instruction = 0x81ABA060; | |
7852 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7853 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
7854 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
7855 emitInt(instruction); | |
7856 } | |
7857 | |
7858 /** | |
7859 * Pseudo-external assembler syntax: {@code movpos }<i>i_or_x_cc</i>, <i>simm11</i>, <i>rd</i> | |
7860 * Example disassembly syntax: {@code movpos %icc, -1024, %g0} | |
7861 * <p> | |
7862 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
7863 * | |
7864 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7865 */ | |
7866 // Template#: 469, Serial#: 469 | |
7867 public void movpos(final ICCOperand i_or_x_cc, final int simm11, final GPR rd) { | |
7868 int instruction = 0x8167A000; | |
7869 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
7870 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7871 instruction |= (simm11 & 0x7ff); | |
7872 instruction |= ((rd.value() & 0x1f) << 25); | |
7873 emitInt(instruction); | |
7874 } | |
7875 | |
7876 /** | |
7877 * Pseudo-external assembler syntax: {@code movpos }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7878 * Example disassembly syntax: {@code movpos %icc, %g0, %g0} | |
7879 * | |
7880 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7881 */ | |
7882 // Template#: 470, Serial#: 470 | |
7883 public void movpos(final ICCOperand i_or_x_cc, final GPR rs2, final GPR rd) { | |
7884 int instruction = 0x81678000; | |
7885 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7886 instruction |= (rs2.value() & 0x1f); | |
7887 instruction |= ((rd.value() & 0x1f) << 25); | |
7888 emitInt(instruction); | |
7889 } | |
7890 | |
7891 /** | |
7892 * Pseudo-external assembler syntax: {@code fmovsneg }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7893 * Example disassembly syntax: {@code fmovsneg %icc, %f0, %f0} | |
7894 * | |
7895 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7896 */ | |
7897 // Template#: 471, Serial#: 471 | |
7898 public void fmovsneg(final ICCOperand i_or_x_cc, final SFPR rs2, final SFPR rd) { | |
7899 int instruction = 0x81A9A020; | |
7900 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7901 instruction |= (rs2.value() & 0x1f); | |
7902 instruction |= ((rd.value() & 0x1f) << 25); | |
7903 emitInt(instruction); | |
7904 } | |
7905 | |
7906 /** | |
7907 * Pseudo-external assembler syntax: {@code fmovdneg }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7908 * Example disassembly syntax: {@code fmovdneg %icc, %f0, %f0} | |
7909 * | |
7910 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7911 */ | |
7912 // Template#: 472, Serial#: 472 | |
7913 public void fmovdneg(final ICCOperand i_or_x_cc, final DFPR rs2, final DFPR rd) { | |
7914 int instruction = 0x81A9A040; | |
7915 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7916 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
7917 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
7918 emitInt(instruction); | |
7919 } | |
7920 | |
7921 /** | |
7922 * Pseudo-external assembler syntax: {@code fmovqneg }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7923 * Example disassembly syntax: {@code fmovqneg %icc, %f0, %f0} | |
7924 * | |
7925 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7926 */ | |
7927 // Template#: 473, Serial#: 473 | |
7928 public void fmovqneg(final ICCOperand i_or_x_cc, final QFPR rs2, final QFPR rd) { | |
7929 int instruction = 0x81A9A060; | |
7930 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7931 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
7932 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
7933 emitInt(instruction); | |
7934 } | |
7935 | |
7936 /** | |
7937 * Pseudo-external assembler syntax: {@code movneg }<i>i_or_x_cc</i>, <i>simm11</i>, <i>rd</i> | |
7938 * Example disassembly syntax: {@code movneg %icc, -1024, %g0} | |
7939 * <p> | |
7940 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
7941 * | |
7942 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7943 */ | |
7944 // Template#: 474, Serial#: 474 | |
7945 public void movneg(final ICCOperand i_or_x_cc, final int simm11, final GPR rd) { | |
7946 int instruction = 0x8165A000; | |
7947 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
7948 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7949 instruction |= (simm11 & 0x7ff); | |
7950 instruction |= ((rd.value() & 0x1f) << 25); | |
7951 emitInt(instruction); | |
7952 } | |
7953 | |
7954 /** | |
7955 * Pseudo-external assembler syntax: {@code movneg }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7956 * Example disassembly syntax: {@code movneg %icc, %g0, %g0} | |
7957 * | |
7958 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
7959 */ | |
7960 // Template#: 475, Serial#: 475 | |
7961 public void movneg(final ICCOperand i_or_x_cc, final GPR rs2, final GPR rd) { | |
7962 int instruction = 0x81658000; | |
7963 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7964 instruction |= (rs2.value() & 0x1f); | |
7965 instruction |= ((rd.value() & 0x1f) << 25); | |
7966 emitInt(instruction); | |
7967 } | |
7968 | |
7969 /** | |
7970 * Pseudo-external assembler syntax: {@code fmovsvc }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7971 * Example disassembly syntax: {@code fmovsvc %icc, %f0, %f0} | |
7972 * | |
7973 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7974 */ | |
7975 // Template#: 476, Serial#: 476 | |
7976 public void fmovsvc(final ICCOperand i_or_x_cc, final SFPR rs2, final SFPR rd) { | |
7977 int instruction = 0x81ABE020; | |
7978 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7979 instruction |= (rs2.value() & 0x1f); | |
7980 instruction |= ((rd.value() & 0x1f) << 25); | |
7981 emitInt(instruction); | |
7982 } | |
7983 | |
7984 /** | |
7985 * Pseudo-external assembler syntax: {@code fmovdvc }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
7986 * Example disassembly syntax: {@code fmovdvc %icc, %f0, %f0} | |
7987 * | |
7988 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
7989 */ | |
7990 // Template#: 477, Serial#: 477 | |
7991 public void fmovdvc(final ICCOperand i_or_x_cc, final DFPR rs2, final DFPR rd) { | |
7992 int instruction = 0x81ABE040; | |
7993 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
7994 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
7995 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
7996 emitInt(instruction); | |
7997 } | |
7998 | |
7999 /** | |
8000 * Pseudo-external assembler syntax: {@code fmovqvc }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
8001 * Example disassembly syntax: {@code fmovqvc %icc, %f0, %f0} | |
8002 * | |
8003 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8004 */ | |
8005 // Template#: 478, Serial#: 478 | |
8006 public void fmovqvc(final ICCOperand i_or_x_cc, final QFPR rs2, final QFPR rd) { | |
8007 int instruction = 0x81ABE060; | |
8008 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
8009 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
8010 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
8011 emitInt(instruction); | |
8012 } | |
8013 | |
8014 /** | |
8015 * Pseudo-external assembler syntax: {@code movvc }<i>i_or_x_cc</i>, <i>simm11</i>, <i>rd</i> | |
8016 * Example disassembly syntax: {@code movvc %icc, -1024, %g0} | |
8017 * <p> | |
8018 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
8019 * | |
8020 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8021 */ | |
8022 // Template#: 479, Serial#: 479 | |
8023 public void movvc(final ICCOperand i_or_x_cc, final int simm11, final GPR rd) { | |
8024 int instruction = 0x8167E000; | |
8025 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
8026 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
8027 instruction |= (simm11 & 0x7ff); | |
8028 instruction |= ((rd.value() & 0x1f) << 25); | |
8029 emitInt(instruction); | |
8030 } | |
8031 | |
8032 /** | |
8033 * Pseudo-external assembler syntax: {@code movvc }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
8034 * Example disassembly syntax: {@code movvc %icc, %g0, %g0} | |
8035 * | |
8036 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8037 */ | |
8038 // Template#: 480, Serial#: 480 | |
8039 public void movvc(final ICCOperand i_or_x_cc, final GPR rs2, final GPR rd) { | |
8040 int instruction = 0x8167C000; | |
8041 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
8042 instruction |= (rs2.value() & 0x1f); | |
8043 instruction |= ((rd.value() & 0x1f) << 25); | |
8044 emitInt(instruction); | |
8045 } | |
8046 | |
8047 /** | |
8048 * Pseudo-external assembler syntax: {@code fmovsvs }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
8049 * Example disassembly syntax: {@code fmovsvs %icc, %f0, %f0} | |
8050 * | |
8051 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8052 */ | |
8053 // Template#: 481, Serial#: 481 | |
8054 public void fmovsvs(final ICCOperand i_or_x_cc, final SFPR rs2, final SFPR rd) { | |
8055 int instruction = 0x81A9E020; | |
8056 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
8057 instruction |= (rs2.value() & 0x1f); | |
8058 instruction |= ((rd.value() & 0x1f) << 25); | |
8059 emitInt(instruction); | |
8060 } | |
8061 | |
8062 /** | |
8063 * Pseudo-external assembler syntax: {@code fmovdvs }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
8064 * Example disassembly syntax: {@code fmovdvs %icc, %f0, %f0} | |
8065 * | |
8066 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8067 */ | |
8068 // Template#: 482, Serial#: 482 | |
8069 public void fmovdvs(final ICCOperand i_or_x_cc, final DFPR rs2, final DFPR rd) { | |
8070 int instruction = 0x81A9E040; | |
8071 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
8072 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
8073 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
8074 emitInt(instruction); | |
8075 } | |
8076 | |
8077 /** | |
8078 * Pseudo-external assembler syntax: {@code fmovqvs }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
8079 * Example disassembly syntax: {@code fmovqvs %icc, %f0, %f0} | |
8080 * | |
8081 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8082 */ | |
8083 // Template#: 483, Serial#: 483 | |
8084 public void fmovqvs(final ICCOperand i_or_x_cc, final QFPR rs2, final QFPR rd) { | |
8085 int instruction = 0x81A9E060; | |
8086 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
8087 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
8088 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
8089 emitInt(instruction); | |
8090 } | |
8091 | |
8092 /** | |
8093 * Pseudo-external assembler syntax: {@code movvs }<i>i_or_x_cc</i>, <i>simm11</i>, <i>rd</i> | |
8094 * Example disassembly syntax: {@code movvs %icc, -1024, %g0} | |
8095 * <p> | |
8096 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
8097 * | |
8098 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8099 */ | |
8100 // Template#: 484, Serial#: 484 | |
8101 public void movvs(final ICCOperand i_or_x_cc, final int simm11, final GPR rd) { | |
8102 int instruction = 0x8165E000; | |
8103 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
8104 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
8105 instruction |= (simm11 & 0x7ff); | |
8106 instruction |= ((rd.value() & 0x1f) << 25); | |
8107 emitInt(instruction); | |
8108 } | |
8109 | |
8110 /** | |
8111 * Pseudo-external assembler syntax: {@code movvs }<i>i_or_x_cc</i>, <i>rs2</i>, <i>rd</i> | |
8112 * Example disassembly syntax: {@code movvs %icc, %g0, %g0} | |
8113 * | |
8114 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8115 */ | |
8116 // Template#: 485, Serial#: 485 | |
8117 public void movvs(final ICCOperand i_or_x_cc, final GPR rs2, final GPR rd) { | |
8118 int instruction = 0x8165C000; | |
8119 instruction |= ((i_or_x_cc.value() & 0x3) << 11); | |
8120 instruction |= (rs2.value() & 0x1f); | |
8121 instruction |= ((rd.value() & 0x1f) << 25); | |
8122 emitInt(instruction); | |
8123 } | |
8124 | |
8125 /** | |
8126 * Pseudo-external assembler syntax: {@code fmovsa }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8127 * Example disassembly syntax: {@code fmovsa %fcc0, %f0, %f0} | |
8128 * | |
8129 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8130 */ | |
8131 // Template#: 486, Serial#: 486 | |
8132 public void fmovsa(final FCCOperand n, final SFPR rs2, final SFPR rd) { | |
8133 int instruction = 0x81AA0020; | |
8134 instruction |= ((n.value() & 0x3) << 11); | |
8135 instruction |= (rs2.value() & 0x1f); | |
8136 instruction |= ((rd.value() & 0x1f) << 25); | |
8137 emitInt(instruction); | |
8138 } | |
8139 | |
8140 /** | |
8141 * Pseudo-external assembler syntax: {@code fmovda }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8142 * Example disassembly syntax: {@code fmovda %fcc0, %f0, %f0} | |
8143 * | |
8144 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8145 */ | |
8146 // Template#: 487, Serial#: 487 | |
8147 public void fmovda(final FCCOperand n, final DFPR rs2, final DFPR rd) { | |
8148 int instruction = 0x81AA0040; | |
8149 instruction |= ((n.value() & 0x3) << 11); | |
8150 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
8151 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
8152 emitInt(instruction); | |
8153 } | |
8154 | |
8155 /** | |
8156 * Pseudo-external assembler syntax: {@code fmovqa }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8157 * Example disassembly syntax: {@code fmovqa %fcc0, %f0, %f0} | |
8158 * | |
8159 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8160 */ | |
8161 // Template#: 488, Serial#: 488 | |
8162 public void fmovqa(final FCCOperand n, final QFPR rs2, final QFPR rd) { | |
8163 int instruction = 0x81AA0060; | |
8164 instruction |= ((n.value() & 0x3) << 11); | |
8165 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
8166 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
8167 emitInt(instruction); | |
8168 } | |
8169 | |
8170 /** | |
8171 * Pseudo-external assembler syntax: {@code mova }<i>n</i>, <i>simm11</i>, <i>rd</i> | |
8172 * Example disassembly syntax: {@code mova %fcc0, -1024, %g0} | |
8173 * <p> | |
8174 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
8175 * | |
8176 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8177 */ | |
8178 // Template#: 489, Serial#: 489 | |
8179 public void mova(final FCCOperand n, final int simm11, final GPR rd) { | |
8180 int instruction = 0x81622000; | |
8181 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
8182 instruction |= ((n.value() & 0x3) << 11); | |
8183 instruction |= (simm11 & 0x7ff); | |
8184 instruction |= ((rd.value() & 0x1f) << 25); | |
8185 emitInt(instruction); | |
8186 } | |
8187 | |
8188 /** | |
8189 * Pseudo-external assembler syntax: {@code mova }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8190 * Example disassembly syntax: {@code mova %fcc0, %g0, %g0} | |
8191 * | |
8192 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8193 */ | |
8194 // Template#: 490, Serial#: 490 | |
8195 public void mova(final FCCOperand n, final GPR rs2, final GPR rd) { | |
8196 int instruction = 0x81620000; | |
8197 instruction |= ((n.value() & 0x3) << 11); | |
8198 instruction |= (rs2.value() & 0x1f); | |
8199 instruction |= ((rd.value() & 0x1f) << 25); | |
8200 emitInt(instruction); | |
8201 } | |
8202 | |
8203 /** | |
8204 * Pseudo-external assembler syntax: {@code fmovsn }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8205 * Example disassembly syntax: {@code fmovsn %fcc0, %f0, %f0} | |
8206 * | |
8207 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8208 */ | |
8209 // Template#: 491, Serial#: 491 | |
8210 public void fmovsn(final FCCOperand n, final SFPR rs2, final SFPR rd) { | |
8211 int instruction = 0x81A80020; | |
8212 instruction |= ((n.value() & 0x3) << 11); | |
8213 instruction |= (rs2.value() & 0x1f); | |
8214 instruction |= ((rd.value() & 0x1f) << 25); | |
8215 emitInt(instruction); | |
8216 } | |
8217 | |
8218 /** | |
8219 * Pseudo-external assembler syntax: {@code fmovdn }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8220 * Example disassembly syntax: {@code fmovdn %fcc0, %f0, %f0} | |
8221 * | |
8222 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8223 */ | |
8224 // Template#: 492, Serial#: 492 | |
8225 public void fmovdn(final FCCOperand n, final DFPR rs2, final DFPR rd) { | |
8226 int instruction = 0x81A80040; | |
8227 instruction |= ((n.value() & 0x3) << 11); | |
8228 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
8229 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
8230 emitInt(instruction); | |
8231 } | |
8232 | |
8233 /** | |
8234 * Pseudo-external assembler syntax: {@code fmovqn }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8235 * Example disassembly syntax: {@code fmovqn %fcc0, %f0, %f0} | |
8236 * | |
8237 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8238 */ | |
8239 // Template#: 493, Serial#: 493 | |
8240 public void fmovqn(final FCCOperand n, final QFPR rs2, final QFPR rd) { | |
8241 int instruction = 0x81A80060; | |
8242 instruction |= ((n.value() & 0x3) << 11); | |
8243 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
8244 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
8245 emitInt(instruction); | |
8246 } | |
8247 | |
8248 /** | |
8249 * Pseudo-external assembler syntax: {@code movn }<i>n</i>, <i>simm11</i>, <i>rd</i> | |
8250 * Example disassembly syntax: {@code movn %fcc0, -1024, %g0} | |
8251 * <p> | |
8252 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
8253 * | |
8254 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8255 */ | |
8256 // Template#: 494, Serial#: 494 | |
8257 public void movn(final FCCOperand n, final int simm11, final GPR rd) { | |
8258 int instruction = 0x81602000; | |
8259 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
8260 instruction |= ((n.value() & 0x3) << 11); | |
8261 instruction |= (simm11 & 0x7ff); | |
8262 instruction |= ((rd.value() & 0x1f) << 25); | |
8263 emitInt(instruction); | |
8264 } | |
8265 | |
8266 /** | |
8267 * Pseudo-external assembler syntax: {@code movn }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8268 * Example disassembly syntax: {@code movn %fcc0, %g0, %g0} | |
8269 * | |
8270 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8271 */ | |
8272 // Template#: 495, Serial#: 495 | |
8273 public void movn(final FCCOperand n, final GPR rs2, final GPR rd) { | |
8274 int instruction = 0x81600000; | |
8275 instruction |= ((n.value() & 0x3) << 11); | |
8276 instruction |= (rs2.value() & 0x1f); | |
8277 instruction |= ((rd.value() & 0x1f) << 25); | |
8278 emitInt(instruction); | |
8279 } | |
8280 | |
8281 /** | |
8282 * Pseudo-external assembler syntax: {@code fmovsu }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8283 * Example disassembly syntax: {@code fmovsu %fcc0, %f0, %f0} | |
8284 * | |
8285 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8286 */ | |
8287 // Template#: 496, Serial#: 496 | |
8288 public void fmovsu(final FCCOperand n, final SFPR rs2, final SFPR rd) { | |
8289 int instruction = 0x81A9C020; | |
8290 instruction |= ((n.value() & 0x3) << 11); | |
8291 instruction |= (rs2.value() & 0x1f); | |
8292 instruction |= ((rd.value() & 0x1f) << 25); | |
8293 emitInt(instruction); | |
8294 } | |
8295 | |
8296 /** | |
8297 * Pseudo-external assembler syntax: {@code fmovdu }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8298 * Example disassembly syntax: {@code fmovdu %fcc0, %f0, %f0} | |
8299 * | |
8300 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8301 */ | |
8302 // Template#: 497, Serial#: 497 | |
8303 public void fmovdu(final FCCOperand n, final DFPR rs2, final DFPR rd) { | |
8304 int instruction = 0x81A9C040; | |
8305 instruction |= ((n.value() & 0x3) << 11); | |
8306 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
8307 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
8308 emitInt(instruction); | |
8309 } | |
8310 | |
8311 /** | |
8312 * Pseudo-external assembler syntax: {@code fmovqu }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8313 * Example disassembly syntax: {@code fmovqu %fcc0, %f0, %f0} | |
8314 * | |
8315 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8316 */ | |
8317 // Template#: 498, Serial#: 498 | |
8318 public void fmovqu(final FCCOperand n, final QFPR rs2, final QFPR rd) { | |
8319 int instruction = 0x81A9C060; | |
8320 instruction |= ((n.value() & 0x3) << 11); | |
8321 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
8322 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
8323 emitInt(instruction); | |
8324 } | |
8325 | |
8326 /** | |
8327 * Pseudo-external assembler syntax: {@code movu }<i>n</i>, <i>simm11</i>, <i>rd</i> | |
8328 * Example disassembly syntax: {@code movu %fcc0, -1024, %g0} | |
8329 * <p> | |
8330 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
8331 * | |
8332 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8333 */ | |
8334 // Template#: 499, Serial#: 499 | |
8335 public void movu(final FCCOperand n, final int simm11, final GPR rd) { | |
8336 int instruction = 0x8161E000; | |
8337 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
8338 instruction |= ((n.value() & 0x3) << 11); | |
8339 instruction |= (simm11 & 0x7ff); | |
8340 instruction |= ((rd.value() & 0x1f) << 25); | |
8341 emitInt(instruction); | |
8342 } | |
8343 | |
8344 /** | |
8345 * Pseudo-external assembler syntax: {@code movu }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8346 * Example disassembly syntax: {@code movu %fcc0, %g0, %g0} | |
8347 * | |
8348 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8349 */ | |
8350 // Template#: 500, Serial#: 500 | |
8351 public void movu(final FCCOperand n, final GPR rs2, final GPR rd) { | |
8352 int instruction = 0x8161C000; | |
8353 instruction |= ((n.value() & 0x3) << 11); | |
8354 instruction |= (rs2.value() & 0x1f); | |
8355 instruction |= ((rd.value() & 0x1f) << 25); | |
8356 emitInt(instruction); | |
8357 } | |
8358 | |
8359 /** | |
8360 * Pseudo-external assembler syntax: {@code fmovsg }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8361 * Example disassembly syntax: {@code fmovsg %fcc0, %f0, %f0} | |
8362 * | |
8363 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8364 */ | |
8365 // Template#: 501, Serial#: 501 | |
8366 public void fmovsg(final FCCOperand n, final SFPR rs2, final SFPR rd) { | |
8367 int instruction = 0x81A98020; | |
8368 instruction |= ((n.value() & 0x3) << 11); | |
8369 instruction |= (rs2.value() & 0x1f); | |
8370 instruction |= ((rd.value() & 0x1f) << 25); | |
8371 emitInt(instruction); | |
8372 } | |
8373 | |
8374 /** | |
8375 * Pseudo-external assembler syntax: {@code fmovdg }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8376 * Example disassembly syntax: {@code fmovdg %fcc0, %f0, %f0} | |
8377 * | |
8378 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8379 */ | |
8380 // Template#: 502, Serial#: 502 | |
8381 public void fmovdg(final FCCOperand n, final DFPR rs2, final DFPR rd) { | |
8382 int instruction = 0x81A98040; | |
8383 instruction |= ((n.value() & 0x3) << 11); | |
8384 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
8385 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
8386 emitInt(instruction); | |
8387 } | |
8388 | |
8389 /** | |
8390 * Pseudo-external assembler syntax: {@code fmovqg }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8391 * Example disassembly syntax: {@code fmovqg %fcc0, %f0, %f0} | |
8392 * | |
8393 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8394 */ | |
8395 // Template#: 503, Serial#: 503 | |
8396 public void fmovqg(final FCCOperand n, final QFPR rs2, final QFPR rd) { | |
8397 int instruction = 0x81A98060; | |
8398 instruction |= ((n.value() & 0x3) << 11); | |
8399 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
8400 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
8401 emitInt(instruction); | |
8402 } | |
8403 | |
8404 /** | |
8405 * Pseudo-external assembler syntax: {@code movg }<i>n</i>, <i>simm11</i>, <i>rd</i> | |
8406 * Example disassembly syntax: {@code movg %fcc0, -1024, %g0} | |
8407 * <p> | |
8408 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
8409 * | |
8410 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8411 */ | |
8412 // Template#: 504, Serial#: 504 | |
8413 public void movg(final FCCOperand n, final int simm11, final GPR rd) { | |
8414 int instruction = 0x8161A000; | |
8415 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
8416 instruction |= ((n.value() & 0x3) << 11); | |
8417 instruction |= (simm11 & 0x7ff); | |
8418 instruction |= ((rd.value() & 0x1f) << 25); | |
8419 emitInt(instruction); | |
8420 } | |
8421 | |
8422 /** | |
8423 * Pseudo-external assembler syntax: {@code movg }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8424 * Example disassembly syntax: {@code movg %fcc0, %g0, %g0} | |
8425 * | |
8426 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8427 */ | |
8428 // Template#: 505, Serial#: 505 | |
8429 public void movg(final FCCOperand n, final GPR rs2, final GPR rd) { | |
8430 int instruction = 0x81618000; | |
8431 instruction |= ((n.value() & 0x3) << 11); | |
8432 instruction |= (rs2.value() & 0x1f); | |
8433 instruction |= ((rd.value() & 0x1f) << 25); | |
8434 emitInt(instruction); | |
8435 } | |
8436 | |
8437 /** | |
8438 * Pseudo-external assembler syntax: {@code fmovsug }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8439 * Example disassembly syntax: {@code fmovsug %fcc0, %f0, %f0} | |
8440 * | |
8441 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8442 */ | |
8443 // Template#: 506, Serial#: 506 | |
8444 public void fmovsug(final FCCOperand n, final SFPR rs2, final SFPR rd) { | |
8445 int instruction = 0x81A94020; | |
8446 instruction |= ((n.value() & 0x3) << 11); | |
8447 instruction |= (rs2.value() & 0x1f); | |
8448 instruction |= ((rd.value() & 0x1f) << 25); | |
8449 emitInt(instruction); | |
8450 } | |
8451 | |
8452 /** | |
8453 * Pseudo-external assembler syntax: {@code fmovdug }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8454 * Example disassembly syntax: {@code fmovdug %fcc0, %f0, %f0} | |
8455 * | |
8456 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8457 */ | |
8458 // Template#: 507, Serial#: 507 | |
8459 public void fmovdug(final FCCOperand n, final DFPR rs2, final DFPR rd) { | |
8460 int instruction = 0x81A94040; | |
8461 instruction |= ((n.value() & 0x3) << 11); | |
8462 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
8463 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
8464 emitInt(instruction); | |
8465 } | |
8466 | |
8467 /** | |
8468 * Pseudo-external assembler syntax: {@code fmovqug }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8469 * Example disassembly syntax: {@code fmovqug %fcc0, %f0, %f0} | |
8470 * | |
8471 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8472 */ | |
8473 // Template#: 508, Serial#: 508 | |
8474 public void fmovqug(final FCCOperand n, final QFPR rs2, final QFPR rd) { | |
8475 int instruction = 0x81A94060; | |
8476 instruction |= ((n.value() & 0x3) << 11); | |
8477 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
8478 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
8479 emitInt(instruction); | |
8480 } | |
8481 | |
8482 /** | |
8483 * Pseudo-external assembler syntax: {@code movug }<i>n</i>, <i>simm11</i>, <i>rd</i> | |
8484 * Example disassembly syntax: {@code movug %fcc0, -1024, %g0} | |
8485 * <p> | |
8486 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
8487 * | |
8488 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8489 */ | |
8490 // Template#: 509, Serial#: 509 | |
8491 public void movug(final FCCOperand n, final int simm11, final GPR rd) { | |
8492 int instruction = 0x81616000; | |
8493 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
8494 instruction |= ((n.value() & 0x3) << 11); | |
8495 instruction |= (simm11 & 0x7ff); | |
8496 instruction |= ((rd.value() & 0x1f) << 25); | |
8497 emitInt(instruction); | |
8498 } | |
8499 | |
8500 /** | |
8501 * Pseudo-external assembler syntax: {@code movug }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8502 * Example disassembly syntax: {@code movug %fcc0, %g0, %g0} | |
8503 * | |
8504 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8505 */ | |
8506 // Template#: 510, Serial#: 510 | |
8507 public void movug(final FCCOperand n, final GPR rs2, final GPR rd) { | |
8508 int instruction = 0x81614000; | |
8509 instruction |= ((n.value() & 0x3) << 11); | |
8510 instruction |= (rs2.value() & 0x1f); | |
8511 instruction |= ((rd.value() & 0x1f) << 25); | |
8512 emitInt(instruction); | |
8513 } | |
8514 | |
8515 /** | |
8516 * Pseudo-external assembler syntax: {@code fmovsl }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8517 * Example disassembly syntax: {@code fmovsl %fcc0, %f0, %f0} | |
8518 * | |
8519 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8520 */ | |
8521 // Template#: 511, Serial#: 511 | |
8522 public void fmovsl(final FCCOperand n, final SFPR rs2, final SFPR rd) { | |
8523 int instruction = 0x81A90020; | |
8524 instruction |= ((n.value() & 0x3) << 11); | |
8525 instruction |= (rs2.value() & 0x1f); | |
8526 instruction |= ((rd.value() & 0x1f) << 25); | |
8527 emitInt(instruction); | |
8528 } | |
8529 | |
8530 /** | |
8531 * Pseudo-external assembler syntax: {@code fmovdl }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8532 * Example disassembly syntax: {@code fmovdl %fcc0, %f0, %f0} | |
8533 * | |
8534 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8535 */ | |
8536 // Template#: 512, Serial#: 512 | |
8537 public void fmovdl(final FCCOperand n, final DFPR rs2, final DFPR rd) { | |
8538 int instruction = 0x81A90040; | |
8539 instruction |= ((n.value() & 0x3) << 11); | |
8540 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
8541 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
8542 emitInt(instruction); | |
8543 } | |
8544 | |
8545 /** | |
8546 * Pseudo-external assembler syntax: {@code fmovql }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8547 * Example disassembly syntax: {@code fmovql %fcc0, %f0, %f0} | |
8548 * | |
8549 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8550 */ | |
8551 // Template#: 513, Serial#: 513 | |
8552 public void fmovql(final FCCOperand n, final QFPR rs2, final QFPR rd) { | |
8553 int instruction = 0x81A90060; | |
8554 instruction |= ((n.value() & 0x3) << 11); | |
8555 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
8556 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
8557 emitInt(instruction); | |
8558 } | |
8559 | |
8560 /** | |
8561 * Pseudo-external assembler syntax: {@code movl }<i>n</i>, <i>simm11</i>, <i>rd</i> | |
8562 * Example disassembly syntax: {@code movl %fcc0, -1024, %g0} | |
8563 * <p> | |
8564 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
8565 * | |
8566 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8567 */ | |
8568 // Template#: 514, Serial#: 514 | |
8569 public void movl(final FCCOperand n, final int simm11, final GPR rd) { | |
8570 int instruction = 0x81612000; | |
8571 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
8572 instruction |= ((n.value() & 0x3) << 11); | |
8573 instruction |= (simm11 & 0x7ff); | |
8574 instruction |= ((rd.value() & 0x1f) << 25); | |
8575 emitInt(instruction); | |
8576 } | |
8577 | |
8578 /** | |
8579 * Pseudo-external assembler syntax: {@code movl }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8580 * Example disassembly syntax: {@code movl %fcc0, %g0, %g0} | |
8581 * | |
8582 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8583 */ | |
8584 // Template#: 515, Serial#: 515 | |
8585 public void movl(final FCCOperand n, final GPR rs2, final GPR rd) { | |
8586 int instruction = 0x81610000; | |
8587 instruction |= ((n.value() & 0x3) << 11); | |
8588 instruction |= (rs2.value() & 0x1f); | |
8589 instruction |= ((rd.value() & 0x1f) << 25); | |
8590 emitInt(instruction); | |
8591 } | |
8592 | |
8593 /** | |
8594 * Pseudo-external assembler syntax: {@code fmovsul }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8595 * Example disassembly syntax: {@code fmovsul %fcc0, %f0, %f0} | |
8596 * | |
8597 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8598 */ | |
8599 // Template#: 516, Serial#: 516 | |
8600 public void fmovsul(final FCCOperand n, final SFPR rs2, final SFPR rd) { | |
8601 int instruction = 0x81A8C020; | |
8602 instruction |= ((n.value() & 0x3) << 11); | |
8603 instruction |= (rs2.value() & 0x1f); | |
8604 instruction |= ((rd.value() & 0x1f) << 25); | |
8605 emitInt(instruction); | |
8606 } | |
8607 | |
8608 /** | |
8609 * Pseudo-external assembler syntax: {@code fmovdul }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8610 * Example disassembly syntax: {@code fmovdul %fcc0, %f0, %f0} | |
8611 * | |
8612 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8613 */ | |
8614 // Template#: 517, Serial#: 517 | |
8615 public void fmovdul(final FCCOperand n, final DFPR rs2, final DFPR rd) { | |
8616 int instruction = 0x81A8C040; | |
8617 instruction |= ((n.value() & 0x3) << 11); | |
8618 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
8619 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
8620 emitInt(instruction); | |
8621 } | |
8622 | |
8623 /** | |
8624 * Pseudo-external assembler syntax: {@code fmovqul }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8625 * Example disassembly syntax: {@code fmovqul %fcc0, %f0, %f0} | |
8626 * | |
8627 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8628 */ | |
8629 // Template#: 518, Serial#: 518 | |
8630 public void fmovqul(final FCCOperand n, final QFPR rs2, final QFPR rd) { | |
8631 int instruction = 0x81A8C060; | |
8632 instruction |= ((n.value() & 0x3) << 11); | |
8633 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
8634 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
8635 emitInt(instruction); | |
8636 } | |
8637 | |
8638 /** | |
8639 * Pseudo-external assembler syntax: {@code movul }<i>n</i>, <i>simm11</i>, <i>rd</i> | |
8640 * Example disassembly syntax: {@code movul %fcc0, -1024, %g0} | |
8641 * <p> | |
8642 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
8643 * | |
8644 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8645 */ | |
8646 // Template#: 519, Serial#: 519 | |
8647 public void movul(final FCCOperand n, final int simm11, final GPR rd) { | |
8648 int instruction = 0x8160E000; | |
8649 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
8650 instruction |= ((n.value() & 0x3) << 11); | |
8651 instruction |= (simm11 & 0x7ff); | |
8652 instruction |= ((rd.value() & 0x1f) << 25); | |
8653 emitInt(instruction); | |
8654 } | |
8655 | |
8656 /** | |
8657 * Pseudo-external assembler syntax: {@code movul }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8658 * Example disassembly syntax: {@code movul %fcc0, %g0, %g0} | |
8659 * | |
8660 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8661 */ | |
8662 // Template#: 520, Serial#: 520 | |
8663 public void movul(final FCCOperand n, final GPR rs2, final GPR rd) { | |
8664 int instruction = 0x8160C000; | |
8665 instruction |= ((n.value() & 0x3) << 11); | |
8666 instruction |= (rs2.value() & 0x1f); | |
8667 instruction |= ((rd.value() & 0x1f) << 25); | |
8668 emitInt(instruction); | |
8669 } | |
8670 | |
8671 /** | |
8672 * Pseudo-external assembler syntax: {@code fmovslg }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8673 * Example disassembly syntax: {@code fmovslg %fcc0, %f0, %f0} | |
8674 * | |
8675 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8676 */ | |
8677 // Template#: 521, Serial#: 521 | |
8678 public void fmovslg(final FCCOperand n, final SFPR rs2, final SFPR rd) { | |
8679 int instruction = 0x81A88020; | |
8680 instruction |= ((n.value() & 0x3) << 11); | |
8681 instruction |= (rs2.value() & 0x1f); | |
8682 instruction |= ((rd.value() & 0x1f) << 25); | |
8683 emitInt(instruction); | |
8684 } | |
8685 | |
8686 /** | |
8687 * Pseudo-external assembler syntax: {@code fmovdlg }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8688 * Example disassembly syntax: {@code fmovdlg %fcc0, %f0, %f0} | |
8689 * | |
8690 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8691 */ | |
8692 // Template#: 522, Serial#: 522 | |
8693 public void fmovdlg(final FCCOperand n, final DFPR rs2, final DFPR rd) { | |
8694 int instruction = 0x81A88040; | |
8695 instruction |= ((n.value() & 0x3) << 11); | |
8696 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
8697 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
8698 emitInt(instruction); | |
8699 } | |
8700 | |
8701 /** | |
8702 * Pseudo-external assembler syntax: {@code fmovqlg }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8703 * Example disassembly syntax: {@code fmovqlg %fcc0, %f0, %f0} | |
8704 * | |
8705 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8706 */ | |
8707 // Template#: 523, Serial#: 523 | |
8708 public void fmovqlg(final FCCOperand n, final QFPR rs2, final QFPR rd) { | |
8709 int instruction = 0x81A88060; | |
8710 instruction |= ((n.value() & 0x3) << 11); | |
8711 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
8712 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
8713 emitInt(instruction); | |
8714 } | |
8715 | |
8716 /** | |
8717 * Pseudo-external assembler syntax: {@code movlg }<i>n</i>, <i>simm11</i>, <i>rd</i> | |
8718 * Example disassembly syntax: {@code movlg %fcc0, -1024, %g0} | |
8719 * <p> | |
8720 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
8721 * | |
8722 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8723 */ | |
8724 // Template#: 524, Serial#: 524 | |
8725 public void movlg(final FCCOperand n, final int simm11, final GPR rd) { | |
8726 int instruction = 0x8160A000; | |
8727 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
8728 instruction |= ((n.value() & 0x3) << 11); | |
8729 instruction |= (simm11 & 0x7ff); | |
8730 instruction |= ((rd.value() & 0x1f) << 25); | |
8731 emitInt(instruction); | |
8732 } | |
8733 | |
8734 /** | |
8735 * Pseudo-external assembler syntax: {@code movlg }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8736 * Example disassembly syntax: {@code movlg %fcc0, %g0, %g0} | |
8737 * | |
8738 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8739 */ | |
8740 // Template#: 525, Serial#: 525 | |
8741 public void movlg(final FCCOperand n, final GPR rs2, final GPR rd) { | |
8742 int instruction = 0x81608000; | |
8743 instruction |= ((n.value() & 0x3) << 11); | |
8744 instruction |= (rs2.value() & 0x1f); | |
8745 instruction |= ((rd.value() & 0x1f) << 25); | |
8746 emitInt(instruction); | |
8747 } | |
8748 | |
8749 /** | |
8750 * Pseudo-external assembler syntax: {@code fmovsne }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8751 * Example disassembly syntax: {@code fmovsne %fcc0, %f0, %f0} | |
8752 * | |
8753 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8754 */ | |
8755 // Template#: 526, Serial#: 526 | |
8756 public void fmovsne(final FCCOperand n, final SFPR rs2, final SFPR rd) { | |
8757 int instruction = 0x81A84020; | |
8758 instruction |= ((n.value() & 0x3) << 11); | |
8759 instruction |= (rs2.value() & 0x1f); | |
8760 instruction |= ((rd.value() & 0x1f) << 25); | |
8761 emitInt(instruction); | |
8762 } | |
8763 | |
8764 /** | |
8765 * Pseudo-external assembler syntax: {@code fmovdne }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8766 * Example disassembly syntax: {@code fmovdne %fcc0, %f0, %f0} | |
8767 * | |
8768 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8769 */ | |
8770 // Template#: 527, Serial#: 527 | |
8771 public void fmovdne(final FCCOperand n, final DFPR rs2, final DFPR rd) { | |
8772 int instruction = 0x81A84040; | |
8773 instruction |= ((n.value() & 0x3) << 11); | |
8774 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
8775 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
8776 emitInt(instruction); | |
8777 } | |
8778 | |
8779 /** | |
8780 * Pseudo-external assembler syntax: {@code fmovqne }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8781 * Example disassembly syntax: {@code fmovqne %fcc0, %f0, %f0} | |
8782 * | |
8783 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8784 */ | |
8785 // Template#: 528, Serial#: 528 | |
8786 public void fmovqne(final FCCOperand n, final QFPR rs2, final QFPR rd) { | |
8787 int instruction = 0x81A84060; | |
8788 instruction |= ((n.value() & 0x3) << 11); | |
8789 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
8790 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
8791 emitInt(instruction); | |
8792 } | |
8793 | |
8794 /** | |
8795 * Pseudo-external assembler syntax: {@code movne }<i>n</i>, <i>simm11</i>, <i>rd</i> | |
8796 * Example disassembly syntax: {@code movne %fcc0, -1024, %g0} | |
8797 * <p> | |
8798 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
8799 * | |
8800 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8801 */ | |
8802 // Template#: 529, Serial#: 529 | |
8803 public void movne(final FCCOperand n, final int simm11, final GPR rd) { | |
8804 int instruction = 0x81606000; | |
8805 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
8806 instruction |= ((n.value() & 0x3) << 11); | |
8807 instruction |= (simm11 & 0x7ff); | |
8808 instruction |= ((rd.value() & 0x1f) << 25); | |
8809 emitInt(instruction); | |
8810 } | |
8811 | |
8812 /** | |
8813 * Pseudo-external assembler syntax: {@code movne }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8814 * Example disassembly syntax: {@code movne %fcc0, %g0, %g0} | |
8815 * | |
8816 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8817 */ | |
8818 // Template#: 530, Serial#: 530 | |
8819 public void movne(final FCCOperand n, final GPR rs2, final GPR rd) { | |
8820 int instruction = 0x81604000; | |
8821 instruction |= ((n.value() & 0x3) << 11); | |
8822 instruction |= (rs2.value() & 0x1f); | |
8823 instruction |= ((rd.value() & 0x1f) << 25); | |
8824 emitInt(instruction); | |
8825 } | |
8826 | |
8827 /** | |
8828 * Pseudo-external assembler syntax: {@code fmovse }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8829 * Example disassembly syntax: {@code fmovse %fcc0, %f0, %f0} | |
8830 * | |
8831 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8832 */ | |
8833 // Template#: 531, Serial#: 531 | |
8834 public void fmovse(final FCCOperand n, final SFPR rs2, final SFPR rd) { | |
8835 int instruction = 0x81AA4020; | |
8836 instruction |= ((n.value() & 0x3) << 11); | |
8837 instruction |= (rs2.value() & 0x1f); | |
8838 instruction |= ((rd.value() & 0x1f) << 25); | |
8839 emitInt(instruction); | |
8840 } | |
8841 | |
8842 /** | |
8843 * Pseudo-external assembler syntax: {@code fmovde }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8844 * Example disassembly syntax: {@code fmovde %fcc0, %f0, %f0} | |
8845 * | |
8846 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8847 */ | |
8848 // Template#: 532, Serial#: 532 | |
8849 public void fmovde(final FCCOperand n, final DFPR rs2, final DFPR rd) { | |
8850 int instruction = 0x81AA4040; | |
8851 instruction |= ((n.value() & 0x3) << 11); | |
8852 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
8853 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
8854 emitInt(instruction); | |
8855 } | |
8856 | |
8857 /** | |
8858 * Pseudo-external assembler syntax: {@code fmovqe }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8859 * Example disassembly syntax: {@code fmovqe %fcc0, %f0, %f0} | |
8860 * | |
8861 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8862 */ | |
8863 // Template#: 533, Serial#: 533 | |
8864 public void fmovqe(final FCCOperand n, final QFPR rs2, final QFPR rd) { | |
8865 int instruction = 0x81AA4060; | |
8866 instruction |= ((n.value() & 0x3) << 11); | |
8867 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
8868 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
8869 emitInt(instruction); | |
8870 } | |
8871 | |
8872 /** | |
8873 * Pseudo-external assembler syntax: {@code move }<i>n</i>, <i>simm11</i>, <i>rd</i> | |
8874 * Example disassembly syntax: {@code move %fcc0, -1024, %g0} | |
8875 * <p> | |
8876 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
8877 * | |
8878 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8879 */ | |
8880 // Template#: 534, Serial#: 534 | |
8881 public void move(final FCCOperand n, final int simm11, final GPR rd) { | |
8882 int instruction = 0x81626000; | |
8883 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
8884 instruction |= ((n.value() & 0x3) << 11); | |
8885 instruction |= (simm11 & 0x7ff); | |
8886 instruction |= ((rd.value() & 0x1f) << 25); | |
8887 emitInt(instruction); | |
8888 } | |
8889 | |
8890 /** | |
8891 * Pseudo-external assembler syntax: {@code move }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8892 * Example disassembly syntax: {@code move %fcc0, %g0, %g0} | |
8893 * | |
8894 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8895 */ | |
8896 // Template#: 535, Serial#: 535 | |
8897 public void move(final FCCOperand n, final GPR rs2, final GPR rd) { | |
8898 int instruction = 0x81624000; | |
8899 instruction |= ((n.value() & 0x3) << 11); | |
8900 instruction |= (rs2.value() & 0x1f); | |
8901 instruction |= ((rd.value() & 0x1f) << 25); | |
8902 emitInt(instruction); | |
8903 } | |
8904 | |
8905 /** | |
8906 * Pseudo-external assembler syntax: {@code fmovsue }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8907 * Example disassembly syntax: {@code fmovsue %fcc0, %f0, %f0} | |
8908 * | |
8909 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8910 */ | |
8911 // Template#: 536, Serial#: 536 | |
8912 public void fmovsue(final FCCOperand n, final SFPR rs2, final SFPR rd) { | |
8913 int instruction = 0x81AA8020; | |
8914 instruction |= ((n.value() & 0x3) << 11); | |
8915 instruction |= (rs2.value() & 0x1f); | |
8916 instruction |= ((rd.value() & 0x1f) << 25); | |
8917 emitInt(instruction); | |
8918 } | |
8919 | |
8920 /** | |
8921 * Pseudo-external assembler syntax: {@code fmovdue }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8922 * Example disassembly syntax: {@code fmovdue %fcc0, %f0, %f0} | |
8923 * | |
8924 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8925 */ | |
8926 // Template#: 537, Serial#: 537 | |
8927 public void fmovdue(final FCCOperand n, final DFPR rs2, final DFPR rd) { | |
8928 int instruction = 0x81AA8040; | |
8929 instruction |= ((n.value() & 0x3) << 11); | |
8930 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
8931 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
8932 emitInt(instruction); | |
8933 } | |
8934 | |
8935 /** | |
8936 * Pseudo-external assembler syntax: {@code fmovque }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8937 * Example disassembly syntax: {@code fmovque %fcc0, %f0, %f0} | |
8938 * | |
8939 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8940 */ | |
8941 // Template#: 538, Serial#: 538 | |
8942 public void fmovque(final FCCOperand n, final QFPR rs2, final QFPR rd) { | |
8943 int instruction = 0x81AA8060; | |
8944 instruction |= ((n.value() & 0x3) << 11); | |
8945 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
8946 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
8947 emitInt(instruction); | |
8948 } | |
8949 | |
8950 /** | |
8951 * Pseudo-external assembler syntax: {@code movue }<i>n</i>, <i>simm11</i>, <i>rd</i> | |
8952 * Example disassembly syntax: {@code movue %fcc0, -1024, %g0} | |
8953 * <p> | |
8954 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
8955 * | |
8956 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8957 */ | |
8958 // Template#: 539, Serial#: 539 | |
8959 public void movue(final FCCOperand n, final int simm11, final GPR rd) { | |
8960 int instruction = 0x8162A000; | |
8961 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
8962 instruction |= ((n.value() & 0x3) << 11); | |
8963 instruction |= (simm11 & 0x7ff); | |
8964 instruction |= ((rd.value() & 0x1f) << 25); | |
8965 emitInt(instruction); | |
8966 } | |
8967 | |
8968 /** | |
8969 * Pseudo-external assembler syntax: {@code movue }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8970 * Example disassembly syntax: {@code movue %fcc0, %g0, %g0} | |
8971 * | |
8972 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
8973 */ | |
8974 // Template#: 540, Serial#: 540 | |
8975 public void movue(final FCCOperand n, final GPR rs2, final GPR rd) { | |
8976 int instruction = 0x81628000; | |
8977 instruction |= ((n.value() & 0x3) << 11); | |
8978 instruction |= (rs2.value() & 0x1f); | |
8979 instruction |= ((rd.value() & 0x1f) << 25); | |
8980 emitInt(instruction); | |
8981 } | |
8982 | |
8983 /** | |
8984 * Pseudo-external assembler syntax: {@code fmovsge }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
8985 * Example disassembly syntax: {@code fmovsge %fcc0, %f0, %f0} | |
8986 * | |
8987 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
8988 */ | |
8989 // Template#: 541, Serial#: 541 | |
8990 public void fmovsge(final FCCOperand n, final SFPR rs2, final SFPR rd) { | |
8991 int instruction = 0x81AAC020; | |
8992 instruction |= ((n.value() & 0x3) << 11); | |
8993 instruction |= (rs2.value() & 0x1f); | |
8994 instruction |= ((rd.value() & 0x1f) << 25); | |
8995 emitInt(instruction); | |
8996 } | |
8997 | |
8998 /** | |
8999 * Pseudo-external assembler syntax: {@code fmovdge }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
9000 * Example disassembly syntax: {@code fmovdge %fcc0, %f0, %f0} | |
9001 * | |
9002 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
9003 */ | |
9004 // Template#: 542, Serial#: 542 | |
9005 public void fmovdge(final FCCOperand n, final DFPR rs2, final DFPR rd) { | |
9006 int instruction = 0x81AAC040; | |
9007 instruction |= ((n.value() & 0x3) << 11); | |
9008 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
9009 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
9010 emitInt(instruction); | |
9011 } | |
9012 | |
9013 /** | |
9014 * Pseudo-external assembler syntax: {@code fmovqge }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
9015 * Example disassembly syntax: {@code fmovqge %fcc0, %f0, %f0} | |
9016 * | |
9017 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
9018 */ | |
9019 // Template#: 543, Serial#: 543 | |
9020 public void fmovqge(final FCCOperand n, final QFPR rs2, final QFPR rd) { | |
9021 int instruction = 0x81AAC060; | |
9022 instruction |= ((n.value() & 0x3) << 11); | |
9023 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
9024 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
9025 emitInt(instruction); | |
9026 } | |
9027 | |
9028 /** | |
9029 * Pseudo-external assembler syntax: {@code movge }<i>n</i>, <i>simm11</i>, <i>rd</i> | |
9030 * Example disassembly syntax: {@code movge %fcc0, -1024, %g0} | |
9031 * <p> | |
9032 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
9033 * | |
9034 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
9035 */ | |
9036 // Template#: 544, Serial#: 544 | |
9037 public void movge(final FCCOperand n, final int simm11, final GPR rd) { | |
9038 int instruction = 0x8162E000; | |
9039 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
9040 instruction |= ((n.value() & 0x3) << 11); | |
9041 instruction |= (simm11 & 0x7ff); | |
9042 instruction |= ((rd.value() & 0x1f) << 25); | |
9043 emitInt(instruction); | |
9044 } | |
9045 | |
9046 /** | |
9047 * Pseudo-external assembler syntax: {@code movge }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
9048 * Example disassembly syntax: {@code movge %fcc0, %g0, %g0} | |
9049 * | |
9050 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
9051 */ | |
9052 // Template#: 545, Serial#: 545 | |
9053 public void movge(final FCCOperand n, final GPR rs2, final GPR rd) { | |
9054 int instruction = 0x8162C000; | |
9055 instruction |= ((n.value() & 0x3) << 11); | |
9056 instruction |= (rs2.value() & 0x1f); | |
9057 instruction |= ((rd.value() & 0x1f) << 25); | |
9058 emitInt(instruction); | |
9059 } | |
9060 | |
9061 /** | |
9062 * Pseudo-external assembler syntax: {@code fmovsuge }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
9063 * Example disassembly syntax: {@code fmovsuge %fcc0, %f0, %f0} | |
9064 * | |
9065 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
9066 */ | |
9067 // Template#: 546, Serial#: 546 | |
9068 public void fmovsuge(final FCCOperand n, final SFPR rs2, final SFPR rd) { | |
9069 int instruction = 0x81AB0020; | |
9070 instruction |= ((n.value() & 0x3) << 11); | |
9071 instruction |= (rs2.value() & 0x1f); | |
9072 instruction |= ((rd.value() & 0x1f) << 25); | |
9073 emitInt(instruction); | |
9074 } | |
9075 | |
9076 /** | |
9077 * Pseudo-external assembler syntax: {@code fmovduge }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
9078 * Example disassembly syntax: {@code fmovduge %fcc0, %f0, %f0} | |
9079 * | |
9080 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
9081 */ | |
9082 // Template#: 547, Serial#: 547 | |
9083 public void fmovduge(final FCCOperand n, final DFPR rs2, final DFPR rd) { | |
9084 int instruction = 0x81AB0040; | |
9085 instruction |= ((n.value() & 0x3) << 11); | |
9086 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
9087 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
9088 emitInt(instruction); | |
9089 } | |
9090 | |
9091 /** | |
9092 * Pseudo-external assembler syntax: {@code fmovquge }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
9093 * Example disassembly syntax: {@code fmovquge %fcc0, %f0, %f0} | |
9094 * | |
9095 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
9096 */ | |
9097 // Template#: 548, Serial#: 548 | |
9098 public void fmovquge(final FCCOperand n, final QFPR rs2, final QFPR rd) { | |
9099 int instruction = 0x81AB0060; | |
9100 instruction |= ((n.value() & 0x3) << 11); | |
9101 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
9102 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
9103 emitInt(instruction); | |
9104 } | |
9105 | |
9106 /** | |
9107 * Pseudo-external assembler syntax: {@code movuge }<i>n</i>, <i>simm11</i>, <i>rd</i> | |
9108 * Example disassembly syntax: {@code movuge %fcc0, -1024, %g0} | |
9109 * <p> | |
9110 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
9111 * | |
9112 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
9113 */ | |
9114 // Template#: 549, Serial#: 549 | |
9115 public void movuge(final FCCOperand n, final int simm11, final GPR rd) { | |
9116 int instruction = 0x81632000; | |
9117 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
9118 instruction |= ((n.value() & 0x3) << 11); | |
9119 instruction |= (simm11 & 0x7ff); | |
9120 instruction |= ((rd.value() & 0x1f) << 25); | |
9121 emitInt(instruction); | |
9122 } | |
9123 | |
9124 /** | |
9125 * Pseudo-external assembler syntax: {@code movuge }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
9126 * Example disassembly syntax: {@code movuge %fcc0, %g0, %g0} | |
9127 * | |
9128 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
9129 */ | |
9130 // Template#: 550, Serial#: 550 | |
9131 public void movuge(final FCCOperand n, final GPR rs2, final GPR rd) { | |
9132 int instruction = 0x81630000; | |
9133 instruction |= ((n.value() & 0x3) << 11); | |
9134 instruction |= (rs2.value() & 0x1f); | |
9135 instruction |= ((rd.value() & 0x1f) << 25); | |
9136 emitInt(instruction); | |
9137 } | |
9138 | |
9139 /** | |
9140 * Pseudo-external assembler syntax: {@code fmovsle }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
9141 * Example disassembly syntax: {@code fmovsle %fcc0, %f0, %f0} | |
9142 * | |
9143 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
9144 */ | |
9145 // Template#: 551, Serial#: 551 | |
9146 public void fmovsle(final FCCOperand n, final SFPR rs2, final SFPR rd) { | |
9147 int instruction = 0x81AB4020; | |
9148 instruction |= ((n.value() & 0x3) << 11); | |
9149 instruction |= (rs2.value() & 0x1f); | |
9150 instruction |= ((rd.value() & 0x1f) << 25); | |
9151 emitInt(instruction); | |
9152 } | |
9153 | |
9154 /** | |
9155 * Pseudo-external assembler syntax: {@code fmovdle }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
9156 * Example disassembly syntax: {@code fmovdle %fcc0, %f0, %f0} | |
9157 * | |
9158 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
9159 */ | |
9160 // Template#: 552, Serial#: 552 | |
9161 public void fmovdle(final FCCOperand n, final DFPR rs2, final DFPR rd) { | |
9162 int instruction = 0x81AB4040; | |
9163 instruction |= ((n.value() & 0x3) << 11); | |
9164 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
9165 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
9166 emitInt(instruction); | |
9167 } | |
9168 | |
9169 /** | |
9170 * Pseudo-external assembler syntax: {@code fmovqle }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
9171 * Example disassembly syntax: {@code fmovqle %fcc0, %f0, %f0} | |
9172 * | |
9173 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
9174 */ | |
9175 // Template#: 553, Serial#: 553 | |
9176 public void fmovqle(final FCCOperand n, final QFPR rs2, final QFPR rd) { | |
9177 int instruction = 0x81AB4060; | |
9178 instruction |= ((n.value() & 0x3) << 11); | |
9179 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
9180 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
9181 emitInt(instruction); | |
9182 } | |
9183 | |
9184 /** | |
9185 * Pseudo-external assembler syntax: {@code movle }<i>n</i>, <i>simm11</i>, <i>rd</i> | |
9186 * Example disassembly syntax: {@code movle %fcc0, -1024, %g0} | |
9187 * <p> | |
9188 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
9189 * | |
9190 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
9191 */ | |
9192 // Template#: 554, Serial#: 554 | |
9193 public void movle(final FCCOperand n, final int simm11, final GPR rd) { | |
9194 int instruction = 0x81636000; | |
9195 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
9196 instruction |= ((n.value() & 0x3) << 11); | |
9197 instruction |= (simm11 & 0x7ff); | |
9198 instruction |= ((rd.value() & 0x1f) << 25); | |
9199 emitInt(instruction); | |
9200 } | |
9201 | |
9202 /** | |
9203 * Pseudo-external assembler syntax: {@code movle }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
9204 * Example disassembly syntax: {@code movle %fcc0, %g0, %g0} | |
9205 * | |
9206 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
9207 */ | |
9208 // Template#: 555, Serial#: 555 | |
9209 public void movle(final FCCOperand n, final GPR rs2, final GPR rd) { | |
9210 int instruction = 0x81634000; | |
9211 instruction |= ((n.value() & 0x3) << 11); | |
9212 instruction |= (rs2.value() & 0x1f); | |
9213 instruction |= ((rd.value() & 0x1f) << 25); | |
9214 emitInt(instruction); | |
9215 } | |
9216 | |
9217 /** | |
9218 * Pseudo-external assembler syntax: {@code fmovsule }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
9219 * Example disassembly syntax: {@code fmovsule %fcc0, %f0, %f0} | |
9220 * | |
9221 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
9222 */ | |
9223 // Template#: 556, Serial#: 556 | |
9224 public void fmovsule(final FCCOperand n, final SFPR rs2, final SFPR rd) { | |
9225 int instruction = 0x81AB8020; | |
9226 instruction |= ((n.value() & 0x3) << 11); | |
9227 instruction |= (rs2.value() & 0x1f); | |
9228 instruction |= ((rd.value() & 0x1f) << 25); | |
9229 emitInt(instruction); | |
9230 } | |
9231 | |
9232 /** | |
9233 * Pseudo-external assembler syntax: {@code fmovdule }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
9234 * Example disassembly syntax: {@code fmovdule %fcc0, %f0, %f0} | |
9235 * | |
9236 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
9237 */ | |
9238 // Template#: 557, Serial#: 557 | |
9239 public void fmovdule(final FCCOperand n, final DFPR rs2, final DFPR rd) { | |
9240 int instruction = 0x81AB8040; | |
9241 instruction |= ((n.value() & 0x3) << 11); | |
9242 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
9243 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
9244 emitInt(instruction); | |
9245 } | |
9246 | |
9247 /** | |
9248 * Pseudo-external assembler syntax: {@code fmovqule }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
9249 * Example disassembly syntax: {@code fmovqule %fcc0, %f0, %f0} | |
9250 * | |
9251 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
9252 */ | |
9253 // Template#: 558, Serial#: 558 | |
9254 public void fmovqule(final FCCOperand n, final QFPR rs2, final QFPR rd) { | |
9255 int instruction = 0x81AB8060; | |
9256 instruction |= ((n.value() & 0x3) << 11); | |
9257 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
9258 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
9259 emitInt(instruction); | |
9260 } | |
9261 | |
9262 /** | |
9263 * Pseudo-external assembler syntax: {@code movule }<i>n</i>, <i>simm11</i>, <i>rd</i> | |
9264 * Example disassembly syntax: {@code movule %fcc0, -1024, %g0} | |
9265 * <p> | |
9266 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
9267 * | |
9268 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
9269 */ | |
9270 // Template#: 559, Serial#: 559 | |
9271 public void movule(final FCCOperand n, final int simm11, final GPR rd) { | |
9272 int instruction = 0x8163A000; | |
9273 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
9274 instruction |= ((n.value() & 0x3) << 11); | |
9275 instruction |= (simm11 & 0x7ff); | |
9276 instruction |= ((rd.value() & 0x1f) << 25); | |
9277 emitInt(instruction); | |
9278 } | |
9279 | |
9280 /** | |
9281 * Pseudo-external assembler syntax: {@code movule }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
9282 * Example disassembly syntax: {@code movule %fcc0, %g0, %g0} | |
9283 * | |
9284 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
9285 */ | |
9286 // Template#: 560, Serial#: 560 | |
9287 public void movule(final FCCOperand n, final GPR rs2, final GPR rd) { | |
9288 int instruction = 0x81638000; | |
9289 instruction |= ((n.value() & 0x3) << 11); | |
9290 instruction |= (rs2.value() & 0x1f); | |
9291 instruction |= ((rd.value() & 0x1f) << 25); | |
9292 emitInt(instruction); | |
9293 } | |
9294 | |
9295 /** | |
9296 * Pseudo-external assembler syntax: {@code fmovso }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
9297 * Example disassembly syntax: {@code fmovso %fcc0, %f0, %f0} | |
9298 * | |
9299 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
9300 */ | |
9301 // Template#: 561, Serial#: 561 | |
9302 public void fmovso(final FCCOperand n, final SFPR rs2, final SFPR rd) { | |
9303 int instruction = 0x81ABC020; | |
9304 instruction |= ((n.value() & 0x3) << 11); | |
9305 instruction |= (rs2.value() & 0x1f); | |
9306 instruction |= ((rd.value() & 0x1f) << 25); | |
9307 emitInt(instruction); | |
9308 } | |
9309 | |
9310 /** | |
9311 * Pseudo-external assembler syntax: {@code fmovdo }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
9312 * Example disassembly syntax: {@code fmovdo %fcc0, %f0, %f0} | |
9313 * | |
9314 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
9315 */ | |
9316 // Template#: 562, Serial#: 562 | |
9317 public void fmovdo(final FCCOperand n, final DFPR rs2, final DFPR rd) { | |
9318 int instruction = 0x81ABC040; | |
9319 instruction |= ((n.value() & 0x3) << 11); | |
9320 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
9321 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
9322 emitInt(instruction); | |
9323 } | |
9324 | |
9325 /** | |
9326 * Pseudo-external assembler syntax: {@code fmovqo }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
9327 * Example disassembly syntax: {@code fmovqo %fcc0, %f0, %f0} | |
9328 * | |
9329 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.33" | |
9330 */ | |
9331 // Template#: 563, Serial#: 563 | |
9332 public void fmovqo(final FCCOperand n, final QFPR rs2, final QFPR rd) { | |
9333 int instruction = 0x81ABC060; | |
9334 instruction |= ((n.value() & 0x3) << 11); | |
9335 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
9336 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
9337 emitInt(instruction); | |
9338 } | |
9339 | |
9340 /** | |
9341 * Pseudo-external assembler syntax: {@code movo }<i>n</i>, <i>simm11</i>, <i>rd</i> | |
9342 * Example disassembly syntax: {@code movo %fcc0, -1024, %g0} | |
9343 * <p> | |
9344 * Constraint: {@code -1024 <= simm11 && simm11 <= 1023}<br /> | |
9345 * | |
9346 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
9347 */ | |
9348 // Template#: 564, Serial#: 564 | |
9349 public void movo(final FCCOperand n, final int simm11, final GPR rd) { | |
9350 int instruction = 0x8163E000; | |
9351 checkConstraint(-1024 <= simm11 && simm11 <= 1023, "-1024 <= simm11 && simm11 <= 1023"); | |
9352 instruction |= ((n.value() & 0x3) << 11); | |
9353 instruction |= (simm11 & 0x7ff); | |
9354 instruction |= ((rd.value() & 0x1f) << 25); | |
9355 emitInt(instruction); | |
9356 } | |
9357 | |
9358 /** | |
9359 * Pseudo-external assembler syntax: {@code movo }<i>n</i>, <i>rs2</i>, <i>rd</i> | |
9360 * Example disassembly syntax: {@code movo %fcc0, %g0, %g0} | |
9361 * | |
9362 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.35" | |
9363 */ | |
9364 // Template#: 565, Serial#: 565 | |
9365 public void movo(final FCCOperand n, final GPR rs2, final GPR rd) { | |
9366 int instruction = 0x8163C000; | |
9367 instruction |= ((n.value() & 0x3) << 11); | |
9368 instruction |= (rs2.value() & 0x1f); | |
9369 instruction |= ((rd.value() & 0x1f) << 25); | |
9370 emitInt(instruction); | |
9371 } | |
9372 | |
9373 /** | |
9374 * Pseudo-external assembler syntax: {@code flushw } | |
9375 * Example disassembly syntax: {@code flushw } | |
9376 * | |
9377 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.21" | |
9378 */ | |
9379 // Template#: 566, Serial#: 566 | |
9380 public void flushw() { | |
9381 int instruction = 0x81580000; | |
9382 emitInt(instruction); | |
9383 } | |
9384 | |
9385 /** | |
9386 * Pseudo-external assembler syntax: {@code save }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
9387 * Example disassembly syntax: {@code save %g0, %g0, %g0} | |
9388 * | |
9389 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.45" | |
9390 */ | |
9391 // Template#: 567, Serial#: 567 | |
9392 public void save(final GPR rs1, final GPR rs2, final GPR rd) { | |
9393 int instruction = 0x81E00000; | |
9394 instruction |= ((rs1.value() & 0x1f) << 14); | |
9395 instruction |= (rs2.value() & 0x1f); | |
9396 instruction |= ((rd.value() & 0x1f) << 25); | |
9397 emitInt(instruction); | |
9398 } | |
9399 | |
9400 /** | |
9401 * Pseudo-external assembler syntax: {@code save }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
9402 * Example disassembly syntax: {@code save %g0, -4096, %g0} | |
9403 * <p> | |
9404 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
9405 * | |
9406 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.45" | |
9407 */ | |
9408 // Template#: 568, Serial#: 568 | |
9409 public void save(final GPR rs1, final int simm13, final GPR rd) { | |
9410 int instruction = 0x81E02000; | |
9411 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
9412 instruction |= ((rs1.value() & 0x1f) << 14); | |
9413 instruction |= (simm13 & 0x1fff); | |
9414 instruction |= ((rd.value() & 0x1f) << 25); | |
9415 emitInt(instruction); | |
9416 } | |
9417 | |
9418 /** | |
9419 * Pseudo-external assembler syntax: {@code restore }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
9420 * Example disassembly syntax: {@code restore %g0, %g0, %g0} | |
9421 * | |
9422 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.45" | |
9423 */ | |
9424 // Template#: 569, Serial#: 569 | |
9425 public void restore(final GPR rs1, final GPR rs2, final GPR rd) { | |
9426 int instruction = 0x81E80000; | |
9427 instruction |= ((rs1.value() & 0x1f) << 14); | |
9428 instruction |= (rs2.value() & 0x1f); | |
9429 instruction |= ((rd.value() & 0x1f) << 25); | |
9430 emitInt(instruction); | |
9431 } | |
9432 | |
9433 /** | |
9434 * Pseudo-external assembler syntax: {@code restore }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
9435 * Example disassembly syntax: {@code restore %g0, -4096, %g0} | |
9436 * <p> | |
9437 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
9438 * | |
9439 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.45" | |
9440 */ | |
9441 // Template#: 570, Serial#: 570 | |
9442 public void restore(final GPR rs1, final int simm13, final GPR rd) { | |
9443 int instruction = 0x81E82000; | |
9444 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
9445 instruction |= ((rs1.value() & 0x1f) << 14); | |
9446 instruction |= (simm13 & 0x1fff); | |
9447 instruction |= ((rd.value() & 0x1f) << 25); | |
9448 emitInt(instruction); | |
9449 } | |
9450 | |
9451 /** | |
9452 * Pseudo-external assembler syntax: {@code saved } | |
9453 * Example disassembly syntax: {@code saved } | |
9454 * | |
9455 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.46" | |
9456 */ | |
9457 // Template#: 571, Serial#: 571 | |
9458 public void saved() { | |
9459 int instruction = 0x81880000; | |
9460 emitInt(instruction); | |
9461 } | |
9462 | |
9463 /** | |
9464 * Pseudo-external assembler syntax: {@code restored } | |
9465 * Example disassembly syntax: {@code restored } | |
9466 * | |
9467 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.46" | |
9468 */ | |
9469 // Template#: 572, Serial#: 572 | |
9470 public void restored() { | |
9471 int instruction = 0x83880000; | |
9472 emitInt(instruction); | |
9473 } | |
9474 | |
9475 /** | |
9476 * Pseudo-external assembler syntax: {@code rd }<i>rs1</i>, <i>rd</i> | |
9477 * Example disassembly syntax: {@code rd %y, %g0} | |
9478 * | |
9479 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.43" | |
9480 */ | |
9481 // Template#: 573, Serial#: 573 | |
9482 public void rd(final StateRegister rs1, final GPR rd) { | |
9483 int instruction = 0x81400000; | |
9484 instruction |= ((rs1.value() & 0x1f) << 14); | |
9485 instruction |= ((rd.value() & 0x1f) << 25); | |
9486 emitInt(instruction); | |
9487 } | |
9488 | |
9489 /** | |
9490 * Pseudo-external assembler syntax: {@code wr }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
9491 * Example disassembly syntax: {@code wr %g0, %g0, %y} | |
9492 * | |
9493 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.62" | |
9494 */ | |
9495 // Template#: 574, Serial#: 574 | |
9496 public void wr(final GPR rs1, final GPR rs2, final StateRegister.Writable rd) { | |
9497 int instruction = 0x81800000; | |
9498 instruction |= ((rs1.value() & 0x1f) << 14); | |
9499 instruction |= (rs2.value() & 0x1f); | |
9500 instruction |= ((rd.value() & 0x1f) << 25); | |
9501 emitInt(instruction); | |
9502 } | |
9503 | |
9504 /** | |
9505 * Pseudo-external assembler syntax: {@code wr }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
9506 * Example disassembly syntax: {@code wr %g0, -4096, %y} | |
9507 * <p> | |
9508 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
9509 * | |
9510 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.62" | |
9511 */ | |
9512 // Template#: 575, Serial#: 575 | |
9513 public void wr(final GPR rs1, final int simm13, final StateRegister.Writable rd) { | |
9514 int instruction = 0x81802000; | |
9515 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
9516 instruction |= ((rs1.value() & 0x1f) << 14); | |
9517 instruction |= (simm13 & 0x1fff); | |
9518 instruction |= ((rd.value() & 0x1f) << 25); | |
9519 emitInt(instruction); | |
9520 } | |
9521 | |
9522 /** | |
9523 * Pseudo-external assembler syntax: {@code rdpr }<i>rs1</i>, <i>rd</i> | |
9524 * Example disassembly syntax: {@code rdpr %tpc, %g0} | |
9525 * | |
9526 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.42" | |
9527 */ | |
9528 // Template#: 576, Serial#: 576 | |
9529 public void rdpr(final PrivilegedRegister rs1, final GPR rd) { | |
9530 int instruction = 0x81500000; | |
9531 instruction |= ((rs1.value() & 0x1f) << 14); | |
9532 instruction |= ((rd.value() & 0x1f) << 25); | |
9533 emitInt(instruction); | |
9534 } | |
9535 | |
9536 /** | |
9537 * Pseudo-external assembler syntax: {@code wrpr }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
9538 * Example disassembly syntax: {@code wrpr %g0, %g0, %tpc} | |
9539 * | |
9540 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
9541 */ | |
9542 // Template#: 577, Serial#: 577 | |
9543 public void wrpr(final GPR rs1, final GPR rs2, final PrivilegedRegister.Writable rd) { | |
9544 int instruction = 0x81900000; | |
9545 instruction |= ((rs1.value() & 0x1f) << 14); | |
9546 instruction |= (rs2.value() & 0x1f); | |
9547 instruction |= ((rd.value() & 0x1f) << 25); | |
9548 emitInt(instruction); | |
9549 } | |
9550 | |
9551 /** | |
9552 * Pseudo-external assembler syntax: {@code wrpr }<i>rs1</i>, <i>simm13</i>, <i>rd</i> | |
9553 * Example disassembly syntax: {@code wrpr %g0, -4096, %tpc} | |
9554 * <p> | |
9555 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
9556 * | |
9557 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.61" | |
9558 */ | |
9559 // Template#: 578, Serial#: 578 | |
9560 public void wrpr(final GPR rs1, final int simm13, final PrivilegedRegister.Writable rd) { | |
9561 int instruction = 0x81902000; | |
9562 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
9563 instruction |= ((rs1.value() & 0x1f) << 14); | |
9564 instruction |= (simm13 & 0x1fff); | |
9565 instruction |= ((rd.value() & 0x1f) << 25); | |
9566 emitInt(instruction); | |
9567 } | |
9568 | |
9569 /** | |
9570 * Pseudo-external assembler syntax: {@code fadds }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
9571 * Example disassembly syntax: {@code fadds %f0, %f0, %f0} | |
9572 * | |
9573 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.12" | |
9574 */ | |
9575 // Template#: 579, Serial#: 579 | |
9576 public void fadds(final SFPR rs1, final SFPR rs2, final SFPR rd) { | |
9577 int instruction = 0x81A00820; | |
9578 instruction |= ((rs1.value() & 0x1f) << 14); | |
9579 instruction |= (rs2.value() & 0x1f); | |
9580 instruction |= ((rd.value() & 0x1f) << 25); | |
9581 emitInt(instruction); | |
9582 } | |
9583 | |
9584 /** | |
9585 * Pseudo-external assembler syntax: {@code faddd }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
9586 * Example disassembly syntax: {@code faddd %f0, %f0, %f0} | |
9587 * | |
9588 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.12" | |
9589 */ | |
9590 // Template#: 580, Serial#: 580 | |
9591 public void faddd(final DFPR rs1, final DFPR rs2, final DFPR rd) { | |
9592 int instruction = 0x81A00840; | |
9593 instruction |= (((rs1.value() >>> 1) & 0xf) << 15) | (((rs1.value() >>> 5) & 0x1) << 14); | |
9594 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
9595 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
9596 emitInt(instruction); | |
9597 } | |
9598 | |
9599 /** | |
9600 * Pseudo-external assembler syntax: {@code faddq }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
9601 * Example disassembly syntax: {@code faddq %f0, %f0, %f0} | |
9602 * | |
9603 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.12" | |
9604 */ | |
9605 // Template#: 581, Serial#: 581 | |
9606 public void faddq(final QFPR rs1, final QFPR rs2, final QFPR rd) { | |
9607 int instruction = 0x81A00860; | |
9608 instruction |= (((rs1.value() >>> 2) & 0x7) << 16) | (((rs1.value() >>> 5) & 0x1) << 14); | |
9609 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
9610 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
9611 emitInt(instruction); | |
9612 } | |
9613 | |
9614 /** | |
9615 * Pseudo-external assembler syntax: {@code fsubs }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
9616 * Example disassembly syntax: {@code fsubs %f0, %f0, %f0} | |
9617 * | |
9618 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.12" | |
9619 */ | |
9620 // Template#: 582, Serial#: 582 | |
9621 public void fsubs(final SFPR rs1, final SFPR rs2, final SFPR rd) { | |
9622 int instruction = 0x81A008A0; | |
9623 instruction |= ((rs1.value() & 0x1f) << 14); | |
9624 instruction |= (rs2.value() & 0x1f); | |
9625 instruction |= ((rd.value() & 0x1f) << 25); | |
9626 emitInt(instruction); | |
9627 } | |
9628 | |
9629 /** | |
9630 * Pseudo-external assembler syntax: {@code fsubd }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
9631 * Example disassembly syntax: {@code fsubd %f0, %f0, %f0} | |
9632 * | |
9633 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.12" | |
9634 */ | |
9635 // Template#: 583, Serial#: 583 | |
9636 public void fsubd(final DFPR rs1, final DFPR rs2, final DFPR rd) { | |
9637 int instruction = 0x81A008C0; | |
9638 instruction |= (((rs1.value() >>> 1) & 0xf) << 15) | (((rs1.value() >>> 5) & 0x1) << 14); | |
9639 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
9640 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
9641 emitInt(instruction); | |
9642 } | |
9643 | |
9644 /** | |
9645 * Pseudo-external assembler syntax: {@code fsubq }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
9646 * Example disassembly syntax: {@code fsubq %f0, %f0, %f0} | |
9647 * | |
9648 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.12" | |
9649 */ | |
9650 // Template#: 584, Serial#: 584 | |
9651 public void fsubq(final QFPR rs1, final QFPR rs2, final QFPR rd) { | |
9652 int instruction = 0x81A008E0; | |
9653 instruction |= (((rs1.value() >>> 2) & 0x7) << 16) | (((rs1.value() >>> 5) & 0x1) << 14); | |
9654 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
9655 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
9656 emitInt(instruction); | |
9657 } | |
9658 | |
9659 /** | |
9660 * Pseudo-external assembler syntax: {@code fcmps }<i>n</i>, <i>rs1</i>, <i>rs2</i> | |
9661 * Example disassembly syntax: {@code fcmps %fcc0, %f0, %f0} | |
9662 * | |
9663 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.13" | |
9664 */ | |
9665 // Template#: 585, Serial#: 585 | |
9666 public void fcmps(final FCCOperand n, final SFPR rs1, final SFPR rs2) { | |
9667 int instruction = 0x81A80A20; | |
9668 instruction |= ((n.value() & 0x3) << 25); | |
9669 instruction |= ((rs1.value() & 0x1f) << 14); | |
9670 instruction |= (rs2.value() & 0x1f); | |
9671 emitInt(instruction); | |
9672 } | |
9673 | |
9674 /** | |
9675 * Pseudo-external assembler syntax: {@code fcmpd }<i>n</i>, <i>rs1</i>, <i>rs2</i> | |
9676 * Example disassembly syntax: {@code fcmpd %fcc0, %f0, %f0} | |
9677 * | |
9678 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.13" | |
9679 */ | |
9680 // Template#: 586, Serial#: 586 | |
9681 public void fcmpd(final FCCOperand n, final DFPR rs1, final DFPR rs2) { | |
9682 int instruction = 0x81A80A40; | |
9683 instruction |= ((n.value() & 0x3) << 25); | |
9684 instruction |= (((rs1.value() >>> 1) & 0xf) << 15) | (((rs1.value() >>> 5) & 0x1) << 14); | |
9685 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
9686 emitInt(instruction); | |
9687 } | |
9688 | |
9689 /** | |
9690 * Pseudo-external assembler syntax: {@code fcmpq }<i>n</i>, <i>rs1</i>, <i>rs2</i> | |
9691 * Example disassembly syntax: {@code fcmpq %fcc0, %f0, %f0} | |
9692 * | |
9693 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.13" | |
9694 */ | |
9695 // Template#: 587, Serial#: 587 | |
9696 public void fcmpq(final FCCOperand n, final QFPR rs1, final QFPR rs2) { | |
9697 int instruction = 0x81A80A60; | |
9698 instruction |= ((n.value() & 0x3) << 25); | |
9699 instruction |= (((rs1.value() >>> 2) & 0x7) << 16) | (((rs1.value() >>> 5) & 0x1) << 14); | |
9700 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
9701 emitInt(instruction); | |
9702 } | |
9703 | |
9704 /** | |
9705 * Pseudo-external assembler syntax: {@code fcmpes }<i>n</i>, <i>rs1</i>, <i>rs2</i> | |
9706 * Example disassembly syntax: {@code fcmpes %fcc0, %f0, %f0} | |
9707 * | |
9708 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.13" | |
9709 */ | |
9710 // Template#: 588, Serial#: 588 | |
9711 public void fcmpes(final FCCOperand n, final SFPR rs1, final SFPR rs2) { | |
9712 int instruction = 0x81A80AA0; | |
9713 instruction |= ((n.value() & 0x3) << 25); | |
9714 instruction |= ((rs1.value() & 0x1f) << 14); | |
9715 instruction |= (rs2.value() & 0x1f); | |
9716 emitInt(instruction); | |
9717 } | |
9718 | |
9719 /** | |
9720 * Pseudo-external assembler syntax: {@code fcmped }<i>n</i>, <i>rs1</i>, <i>rs2</i> | |
9721 * Example disassembly syntax: {@code fcmped %fcc0, %f0, %f0} | |
9722 * | |
9723 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.13" | |
9724 */ | |
9725 // Template#: 589, Serial#: 589 | |
9726 public void fcmped(final FCCOperand n, final DFPR rs1, final DFPR rs2) { | |
9727 int instruction = 0x81A80AC0; | |
9728 instruction |= ((n.value() & 0x3) << 25); | |
9729 instruction |= (((rs1.value() >>> 1) & 0xf) << 15) | (((rs1.value() >>> 5) & 0x1) << 14); | |
9730 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
9731 emitInt(instruction); | |
9732 } | |
9733 | |
9734 /** | |
9735 * Pseudo-external assembler syntax: {@code fcmpeq }<i>n</i>, <i>rs1</i>, <i>rs2</i> | |
9736 * Example disassembly syntax: {@code fcmpeq %fcc0, %f0, %f0} | |
9737 * | |
9738 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.13" | |
9739 */ | |
9740 // Template#: 590, Serial#: 590 | |
9741 public void fcmpeq(final FCCOperand n, final QFPR rs1, final QFPR rs2) { | |
9742 int instruction = 0x81A80AE0; | |
9743 instruction |= ((n.value() & 0x3) << 25); | |
9744 instruction |= (((rs1.value() >>> 2) & 0x7) << 16) | (((rs1.value() >>> 5) & 0x1) << 14); | |
9745 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
9746 emitInt(instruction); | |
9747 } | |
9748 | |
9749 /** | |
9750 * Pseudo-external assembler syntax: {@code fstox }<i>rs2</i>, <i>rd</i> | |
9751 * Example disassembly syntax: {@code fstox %f0, %f0} | |
9752 * | |
9753 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.14" | |
9754 */ | |
9755 // Template#: 591, Serial#: 591 | |
9756 public void fstox(final SFPR rs2, final DFPR rd) { | |
9757 int instruction = 0x81A01020; | |
9758 instruction |= (rs2.value() & 0x1f); | |
9759 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
9760 emitInt(instruction); | |
9761 } | |
9762 | |
9763 /** | |
9764 * Pseudo-external assembler syntax: {@code fdtox }<i>rs2</i>, <i>rd</i> | |
9765 * Example disassembly syntax: {@code fdtox %f0, %f0} | |
9766 * | |
9767 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.14" | |
9768 */ | |
9769 // Template#: 592, Serial#: 592 | |
9770 public void fdtox(final DFPR rs2, final DFPR rd) { | |
9771 int instruction = 0x81A01040; | |
9772 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
9773 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
9774 emitInt(instruction); | |
9775 } | |
9776 | |
9777 /** | |
9778 * Pseudo-external assembler syntax: {@code fqtox }<i>rs2</i>, <i>rd</i> | |
9779 * Example disassembly syntax: {@code fqtox %f0, %f0} | |
9780 * | |
9781 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.14" | |
9782 */ | |
9783 // Template#: 593, Serial#: 593 | |
9784 public void fqtox(final QFPR rs2, final DFPR rd) { | |
9785 int instruction = 0x81A01060; | |
9786 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
9787 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
9788 emitInt(instruction); | |
9789 } | |
9790 | |
9791 /** | |
9792 * Pseudo-external assembler syntax: {@code fstoi }<i>rs2</i>, <i>rd</i> | |
9793 * Example disassembly syntax: {@code fstoi %f0, %f0} | |
9794 * | |
9795 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.14" | |
9796 */ | |
9797 // Template#: 594, Serial#: 594 | |
9798 public void fstoi(final SFPR rs2, final SFPR rd) { | |
9799 int instruction = 0x81A01A20; | |
9800 instruction |= (rs2.value() & 0x1f); | |
9801 instruction |= ((rd.value() & 0x1f) << 25); | |
9802 emitInt(instruction); | |
9803 } | |
9804 | |
9805 /** | |
9806 * Pseudo-external assembler syntax: {@code fdtoi }<i>rs2</i>, <i>rd</i> | |
9807 * Example disassembly syntax: {@code fdtoi %f0, %f0} | |
9808 * | |
9809 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.14" | |
9810 */ | |
9811 // Template#: 595, Serial#: 595 | |
9812 public void fdtoi(final DFPR rs2, final SFPR rd) { | |
9813 int instruction = 0x81A01A40; | |
9814 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
9815 instruction |= ((rd.value() & 0x1f) << 25); | |
9816 emitInt(instruction); | |
9817 } | |
9818 | |
9819 /** | |
9820 * Pseudo-external assembler syntax: {@code fqtoi }<i>rs2</i>, <i>rd</i> | |
9821 * Example disassembly syntax: {@code fqtoi %f0, %f0} | |
9822 * | |
9823 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.14" | |
9824 */ | |
9825 // Template#: 596, Serial#: 596 | |
9826 public void fqtoi(final QFPR rs2, final SFPR rd) { | |
9827 int instruction = 0x81A01A60; | |
9828 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
9829 instruction |= ((rd.value() & 0x1f) << 25); | |
9830 emitInt(instruction); | |
9831 } | |
9832 | |
9833 /** | |
9834 * Pseudo-external assembler syntax: {@code fstod }<i>rs2</i>, <i>rd</i> | |
9835 * Example disassembly syntax: {@code fstod %f0, %f0} | |
9836 * | |
9837 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.15" | |
9838 */ | |
9839 // Template#: 597, Serial#: 597 | |
9840 public void fstod(final SFPR rs2, final DFPR rd) { | |
9841 int instruction = 0x81A01920; | |
9842 instruction |= (rs2.value() & 0x1f); | |
9843 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
9844 emitInt(instruction); | |
9845 } | |
9846 | |
9847 /** | |
9848 * Pseudo-external assembler syntax: {@code fstoq }<i>rs2</i>, <i>rd</i> | |
9849 * Example disassembly syntax: {@code fstoq %f0, %f0} | |
9850 * | |
9851 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.15" | |
9852 */ | |
9853 // Template#: 598, Serial#: 598 | |
9854 public void fstoq(final SFPR rs2, final QFPR rd) { | |
9855 int instruction = 0x81A019A0; | |
9856 instruction |= (rs2.value() & 0x1f); | |
9857 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
9858 emitInt(instruction); | |
9859 } | |
9860 | |
9861 /** | |
9862 * Pseudo-external assembler syntax: {@code fdtos }<i>rs2</i>, <i>rd</i> | |
9863 * Example disassembly syntax: {@code fdtos %f0, %f0} | |
9864 * | |
9865 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.15" | |
9866 */ | |
9867 // Template#: 599, Serial#: 599 | |
9868 public void fdtos(final DFPR rs2, final SFPR rd) { | |
9869 int instruction = 0x81A018C0; | |
9870 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
9871 instruction |= ((rd.value() & 0x1f) << 25); | |
9872 emitInt(instruction); | |
9873 } | |
9874 | |
9875 /** | |
9876 * Pseudo-external assembler syntax: {@code fdtoq }<i>rs2</i>, <i>rd</i> | |
9877 * Example disassembly syntax: {@code fdtoq %f0, %f0} | |
9878 * | |
9879 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.15" | |
9880 */ | |
9881 // Template#: 600, Serial#: 600 | |
9882 public void fdtoq(final DFPR rs2, final QFPR rd) { | |
9883 int instruction = 0x81A019C0; | |
9884 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
9885 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
9886 emitInt(instruction); | |
9887 } | |
9888 | |
9889 /** | |
9890 * Pseudo-external assembler syntax: {@code fqtos }<i>rs2</i>, <i>rd</i> | |
9891 * Example disassembly syntax: {@code fqtos %f0, %f0} | |
9892 * | |
9893 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.15" | |
9894 */ | |
9895 // Template#: 601, Serial#: 601 | |
9896 public void fqtos(final QFPR rs2, final SFPR rd) { | |
9897 int instruction = 0x81A018E0; | |
9898 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
9899 instruction |= ((rd.value() & 0x1f) << 25); | |
9900 emitInt(instruction); | |
9901 } | |
9902 | |
9903 /** | |
9904 * Pseudo-external assembler syntax: {@code fqtod }<i>rs2</i>, <i>rd</i> | |
9905 * Example disassembly syntax: {@code fqtod %f0, %f0} | |
9906 * | |
9907 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.15" | |
9908 */ | |
9909 // Template#: 602, Serial#: 602 | |
9910 public void fqtod(final QFPR rs2, final DFPR rd) { | |
9911 int instruction = 0x81A01960; | |
9912 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
9913 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
9914 emitInt(instruction); | |
9915 } | |
9916 | |
9917 /** | |
9918 * Pseudo-external assembler syntax: {@code fxtos }<i>rs2</i>, <i>rd</i> | |
9919 * Example disassembly syntax: {@code fxtos %f0, %f0} | |
9920 * | |
9921 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.16" | |
9922 */ | |
9923 // Template#: 603, Serial#: 603 | |
9924 public void fxtos(final DFPR rs2, final SFPR rd) { | |
9925 int instruction = 0x81A01080; | |
9926 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
9927 instruction |= ((rd.value() & 0x1f) << 25); | |
9928 emitInt(instruction); | |
9929 } | |
9930 | |
9931 /** | |
9932 * Pseudo-external assembler syntax: {@code fitos }<i>rs2</i>, <i>rd</i> | |
9933 * Example disassembly syntax: {@code fitos %f0, %f0} | |
9934 * | |
9935 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.16" | |
9936 */ | |
9937 // Template#: 604, Serial#: 604 | |
9938 public void fitos(final SFPR rs2, final SFPR rd) { | |
9939 int instruction = 0x81A01880; | |
9940 instruction |= (rs2.value() & 0x1f); | |
9941 instruction |= ((rd.value() & 0x1f) << 25); | |
9942 emitInt(instruction); | |
9943 } | |
9944 | |
9945 /** | |
9946 * Pseudo-external assembler syntax: {@code fxtod }<i>rs2</i>, <i>rd</i> | |
9947 * Example disassembly syntax: {@code fxtod %f0, %f0} | |
9948 * | |
9949 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.16" | |
9950 */ | |
9951 // Template#: 605, Serial#: 605 | |
9952 public void fxtod(final DFPR rs2, final DFPR rd) { | |
9953 int instruction = 0x81A01100; | |
9954 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
9955 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
9956 emitInt(instruction); | |
9957 } | |
9958 | |
9959 /** | |
9960 * Pseudo-external assembler syntax: {@code fitod }<i>rs2</i>, <i>rd</i> | |
9961 * Example disassembly syntax: {@code fitod %f0, %f0} | |
9962 * | |
9963 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.16" | |
9964 */ | |
9965 // Template#: 606, Serial#: 606 | |
9966 public void fitod(final SFPR rs2, final DFPR rd) { | |
9967 int instruction = 0x81A01900; | |
9968 instruction |= (rs2.value() & 0x1f); | |
9969 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
9970 emitInt(instruction); | |
9971 } | |
9972 | |
9973 /** | |
9974 * Pseudo-external assembler syntax: {@code fxtoq }<i>rs2</i>, <i>rd</i> | |
9975 * Example disassembly syntax: {@code fxtoq %f0, %f0} | |
9976 * | |
9977 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.16" | |
9978 */ | |
9979 // Template#: 607, Serial#: 607 | |
9980 public void fxtoq(final DFPR rs2, final QFPR rd) { | |
9981 int instruction = 0x81A01180; | |
9982 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
9983 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
9984 emitInt(instruction); | |
9985 } | |
9986 | |
9987 /** | |
9988 * Pseudo-external assembler syntax: {@code fitoq }<i>rs2</i>, <i>rd</i> | |
9989 * Example disassembly syntax: {@code fitoq %f0, %f0} | |
9990 * | |
9991 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.16" | |
9992 */ | |
9993 // Template#: 608, Serial#: 608 | |
9994 public void fitoq(final SFPR rs2, final QFPR rd) { | |
9995 int instruction = 0x81A01980; | |
9996 instruction |= (rs2.value() & 0x1f); | |
9997 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
9998 emitInt(instruction); | |
9999 } | |
10000 | |
10001 /** | |
10002 * Pseudo-external assembler syntax: {@code fmovs }<i>rs2</i>, <i>rd</i> | |
10003 * Example disassembly syntax: {@code fmovs %f0, %f0} | |
10004 * | |
10005 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.17" | |
10006 */ | |
10007 // Template#: 609, Serial#: 609 | |
10008 public void fmovs(final SFPR rs2, final SFPR rd) { | |
10009 int instruction = 0x81A00020; | |
10010 instruction |= (rs2.value() & 0x1f); | |
10011 instruction |= ((rd.value() & 0x1f) << 25); | |
10012 emitInt(instruction); | |
10013 } | |
10014 | |
10015 /** | |
10016 * Pseudo-external assembler syntax: {@code fmovd }<i>rs2</i>, <i>rd</i> | |
10017 * Example disassembly syntax: {@code fmovd %f0, %f0} | |
10018 * | |
10019 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.17" | |
10020 */ | |
10021 // Template#: 610, Serial#: 610 | |
10022 public void fmovd(final DFPR rs2, final DFPR rd) { | |
10023 int instruction = 0x81A00040; | |
10024 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
10025 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
10026 emitInt(instruction); | |
10027 } | |
10028 | |
10029 /** | |
10030 * Pseudo-external assembler syntax: {@code fmovq }<i>rs2</i>, <i>rd</i> | |
10031 * Example disassembly syntax: {@code fmovq %f0, %f0} | |
10032 * | |
10033 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.17" | |
10034 */ | |
10035 // Template#: 611, Serial#: 611 | |
10036 public void fmovq(final QFPR rs2, final QFPR rd) { | |
10037 int instruction = 0x81A00060; | |
10038 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
10039 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
10040 emitInt(instruction); | |
10041 } | |
10042 | |
10043 /** | |
10044 * Pseudo-external assembler syntax: {@code fnegs }<i>rs2</i>, <i>rd</i> | |
10045 * Example disassembly syntax: {@code fnegs %f0, %f0} | |
10046 * | |
10047 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.17" | |
10048 */ | |
10049 // Template#: 612, Serial#: 612 | |
10050 public void fnegs(final SFPR rs2, final SFPR rd) { | |
10051 int instruction = 0x81A000A0; | |
10052 instruction |= (rs2.value() & 0x1f); | |
10053 instruction |= ((rd.value() & 0x1f) << 25); | |
10054 emitInt(instruction); | |
10055 } | |
10056 | |
10057 /** | |
10058 * Pseudo-external assembler syntax: {@code fnegd }<i>rs2</i>, <i>rd</i> | |
10059 * Example disassembly syntax: {@code fnegd %f0, %f0} | |
10060 * | |
10061 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.17" | |
10062 */ | |
10063 // Template#: 613, Serial#: 613 | |
10064 public void fnegd(final DFPR rs2, final DFPR rd) { | |
10065 int instruction = 0x81A000C0; | |
10066 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
10067 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
10068 emitInt(instruction); | |
10069 } | |
10070 | |
10071 /** | |
10072 * Pseudo-external assembler syntax: {@code fnegq }<i>rs2</i>, <i>rd</i> | |
10073 * Example disassembly syntax: {@code fnegq %f0, %f0} | |
10074 * | |
10075 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.17" | |
10076 */ | |
10077 // Template#: 614, Serial#: 614 | |
10078 public void fnegq(final QFPR rs2, final QFPR rd) { | |
10079 int instruction = 0x81A000E0; | |
10080 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
10081 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
10082 emitInt(instruction); | |
10083 } | |
10084 | |
10085 /** | |
10086 * Pseudo-external assembler syntax: {@code fabss }<i>rs2</i>, <i>rd</i> | |
10087 * Example disassembly syntax: {@code fabss %f0, %f0} | |
10088 * | |
10089 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.17" | |
10090 */ | |
10091 // Template#: 615, Serial#: 615 | |
10092 public void fabss(final SFPR rs2, final SFPR rd) { | |
10093 int instruction = 0x81A00120; | |
10094 instruction |= (rs2.value() & 0x1f); | |
10095 instruction |= ((rd.value() & 0x1f) << 25); | |
10096 emitInt(instruction); | |
10097 } | |
10098 | |
10099 /** | |
10100 * Pseudo-external assembler syntax: {@code fabsd }<i>rs2</i>, <i>rd</i> | |
10101 * Example disassembly syntax: {@code fabsd %f0, %f0} | |
10102 * | |
10103 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.17" | |
10104 */ | |
10105 // Template#: 616, Serial#: 616 | |
10106 public void fabsd(final DFPR rs2, final DFPR rd) { | |
10107 int instruction = 0x81A00140; | |
10108 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
10109 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
10110 emitInt(instruction); | |
10111 } | |
10112 | |
10113 /** | |
10114 * Pseudo-external assembler syntax: {@code fabsq }<i>rs2</i>, <i>rd</i> | |
10115 * Example disassembly syntax: {@code fabsq %f0, %f0} | |
10116 * | |
10117 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.17" | |
10118 */ | |
10119 // Template#: 617, Serial#: 617 | |
10120 public void fabsq(final QFPR rs2, final QFPR rd) { | |
10121 int instruction = 0x81A00160; | |
10122 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
10123 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
10124 emitInt(instruction); | |
10125 } | |
10126 | |
10127 /** | |
10128 * Pseudo-external assembler syntax: {@code fmuls }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
10129 * Example disassembly syntax: {@code fmuls %f0, %f0, %f0} | |
10130 * | |
10131 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.18" | |
10132 */ | |
10133 // Template#: 618, Serial#: 618 | |
10134 public void fmuls(final SFPR rs1, final SFPR rs2, final SFPR rd) { | |
10135 int instruction = 0x81A00920; | |
10136 instruction |= ((rs1.value() & 0x1f) << 14); | |
10137 instruction |= (rs2.value() & 0x1f); | |
10138 instruction |= ((rd.value() & 0x1f) << 25); | |
10139 emitInt(instruction); | |
10140 } | |
10141 | |
10142 /** | |
10143 * Pseudo-external assembler syntax: {@code fmuld }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
10144 * Example disassembly syntax: {@code fmuld %f0, %f0, %f0} | |
10145 * | |
10146 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.18" | |
10147 */ | |
10148 // Template#: 619, Serial#: 619 | |
10149 public void fmuld(final DFPR rs1, final DFPR rs2, final DFPR rd) { | |
10150 int instruction = 0x81A00940; | |
10151 instruction |= (((rs1.value() >>> 1) & 0xf) << 15) | (((rs1.value() >>> 5) & 0x1) << 14); | |
10152 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
10153 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
10154 emitInt(instruction); | |
10155 } | |
10156 | |
10157 /** | |
10158 * Pseudo-external assembler syntax: {@code fmulq }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
10159 * Example disassembly syntax: {@code fmulq %f0, %f0, %f0} | |
10160 * | |
10161 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.18" | |
10162 */ | |
10163 // Template#: 620, Serial#: 620 | |
10164 public void fmulq(final QFPR rs1, final QFPR rs2, final QFPR rd) { | |
10165 int instruction = 0x81A00960; | |
10166 instruction |= (((rs1.value() >>> 2) & 0x7) << 16) | (((rs1.value() >>> 5) & 0x1) << 14); | |
10167 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
10168 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
10169 emitInt(instruction); | |
10170 } | |
10171 | |
10172 /** | |
10173 * Pseudo-external assembler syntax: {@code fdivs }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
10174 * Example disassembly syntax: {@code fdivs %f0, %f0, %f0} | |
10175 * | |
10176 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.18" | |
10177 */ | |
10178 // Template#: 621, Serial#: 621 | |
10179 public void fdivs(final SFPR rs1, final SFPR rs2, final SFPR rd) { | |
10180 int instruction = 0x81A009A0; | |
10181 instruction |= ((rs1.value() & 0x1f) << 14); | |
10182 instruction |= (rs2.value() & 0x1f); | |
10183 instruction |= ((rd.value() & 0x1f) << 25); | |
10184 emitInt(instruction); | |
10185 } | |
10186 | |
10187 /** | |
10188 * Pseudo-external assembler syntax: {@code fdivd }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
10189 * Example disassembly syntax: {@code fdivd %f0, %f0, %f0} | |
10190 * | |
10191 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.18" | |
10192 */ | |
10193 // Template#: 622, Serial#: 622 | |
10194 public void fdivd(final DFPR rs1, final DFPR rs2, final DFPR rd) { | |
10195 int instruction = 0x81A009C0; | |
10196 instruction |= (((rs1.value() >>> 1) & 0xf) << 15) | (((rs1.value() >>> 5) & 0x1) << 14); | |
10197 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
10198 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
10199 emitInt(instruction); | |
10200 } | |
10201 | |
10202 /** | |
10203 * Pseudo-external assembler syntax: {@code fdivq }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
10204 * Example disassembly syntax: {@code fdivq %f0, %f0, %f0} | |
10205 * | |
10206 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.18" | |
10207 */ | |
10208 // Template#: 623, Serial#: 623 | |
10209 public void fdivq(final QFPR rs1, final QFPR rs2, final QFPR rd) { | |
10210 int instruction = 0x81A009E0; | |
10211 instruction |= (((rs1.value() >>> 2) & 0x7) << 16) | (((rs1.value() >>> 5) & 0x1) << 14); | |
10212 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
10213 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
10214 emitInt(instruction); | |
10215 } | |
10216 | |
10217 /** | |
10218 * Pseudo-external assembler syntax: {@code fsmuld }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
10219 * Example disassembly syntax: {@code fsmuld %f0, %f0, %f0} | |
10220 * | |
10221 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.18" | |
10222 */ | |
10223 // Template#: 624, Serial#: 624 | |
10224 public void fsmuld(final SFPR rs1, final SFPR rs2, final DFPR rd) { | |
10225 int instruction = 0x81A00D20; | |
10226 instruction |= ((rs1.value() & 0x1f) << 14); | |
10227 instruction |= (rs2.value() & 0x1f); | |
10228 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
10229 emitInt(instruction); | |
10230 } | |
10231 | |
10232 /** | |
10233 * Pseudo-external assembler syntax: {@code fdmulq }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
10234 * Example disassembly syntax: {@code fdmulq %f0, %f0, %f0} | |
10235 * | |
10236 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.18" | |
10237 */ | |
10238 // Template#: 625, Serial#: 625 | |
10239 public void fdmulq(final DFPR rs1, final DFPR rs2, final QFPR rd) { | |
10240 int instruction = 0x81A00DC0; | |
10241 instruction |= (((rs1.value() >>> 1) & 0xf) << 15) | (((rs1.value() >>> 5) & 0x1) << 14); | |
10242 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
10243 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
10244 emitInt(instruction); | |
10245 } | |
10246 | |
10247 /** | |
10248 * Pseudo-external assembler syntax: {@code fsqrts }<i>rs2</i>, <i>rd</i> | |
10249 * Example disassembly syntax: {@code fsqrts %f0, %f0} | |
10250 * | |
10251 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.19" | |
10252 */ | |
10253 // Template#: 626, Serial#: 626 | |
10254 public void fsqrts(final SFPR rs2, final SFPR rd) { | |
10255 int instruction = 0x81A00520; | |
10256 instruction |= (rs2.value() & 0x1f); | |
10257 instruction |= ((rd.value() & 0x1f) << 25); | |
10258 emitInt(instruction); | |
10259 } | |
10260 | |
10261 /** | |
10262 * Pseudo-external assembler syntax: {@code fsqrtd }<i>rs2</i>, <i>rd</i> | |
10263 * Example disassembly syntax: {@code fsqrtd %f0, %f0} | |
10264 * | |
10265 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.19" | |
10266 */ | |
10267 // Template#: 627, Serial#: 627 | |
10268 public void fsqrtd(final DFPR rs2, final DFPR rd) { | |
10269 int instruction = 0x81A00540; | |
10270 instruction |= (((rs2.value() >>> 1) & 0xf) << 1) | ((rs2.value() >>> 5) & 0x1); | |
10271 instruction |= (((rd.value() >>> 1) & 0xf) << 26) | (((rd.value() >>> 5) & 0x1) << 25); | |
10272 emitInt(instruction); | |
10273 } | |
10274 | |
10275 /** | |
10276 * Pseudo-external assembler syntax: {@code fsqrtq }<i>rs2</i>, <i>rd</i> | |
10277 * Example disassembly syntax: {@code fsqrtq %f0, %f0} | |
10278 * | |
10279 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.19" | |
10280 */ | |
10281 // Template#: 628, Serial#: 628 | |
10282 public void fsqrtq(final QFPR rs2, final QFPR rd) { | |
10283 int instruction = 0x81A00560; | |
10284 instruction |= (((rs2.value() >>> 2) & 0x7) << 2) | ((rs2.value() >>> 5) & 0x1); | |
10285 instruction |= (((rd.value() >>> 2) & 0x7) << 27) | (((rd.value() >>> 5) & 0x1) << 25); | |
10286 emitInt(instruction); | |
10287 } | |
10288 | |
10289 /** | |
10290 * Pseudo-external assembler syntax: {@code impdep1 } | |
10291 * Example disassembly syntax: {@code impdep1 } | |
10292 * | |
10293 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.23" | |
10294 */ | |
10295 // Template#: 629, Serial#: 629 | |
10296 public void impdep1() { | |
10297 int instruction = 0x81B00000; | |
10298 emitInt(instruction); | |
10299 } | |
10300 | |
10301 /** | |
10302 * Pseudo-external assembler syntax: {@code impdep2 } | |
10303 * Example disassembly syntax: {@code impdep2 } | |
10304 * | |
10305 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.23" | |
10306 */ | |
10307 // Template#: 630, Serial#: 630 | |
10308 public void impdep2() { | |
10309 int instruction = 0x81B80000; | |
10310 emitInt(instruction); | |
10311 } | |
10312 | |
10313 /** | |
10314 * Pseudo-external assembler syntax: {@code nop } | |
10315 * Example disassembly syntax: {@code nop } | |
10316 * <p> | |
10317 * This is a synthetic instruction equivalent to: {@code sethi(0, G0)} | |
10318 * | |
10319 * @see #sethi(int, GPR) | |
10320 * | |
10321 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section A.39" | |
10322 */ | |
10323 // Template#: 631, Serial#: 631 | |
10324 public void nop() { | |
10325 int instruction = 0x01000000; | |
10326 emitInt(instruction); | |
10327 } | |
10328 | |
10329 /** | |
10330 * Pseudo-external assembler syntax: {@code cmp }<i>rs1</i>, <i>rs2</i> | |
10331 * Example disassembly syntax: {@code cmp %g0, %g0} | |
10332 * <p> | |
10333 * This is a synthetic instruction equivalent to: {@code subcc(rs1, rs2, G0)} | |
10334 * | |
10335 * @see #subcc(GPR, GPR, GPR) | |
10336 * | |
10337 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10338 */ | |
10339 // Template#: 632, Serial#: 632 | |
10340 public void cmp(final GPR rs1, final GPR rs2) { | |
10341 int instruction = 0x80A00000; | |
10342 instruction |= ((rs1.value() & 0x1f) << 14); | |
10343 instruction |= (rs2.value() & 0x1f); | |
10344 emitInt(instruction); | |
10345 } | |
10346 | |
10347 /** | |
10348 * Pseudo-external assembler syntax: {@code cmp }<i>rs1</i>, <i>simm13</i> | |
10349 * Example disassembly syntax: {@code cmp %g0, -4096} | |
10350 * <p> | |
10351 * This is a synthetic instruction equivalent to: {@code subcc(rs1, simm13, G0)} | |
10352 * <p> | |
10353 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
10354 * | |
10355 * @see #subcc(GPR, int, GPR) | |
10356 * | |
10357 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10358 */ | |
10359 // Template#: 633, Serial#: 633 | |
10360 public void cmp(final GPR rs1, final int simm13) { | |
10361 int instruction = 0x80A02000; | |
10362 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
10363 instruction |= ((rs1.value() & 0x1f) << 14); | |
10364 instruction |= (simm13 & 0x1fff); | |
10365 emitInt(instruction); | |
10366 } | |
10367 | |
10368 /** | |
10369 * Pseudo-external assembler syntax: {@code jmp }<i>rs1</i>, <i>rs2</i> | |
10370 * Example disassembly syntax: {@code jmp %g0 + %g0} | |
10371 * <p> | |
10372 * This is a synthetic instruction equivalent to: {@code jmpl(rs1, rs2, G0)} | |
10373 * | |
10374 * @see #jmpl(GPR, GPR, GPR) | |
10375 * | |
10376 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10377 */ | |
10378 // Template#: 634, Serial#: 634 | |
10379 public void jmp(final GPR rs1, final GPR rs2) { | |
10380 int instruction = 0x81C00000; | |
10381 instruction |= ((rs1.value() & 0x1f) << 14); | |
10382 instruction |= (rs2.value() & 0x1f); | |
10383 emitInt(instruction); | |
10384 } | |
10385 | |
10386 /** | |
10387 * Pseudo-external assembler syntax: {@code jmp }<i>rs1</i>, <i>simm13</i> | |
10388 * Example disassembly syntax: {@code jmp %g0 + -4096} | |
10389 * <p> | |
10390 * This is a synthetic instruction equivalent to: {@code jmpl(rs1, simm13, G0)} | |
10391 * <p> | |
10392 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
10393 * | |
10394 * @see #jmpl(GPR, int, GPR) | |
10395 * | |
10396 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10397 */ | |
10398 // Template#: 635, Serial#: 635 | |
10399 public void jmp(final GPR rs1, final int simm13) { | |
10400 int instruction = 0x81C02000; | |
10401 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
10402 instruction |= ((rs1.value() & 0x1f) << 14); | |
10403 instruction |= (simm13 & 0x1fff); | |
10404 emitInt(instruction); | |
10405 } | |
10406 | |
10407 /** | |
10408 * Pseudo-external assembler syntax: {@code call }<i>rs1</i>, <i>rs2</i> | |
10409 * Example disassembly syntax: {@code call %g0 + %g0} | |
10410 * <p> | |
10411 * This is a synthetic instruction equivalent to: {@code jmpl(rs1, rs2, O7)} | |
10412 * | |
10413 * @see #jmpl(GPR, GPR, GPR) | |
10414 * | |
10415 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10416 */ | |
10417 // Template#: 636, Serial#: 636 | |
10418 public void call(final GPR rs1, final GPR rs2) { | |
10419 int instruction = 0x9FC00000; | |
10420 instruction |= ((rs1.value() & 0x1f) << 14); | |
10421 instruction |= (rs2.value() & 0x1f); | |
10422 emitInt(instruction); | |
10423 } | |
10424 | |
10425 /** | |
10426 * Pseudo-external assembler syntax: {@code call }<i>rs1</i>, <i>simm13</i> | |
10427 * Example disassembly syntax: {@code call %g0 + -4096} | |
10428 * <p> | |
10429 * This is a synthetic instruction equivalent to: {@code jmpl(rs1, simm13, O7)} | |
10430 * <p> | |
10431 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
10432 * | |
10433 * @see #jmpl(GPR, int, GPR) | |
10434 * | |
10435 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10436 */ | |
10437 // Template#: 637, Serial#: 637 | |
10438 public void call(final GPR rs1, final int simm13) { | |
10439 int instruction = 0x9FC02000; | |
10440 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
10441 instruction |= ((rs1.value() & 0x1f) << 14); | |
10442 instruction |= (simm13 & 0x1fff); | |
10443 emitInt(instruction); | |
10444 } | |
10445 | |
10446 /** | |
10447 * Pseudo-external assembler syntax: {@code iprefetch }<i>label</i> | |
10448 * Example disassembly syntax: {@code iprefetch L1: -1048576} | |
10449 * <p> | |
10450 * This is a synthetic instruction equivalent to: {@code b(N, A, PT, XCC, label)} | |
10451 * <p> | |
10452 * Constraint: {@code (-1048576 <= label && label <= 1048572) && ((label % 4) == 0)}<br /> | |
10453 * | |
10454 * @see #b(Bicc, AnnulBit, BranchPredictionBit, ICCOperand, int) | |
10455 * | |
10456 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10457 */ | |
10458 // Template#: 638, Serial#: 638 | |
10459 public void iprefetch(final int label) { | |
10460 int instruction = 0x20680000; | |
10461 checkConstraint((-1048576 <= label && label <= 1048572) && ((label % 4) == 0), "(-1048576 <= label && label <= 1048572) && ((label % 4) == 0)"); | |
10462 instruction |= ((label >> 2) & 0x7ffff); | |
10463 emitInt(instruction); | |
10464 } | |
10465 | |
10466 /** | |
10467 * Pseudo-external assembler syntax: {@code tst }<i>rs2</i> | |
10468 * Example disassembly syntax: {@code tst %g0} | |
10469 * <p> | |
10470 * This is a synthetic instruction equivalent to: {@code orcc(G0, rs2, G0)} | |
10471 * | |
10472 * @see #orcc(GPR, GPR, GPR) | |
10473 * | |
10474 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10475 */ | |
10476 // Template#: 639, Serial#: 639 | |
10477 public void tst(final GPR rs2) { | |
10478 int instruction = 0x80900000; | |
10479 instruction |= (rs2.value() & 0x1f); | |
10480 emitInt(instruction); | |
10481 } | |
10482 | |
10483 /** | |
10484 * Pseudo-external assembler syntax: {@code ret } | |
10485 * Example disassembly syntax: {@code ret } | |
10486 * <p> | |
10487 * This is a synthetic instruction equivalent to: {@code jmpl(I7, 8, G0)} | |
10488 * | |
10489 * @see #jmpl(GPR, int, GPR) | |
10490 * | |
10491 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10492 */ | |
10493 // Template#: 640, Serial#: 640 | |
10494 public void ret() { | |
10495 int instruction = 0x81C7E008; | |
10496 emitInt(instruction); | |
10497 } | |
10498 | |
10499 /** | |
10500 * Pseudo-external assembler syntax: {@code retl } | |
10501 * Example disassembly syntax: {@code retl } | |
10502 * <p> | |
10503 * This is a synthetic instruction equivalent to: {@code jmpl(O7, 8, G0)} | |
10504 * | |
10505 * @see #jmpl(GPR, int, GPR) | |
10506 * | |
10507 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10508 */ | |
10509 // Template#: 641, Serial#: 641 | |
10510 public void retl() { | |
10511 int instruction = 0x81C3E008; | |
10512 emitInt(instruction); | |
10513 } | |
10514 | |
10515 /** | |
10516 * Pseudo-external assembler syntax: {@code restore } | |
10517 * Example disassembly syntax: {@code restore } | |
10518 * <p> | |
10519 * This is a synthetic instruction equivalent to: {@code restore(G0, G0, G0)} | |
10520 * | |
10521 * @see #restore(GPR, GPR, GPR) | |
10522 * | |
10523 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10524 */ | |
10525 // Template#: 642, Serial#: 642 | |
10526 public void restore() { | |
10527 int instruction = 0x81E80000; | |
10528 emitInt(instruction); | |
10529 } | |
10530 | |
10531 /** | |
10532 * Pseudo-external assembler syntax: {@code save } | |
10533 * Example disassembly syntax: {@code save } | |
10534 * <p> | |
10535 * This is a synthetic instruction equivalent to: {@code save(G0, G0, G0)} | |
10536 * | |
10537 * @see #save(GPR, GPR, GPR) | |
10538 * | |
10539 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10540 */ | |
10541 // Template#: 643, Serial#: 643 | |
10542 public void save() { | |
10543 int instruction = 0x81E00000; | |
10544 emitInt(instruction); | |
10545 } | |
10546 | |
10547 /** | |
10548 * Pseudo-external assembler syntax: {@code signx }<i>rs1</i>, <i>rd</i> | |
10549 * Example disassembly syntax: {@code signx %g0, %g0} | |
10550 * <p> | |
10551 * This is a synthetic instruction equivalent to: {@code sra(rs1, G0, rd)} | |
10552 * | |
10553 * @see #sra(GPR, GPR, GPR) | |
10554 * | |
10555 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10556 */ | |
10557 // Template#: 644, Serial#: 644 | |
10558 public void signx(final GPR rs1, final GPR rd) { | |
10559 int instruction = 0x81380000; | |
10560 instruction |= ((rs1.value() & 0x1f) << 14); | |
10561 instruction |= ((rd.value() & 0x1f) << 25); | |
10562 emitInt(instruction); | |
10563 } | |
10564 | |
10565 /** | |
10566 * Pseudo-external assembler syntax: {@code signx }<i>rd</i> | |
10567 * Example disassembly syntax: {@code signx %g0} | |
10568 * <p> | |
10569 * This is a synthetic instruction equivalent to: {@code sra(rd.value(), G0, rd)} | |
10570 * | |
10571 * @see #sra(GPR, GPR, GPR) | |
10572 * | |
10573 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10574 */ | |
10575 // Template#: 645, Serial#: 645 | |
10576 public void signx(final GPR rd) { | |
10577 int instruction = 0x81380000; | |
10578 instruction |= ((rd.value() & 0x1f) << 14); | |
10579 instruction |= ((rd.value() & 0x1f) << 25); | |
10580 emitInt(instruction); | |
10581 } | |
10582 | |
10583 /** | |
10584 * Pseudo-external assembler syntax: {@code not }<i>rs1</i>, <i>rd</i> | |
10585 * Example disassembly syntax: {@code not %g0, %g0} | |
10586 * <p> | |
10587 * This is a synthetic instruction equivalent to: {@code xnor(rs1, G0, rd)} | |
10588 * | |
10589 * @see #xnor(GPR, GPR, GPR) | |
10590 * | |
10591 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10592 */ | |
10593 // Template#: 646, Serial#: 646 | |
10594 public void not(final GPR rs1, final GPR rd) { | |
10595 int instruction = 0x80380000; | |
10596 instruction |= ((rs1.value() & 0x1f) << 14); | |
10597 instruction |= ((rd.value() & 0x1f) << 25); | |
10598 emitInt(instruction); | |
10599 } | |
10600 | |
10601 /** | |
10602 * Pseudo-external assembler syntax: {@code not }<i>rd</i> | |
10603 * Example disassembly syntax: {@code not %g0} | |
10604 * <p> | |
10605 * This is a synthetic instruction equivalent to: {@code xnor(rd.value(), G0, rd)} | |
10606 * | |
10607 * @see #xnor(GPR, GPR, GPR) | |
10608 * | |
10609 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10610 */ | |
10611 // Template#: 647, Serial#: 647 | |
10612 public void not(final GPR rd) { | |
10613 int instruction = 0x80380000; | |
10614 instruction |= ((rd.value() & 0x1f) << 14); | |
10615 instruction |= ((rd.value() & 0x1f) << 25); | |
10616 emitInt(instruction); | |
10617 } | |
10618 | |
10619 /** | |
10620 * Pseudo-external assembler syntax: {@code neg }<i>rs2</i>, <i>rd</i> | |
10621 * Example disassembly syntax: {@code neg %g0, %g0} | |
10622 * <p> | |
10623 * This is a synthetic instruction equivalent to: {@code sub(G0, rs2, rd)} | |
10624 * | |
10625 * @see #sub(GPR, GPR, GPR) | |
10626 * | |
10627 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10628 */ | |
10629 // Template#: 648, Serial#: 648 | |
10630 public void neg(final GPR rs2, final GPR rd) { | |
10631 int instruction = 0x80200000; | |
10632 instruction |= (rs2.value() & 0x1f); | |
10633 instruction |= ((rd.value() & 0x1f) << 25); | |
10634 emitInt(instruction); | |
10635 } | |
10636 | |
10637 /** | |
10638 * Pseudo-external assembler syntax: {@code neg }<i>rd</i> | |
10639 * Example disassembly syntax: {@code neg %g0} | |
10640 * <p> | |
10641 * This is a synthetic instruction equivalent to: {@code sub(G0, rd.value(), rd)} | |
10642 * | |
10643 * @see #sub(GPR, GPR, GPR) | |
10644 * | |
10645 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10646 */ | |
10647 // Template#: 649, Serial#: 649 | |
10648 public void neg(final GPR rd) { | |
10649 int instruction = 0x80200000; | |
10650 instruction |= (rd.value() & 0x1f); | |
10651 instruction |= ((rd.value() & 0x1f) << 25); | |
10652 emitInt(instruction); | |
10653 } | |
10654 | |
10655 /** | |
10656 * Pseudo-external assembler syntax: {@code cas }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
10657 * Example disassembly syntax: {@code cas [%g0] ,%g0, %g0} | |
10658 * <p> | |
10659 * This is a synthetic instruction equivalent to: {@code casa(rs1, 128, rs2, rd)} | |
10660 * | |
10661 * @see #casa(GPR, int, GPR, GPR) | |
10662 * | |
10663 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10664 */ | |
10665 // Template#: 650, Serial#: 650 | |
10666 public void cas(final GPR rs1, final GPR rs2, final GPR rd) { | |
10667 int instruction = 0xC1E01000; | |
10668 instruction |= ((rs1.value() & 0x1f) << 14); | |
10669 instruction |= (rs2.value() & 0x1f); | |
10670 instruction |= ((rd.value() & 0x1f) << 25); | |
10671 emitInt(instruction); | |
10672 } | |
10673 | |
10674 /** | |
10675 * Pseudo-external assembler syntax: {@code casl }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
10676 * Example disassembly syntax: {@code casl [%g0] ,%g0, %g0} | |
10677 * <p> | |
10678 * This is a synthetic instruction equivalent to: {@code casa(rs1, 136, rs2, rd)} | |
10679 * | |
10680 * @see #casa(GPR, int, GPR, GPR) | |
10681 * | |
10682 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10683 */ | |
10684 // Template#: 651, Serial#: 651 | |
10685 public void casl(final GPR rs1, final GPR rs2, final GPR rd) { | |
10686 int instruction = 0xC1E01100; | |
10687 instruction |= ((rs1.value() & 0x1f) << 14); | |
10688 instruction |= (rs2.value() & 0x1f); | |
10689 instruction |= ((rd.value() & 0x1f) << 25); | |
10690 emitInt(instruction); | |
10691 } | |
10692 | |
10693 /** | |
10694 * Pseudo-external assembler syntax: {@code casx }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
10695 * Example disassembly syntax: {@code casx [%g0] ,%g0, %g0} | |
10696 * <p> | |
10697 * This is a synthetic instruction equivalent to: {@code casxa(rs1, 128, rs2, rd)} | |
10698 * | |
10699 * @see #casxa(GPR, int, GPR, GPR) | |
10700 * | |
10701 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10702 */ | |
10703 // Template#: 652, Serial#: 652 | |
10704 public void casx(final GPR rs1, final GPR rs2, final GPR rd) { | |
10705 int instruction = 0xC1F01000; | |
10706 instruction |= ((rs1.value() & 0x1f) << 14); | |
10707 instruction |= (rs2.value() & 0x1f); | |
10708 instruction |= ((rd.value() & 0x1f) << 25); | |
10709 emitInt(instruction); | |
10710 } | |
10711 | |
10712 /** | |
10713 * Pseudo-external assembler syntax: {@code casxl }<i>rs1</i>, <i>rs2</i>, <i>rd</i> | |
10714 * Example disassembly syntax: {@code casxl [%g0] ,%g0, %g0} | |
10715 * <p> | |
10716 * This is a synthetic instruction equivalent to: {@code casxa(rs1, 136, rs2, rd)} | |
10717 * | |
10718 * @see #casxa(GPR, int, GPR, GPR) | |
10719 * | |
10720 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10721 */ | |
10722 // Template#: 653, Serial#: 653 | |
10723 public void casxl(final GPR rs1, final GPR rs2, final GPR rd) { | |
10724 int instruction = 0xC1F01100; | |
10725 instruction |= ((rs1.value() & 0x1f) << 14); | |
10726 instruction |= (rs2.value() & 0x1f); | |
10727 instruction |= ((rd.value() & 0x1f) << 25); | |
10728 emitInt(instruction); | |
10729 } | |
10730 | |
10731 /** | |
10732 * Pseudo-external assembler syntax: {@code inc }<i>rd</i> | |
10733 * Example disassembly syntax: {@code inc %g0} | |
10734 * <p> | |
10735 * This is a synthetic instruction equivalent to: {@code add(rd.value(), 1, rd)} | |
10736 * | |
10737 * @see #add(GPR, int, GPR) | |
10738 * | |
10739 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10740 */ | |
10741 // Template#: 654, Serial#: 654 | |
10742 public void inc(final GPR rd) { | |
10743 int instruction = 0x80002001; | |
10744 instruction |= ((rd.value() & 0x1f) << 14); | |
10745 instruction |= ((rd.value() & 0x1f) << 25); | |
10746 emitInt(instruction); | |
10747 } | |
10748 | |
10749 /** | |
10750 * Pseudo-external assembler syntax: {@code inc }<i>simm13</i>, <i>rd</i> | |
10751 * Example disassembly syntax: {@code inc -4096, %g0} | |
10752 * <p> | |
10753 * This is a synthetic instruction equivalent to: {@code add(rd.value(), simm13, rd)} | |
10754 * <p> | |
10755 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
10756 * | |
10757 * @see #add(GPR, int, GPR) | |
10758 * | |
10759 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10760 */ | |
10761 // Template#: 655, Serial#: 655 | |
10762 public void inc(final int simm13, final GPR rd) { | |
10763 int instruction = 0x80002000; | |
10764 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
10765 instruction |= ((rd.value() & 0x1f) << 14); | |
10766 instruction |= (simm13 & 0x1fff); | |
10767 instruction |= ((rd.value() & 0x1f) << 25); | |
10768 emitInt(instruction); | |
10769 } | |
10770 | |
10771 /** | |
10772 * Pseudo-external assembler syntax: {@code inccc }<i>rd</i> | |
10773 * Example disassembly syntax: {@code inccc %g0} | |
10774 * <p> | |
10775 * This is a synthetic instruction equivalent to: {@code addcc(rd.value(), 1, rd)} | |
10776 * | |
10777 * @see #addcc(GPR, int, GPR) | |
10778 * | |
10779 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10780 */ | |
10781 // Template#: 656, Serial#: 656 | |
10782 public void inccc(final GPR rd) { | |
10783 int instruction = 0x80802001; | |
10784 instruction |= ((rd.value() & 0x1f) << 14); | |
10785 instruction |= ((rd.value() & 0x1f) << 25); | |
10786 emitInt(instruction); | |
10787 } | |
10788 | |
10789 /** | |
10790 * Pseudo-external assembler syntax: {@code inccc }<i>simm13</i>, <i>rd</i> | |
10791 * Example disassembly syntax: {@code inccc -4096, %g0} | |
10792 * <p> | |
10793 * This is a synthetic instruction equivalent to: {@code addcc(rd.value(), simm13, rd)} | |
10794 * <p> | |
10795 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
10796 * | |
10797 * @see #addcc(GPR, int, GPR) | |
10798 * | |
10799 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10800 */ | |
10801 // Template#: 657, Serial#: 657 | |
10802 public void inccc(final int simm13, final GPR rd) { | |
10803 int instruction = 0x80802000; | |
10804 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
10805 instruction |= ((rd.value() & 0x1f) << 14); | |
10806 instruction |= (simm13 & 0x1fff); | |
10807 instruction |= ((rd.value() & 0x1f) << 25); | |
10808 emitInt(instruction); | |
10809 } | |
10810 | |
10811 /** | |
10812 * Pseudo-external assembler syntax: {@code dec }<i>rd</i> | |
10813 * Example disassembly syntax: {@code dec %g0} | |
10814 * <p> | |
10815 * This is a synthetic instruction equivalent to: {@code sub(rd.value(), 1, rd)} | |
10816 * | |
10817 * @see #sub(GPR, int, GPR) | |
10818 * | |
10819 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10820 */ | |
10821 // Template#: 658, Serial#: 658 | |
10822 public void dec(final GPR rd) { | |
10823 int instruction = 0x80202001; | |
10824 instruction |= ((rd.value() & 0x1f) << 14); | |
10825 instruction |= ((rd.value() & 0x1f) << 25); | |
10826 emitInt(instruction); | |
10827 } | |
10828 | |
10829 /** | |
10830 * Pseudo-external assembler syntax: {@code dec }<i>simm13</i>, <i>rd</i> | |
10831 * Example disassembly syntax: {@code dec -4096, %g0} | |
10832 * <p> | |
10833 * This is a synthetic instruction equivalent to: {@code sub(rd.value(), simm13, rd)} | |
10834 * <p> | |
10835 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
10836 * | |
10837 * @see #sub(GPR, int, GPR) | |
10838 * | |
10839 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10840 */ | |
10841 // Template#: 659, Serial#: 659 | |
10842 public void dec(final int simm13, final GPR rd) { | |
10843 int instruction = 0x80202000; | |
10844 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
10845 instruction |= ((rd.value() & 0x1f) << 14); | |
10846 instruction |= (simm13 & 0x1fff); | |
10847 instruction |= ((rd.value() & 0x1f) << 25); | |
10848 emitInt(instruction); | |
10849 } | |
10850 | |
10851 /** | |
10852 * Pseudo-external assembler syntax: {@code deccc }<i>rd</i> | |
10853 * Example disassembly syntax: {@code deccc %g0} | |
10854 * <p> | |
10855 * This is a synthetic instruction equivalent to: {@code subcc(rd.value(), 1, rd)} | |
10856 * | |
10857 * @see #subcc(GPR, int, GPR) | |
10858 * | |
10859 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10860 */ | |
10861 // Template#: 660, Serial#: 660 | |
10862 public void deccc(final GPR rd) { | |
10863 int instruction = 0x80A02001; | |
10864 instruction |= ((rd.value() & 0x1f) << 14); | |
10865 instruction |= ((rd.value() & 0x1f) << 25); | |
10866 emitInt(instruction); | |
10867 } | |
10868 | |
10869 /** | |
10870 * Pseudo-external assembler syntax: {@code deccc }<i>simm13</i>, <i>rd</i> | |
10871 * Example disassembly syntax: {@code deccc -4096, %g0} | |
10872 * <p> | |
10873 * This is a synthetic instruction equivalent to: {@code subcc(rd.value(), simm13, rd)} | |
10874 * <p> | |
10875 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
10876 * | |
10877 * @see #subcc(GPR, int, GPR) | |
10878 * | |
10879 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10880 */ | |
10881 // Template#: 661, Serial#: 661 | |
10882 public void deccc(final int simm13, final GPR rd) { | |
10883 int instruction = 0x80A02000; | |
10884 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
10885 instruction |= ((rd.value() & 0x1f) << 14); | |
10886 instruction |= (simm13 & 0x1fff); | |
10887 instruction |= ((rd.value() & 0x1f) << 25); | |
10888 emitInt(instruction); | |
10889 } | |
10890 | |
10891 /** | |
10892 * Pseudo-external assembler syntax: {@code btst }<i>rs2</i>, <i>rs1</i> | |
10893 * Example disassembly syntax: {@code btst %g0, %g0} | |
10894 * <p> | |
10895 * This is a synthetic instruction equivalent to: {@code andcc(rs1, rs2, G0)} | |
10896 * | |
10897 * @see #andcc(GPR, GPR, GPR) | |
10898 * | |
10899 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10900 */ | |
10901 // Template#: 662, Serial#: 662 | |
10902 public void btst(final GPR rs2, final GPR rs1) { | |
10903 int instruction = 0x80880000; | |
10904 instruction |= (rs2.value() & 0x1f); | |
10905 instruction |= ((rs1.value() & 0x1f) << 14); | |
10906 emitInt(instruction); | |
10907 } | |
10908 | |
10909 /** | |
10910 * Pseudo-external assembler syntax: {@code btst }<i>simm13</i>, <i>rs1</i> | |
10911 * Example disassembly syntax: {@code btst -4096, %g0} | |
10912 * <p> | |
10913 * This is a synthetic instruction equivalent to: {@code andcc(rs1, simm13, G0)} | |
10914 * <p> | |
10915 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
10916 * | |
10917 * @see #andcc(GPR, int, GPR) | |
10918 * | |
10919 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10920 */ | |
10921 // Template#: 663, Serial#: 663 | |
10922 public void btst(final int simm13, final GPR rs1) { | |
10923 int instruction = 0x80882000; | |
10924 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
10925 instruction |= (simm13 & 0x1fff); | |
10926 instruction |= ((rs1.value() & 0x1f) << 14); | |
10927 emitInt(instruction); | |
10928 } | |
10929 | |
10930 /** | |
10931 * Pseudo-external assembler syntax: {@code bset }<i>rs2</i>, <i>rd</i> | |
10932 * Example disassembly syntax: {@code bset %g0, %g0} | |
10933 * <p> | |
10934 * This is a synthetic instruction equivalent to: {@code or(rd.value(), rs2, rd)} | |
10935 * | |
10936 * @see #or(GPR, GPR, GPR) | |
10937 * | |
10938 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10939 */ | |
10940 // Template#: 664, Serial#: 664 | |
10941 public void bset(final GPR rs2, final GPR rd) { | |
10942 int instruction = 0x80100000; | |
10943 instruction |= ((rd.value() & 0x1f) << 14); | |
10944 instruction |= (rs2.value() & 0x1f); | |
10945 instruction |= ((rd.value() & 0x1f) << 25); | |
10946 emitInt(instruction); | |
10947 } | |
10948 | |
10949 /** | |
10950 * Pseudo-external assembler syntax: {@code bset }<i>simm13</i>, <i>rd</i> | |
10951 * Example disassembly syntax: {@code bset -4096, %g0} | |
10952 * <p> | |
10953 * This is a synthetic instruction equivalent to: {@code or(rd.value(), simm13, rd)} | |
10954 * <p> | |
10955 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
10956 * | |
10957 * @see #or(GPR, int, GPR) | |
10958 * | |
10959 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10960 */ | |
10961 // Template#: 665, Serial#: 665 | |
10962 public void bset(final int simm13, final GPR rd) { | |
10963 int instruction = 0x80102000; | |
10964 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
10965 instruction |= ((rd.value() & 0x1f) << 14); | |
10966 instruction |= (simm13 & 0x1fff); | |
10967 instruction |= ((rd.value() & 0x1f) << 25); | |
10968 emitInt(instruction); | |
10969 } | |
10970 | |
10971 /** | |
10972 * Pseudo-external assembler syntax: {@code bclr }<i>rs2</i>, <i>rd</i> | |
10973 * Example disassembly syntax: {@code bclr %g0, %g0} | |
10974 * <p> | |
10975 * This is a synthetic instruction equivalent to: {@code andn(rd.value(), rs2, rd)} | |
10976 * | |
10977 * @see #andn(GPR, GPR, GPR) | |
10978 * | |
10979 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
10980 */ | |
10981 // Template#: 666, Serial#: 666 | |
10982 public void bclr(final GPR rs2, final GPR rd) { | |
10983 int instruction = 0x80280000; | |
10984 instruction |= ((rd.value() & 0x1f) << 14); | |
10985 instruction |= (rs2.value() & 0x1f); | |
10986 instruction |= ((rd.value() & 0x1f) << 25); | |
10987 emitInt(instruction); | |
10988 } | |
10989 | |
10990 /** | |
10991 * Pseudo-external assembler syntax: {@code bclr }<i>simm13</i>, <i>rd</i> | |
10992 * Example disassembly syntax: {@code bclr -4096, %g0} | |
10993 * <p> | |
10994 * This is a synthetic instruction equivalent to: {@code andn(rd.value(), simm13, rd)} | |
10995 * <p> | |
10996 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
10997 * | |
10998 * @see #andn(GPR, int, GPR) | |
10999 * | |
11000 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
11001 */ | |
11002 // Template#: 667, Serial#: 667 | |
11003 public void bclr(final int simm13, final GPR rd) { | |
11004 int instruction = 0x80282000; | |
11005 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
11006 instruction |= ((rd.value() & 0x1f) << 14); | |
11007 instruction |= (simm13 & 0x1fff); | |
11008 instruction |= ((rd.value() & 0x1f) << 25); | |
11009 emitInt(instruction); | |
11010 } | |
11011 | |
11012 /** | |
11013 * Pseudo-external assembler syntax: {@code btog }<i>rs2</i>, <i>rd</i> | |
11014 * Example disassembly syntax: {@code btog %g0, %g0} | |
11015 * <p> | |
11016 * This is a synthetic instruction equivalent to: {@code xor(rd.value(), rs2, rd)} | |
11017 * | |
11018 * @see #xor(GPR, GPR, GPR) | |
11019 * | |
11020 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
11021 */ | |
11022 // Template#: 668, Serial#: 668 | |
11023 public void btog(final GPR rs2, final GPR rd) { | |
11024 int instruction = 0x80180000; | |
11025 instruction |= ((rd.value() & 0x1f) << 14); | |
11026 instruction |= (rs2.value() & 0x1f); | |
11027 instruction |= ((rd.value() & 0x1f) << 25); | |
11028 emitInt(instruction); | |
11029 } | |
11030 | |
11031 /** | |
11032 * Pseudo-external assembler syntax: {@code btog }<i>simm13</i>, <i>rd</i> | |
11033 * Example disassembly syntax: {@code btog -4096, %g0} | |
11034 * <p> | |
11035 * This is a synthetic instruction equivalent to: {@code xor(rd.value(), simm13, rd)} | |
11036 * <p> | |
11037 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
11038 * | |
11039 * @see #xor(GPR, int, GPR) | |
11040 * | |
11041 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
11042 */ | |
11043 // Template#: 669, Serial#: 669 | |
11044 public void btog(final int simm13, final GPR rd) { | |
11045 int instruction = 0x80182000; | |
11046 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
11047 instruction |= ((rd.value() & 0x1f) << 14); | |
11048 instruction |= (simm13 & 0x1fff); | |
11049 instruction |= ((rd.value() & 0x1f) << 25); | |
11050 emitInt(instruction); | |
11051 } | |
11052 | |
11053 /** | |
11054 * Pseudo-external assembler syntax: {@code clr }<i>rd</i> | |
11055 * Example disassembly syntax: {@code clr %g0} | |
11056 * <p> | |
11057 * This is a synthetic instruction equivalent to: {@code or(G0, G0, rd)} | |
11058 * | |
11059 * @see #or(GPR, GPR, GPR) | |
11060 * | |
11061 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
11062 */ | |
11063 // Template#: 670, Serial#: 670 | |
11064 public void clr(final GPR rd) { | |
11065 int instruction = 0x80100000; | |
11066 instruction |= ((rd.value() & 0x1f) << 25); | |
11067 emitInt(instruction); | |
11068 } | |
11069 | |
11070 /** | |
11071 * Pseudo-external assembler syntax: {@code clrb }<i>rs1</i>, <i>rs2</i> | |
11072 * Example disassembly syntax: {@code clrb [%g0 + %g0]} | |
11073 * <p> | |
11074 * This is a synthetic instruction equivalent to: {@code stb(G0, rs1, rs2)} | |
11075 * | |
11076 * @see #stb(GPR, GPR, GPR) | |
11077 * | |
11078 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
11079 */ | |
11080 // Template#: 671, Serial#: 671 | |
11081 public void clrb(final GPR rs1, final GPR rs2) { | |
11082 int instruction = 0xC0280000; | |
11083 instruction |= ((rs1.value() & 0x1f) << 14); | |
11084 instruction |= (rs2.value() & 0x1f); | |
11085 emitInt(instruction); | |
11086 } | |
11087 | |
11088 /** | |
11089 * Pseudo-external assembler syntax: {@code clrb }<i>rs1</i>, <i>simm13</i> | |
11090 * Example disassembly syntax: {@code clrb [%g0 + -4096]} | |
11091 * <p> | |
11092 * This is a synthetic instruction equivalent to: {@code stb(G0, rs1, simm13)} | |
11093 * <p> | |
11094 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
11095 * | |
11096 * @see #stb(GPR, GPR, int) | |
11097 * | |
11098 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
11099 */ | |
11100 // Template#: 672, Serial#: 672 | |
11101 public void clrb(final GPR rs1, final int simm13) { | |
11102 int instruction = 0xC0282000; | |
11103 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
11104 instruction |= ((rs1.value() & 0x1f) << 14); | |
11105 instruction |= (simm13 & 0x1fff); | |
11106 emitInt(instruction); | |
11107 } | |
11108 | |
11109 /** | |
11110 * Pseudo-external assembler syntax: {@code clrh }<i>rs1</i>, <i>rs2</i> | |
11111 * Example disassembly syntax: {@code clrh [%g0 + %g0]} | |
11112 * <p> | |
11113 * This is a synthetic instruction equivalent to: {@code sth(G0, rs1, rs2)} | |
11114 * | |
11115 * @see #sth(GPR, GPR, GPR) | |
11116 * | |
11117 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
11118 */ | |
11119 // Template#: 673, Serial#: 673 | |
11120 public void clrh(final GPR rs1, final GPR rs2) { | |
11121 int instruction = 0xC0300000; | |
11122 instruction |= ((rs1.value() & 0x1f) << 14); | |
11123 instruction |= (rs2.value() & 0x1f); | |
11124 emitInt(instruction); | |
11125 } | |
11126 | |
11127 /** | |
11128 * Pseudo-external assembler syntax: {@code clrh }<i>rs1</i>, <i>simm13</i> | |
11129 * Example disassembly syntax: {@code clrh [%g0 + -4096]} | |
11130 * <p> | |
11131 * This is a synthetic instruction equivalent to: {@code sth(G0, rs1, simm13)} | |
11132 * <p> | |
11133 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
11134 * | |
11135 * @see #sth(GPR, GPR, int) | |
11136 * | |
11137 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
11138 */ | |
11139 // Template#: 674, Serial#: 674 | |
11140 public void clrh(final GPR rs1, final int simm13) { | |
11141 int instruction = 0xC0302000; | |
11142 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
11143 instruction |= ((rs1.value() & 0x1f) << 14); | |
11144 instruction |= (simm13 & 0x1fff); | |
11145 emitInt(instruction); | |
11146 } | |
11147 | |
11148 /** | |
11149 * Pseudo-external assembler syntax: {@code clr }<i>rs1</i>, <i>rs2</i> | |
11150 * Example disassembly syntax: {@code clr [%g0 + %g0]} | |
11151 * <p> | |
11152 * This is a synthetic instruction equivalent to: {@code stw(G0, rs1, rs2)} | |
11153 * | |
11154 * @see #stw(GPR, GPR, GPR) | |
11155 * | |
11156 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
11157 */ | |
11158 // Template#: 675, Serial#: 675 | |
11159 public void clr(final GPR rs1, final GPR rs2) { | |
11160 int instruction = 0xC0200000; | |
11161 instruction |= ((rs1.value() & 0x1f) << 14); | |
11162 instruction |= (rs2.value() & 0x1f); | |
11163 emitInt(instruction); | |
11164 } | |
11165 | |
11166 /** | |
11167 * Pseudo-external assembler syntax: {@code clr }<i>rs1</i>, <i>simm13</i> | |
11168 * Example disassembly syntax: {@code clr [%g0 + -4096]} | |
11169 * <p> | |
11170 * This is a synthetic instruction equivalent to: {@code stw(G0, rs1, simm13)} | |
11171 * <p> | |
11172 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
11173 * | |
11174 * @see #stw(GPR, GPR, int) | |
11175 * | |
11176 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
11177 */ | |
11178 // Template#: 676, Serial#: 676 | |
11179 public void clr(final GPR rs1, final int simm13) { | |
11180 int instruction = 0xC0202000; | |
11181 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
11182 instruction |= ((rs1.value() & 0x1f) << 14); | |
11183 instruction |= (simm13 & 0x1fff); | |
11184 emitInt(instruction); | |
11185 } | |
11186 | |
11187 /** | |
11188 * Pseudo-external assembler syntax: {@code clrx }<i>rs1</i>, <i>rs2</i> | |
11189 * Example disassembly syntax: {@code clrx [%g0 + %g0]} | |
11190 * <p> | |
11191 * This is a synthetic instruction equivalent to: {@code stx(G0, rs1, rs2)} | |
11192 * | |
11193 * @see #stx(GPR, GPR, GPR) | |
11194 * | |
11195 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
11196 */ | |
11197 // Template#: 677, Serial#: 677 | |
11198 public void clrx(final GPR rs1, final GPR rs2) { | |
11199 int instruction = 0xC0700000; | |
11200 instruction |= ((rs1.value() & 0x1f) << 14); | |
11201 instruction |= (rs2.value() & 0x1f); | |
11202 emitInt(instruction); | |
11203 } | |
11204 | |
11205 /** | |
11206 * Pseudo-external assembler syntax: {@code clrx }<i>rs1</i>, <i>simm13</i> | |
11207 * Example disassembly syntax: {@code clrx [%g0 + -4096]} | |
11208 * <p> | |
11209 * This is a synthetic instruction equivalent to: {@code stx(G0, rs1, simm13)} | |
11210 * <p> | |
11211 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
11212 * | |
11213 * @see #stx(GPR, GPR, int) | |
11214 * | |
11215 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
11216 */ | |
11217 // Template#: 678, Serial#: 678 | |
11218 public void clrx(final GPR rs1, final int simm13) { | |
11219 int instruction = 0xC0702000; | |
11220 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
11221 instruction |= ((rs1.value() & 0x1f) << 14); | |
11222 instruction |= (simm13 & 0x1fff); | |
11223 emitInt(instruction); | |
11224 } | |
11225 | |
11226 /** | |
11227 * Pseudo-external assembler syntax: {@code clruw }<i>rs1</i>, <i>rd</i> | |
11228 * Example disassembly syntax: {@code clruw %g0, %g0} | |
11229 * <p> | |
11230 * This is a synthetic instruction equivalent to: {@code srl(rs1, G0, rd)} | |
11231 * | |
11232 * @see #srl(GPR, GPR, GPR) | |
11233 * | |
11234 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
11235 */ | |
11236 // Template#: 679, Serial#: 679 | |
11237 public void clruw(final GPR rs1, final GPR rd) { | |
11238 int instruction = 0x81300000; | |
11239 instruction |= ((rs1.value() & 0x1f) << 14); | |
11240 instruction |= ((rd.value() & 0x1f) << 25); | |
11241 emitInt(instruction); | |
11242 } | |
11243 | |
11244 /** | |
11245 * Pseudo-external assembler syntax: {@code clruw }<i>rd</i> | |
11246 * Example disassembly syntax: {@code clruw %g0} | |
11247 * <p> | |
11248 * This is a synthetic instruction equivalent to: {@code srl(rd.value(), G0, rd)} | |
11249 * | |
11250 * @see #srl(GPR, GPR, GPR) | |
11251 * | |
11252 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
11253 */ | |
11254 // Template#: 680, Serial#: 680 | |
11255 public void clruw(final GPR rd) { | |
11256 int instruction = 0x81300000; | |
11257 instruction |= ((rd.value() & 0x1f) << 14); | |
11258 instruction |= ((rd.value() & 0x1f) << 25); | |
11259 emitInt(instruction); | |
11260 } | |
11261 | |
11262 /** | |
11263 * Pseudo-external assembler syntax: {@code mov }<i>rs2</i>, <i>rd</i> | |
11264 * Example disassembly syntax: {@code mov %g0, %g0} | |
11265 * <p> | |
11266 * This is a synthetic instruction equivalent to: {@code or(G0, rs2, rd)} | |
11267 * | |
11268 * @see #or(GPR, GPR, GPR) | |
11269 * | |
11270 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
11271 */ | |
11272 // Template#: 681, Serial#: 681 | |
11273 public void mov(final GPR rs2, final GPR rd) { | |
11274 int instruction = 0x80100000; | |
11275 instruction |= (rs2.value() & 0x1f); | |
11276 instruction |= ((rd.value() & 0x1f) << 25); | |
11277 emitInt(instruction); | |
11278 } | |
11279 | |
11280 /** | |
11281 * Pseudo-external assembler syntax: {@code mov }<i>simm13</i>, <i>rd</i> | |
11282 * Example disassembly syntax: {@code mov -4096, %g0} | |
11283 * <p> | |
11284 * This is a synthetic instruction equivalent to: {@code or(G0, simm13, rd)} | |
11285 * <p> | |
11286 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
11287 * | |
11288 * @see #or(GPR, int, GPR) | |
11289 * | |
11290 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
11291 */ | |
11292 // Template#: 682, Serial#: 682 | |
11293 public void mov(final int simm13, final GPR rd) { | |
11294 int instruction = 0x80102000; | |
11295 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
11296 instruction |= (simm13 & 0x1fff); | |
11297 instruction |= ((rd.value() & 0x1f) << 25); | |
11298 emitInt(instruction); | |
11299 } | |
11300 | |
11301 /** | |
11302 * Pseudo-external assembler syntax: {@code mov }<i>rs1</i>, <i>rd</i> | |
11303 * Example disassembly syntax: {@code mov %y, %g0} | |
11304 * <p> | |
11305 * This is a synthetic instruction equivalent to: {@code rd(rs1, rd)} | |
11306 * <p> | |
11307 * Constraint: {@code rs1.isYorASR()}<br /> | |
11308 * | |
11309 * @see #rd(StateRegister, GPR) | |
11310 * @see com.sun.max.asm.sparc.StateRegister#isYorASR | |
11311 * | |
11312 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
11313 */ | |
11314 // Template#: 683, Serial#: 683 | |
11315 public void mov(final StateRegister rs1, final GPR rd) { | |
11316 int instruction = 0x81400000; | |
11317 checkConstraint(rs1.isYorASR(), "rs1.isYorASR()"); | |
11318 instruction |= ((rs1.value() & 0x1f) << 14); | |
11319 instruction |= ((rd.value() & 0x1f) << 25); | |
11320 emitInt(instruction); | |
11321 } | |
11322 | |
11323 /** | |
11324 * Pseudo-external assembler syntax: {@code mov }<i>rs2</i>, <i>rd</i> | |
11325 * Example disassembly syntax: {@code mov %g0, %y} | |
11326 * <p> | |
11327 * This is a synthetic instruction equivalent to: {@code wr(G0, rs2, rd)} | |
11328 * <p> | |
11329 * Constraint: {@code rd.isYorASR()}<br /> | |
11330 * | |
11331 * @see #wr(GPR, GPR, StateRegister.Writable) | |
11332 * @see com.sun.max.asm.sparc.StateRegister#isYorASR | |
11333 * | |
11334 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
11335 */ | |
11336 // Template#: 684, Serial#: 684 | |
11337 public void mov(final GPR rs2, final StateRegister.Writable rd) { | |
11338 int instruction = 0x81800000; | |
11339 checkConstraint(rd.isYorASR(), "rd.isYorASR()"); | |
11340 instruction |= (rs2.value() & 0x1f); | |
11341 instruction |= ((rd.value() & 0x1f) << 25); | |
11342 emitInt(instruction); | |
11343 } | |
11344 | |
11345 /** | |
11346 * Pseudo-external assembler syntax: {@code mov }<i>simm13</i>, <i>rd</i> | |
11347 * Example disassembly syntax: {@code mov -4096, %y} | |
11348 * <p> | |
11349 * This is a synthetic instruction equivalent to: {@code wr(G0, simm13, rd)} | |
11350 * <p> | |
11351 * Constraint: {@code -4096 <= simm13 && simm13 <= 4095}<br /> | |
11352 * Constraint: {@code rd.isYorASR()}<br /> | |
11353 * | |
11354 * @see #wr(GPR, int, StateRegister.Writable) | |
11355 * @see com.sun.max.asm.sparc.StateRegister#isYorASR | |
11356 * | |
11357 * @see "<a href="http://developers.sun.com/solaris/articles/sparcv9.pdf">The SPARC Architecture Manual, Version 9</a> - Section G.3" | |
11358 */ | |
11359 // Template#: 685, Serial#: 685 | |
11360 public void mov(final int simm13, final StateRegister.Writable rd) { | |
11361 int instruction = 0x81802000; | |
11362 checkConstraint(-4096 <= simm13 && simm13 <= 4095, "-4096 <= simm13 && simm13 <= 4095"); | |
11363 checkConstraint(rd.isYorASR(), "rd.isYorASR()"); | |
11364 instruction |= (simm13 & 0x1fff); | |
11365 instruction |= ((rd.value() & 0x1f) << 25); | |
11366 emitInt(instruction); | |
11367 } | |
11368 | |
11369 // END GENERATED RAW ASSEMBLER METHODS | |
11370 | |
11371 } |