Mercurial > hg > graal-jvmci-8
annotate graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java @ 10694:31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
author | twisti |
---|---|
date | Wed, 10 Jul 2013 12:50:45 -0700 |
parents | 73122b5edf6a |
children | 7a8d6ba83a04 |
rev | line source |
---|---|
7740
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
1 /* |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
2 * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved. |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
4 * |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
5 * This code is free software; you can redistribute it and/or modify it |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
6 * under the terms of the GNU General Public License version 2 only, as |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
7 * published by the Free Software Foundation. |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
8 * |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
9 * This code is distributed in the hope that it will be useful, but WITHOUT |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
12 * version 2 for more details (a copy is included in the LICENSE file that |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
13 * accompanied this code). |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
14 * |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
15 * You should have received a copy of the GNU General Public License version |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
16 * 2 along with this work; if not, write to the Free Software Foundation, |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
18 * |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
20 * or visit www.oracle.com if you need additional information or have any |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
21 * questions. |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
22 */ |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
23 package com.oracle.graal.asm.sparc; |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
24 |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
25 import static com.oracle.graal.sparc.SPARC.*; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
26 |
10459 | 27 import com.oracle.graal.api.code.*; |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
28 import com.oracle.graal.api.meta.*; |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
29 import com.oracle.graal.asm.*; |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
30 import com.oracle.graal.hotspot.*; |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
31 import com.oracle.graal.sparc.*; |
7740
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
32 |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
33 /** |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
34 * This class implements an assembler that can encode most SPARC instructions. |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
35 */ |
10459 | 36 public abstract class SPARCAssembler extends AbstractAssembler { |
37 | |
10465 | 38 /** |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
39 * Constructs an assembler for the SPARC architecture. |
10465 | 40 * |
41 * @param registerConfig the register configuration used to bind {@link Register#Frame} and | |
42 * {@link Register#CallerFrame} to physical registers. This value can be null if this | |
43 * assembler instance will not be used to assemble instructions using these logical | |
44 * registers. | |
45 */ | |
46 public SPARCAssembler(TargetDescription target, RegisterConfig registerConfig) { | |
47 super(target); | |
48 } | |
49 | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
50 // @formatter:off |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
51 /** |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
52 * Instruction format for sethi. |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
53 * |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
54 * | 00 | rd | op2 | imm22 | |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
55 * |31 30|29 25|24 22|21 0| |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
56 */ |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
57 // @formatter:on |
10459 | 58 public static class Fmt00a { |
59 | |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
60 private static final int OP_SHIFT = 30; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
61 private static final int RD_SHIFT = 25; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
62 private static final int OP2_SHIFT = 22; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
63 private static final int IMM22_SHIFT = 0; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
64 |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
65 // @formatter:off |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
66 private static final int OP_MASK = 0b11000000000000000000000000000000; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
67 private static final int RD_MASK = 0b00111110000000000000000000000000; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
68 private static final int OP2_MASK = 0b00000001110000000000000000000000; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
69 private static final int IMM22_MASK = 0b00000000001111111111111111111111; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
70 // @formatter:on |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
71 |
10459 | 72 private int rd; |
73 private int op2; | |
74 private int imm22; | |
75 | |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
76 private Fmt00a(int rd, int op2, int imm22) { |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
77 this.rd = rd; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
78 this.op2 = op2; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
79 this.imm22 = imm22; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
80 verify(); |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
81 } |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
82 |
10459 | 83 public Fmt00a(Op2s op2, int imm22, Register rd) { |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
84 this(rd.encoding(), op2.getValue(), hi22(imm22)); |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
85 } |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
86 |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
87 private int getInstructionBits() { |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
88 return Ops.BranchOp.getValue() << OP_SHIFT | rd << RD_SHIFT | op2 << OP2_SHIFT | (imm22 & IMM22_MASK) << IMM22_SHIFT; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
89 } |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
90 |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
91 public static Fmt00a read(SPARCAssembler masm, int pos) { |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
92 final int inst = masm.codeBuffer.getInt(pos); |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
93 |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
94 // Make sure it's the right instruction: |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
95 final int op = (inst & OP_MASK) >> OP_SHIFT; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
96 assert op == Ops.BranchOp.getValue(); |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
97 |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
98 // Get the instruction fields: |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
99 final int rd = (inst & RD_MASK) >> RD_SHIFT; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
100 final int op2 = (inst & OP2_MASK) >> OP2_SHIFT; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
101 final int imm22 = (inst & IMM22_MASK) >> IMM22_SHIFT; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
102 |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
103 return new Fmt00a(op2, imm22, rd); |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
104 } |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
105 |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
106 public void write(SPARCAssembler masm, int pos) { |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
107 verify(); |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
108 masm.codeBuffer.emitInt(getInstructionBits(), pos); |
10459 | 109 } |
110 | |
111 public void emit(SPARCAssembler masm) { | |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
112 verify(); |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
113 masm.emitInt(getInstructionBits()); |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
114 } |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
115 |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
116 public void verify() { |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
117 assert ((rd << RD_SHIFT) & RD_MASK) == (rd << RD_SHIFT); |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
118 assert ((op2 << OP2_SHIFT) & OP2_MASK) == (op2 << OP2_SHIFT); |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
119 assert ((imm22 << IMM22_SHIFT) & IMM22_MASK) == (imm22 << IMM22_SHIFT); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
120 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
121 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
122 |
10459 | 123 // @formatter:off |
124 /** | |
125 * Instruction format for branches. | |
126 * | |
127 * | 00 |a | cond | op2 | disp22 | | |
128 * |31 30|29|28 25|24 22|21 0| | |
129 */ | |
130 // @formatter:on | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
131 public static class Fmt00b { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
132 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
133 public Fmt00b(SPARCAssembler masm, int op, int a, int cond, int op2, int disp22) { |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
134 assert op == 0; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
135 assert op == 0; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
136 assert cond < 0x10; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
137 assert op2 < 0x8; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
138 masm.emitInt(op << 30 | a << 29 | cond << 25 | op2 << 22 | (disp22 & 0x003fffff)); |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
139 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
140 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
141 |
10459 | 142 // @formatter:off |
143 /** | |
144 * Instruction format for conditional branches. | |
145 * | |
146 * | 00 |a | cond | op2 |cc1|cc0|p | disp19 | | |
147 * |31 30|29|28 25|24 22|21 |20 |19| 0| | |
148 */ | |
149 // @formatter:on | |
150 public static class Fmt00c { | |
151 | |
152 private static final int OP_SHIFT = 30; | |
153 private static final int A_SHIFT = 29; | |
154 private static final int COND_SHIFT = 25; | |
155 private static final int OP2_SHIFT = 22; | |
156 private static final int CC_SHIFT = 20; | |
157 private static final int P_SHIFT = 19; | |
158 private static final int DISP19_SHIFT = 0; | |
159 | |
160 // @formatter:off | |
161 private static final int OP_MASK = 0b11000000000000000000000000000000; | |
162 private static final int A_MASK = 0b00100000000000000000000000000000; | |
163 private static final int COND_MASK = 0b00011110000000000000000000000000; | |
164 private static final int OP2_MASK = 0b00000001110000000000000000000000; | |
165 private static final int CC_MASK = 0b00000000001100000000000000000000; | |
166 private static final int P_MASK = 0b00000000000010000000000000000000; | |
167 private static final int DISP19_MASK = 0b00000000000001111111111111111111; | |
168 // @formatter:on | |
169 | |
170 private int a; | |
171 private int cond; | |
172 private int op2; | |
173 private int cc; | |
174 private int p; | |
175 private int disp19; | |
176 private Label label; | |
177 | |
178 private Fmt00c(int a, int cond, int op2, int cc, int p, int disp19) { | |
179 setA(a); | |
180 setCond(cond); | |
181 setOp2(op2); | |
182 setCc(cc); | |
183 setP(p); | |
184 setDisp19(disp19); | |
10468 | 185 verify(); |
10459 | 186 } |
187 | |
188 public Fmt00c(int a, ConditionFlag cond, Op2s op2, CC cc, int p, int disp19) { | |
189 this(a, cond.getValue(), op2.getValue(), cc.getValue(), p, disp19); | |
190 } | |
191 | |
192 public Fmt00c(int a, ConditionFlag cond, Op2s op2, CC cc, int p, Label label) { | |
193 this(a, cond.getValue(), op2.getValue(), cc.getValue(), p, 0); | |
194 this.label = label; | |
195 } | |
196 | |
197 public int getA() { | |
198 return a; | |
199 } | |
200 | |
201 public void setA(int a) { | |
202 this.a = a; | |
203 } | |
204 | |
205 public int getCond() { | |
206 return cond; | |
207 } | |
208 | |
209 public void setCond(int cond) { | |
210 this.cond = cond; | |
211 } | |
212 | |
213 public int getOp2() { | |
214 return op2; | |
215 } | |
216 | |
217 public void setOp2(int op2) { | |
218 this.op2 = op2; | |
219 } | |
220 | |
221 public int getCc() { | |
222 return cc; | |
223 } | |
224 | |
225 public void setCc(int cc) { | |
226 this.cc = cc; | |
227 } | |
228 | |
229 public int getP() { | |
230 return p; | |
231 } | |
232 | |
233 public void setP(int p) { | |
234 this.p = p; | |
235 } | |
236 | |
237 /** | |
238 * Return the displacement in bytes. | |
239 */ | |
240 public int getDisp19() { | |
241 return disp19 << 2; | |
242 } | |
243 | |
244 /** | |
245 * The instructions requires displacements to be word-sized. | |
246 */ | |
247 public void setDisp19(int disp19) { | |
248 this.disp19 = disp19 >> 2; | |
249 } | |
250 | |
251 private int getInstructionBits() { | |
252 return Ops.BranchOp.getValue() << OP_SHIFT | a << A_SHIFT | cond << COND_SHIFT | op2 << OP2_SHIFT | cc << CC_SHIFT | p << P_SHIFT | (disp19 & DISP19_MASK) << DISP19_SHIFT; | |
253 } | |
254 | |
255 public static Fmt00c read(SPARCAssembler masm, int pos) { | |
256 final int inst = masm.codeBuffer.getInt(pos); | |
257 | |
258 // Make sure it's the right instruction: | |
259 final int op = (inst & OP_MASK) >> OP_SHIFT; | |
260 assert op == Ops.BranchOp.getValue(); | |
261 | |
262 // Get the instruction fields: | |
263 final int a = (inst & A_MASK) >> A_SHIFT; | |
264 final int cond = (inst & COND_MASK) >> COND_SHIFT; | |
265 final int op2 = (inst & OP2_MASK) >> OP2_SHIFT; | |
266 final int cc = (inst & CC_MASK) >> CC_SHIFT; | |
267 final int p = (inst & P_MASK) >> P_SHIFT; | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
268 final int disp19 = (inst & DISP19_MASK) >> DISP19_SHIFT << 2; |
10459 | 269 |
270 Fmt00c fmt = new Fmt00c(a, cond, op2, cc, p, disp19); | |
271 fmt.verify(); | |
272 return fmt; | |
273 } | |
274 | |
275 public void write(SPARCAssembler masm, int pos) { | |
276 verify(); | |
277 masm.codeBuffer.emitInt(getInstructionBits(), pos); | |
278 } | |
279 | |
280 public void emit(SPARCAssembler masm) { | |
281 if (label != null) { | |
282 final int pos = label.isBound() ? label.position() : patchUnbound(masm, label); | |
283 final int disp = pos - masm.codeBuffer.position(); | |
284 setDisp19(disp); | |
285 } | |
286 verify(); | |
287 masm.emitInt(getInstructionBits()); | |
288 } | |
289 | |
290 public void verify() { | |
291 assert p < 2; | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
292 assert cond < 0x10; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
293 assert op2 < 0x8; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
294 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
295 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
296 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
297 public static class Fmt00d { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
298 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
299 public Fmt00d(SPARCAssembler masm, int op, int a, int rcond, int op2, int d16hi, int predict, int rs1, int d16lo) { |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
300 assert predict == 0 || predict == 1; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
301 assert rcond >= 0 && rcond < 0x8; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
302 assert op == 0; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
303 assert op2 >= 0 && op2 < 0x8; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
304 assert rs1 >= 0 && rs1 < 0x20; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
305 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
306 masm.emitInt(op << 30 | a << 29 | rcond << 25 | op2 << 22 | d16hi & 3 | predict << 18 | rs1 << 14 | (d16lo & 0x003fff)); |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
307 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
308 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
309 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
310 public static class Fmt00e { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
311 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
312 public Fmt00e(SPARCAssembler asm, int op, int c4lo, int cc2, int rs1, int d10lo, int regOrImmediate) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
313 assert op == 0; |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
314 assert (cc2 & 0xFFFFFFFE) == 0; |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
315 assert c4lo >= 0 && rs1 < 0x10; |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
316 assert rs1 >= 0 && rs1 < 0x20; |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
317 assert (regOrImmediate & 0x1F) < 0x20; |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
318 assert (regOrImmediate & 0xFFFFC000) == 0; |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
319 assert (d10lo & 0xFFFFFC00) == 0; |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
320 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
321 asm.emitInt(op << 30 | 1 << 28 | 3 << 22 | cc2 << 21 | (d10lo >> 8) << 19 | rs1 << 14 | (d10lo & 0xff) << 5 | regOrImmediate); |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
322 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
323 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
324 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
325 // @formatter:off |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
326 /** |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
327 * Instruction format for calls. |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
328 * |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
329 * | 01 | disp30 | |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
330 * |31 30|29 0| |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
331 */ |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
332 // @formatter:on |
10459 | 333 public static class Fmt01 { |
334 | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
335 private static final int OP_SHIFT = 30; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
336 private static final int DISP30_SHIFT = 0; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
337 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
338 // @formatter:off |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
339 private static final int OP_MASK = 0b11000000000000000000000000000000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
340 private static final int DISP30_MASK = 0b00111111111111111111111111111111; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
341 // @formatter:on |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
342 |
10459 | 343 private int disp30; |
344 | |
345 public Fmt01(int disp30) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
346 setDisp30(disp30); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
347 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
348 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
349 /** |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
350 * Return the displacement in bytes. |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
351 */ |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
352 public int getDisp30() { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
353 return disp30 << 2; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
354 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
355 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
356 /** |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
357 * The instructions requires displacements to be word-sized. |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
358 */ |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
359 public void setDisp30(int disp30) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
360 this.disp30 = disp30 >> 2; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
361 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
362 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
363 private int getInstructionBits() { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
364 return Ops.CallOp.getValue() << OP_SHIFT | (disp30 & DISP30_MASK) << DISP30_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
365 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
366 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
367 public static Fmt01 read(SPARCAssembler masm, int pos) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
368 final int inst = masm.codeBuffer.getInt(pos); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
369 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
370 // Make sure it's the right instruction: |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
371 final int op = (inst & OP_MASK) >> OP_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
372 assert op == Ops.CallOp.getValue(); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
373 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
374 // Get the instruction fields: |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
375 final int disp30 = (inst & DISP30_MASK) >> DISP30_SHIFT << 2; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
376 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
377 Fmt01 fmt = new Fmt01(disp30); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
378 fmt.verify(); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
379 return fmt; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
380 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
381 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
382 public void write(SPARCAssembler masm, int pos) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
383 verify(); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
384 masm.codeBuffer.emitInt(getInstructionBits(), pos); |
10459 | 385 } |
386 | |
387 public void emit(SPARCAssembler masm) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
388 verify(); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
389 masm.emitInt(getInstructionBits()); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
390 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
391 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
392 public void verify() { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
393 assert (disp30 & DISP30_MASK) == 0; |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
394 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
395 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
396 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
397 public static class Fmt3f { |
10459 | 398 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
399 public Fmt3f(SPARCAssembler masm, int op, int op3, int rcond, int rs1, int simm10, int rd) { |
10459 | 400 assert op == 2 || op == 3; |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
401 assert op3 >= 0 && op3 < 0x40; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
402 assert rs1 >= 0 && rs1 < 0x20; |
10459 | 403 assert rd >= 0 && rd < 0x20; |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
404 |
9816
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
405 masm.emitInt(op << 30 | rd << 25 | op3 << 19 | ImmedTrue | rs1 << 14 | rcond << 10 | (simm10 & 0x000003ff)); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
406 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
407 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
408 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
409 public static class Fmt3n { |
10459 | 410 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
411 public Fmt3n(SPARCAssembler masm, int op, int op3, int opf, int rs2, int rd) { |
10459 | 412 assert op == 2 || op == 3; |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
413 assert op3 >= 0 && op3 < 0x40; |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
414 assert opf >= 0 && opf < 0x200; |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
415 assert rs2 >= 0 && rs2 < 0x20; |
10459 | 416 assert rd >= 0 && rd < 0x20; |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
417 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
418 masm.emitInt(op << 30 | rd << 25 | op3 << 19 | opf << 5 | rs2); |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
419 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
420 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
421 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
422 public static class Fmt3p { |
10459 | 423 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
424 private int op; |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
425 private int op3; |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
426 private int opf; |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
427 private int rs1; |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
428 private int rs2; |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
429 private int rd; |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
430 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
431 public Fmt3p(Ops op, Op3s op3, Opfs opf, Register rs1, Register rs2, Register rd) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
432 this.op = op.getValue(); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
433 this.op3 = op3.getValue(); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
434 this.opf = opf.getValue(); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
435 this.rs1 = rs1.encoding(); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
436 this.rs2 = rs2.encoding(); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
437 this.rd = rd.encoding(); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
438 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
439 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
440 public void emit(SPARCAssembler masm) { |
10459 | 441 assert op == 2 || op == 3; |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
442 assert op3 >= 0 && op3 < 0x40; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
443 assert opf >= 0 && opf < 0x200; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
444 assert rs1 >= 0 && rs1 < 0x20; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
445 assert rs2 >= 0 && rs2 < 0x20; |
10459 | 446 assert rd >= 0 && rd < 0x20; |
447 | |
448 masm.emitInt(op << 30 | rd << 25 | op3 << 19 | rs1 << 14 | opf << 5 | rs2); | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
449 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
450 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
451 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
452 // @formatter:off |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
453 /** |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
454 * Instruction format for Arithmetic, Logical, Moves, Tcc, Prefetch, and Misc. |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
455 * |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
456 * | 10 | rd | op3 | rs1 | i| imm_asi | rs2 | |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
457 * | 10 | rd | op3 | rs1 | i| simm13 | |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
458 * |31 30|29 25|24 19|18 14|13|12 5|4 0| |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
459 */ |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
460 // @formatter:on |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
461 public static class Fmt10 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
462 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
463 private static final int OP_SHIFT = 30; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
464 private static final int RD_SHIFT = 25; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
465 private static final int OP3_SHIFT = 19; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
466 private static final int RS1_SHIFT = 14; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
467 private static final int I_SHIFT = 13; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
468 private static final int IMM_ASI_SHIFT = 5; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
469 private static final int RS2_SHIFT = 0; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
470 private static final int SIMM13_SHIFT = 0; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
471 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
472 // @formatter:off |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
473 private static final int OP_MASK = 0b11000000000000000000000000000000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
474 private static final int RD_MASK = 0b00111110000000000000000000000000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
475 private static final int OP3_MASK = 0b00000001111110000000000000000000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
476 private static final int RS1_MASK = 0b00000000000001111100000000000000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
477 private static final int I_MASK = 0b00000000000000000010000000000000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
478 private static final int IMM_ASI_MASK = 0b00000000000000000001111111100000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
479 private static final int RS2_MASK = 0b00000000000000000000000000011111; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
480 private static final int SIMM13_MASK = 0b00000000000000000001111111111111; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
481 // @formatter:on |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
482 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
483 private int rd; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
484 private int op3; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
485 private int rs1; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
486 private int i; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
487 private int immAsi; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
488 private int rs2; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
489 private int simm13; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
490 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
491 private Fmt10(int rd, int op3, int rs1, int i, int immAsi, int rs2, int simm13) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
492 this.rd = rd; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
493 this.op3 = op3; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
494 this.rs1 = rs1; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
495 this.i = i; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
496 this.immAsi = immAsi; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
497 this.rs2 = rs2; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
498 this.simm13 = simm13; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
499 verify(); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
500 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
501 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
502 public Fmt10(Op3s op3, Register rs1, Register rs2, Register rd) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
503 this(rd.encoding(), op3.getValue(), rs1.encoding(), 0, 0, rs2.encoding(), 0); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
504 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
505 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
506 public Fmt10(Op3s op3, Register rs1, int simm13, Register rd) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
507 this(rd.encoding(), op3.getValue(), rs1.encoding(), 1, 0, 0, simm13); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
508 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
509 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
510 public Fmt10(Op3s op3) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
511 this(0, op3.getValue(), 0, 0, 0, 0, 0); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
512 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
513 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
514 public Fmt10(Op3s op3, Register rs1, Register rd) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
515 this(rd.encoding(), op3.getValue(), rs1.encoding(), 0, 0, 0, 0); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
516 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
517 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
518 private int getInstructionBits() { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
519 if (i == 0) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
520 return Ops.ArithOp.getValue() << OP_SHIFT | rd << RD_SHIFT | op3 << OP3_SHIFT | rs1 << RS1_SHIFT | i << I_SHIFT | immAsi << IMM_ASI_SHIFT | rs2 << RS2_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
521 } else { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
522 return Ops.ArithOp.getValue() << OP_SHIFT | rd << RD_SHIFT | op3 << OP3_SHIFT | rs1 << RS1_SHIFT | i << I_SHIFT | ((simm13 << SIMM13_SHIFT) & SIMM13_MASK); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
523 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
524 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
525 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
526 public static Fmt10 read(SPARCAssembler masm, int pos) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
527 final int inst = masm.codeBuffer.getInt(pos); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
528 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
529 // Make sure it's the right instruction: |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
530 final int op = (inst & OP_MASK) >> OP_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
531 assert op == Ops.ArithOp.getValue(); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
532 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
533 // Get the instruction fields: |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
534 final int rd = (inst & RD_MASK) >> RD_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
535 final int op3 = (inst & OP3_MASK) >> OP3_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
536 final int rs1 = (inst & RS1_MASK) >> RS1_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
537 final int i = (inst & I_MASK) >> I_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
538 final int immAsi = (inst & IMM_ASI_MASK) >> IMM_ASI_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
539 final int rs2 = (inst & RS2_MASK) >> RS2_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
540 final int simm13 = (inst & SIMM13_MASK) >> SIMM13_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
541 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
542 return new Fmt10(rd, op3, rs1, i, immAsi, rs2, simm13); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
543 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
544 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
545 public void write(SPARCAssembler masm, int pos) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
546 verify(); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
547 masm.codeBuffer.emitInt(getInstructionBits(), pos); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
548 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
549 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
550 public void emit(SPARCAssembler masm) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
551 verify(); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
552 masm.emitInt(getInstructionBits()); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
553 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
554 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
555 public void verify() { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
556 assert ((rd << RD_SHIFT) & RD_MASK) == (rd << RD_SHIFT); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
557 assert ((op3 << OP3_SHIFT) & OP3_MASK) == (op3 << OP3_SHIFT); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
558 assert ((rs1 << RS1_SHIFT) & RS1_MASK) == (rs1 << RS1_SHIFT); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
559 assert ((i << I_SHIFT) & I_MASK) == (i << I_SHIFT); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
560 assert ((immAsi << IMM_ASI_SHIFT) & IMM_ASI_MASK) == (immAsi << IMM_ASI_SHIFT); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
561 assert ((rs2 << RS2_SHIFT) & RS2_MASK) == (rs2 << RS2_SHIFT); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
562 assert isSimm13(simm13); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
563 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
564 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
565 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
566 // @formatter:off |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
567 /** |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
568 * Instruction format for Loads, Stores and Misc. |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
569 * |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
570 * | 11 | rd | op3 | rs1 | i| imm_asi | rs2 | |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
571 * | 11 | rd | op3 | rs1 | i| simm13 | |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
572 * |31 30|29 25|24 19|18 14|13|12 5|4 0| |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
573 */ |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
574 // @formatter:on |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
575 public static class Fmt11 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
576 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
577 private static final int OP_SHIFT = 30; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
578 private static final int RD_SHIFT = 25; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
579 private static final int OP3_SHIFT = 19; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
580 private static final int RS1_SHIFT = 14; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
581 private static final int I_SHIFT = 13; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
582 private static final int IMM_ASI_SHIFT = 5; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
583 private static final int RS2_SHIFT = 0; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
584 private static final int SIMM13_SHIFT = 0; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
585 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
586 // @formatter:off |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
587 private static final int OP_MASK = 0b11000000000000000000000000000000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
588 private static final int RD_MASK = 0b00111110000000000000000000000000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
589 private static final int OP3_MASK = 0b00000001111110000000000000000000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
590 private static final int RS1_MASK = 0b00000000000001111100000000000000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
591 private static final int I_MASK = 0b00000000000000000010000000000000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
592 private static final int IMM_ASI_MASK = 0b00000000000000000001111111100000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
593 private static final int RS2_MASK = 0b00000000000000000000000000011111; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
594 private static final int SIMM13_MASK = 0b00000000000000000001111111111111; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
595 // @formatter:on |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
596 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
597 private int rd; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
598 private int op3; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
599 private int rs1; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
600 private int i; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
601 private int immAsi; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
602 private int rs2; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
603 private int simm13; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
604 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
605 private Fmt11(int rd, int op3, int rs1, int i, int immAsi, int rs2, int simm13) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
606 this.rd = rd; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
607 this.op3 = op3; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
608 this.rs1 = rs1; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
609 this.i = i; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
610 this.immAsi = immAsi; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
611 this.rs2 = rs2; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
612 this.simm13 = simm13; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
613 verify(); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
614 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
615 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
616 public Fmt11(Op3s op3, Register rs1, Register rs2, Register rd) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
617 this(rd.encoding(), op3.getValue(), rs1.encoding(), 0, 0, rs2.encoding(), 0); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
618 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
619 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
620 public Fmt11(Op3s op3, Register rs1, int simm13, Register rd) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
621 this(rd.encoding(), op3.getValue(), rs1.encoding(), 1, 0, 0, simm13); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
622 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
623 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
624 public Fmt11(Op3s op3, Register rs1, Register rd) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
625 this(rd.encoding(), op3.getValue(), rs1.encoding(), 0, 0, 0, 0); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
626 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
627 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
628 private int getInstructionBits() { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
629 if (i == 0) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
630 return Ops.LdstOp.getValue() << OP_SHIFT | rd << RD_SHIFT | op3 << OP3_SHIFT | rs1 << RS1_SHIFT | i << I_SHIFT | immAsi << IMM_ASI_SHIFT | rs2 << RS2_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
631 } else { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
632 return Ops.LdstOp.getValue() << OP_SHIFT | rd << RD_SHIFT | op3 << OP3_SHIFT | rs1 << RS1_SHIFT | i << I_SHIFT | ((simm13 << SIMM13_SHIFT) & SIMM13_MASK); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
633 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
634 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
635 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
636 public static Fmt11 read(SPARCAssembler masm, int pos) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
637 final int inst = masm.codeBuffer.getInt(pos); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
638 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
639 // Make sure it's the right instruction: |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
640 final int op = (inst & OP_MASK) >> OP_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
641 assert op == Ops.LdstOp.getValue(); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
642 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
643 // Get the instruction fields: |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
644 final int rd = (inst & RD_MASK) >> RD_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
645 final int op3 = (inst & OP3_MASK) >> OP3_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
646 final int rs1 = (inst & RS1_MASK) >> RS1_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
647 final int i = (inst & I_MASK) >> I_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
648 final int immAsi = (inst & IMM_ASI_MASK) >> IMM_ASI_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
649 final int rs2 = (inst & RS2_MASK) >> RS2_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
650 final int simm13 = (inst & SIMM13_MASK) >> SIMM13_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
651 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
652 return new Fmt11(rd, op3, rs1, i, immAsi, rs2, simm13); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
653 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
654 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
655 public void write(SPARCAssembler masm, int pos) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
656 verify(); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
657 masm.codeBuffer.emitInt(getInstructionBits(), pos); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
658 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
659 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
660 public void emit(SPARCAssembler masm) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
661 verify(); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
662 masm.emitInt(getInstructionBits()); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
663 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
664 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
665 public void verify() { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
666 assert ((rd << RD_SHIFT) & RD_MASK) == (rd << RD_SHIFT); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
667 assert ((op3 << OP3_SHIFT) & OP3_MASK) == (op3 << OP3_SHIFT); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
668 assert ((rs1 << RS1_SHIFT) & RS1_MASK) == (rs1 << RS1_SHIFT); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
669 assert ((i << I_SHIFT) & I_MASK) == (i << I_SHIFT); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
670 assert ((immAsi << IMM_ASI_SHIFT) & IMM_ASI_MASK) == (immAsi << IMM_ASI_SHIFT); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
671 assert ((rs2 << RS2_SHIFT) & RS2_MASK) == (rs2 << RS2_SHIFT); |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
672 assert isSimm13(simm13) : String.format("simm13: %d (%x)", simm13, simm13); |
9844
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
673 } |
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
674 } |
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
675 |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
676 public static class Fmt4a { |
10459 | 677 |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
678 public Fmt4a(SPARCAssembler masm, int op, int op3, int cc, int rs1, int regOrImmediate, int rd) { |
10459 | 679 assert op == 2; |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
680 assert rs1 >= 0 && rs1 < 0x20; |
10459 | 681 assert rd >= 0 && rd < 0x10; |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
682 |
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
683 masm.emitInt(op << 30 | rd << 25 | op3 << 19 | rs1 << 14 | ((cc << 11) & 0x000001800) | regOrImmediate); |
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
684 } |
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
685 } |
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
686 |
10468 | 687 public static class Fmt10c { |
688 | |
689 private static final int OP_SHIFT = 30; | |
690 private static final int RD_SHIFT = 25; | |
691 private static final int OP3_SHIFT = 19; | |
692 private static final int CC2_SHIFT = 18; | |
693 private static final int COND_SHIFT = 14; | |
694 private static final int I_SHIFT = 13; | |
695 private static final int CC_SHIFT = 11; | |
696 private static final int RS2_SHIFT = 0; | |
697 private static final int SIMM11_SHIFT = 0; | |
698 | |
699 // @formatter:off | |
700 private static final int OP_MASK = 0b11000000000000000000000000000000; | |
701 private static final int RD_MASK = 0b00111110000000000000000000000000; | |
702 private static final int OP3_MASK = 0b00000001111110000000000000000000; | |
703 private static final int CC2_MASK = 0b00000000000001000000000000000000; | |
704 private static final int COND_MASK = 0b00000000000000111100000000000000; | |
705 private static final int I_MASK = 0b00000000000000000010000000000000; | |
706 private static final int CC_MASK = 0b00000000000000000001100000000000; | |
707 private static final int RS2_MASK = 0b00000000000000000000000000011111; | |
708 private static final int SIMM11_MASK = 0b00000000000000000000011111111111; | |
709 // @formatter:on | |
710 | |
711 private int rd; | |
712 private int op3; | |
713 private int cond; | |
714 private int i; | |
715 private int cc; | |
716 private int rs2; | |
717 private int simm11; | |
718 | |
719 private Fmt10c(int rd, int op3, int cond, int i, int cc, int rs2, int simm11) { | |
720 this.rd = rd; | |
721 this.op3 = op3; | |
722 this.cond = cond; | |
723 this.i = i; | |
724 this.cc = cc; | |
725 this.rs2 = rs2; | |
726 this.simm11 = simm11; | |
727 verify(); | |
728 } | |
729 | |
730 public Fmt10c(Op3s op3, ConditionFlag cond, CC cc, Register rs2, Register rd) { | |
731 this(rd.encoding(), op3.getValue(), cond.getValue(), 0, cc.getValue(), rs2.encoding(), 0); | |
732 } | |
733 | |
734 public Fmt10c(Op3s op3, ConditionFlag cond, CC cc, int simm11, Register rd) { | |
735 this(rd.encoding(), op3.getValue(), cond.getValue(), 1, cc.getValue(), 0, simm11); | |
736 } | |
737 | |
738 private int getInstructionBits() { | |
739 if (i == 0) { | |
740 return Ops.ArithOp.getValue() << OP_SHIFT | rd << RD_SHIFT | op3 << OP3_SHIFT | ((cc << CC2_SHIFT) & CC2_MASK) | cond << COND_SHIFT | i << I_SHIFT | ((cc << CC_SHIFT) & CC_MASK) | | |
741 rs2 << RS2_SHIFT; | |
742 } else { | |
743 return Ops.ArithOp.getValue() << OP_SHIFT | rd << RD_SHIFT | op3 << OP3_SHIFT | ((cc << CC2_SHIFT) & CC2_MASK) | cond << COND_SHIFT | i << I_SHIFT | ((cc << CC_SHIFT) & CC_MASK) | | |
744 ((simm11 << SIMM11_SHIFT) & SIMM11_MASK); | |
745 } | |
746 } | |
747 | |
748 public static Fmt10c read(SPARCAssembler masm, int pos) { | |
749 final int inst = masm.codeBuffer.getInt(pos); | |
750 | |
751 // Make sure it's the right instruction: | |
752 final int op = (inst & OP_MASK) >> OP_SHIFT; | |
753 assert op == Ops.ArithOp.getValue(); | |
754 | |
755 // Get the instruction fields: | |
756 final int rd = (inst & RD_MASK) >> RD_SHIFT; | |
757 final int op3 = (inst & OP3_MASK) >> OP3_SHIFT; | |
758 final int cond = (inst & COND_MASK) >> COND_SHIFT; | |
759 final int i = (inst & I_MASK) >> I_SHIFT; | |
760 final int cc = (inst & CC2_MASK) >> CC2_SHIFT | (inst & CC_MASK) >> CC_SHIFT; | |
761 final int rs2 = (inst & RS2_MASK) >> RS2_SHIFT; | |
762 final int simm11 = (inst & SIMM11_MASK) >> SIMM11_SHIFT; | |
763 | |
764 return new Fmt10c(rd, op3, cond, i, cc, rs2, simm11); | |
765 } | |
766 | |
767 public void write(SPARCAssembler masm, int pos) { | |
768 verify(); | |
769 masm.codeBuffer.emitInt(getInstructionBits(), pos); | |
770 } | |
771 | |
772 public void emit(SPARCAssembler masm) { | |
773 verify(); | |
774 masm.emitInt(getInstructionBits()); | |
775 } | |
776 | |
777 public void verify() { | |
778 assert ((rd << RD_SHIFT) & RD_MASK) == (rd << RD_SHIFT); | |
779 assert ((op3 << OP3_SHIFT) & OP3_MASK) == (op3 << OP3_SHIFT); | |
780 assert ((cond << COND_SHIFT) & COND_MASK) == (cond << COND_SHIFT); | |
781 assert ((i << I_SHIFT) & I_MASK) == (i << I_SHIFT); | |
782 // assert cc >= 0 && cc < 0x8; | |
783 assert ((rs2 << RS2_SHIFT) & RS2_MASK) == (rs2 << RS2_SHIFT); | |
784 // assert isSimm11(simm11); | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
785 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
786 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
787 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
788 public static class Fmt4d { |
10459 | 789 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
790 public Fmt4d(SPARCAssembler masm, int op, int op3, int cond, int cc, int simm11, int rd) { |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
791 assert op == 2; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
792 assert op3 >= 0 && op3 < 0x40; |
10459 | 793 assert cc >= 0 && cc < 0x8; |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
794 assert cond >= 0 && cond < 0x10; |
10459 | 795 assert rd >= 0 && rd < 0x20; |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
796 |
9816
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
797 masm.emitInt(op << 30 | rd << 25 | op3 << 19 | ImmedTrue | ((cc << 15) & 0x00040000) | cond << 14 | ((cc << 11) & 0x3) | simm11 & 0x00004000); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
798 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
799 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
800 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
801 public static class Fmt5a { |
10459 | 802 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
803 public Fmt5a(SPARCAssembler masm, int op, int op3, int op5, int rs1, int rs2, int rs3, int rd) { |
10459 | 804 assert op == 2; |
805 assert op3 >= 0 && op3 < 0x40; | |
806 assert op5 >= 0 && op5 < 0x10; | |
807 assert rs1 >= 0 && rs1 < 0x20; | |
808 assert rs2 >= 0 && rs2 < 0x20; | |
809 assert rs3 >= 0 && rs3 < 0x20; | |
810 assert rd >= 0 && rd < 0x20; | |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
811 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
812 masm.emitInt(op << 30 | rd << 25 | op3 << 19 | rs1 << 14 | rs3 << 9 | op5 << 5 | rs2); |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
813 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
814 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
815 |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
816 public static final int ImmedTrue = 0x00002000; |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
817 |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
818 public enum Ops { |
10459 | 819 BranchOp(0b00), CallOp(0b01), ArithOp(0b10), LdstOp(0b11); |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
820 |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
821 private final int value; |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
822 |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
823 private Ops(int value) { |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
824 this.value = value; |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
825 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
826 |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
827 public int getValue() { |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
828 return value; |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
829 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
830 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
831 |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
832 public enum Op2s { |
10459 | 833 Bpr(3), Fb(6), Fbp(5), Br(2), Bp(1), Cb(7), Sethi(4); |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
834 |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
835 private final int value; |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
836 |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
837 private Op2s(int value) { |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
838 this.value = value; |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
839 } |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
840 |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
841 public int getValue() { |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
842 return value; |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
843 } |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
844 } |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
845 |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
846 public enum Op3s { |
9816
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
847 Add(0x00, "add"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
848 And(0x01, "and"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
849 Or(0x02, "or"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
850 Xor(0x03, "xor"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
851 Sub(0x04, "sub"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
852 Andn(0x05, "andn"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
853 Orn(0x06, "orn"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
854 Xnor(0x07, "xnor"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
855 Addc(0x08, "addc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
856 Mulx(0x09, "mulx"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
857 Umul(0x0A, "umul"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
858 Smul(0x0B, "smul"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
859 Subc(0x0C, "subc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
860 Udivx(0x0D, "udivx"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
861 Udiv(0x0E, "udiv"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
862 Sdiv(0x0F, "sdiv"), |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
863 |
9816
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
864 Addcc(0x10, "addcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
865 Andcc(0x11, "andcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
866 Orcc(0x12, "orcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
867 Xorcc(0x13, "xorcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
868 Subcc(0x14, "subcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
869 Andncc(0x15, "andncc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
870 Orncc(0x16, "orncc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
871 Xnorcc(0x17, "xnorcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
872 Addccc(0x18, "addccc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
873 Mulxcc(0x19, "mulxcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
874 Umulcc(0x1A, "umulcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
875 Smulcc(0x1B, "smulcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
876 Subccc(0x1C0, "subccc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
877 Udivcc(0x1E, "udivcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
878 Sdivcc(0x1F, "sdivcc"), |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
879 |
9816
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
880 Taddcc(0x20, "taddcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
881 Tsubcc(0x21, "tsubcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
882 Taddcctv(0x22, "taddcctv"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
883 Tsubcctv(0x23, "tsubcctv"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
884 Mulscc(0x24, "mulscc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
885 Sll(0x25, "sll"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
886 Sllx(0x25, "sllx"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
887 Srl(0x26, "srl"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
888 Srlx(0x26, "srlx"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
889 Sra(0x27, "srax"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
890 Srax(0x27, "srax"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
891 Rdreg(0x28, "rdreg"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
892 Membar(0x28, "membar"), |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
893 |
9816
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
894 Flushw(0x2B, "flushw"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
895 Movcc(0x2C, "movcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
896 Sdivx(0x2D, "sdivx"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
897 Popc(0x2E, "popc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
898 Movr(0x2F, "movr"), |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
899 |
9816
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
900 Sir(0x30, "sir"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
901 Wrreg(0x30, "wrreg"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
902 Saved(0x31, "saved"), |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
903 |
9816
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
904 Fpop1(0x34, "fpop1"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
905 Fpop2(0x35, "fpop2"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
906 Impdep1(0x36, "impdep1"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
907 Impdep2(0x37, "impdep2"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
908 Jmpl(0x38, "jmpl"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
909 Rett(0x39, "rett"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
910 Trap(0x3a, "trap"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
911 Flush(0x3b, "flush"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
912 Save(0x3c, "save"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
913 Restore(0x3d, "restore"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
914 Done(0x3e, "done"), |
9825
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
915 Retry(0x3e, "retry"), |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
916 |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
917 Lduw(0x00, "lduw"), |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
918 Ldub(0x01, "ldub"), |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
919 Lduh(0x02, "lduh"), |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
920 Ldd(0x03, "ldd"), |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
921 Stw(0x04, "stw"), |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
922 Stb(0x05, "stb"), |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
923 Sth(0x06, "sth"), |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
924 Std(0x07, "std"), |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
925 Ldsw(0x08, "ldsw"), |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
926 Ldsb(0x09, "ldsb"), |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
927 Ldsh(0x0A, "ldsh"), |
10459 | 928 Ldx(0b001011, "ldx"), |
929 Stx(0b001110, "stx"), | |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
930 |
9825
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
931 Ldf(0x20, "ldf"), |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
932 Ldfsr(0x21, "ldfsr"), |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
933 Ldaf(0x22, "ldaf"), |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
934 Lddf(0x23, "lddf"), |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
935 Stf(0x24, "stf"), |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
936 Stfsr(0x25, "stfsr"), |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
937 Staf(0x26, "staf"), |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
938 Stdf(0x27, "stdf"); |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
939 |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
940 private final int value; |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
941 private final String operator; |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
942 |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
943 private Op3s(int value, String op) { |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
944 this.value = value; |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
945 this.operator = op; |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
946 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
947 |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
948 public int getValue() { |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
949 return value; |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
950 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
951 |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
952 public String getOperator() { |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
953 return operator; |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
954 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
955 } |
7740
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
956 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
957 public enum Op5s { |
10459 | 958 Fmadds(0x1), Fmaddd(0x2), Fmsubs(0x5), Fmsubd(0x6), Fnmsubs(0x9), Fnmsubd(0xA), Fnmadds(0xD), Fnmaddd(0xE); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
959 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
960 private final int value; |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
961 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
962 private Op5s(int value) { |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
963 this.value = value; |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
964 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
965 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
966 public int getValue() { |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
967 return value; |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
968 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
969 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
970 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
971 public enum Opfs { |
10459 | 972 Fmovs(0x01, "fmovs"), Fmovd(0x02, "fmovd"), Fmovq(0x03, "fmovq"), Fnegs(0x05, "fnegs"), Fnegd(0x06, "fnegd"), Fnegq(0x07, "fnegq"), Fabss(0x09, "fabss"), Fabsd(0x0A, "fabsd"), Fabsq( |
973 0x0B, | |
974 "fabsq"), | |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
975 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
976 // start VIS1 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
977 Edge8cc(0x0, "edge8cc"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
978 Edge8n(0x1, "edge8n"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
979 Edge8lcc(0x2, "edge8lcc"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
980 Edge8ln(0x3, "edge8ln"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
981 Edge16cc(0x4, "edge16cc"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
982 Edge16n(0x5, "edge16n"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
983 Edge16lcc(0x6, "edge16lcc"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
984 Edge16ln(0x7, "edge16ln"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
985 Edge32cc(0x8, "edge32cc"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
986 Edge32n(0x9, "edge32n"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
987 Edge32lcc(0xA, "edge32lcc"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
988 Edge32ln(0xB, "edge32ln"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
989 Array8(0x10, "array8"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
990 Array16(0x12, "array16"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
991 Array32(0x14, "array32"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
992 AlignAddress(0x18, "alignaddress"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
993 AlignAddressLittle(0x1A, "alignaddress_little"), |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
994 Fpcmple16(0x20, "fpcmple16"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
995 Fpcmpne16(0x22, "fpcmpne16"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
996 Fpcmple32(0x24, "fpcmple32"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
997 Fpcmpne32(0x26, "fpcmpne32"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
998 Fpcmpgt16(0x28, "fpcmpgt16"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
999 Fpcmpeq16(0x2A, "fpcmpeq16"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1000 Fpcmpgt32(0x2C, "fpcmpgt32"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1001 Fpcmpeq32(0x2E, "fpcmpeq32"), |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1002 Fmul8x16(0x31, "fmul8x16"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1003 Fmul8x16au(0x33, "fmul8x16au"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1004 Fmul8x16al(0x35, "fmul8x16al"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1005 Fmul8sux16(0x36, "fmul8sux16"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1006 Fmul8ulx16(0x37, "fmul8ulx16"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1007 Fmuld8sux16(0x38, "fmuld8sux16"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1008 Fmuld8ulx16(0x39, "fmuld8ulx16"), |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1009 Fpack32(0x3A, "fpack32"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1010 Fpack16(0x3B, "fpack16"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1011 Fpackfix(0x3D, "fpackfix"), |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1012 Faligndatag(0x48, "faligndata"), |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1013 Fpmerge(0x4B, "fpmerge"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1014 Fpadd16(0x50, "fpadd16"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1015 Fpadd16s(0x51, "fpadd16s"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1016 Fpadd32(0x52, "fpadd32"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1017 Fpadd32s(0x53, "fpadd32s"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1018 Fpsub16(0x54, "fpadd16"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1019 Fpsub16s(0x55, "fpadd16s"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1020 Fpsub32(0x56, "fpadd32"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1021 Fpsub32s(0x57, "fpadd32s"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1022 Fzerod(0x60, "fzerod"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1023 Fzeros(0x61, "fzeros"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1024 Fnot2d(0x66, "fnot1d"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1025 Fnot2s(0x67, "fnot1s"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1026 Fnot1d(0x6A, "fnot1d"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1027 Fnot1s(0x6B, "fnot1s"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1028 Fsrc1d(0x74, "fsrc1d"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1029 Fsrc1s(0x75, "fsrc1s"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1030 Fsrc2d(0x78, "fsrc2d"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1031 Fsrc2s(0x79, "fsrc2s"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1032 Foned(0x7E, "foned"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1033 Fones(0x7F, "fones"), |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1034 // end VIS1 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1035 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1036 // start VIS2 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1037 Bmask(0x19, "bmask"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1038 Bshuffle(0x4c, "bshuffle"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1039 // end VIS2 only |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1040 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1041 // start VIS3 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1042 Addxc(0x11, "addxc"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1043 Addxccc(0x13, "addxccc"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1044 Cmask8(0x1B, "cmask8"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1045 Cmask16(0x1D, "cmask16"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1046 Cmask32(0x1F, "cmask32"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1047 Fmean16(0x40, "fmean16"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1048 Fnadds(0x51, "fnadds"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1049 Fnaddd(0x52, "fnaddd"), |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1050 Fnmuls(0x59, "fnmuls"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1051 Fnmuld(0x5A, "fnmuld"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1052 Fnsmuld(0x79, "fnsmuld"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1053 Fnhadds(0x71, "fnhadds"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1054 Fnhaddd(0x72, "fnhaddd"), |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1055 // end VIS3 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1056 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1057 // start CAMMELLIA |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1058 CammelliaFl(0x13C, "cammelia_fl"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1059 CammelliaFli(0x13D, "cammellia_fli"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1060 // end CAMMELLIA |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1061 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1062 // start CRYPTO |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1063 Crc32c(0x147, "crc32c"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1064 // end CRYPTO |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1065 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1066 // start OSA 2011 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1067 Fpadd64(0x44, "fpadd64"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1068 Fpsub64(0x46, "fpsub64"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1069 Fpadds16(0x58, "fpadds16"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1070 Fpadds16s(0x59, "fpadds16"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1071 Fpadds32(0x5A, "fpadds32"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1072 Fpadds32s(0x5B, "fpadds32s"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1073 Fpsubs16(0x5C, "fpsubs16"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1074 Fpsubs16s(0x5D, "fpsubs16s"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1075 Fpsubs32(0x5E, "fpsubs32"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1076 Fpsubs32s(0x5F, "fpsubs32s"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1077 Fpcmpne8(0x122, "fpcmpne8"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1078 Fpcmpeq8(0x12C, "fpcmpeq8"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1079 // end OSA 2011 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1080 |
9817
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
1081 Fadds(0x41, "fadds"), |
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
1082 Faddd(0x42, "faddd"), |
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
1083 Faddq(0x43, "faddq"), |
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
1084 Fsubs(0x45, "fsubs"), |
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
1085 Fsubd(0x46, "fsubd"), |
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
1086 Fsubq(0x47, "fsubq"), |
9825
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
1087 Fmuls(0x49, "fmuls"), |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
1088 Fmuld(0x4A, "fmuld"), |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
1089 Fdivs(0x4C, "fdivs"), |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
1090 Fdivd(0x4D, "fdivd"), |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
1091 Fdivq(0x4E, "fdivq"), |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
1092 |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
1093 Fsqrts(0x29, "fsqrts"), |
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
1094 Fsqrtd(0x2A, "fsqrtd"), |
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
1095 Fsqrtq(0x2B, "fsqrtq"), |
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
1096 |
9825
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
1097 Fsmuld(0x69, "fsmuld"), |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
1098 Fmulq(0x6B, "fmulq"), |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
1099 Fdmuldq(0x6E, "fdmulq"), |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
1100 |
9817
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
1101 Fstoi(0xD1, "fstoi"), |
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
1102 Fdtoi(0xD2, "fdtoi"); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1103 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1104 private final int value; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1105 private final String operator; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1106 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1107 private Opfs(int value, String op) { |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1108 this.value = value; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1109 this.operator = op; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1110 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1111 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1112 public int getValue() { |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1113 return value; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1114 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1115 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1116 public String getOperator() { |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1117 return operator; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1118 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1119 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1120 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1121 public enum MembarMask { |
10459 | 1122 StoreStore(1 << 3, "storestore"), LoadStore(1 << 2, "loadstore"), StoreLoad(1 << 1, "storeload"), LoadLoad(1 << 0, "loadload"), Sync(1 << 6, "sync"), MemIssue(1 << 5, "memissue"), LookAside( |
1123 1 << 4, | |
1124 "lookaside"); | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1125 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1126 private final int value; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1127 private final String operator; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1128 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1129 private MembarMask(int value, String op) { |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1130 this.value = value; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1131 this.operator = op; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1132 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1133 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1134 public int getValue() { |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1135 return value | 0x2000; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1136 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1137 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1138 public String getOperator() { |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1139 return operator; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1140 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1141 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1142 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1143 public enum CC { |
10459 | 1144 Icc(0, "icc"), Xcc(2, "xcc"), Ptrcc(HotSpotGraalRuntime.wordKind() == Kind.Long ? Xcc.getValue() : Icc.getValue(), "ptrcc"), Fcc0(0, "fcc0"), Fcc1(1, "fcc1"), Fcc2(2, "fcc2"), Fcc3(3, "fcc3"); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1145 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1146 private final int value; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1147 private final String operator; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1148 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1149 private CC(int value, String op) { |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1150 this.value = value; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1151 this.operator = op; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1152 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1153 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1154 public int getValue() { |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1155 return value; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1156 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1157 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1158 public String getOperator() { |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1159 return operator; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1160 } |
7740
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
1161 } |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
1162 |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
1163 public enum ConditionFlag { |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1164 // for FBfcc & FBPfcc instruction |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1165 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1166 F_Never(0, "f_never"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1167 F_NotEqual(1, "f_notEqual"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1168 F_NotZero(1, "f_notZero"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1169 F_LessOrGreater(2, "f_lessOrGreater"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1170 F_UnorderedOrLess(3, "f_unorderedOrLess"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1171 F_Less(4, "f_less"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1172 F_UnorderedOrGreater(5, "f_unorderedOrGreater"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1173 F_Greater(6, "f_greater"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1174 F_Unordered(7, "f_unordered"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1175 F_Always(8, "f_always"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1176 F_Equal(9, "f_equal"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1177 F_Zero(9, "f_zero"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1178 F_UnorderedOrEqual(10, "f_unorderedOrEqual"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1179 F_GreaterOrEqual(11, "f_greaterOrEqual"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1180 F_UnorderedGreaterOrEqual(12, "f_unorderedGreaterOrEqual"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1181 F_LessOrEqual(13, "f_lessOrEqual"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1182 F_UnorderedOrLessOrEqual(14, "f_unorderedOrLessOrEqual"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1183 F_Ordered(15, "f_ordered"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1184 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1185 // for integers |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1186 Never(0, "never"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1187 Equal(1, "equal"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1188 Zero(1, "zero"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1189 LessEqual(2, "lessEqual"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1190 Less(3, "less"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1191 LessEqualUnsigned(4, "lessEqualUnsigned"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1192 LessUnsigned(5, "lessUnsigned"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1193 CarrySet(5, "carrySet"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1194 Negative(6, "negative"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1195 OverflowSet(7, "overflowSet"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1196 Always(8, "always"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1197 NotEqual(9, "notEqual"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1198 NotZero(9, "notZero"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1199 Greater(10, "greater"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1200 GreaterEqual(11, "greaterEqual"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1201 GreaterUnsigned(12, "greaterUnsigned"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1202 GreaterEqualUnsigned(13, "greaterEqualUnsigned"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1203 CarryClear(13, "carryClear"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1204 Positive(14, "positive"), |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1205 OverflowClear(15, "overflowClear"); |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1206 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1207 private final int value; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1208 private final String operator; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1209 |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
1210 private ConditionFlag(int value, String op) { |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1211 this.value = value; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1212 this.operator = op; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1213 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1214 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1215 public int getValue() { |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1216 return value; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1217 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1218 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1219 public String getOperator() { |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1220 return operator; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1221 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1222 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1223 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1224 public enum RCondition { |
10459 | 1225 Rc_z(1, "rc_z"), Rc_lez(2, "rc_lez"), Rc_lz(3, "rc_lz"), Rc_nz(5, "rc_nz"), Rc_gz(6, "rc_gz"), Rc_gez(7, "rc_gez"), Rc_last(Rc_gez.getValue(), "rc_last"); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1226 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1227 private final int value; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1228 private final String operator; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1229 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1230 private RCondition(int value, String op) { |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1231 this.value = value; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1232 this.operator = op; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1233 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1234 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1235 public int getValue() { |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1236 return value; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1237 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1238 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1239 public String getOperator() { |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1240 return operator; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1241 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1242 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1243 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1244 public static int getFloatEncoding(int reg) { |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1245 assert reg < 32; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1246 return reg; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1247 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1248 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1249 public static int getDoubleEncoding(int reg) { |
10459 | 1250 assert reg < 64 && ((reg & 1) == 0); |
1251 // ignore v8 assertion for now | |
1252 return (reg & 0x1e) | ((reg & 0x20) >> 5); | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1253 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1254 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1255 public static int getQuadEncoding(int reg) { |
10459 | 1256 assert reg < 64 && ((reg & 3) == 0); |
1257 // ignore v8 assertion for now | |
1258 return (reg & 0x1c) | ((reg & 0x20) >> 5); | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1259 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1260 |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1261 public static final int sx1 = 0x00001000; |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1262 |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1263 public static final int simm(int x, int nbits) { |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1264 // assert_signed_range(x, nbits); |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1265 return x & ((1 << nbits) - 1); |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1266 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1267 |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
1268 private static final int max13 = ((1 << 12) - 1); |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
1269 private static final int min13 = -(1 << 12); |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
1270 |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
1271 public static boolean isSimm13(int src) { |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
1272 return min13 <= src && src <= max13; |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
1273 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
1274 |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
1275 public static boolean isSimm13(long src) { |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
1276 return NumUtil.isInt(src) && min13 <= src && src <= max13; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
1277 } |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
1278 |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
1279 public static final int hi22(int x) { |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
1280 return x >> 10; |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
1281 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
1282 |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
1283 public static final int lo10(int x) { |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
1284 return x & ((1 << 10) - 1); |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
1285 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
1286 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1287 public static class Add extends Fmt10 { |
10459 | 1288 |
1289 public Add(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1290 super(Op3s.Add, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1291 } |
10459 | 1292 |
1293 public Add(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1294 super(Op3s.Add, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1295 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1296 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1297 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1298 public static class Addc extends Fmt10 { |
10459 | 1299 |
1300 public Addc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1301 super(Op3s.Addc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1302 } |
10459 | 1303 |
1304 public Addc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1305 super(Op3s.Addc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1306 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1307 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1308 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1309 public static class Addcc extends Fmt10 { |
10459 | 1310 |
1311 public Addcc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1312 super(Op3s.Addcc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1313 } |
10459 | 1314 |
1315 public Addcc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1316 super(Op3s.Addcc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1317 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1318 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1319 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1320 public static class Addccc extends Fmt10 { |
10459 | 1321 |
1322 public Addccc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1323 super(Op3s.Addccc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1324 } |
10459 | 1325 |
1326 public Addccc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1327 super(Op3s.Addccc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1328 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1329 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1330 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1331 public static class Addxc extends Fmt3p { |
10459 | 1332 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1333 public Addxc(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1334 /* VIS3 only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1335 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Addxc, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1336 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1337 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1338 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1339 public static class Addxccc extends Fmt3p { |
10459 | 1340 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1341 public Addxccc(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1342 /* VIS3 only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1343 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Addxccc, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1344 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1345 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1346 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1347 public static class Alignaddr extends Fmt3p { |
10459 | 1348 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1349 public Alignaddr(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1350 /* VIS1 only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1351 super(Ops.ArithOp, Op3s.Impdep1, Opfs.AlignAddress, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1352 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1353 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1354 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1355 public static class Alignaddrl extends Fmt3p { |
10459 | 1356 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1357 public Alignaddrl(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1358 /* VIS1 only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1359 super(Ops.ArithOp, Op3s.Impdep1, Opfs.AlignAddressLittle, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1360 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1361 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1362 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1363 public static class And extends Fmt10 { |
10459 | 1364 |
1365 public And(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1366 super(Op3s.And, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1367 } |
10459 | 1368 |
1369 public And(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1370 super(Op3s.And, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1371 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1372 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1373 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1374 public static class Andcc extends Fmt10 { |
10459 | 1375 |
1376 public Andcc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1377 super(Op3s.Andcc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1378 } |
10459 | 1379 |
1380 public Andcc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1381 super(Op3s.Andcc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1382 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1383 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1384 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1385 public static class Andn extends Fmt10 { |
10459 | 1386 |
1387 public Andn(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1388 super(Op3s.Andn, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1389 } |
10459 | 1390 |
1391 public Andn(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1392 super(Op3s.Andn, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1393 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1394 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1395 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1396 public static class Andncc extends Fmt10 { |
10459 | 1397 |
1398 public Andncc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1399 super(Op3s.Andncc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1400 } |
10459 | 1401 |
1402 public Andncc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1403 super(Op3s.Andncc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1404 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1405 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1406 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1407 public static class Array8 extends Fmt3p { |
10459 | 1408 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1409 public Array8(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1410 /* VIS1 only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1411 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Array8, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1412 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1413 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1414 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1415 public static class Array16 extends Fmt3p { |
10459 | 1416 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1417 public Array16(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1418 /* VIS1 only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1419 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Array16, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1420 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1421 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1422 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1423 public static class Array32 extends Fmt3p { |
10459 | 1424 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1425 public Array32(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1426 /* VIS1 only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1427 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Array32, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1428 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1429 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1430 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1431 public static class Bmask extends Fmt3p { |
10459 | 1432 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1433 public Bmask(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1434 /* VIS2 only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1435 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Bmask, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1436 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1437 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1438 |
10459 | 1439 public static class Bpa extends Fmt00c { |
1440 | |
1441 public Bpa(int simm19) { | |
1442 super(0, ConditionFlag.Always, Op2s.Bp, CC.Icc, 1, simm19); | |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1443 } |
10459 | 1444 |
1445 public Bpa(Label label) { | |
1446 super(0, ConditionFlag.Always, Op2s.Bp, CC.Icc, 1, label); | |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1447 } |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1448 } |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1449 |
10459 | 1450 public static class Bpcc extends Fmt00c { |
1451 | |
1452 public Bpcc(CC cc, int simm19) { | |
1453 super(0, ConditionFlag.CarryClear, Op2s.Bp, cc, 1, simm19); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1454 } |
10459 | 1455 |
1456 public Bpcc(CC cc, Label label) { | |
1457 super(0, ConditionFlag.CarryClear, Op2s.Bp, cc, 1, label); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1458 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1459 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1460 |
10459 | 1461 public static class Bpcs extends Fmt00c { |
1462 | |
1463 public Bpcs(CC cc, int simm19) { | |
1464 super(0, ConditionFlag.CarrySet, Op2s.Bp, cc, 1, simm19); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1465 } |
10459 | 1466 |
1467 public Bpcs(CC cc, Label label) { | |
1468 super(0, ConditionFlag.CarrySet, Op2s.Bp, cc, 1, label); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1469 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1470 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1471 |
10459 | 1472 public static class Bpe extends Fmt00c { |
1473 | |
1474 public Bpe(CC cc, int simm19) { | |
1475 super(0, ConditionFlag.Equal, Op2s.Bp, cc, 1, simm19); | |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1476 } |
10459 | 1477 |
1478 public Bpe(CC cc, Label label) { | |
1479 super(0, ConditionFlag.Equal, Op2s.Bp, cc, 1, label); | |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1480 } |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1481 } |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1482 |
10459 | 1483 public static class Bpg extends Fmt00c { |
1484 | |
1485 public Bpg(CC cc, int simm19) { | |
1486 super(0, ConditionFlag.Greater, Op2s.Bp, cc, 1, simm19); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1487 } |
10459 | 1488 |
1489 public Bpg(CC cc, Label label) { | |
1490 super(0, ConditionFlag.Greater, Op2s.Bp, cc, 1, label); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1491 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1492 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1493 |
10459 | 1494 public static class Bpge extends Fmt00c { |
1495 | |
1496 public Bpge(CC cc, int simm19) { | |
1497 super(0, ConditionFlag.GreaterEqual, Op2s.Bp, cc, 1, simm19); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1498 } |
10459 | 1499 |
1500 public Bpge(CC cc, Label label) { | |
1501 super(0, ConditionFlag.GreaterEqual, Op2s.Bp, cc, 1, label); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1502 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1503 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1504 |
10459 | 1505 public static class Bpgu extends Fmt00c { |
1506 | |
1507 public Bpgu(CC cc, int simm19) { | |
1508 super(0, ConditionFlag.GreaterUnsigned, Op2s.Bp, cc, 1, simm19); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1509 } |
10459 | 1510 |
1511 public Bpgu(CC cc, Label label) { | |
1512 super(0, ConditionFlag.GreaterUnsigned, Op2s.Bp, cc, 1, label); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1513 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1514 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1515 |
10459 | 1516 public static class Bpl extends Fmt00c { |
1517 | |
1518 public Bpl(CC cc, int simm19) { | |
1519 super(0, ConditionFlag.Less, Op2s.Bp, cc, 1, simm19); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1520 } |
10459 | 1521 |
1522 public Bpl(CC cc, Label label) { | |
1523 super(0, ConditionFlag.Less, Op2s.Bp, cc, 1, label); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1524 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1525 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1526 |
10459 | 1527 public static class Bple extends Fmt00c { |
1528 | |
1529 public Bple(CC cc, int simm19) { | |
1530 super(0, ConditionFlag.LessEqual, Op2s.Bp, cc, 1, simm19); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1531 } |
10459 | 1532 |
1533 public Bple(CC cc, Label label) { | |
1534 super(0, ConditionFlag.LessEqual, Op2s.Bp, cc, 1, label); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1535 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1536 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1537 |
10459 | 1538 public static class Bpleu extends Fmt00c { |
1539 | |
1540 public Bpleu(CC cc, int simm19) { | |
1541 super(0, ConditionFlag.LessEqualUnsigned, Op2s.Bp, cc, 1, simm19); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1542 } |
10459 | 1543 |
1544 public Bpleu(CC cc, Label label) { | |
1545 super(0, ConditionFlag.LessEqualUnsigned, Op2s.Bp, cc, 1, label); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1546 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1547 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1548 |
10459 | 1549 public static class Bpn extends Fmt00c { |
1550 | |
1551 public Bpn(CC cc, int simm19) { | |
1552 super(0, ConditionFlag.Never, Op2s.Bp, cc, 1, simm19); | |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1553 } |
10459 | 1554 |
1555 public Bpn(CC cc, Label label) { | |
1556 super(0, ConditionFlag.Never, Op2s.Bp, cc, 1, label); | |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1557 } |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1558 } |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1559 |
10459 | 1560 public static class Bpne extends Fmt00c { |
1561 | |
1562 public Bpne(CC cc, int simm19) { | |
1563 super(0, ConditionFlag.NotZero, Op2s.Bp, cc, 1, simm19); | |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1564 } |
10459 | 1565 |
1566 public Bpne(CC cc, Label label) { | |
1567 super(0, ConditionFlag.NotZero, Op2s.Bp, cc, 1, label); | |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1568 } |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1569 } |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1570 |
10459 | 1571 public static class Bpneg extends Fmt00c { |
1572 | |
1573 public Bpneg(CC cc, int simm19) { | |
1574 super(0, ConditionFlag.Negative, Op2s.Bp, cc, 1, simm19); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1575 } |
10459 | 1576 |
1577 public Bpneg(CC cc, Label label) { | |
1578 super(0, ConditionFlag.Negative, Op2s.Bp, cc, 1, label); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1579 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1580 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1581 |
10459 | 1582 public static class Bppos extends Fmt00c { |
1583 | |
1584 public Bppos(CC cc, int simm19) { | |
1585 super(0, ConditionFlag.Positive, Op2s.Bp, cc, 1, simm19); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1586 } |
10459 | 1587 |
1588 public Bppos(CC cc, Label label) { | |
1589 super(0, ConditionFlag.Positive, Op2s.Bp, cc, 1, label); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1590 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1591 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1592 |
10459 | 1593 public static class Bpvc extends Fmt00c { |
1594 | |
1595 public Bpvc(CC cc, int simm19) { | |
1596 super(0, ConditionFlag.OverflowClear, Op2s.Bp, cc, 1, simm19); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1597 } |
10459 | 1598 |
1599 public Bpvc(CC cc, Label label) { | |
1600 super(0, ConditionFlag.OverflowClear, Op2s.Bp, cc, 1, label); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1601 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1602 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1603 |
10459 | 1604 public static class Bpvs extends Fmt00c { |
1605 | |
1606 public Bpvs(CC cc, int simm19) { | |
1607 super(0, ConditionFlag.OverflowSet, Op2s.Bp, cc, 1, simm19); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1608 } |
10459 | 1609 |
1610 public Bpvs(CC cc, Label label) { | |
1611 super(0, ConditionFlag.OverflowSet, Op2s.Bp, cc, 1, label); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1612 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1613 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
1614 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1615 public static class Bshuffle extends Fmt3p { |
10459 | 1616 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1617 public Bshuffle(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1618 /* VIS2 only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1619 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Bshuffle, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1620 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1621 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1622 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1623 public static class Call extends Fmt01 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1624 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1625 public Call(int disp30) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1626 super(disp30); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1627 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1628 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1629 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1630 public static class CammelliaFl extends Fmt3p { |
10459 | 1631 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1632 public CammelliaFl(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1633 /* CAMELLIA only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1634 super(Ops.ArithOp, Op3s.Impdep1, Opfs.CammelliaFl, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1635 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1636 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1637 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1638 public static class CammelliaFli extends Fmt3p { |
10459 | 1639 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1640 public CammelliaFli(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1641 /* CAMELLIA only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1642 super(Ops.ArithOp, Op3s.Impdep1, Opfs.CammelliaFli, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1643 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1644 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1645 |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1646 private static int patchUnbound(SPARCAssembler masm, Label label) { |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1647 label.addPatchAt(masm.codeBuffer.position()); |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1648 return 0; |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1649 } |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1650 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1651 public static class Cmask8 extends Fmt3n { |
10459 | 1652 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1653 public Cmask8(SPARCAssembler asm, Register src2) { |
10459 | 1654 super(asm, Ops.ArithOp.getValue(), Op3s.Impdep1.getValue(), Opfs.Cmask8.getValue(), src2.encoding(), 0); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1655 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1656 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1657 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1658 public static class Cmask16 extends Fmt3n { |
10459 | 1659 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1660 public Cmask16(SPARCAssembler asm, Register src2) { |
10459 | 1661 super(asm, Ops.ArithOp.getValue(), Op3s.Impdep1.getValue(), Opfs.Cmask16.getValue(), src2.encoding(), 0); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1662 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1663 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1664 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1665 public static class Cmask32 extends Fmt3n { |
10459 | 1666 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1667 public Cmask32(SPARCAssembler asm, Register src2) { |
10459 | 1668 super(asm, Ops.ArithOp.getValue(), Op3s.Impdep1.getValue(), Opfs.Cmask32.getValue(), src2.encoding(), 0); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1669 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1670 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1671 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1672 public static class Crc32c extends Fmt3p { |
10459 | 1673 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1674 public Crc32c(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1675 /* CRYPTO only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1676 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Crc32c, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1677 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1678 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1679 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1680 public static class Cwbcc extends Fmt00e { |
10459 | 1681 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1682 public Cwbcc(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1683 super(asm, Ops.BranchOp.getValue(), ConditionFlag.CarryClear.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1684 } |
10459 | 1685 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1686 public Cwbcc(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1687 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Equal.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1688 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1689 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1690 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1691 public static class Cwbcs extends Fmt00e { |
10459 | 1692 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1693 public Cwbcs(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1694 super(asm, Ops.BranchOp.getValue(), ConditionFlag.CarrySet.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1695 } |
10459 | 1696 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1697 public Cwbcs(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1698 super(asm, Ops.BranchOp.getValue(), ConditionFlag.CarrySet.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1699 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1700 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1701 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1702 public static class Cwbe extends Fmt00e { |
10459 | 1703 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1704 public Cwbe(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1705 super(asm, Ops.BranchOp.getValue(), ConditionFlag.CarryClear.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1706 } |
10459 | 1707 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1708 public Cwbe(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1709 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Equal.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1710 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1711 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1712 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1713 public static class Cwbg extends Fmt00e { |
10459 | 1714 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1715 public Cwbg(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1716 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Greater.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1717 } |
10459 | 1718 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1719 public Cwbg(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1720 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Greater.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1721 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1722 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1723 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1724 public static class Cwbge extends Fmt00e { |
10459 | 1725 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1726 public Cwbge(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1727 super(asm, Ops.BranchOp.getValue(), ConditionFlag.GreaterEqual.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1728 } |
10459 | 1729 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1730 public Cwbge(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1731 super(asm, Ops.BranchOp.getValue(), ConditionFlag.GreaterEqual.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1732 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1733 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1734 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1735 public static class Cwbgu extends Fmt00e { |
10459 | 1736 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1737 public Cwbgu(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1738 super(asm, Ops.BranchOp.getValue(), ConditionFlag.GreaterUnsigned.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1739 } |
10459 | 1740 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1741 public Cwbgu(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1742 super(asm, Ops.BranchOp.getValue(), ConditionFlag.GreaterUnsigned.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1743 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1744 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1745 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1746 public static class Cwbl extends Fmt00e { |
10459 | 1747 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1748 public Cwbl(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1749 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Less.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1750 } |
10459 | 1751 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1752 public Cwbl(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1753 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Less.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1754 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1755 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1756 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1757 public static class Cwble extends Fmt00e { |
10459 | 1758 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1759 public Cwble(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1760 super(asm, Ops.BranchOp.getValue(), ConditionFlag.LessEqual.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1761 } |
10459 | 1762 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1763 public Cwble(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1764 super(asm, Ops.BranchOp.getValue(), ConditionFlag.LessEqual.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1765 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1766 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1767 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1768 public static class Cwbleu extends Fmt00e { |
10459 | 1769 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1770 public Cwbleu(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1771 super(asm, Ops.BranchOp.getValue(), ConditionFlag.LessEqualUnsigned.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1772 } |
10459 | 1773 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1774 public Cwbleu(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1775 super(asm, Ops.BranchOp.getValue(), ConditionFlag.LessEqualUnsigned.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1776 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1777 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1778 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1779 public static class Cwbne extends Fmt00e { |
10459 | 1780 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1781 public Cwbne(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1782 super(asm, Ops.BranchOp.getValue(), ConditionFlag.NotEqual.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1783 } |
10459 | 1784 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1785 public Cwbne(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1786 super(asm, Ops.BranchOp.getValue(), ConditionFlag.NotEqual.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1787 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1788 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1789 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1790 public static class Cwbneg extends Fmt00e { |
10459 | 1791 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1792 public Cwbneg(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1793 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Negative.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1794 } |
10459 | 1795 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1796 public Cwbneg(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1797 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Negative.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1798 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1799 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1800 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1801 public static class Cwbpos extends Fmt00e { |
10459 | 1802 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1803 public Cwbpos(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1804 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Positive.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1805 } |
10459 | 1806 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1807 public Cwbpos(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1808 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Positive.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1809 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1810 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1811 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1812 public static class Cwbvc extends Fmt00e { |
10459 | 1813 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1814 public Cwbvc(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1815 super(asm, Ops.BranchOp.getValue(), ConditionFlag.OverflowClear.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1816 } |
10459 | 1817 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1818 public Cwbvc(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1819 super(asm, Ops.BranchOp.getValue(), ConditionFlag.OverflowClear.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1820 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1821 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1822 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1823 public static class Cwbvs extends Fmt00e { |
10459 | 1824 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1825 public Cwbvs(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1826 super(asm, Ops.BranchOp.getValue(), ConditionFlag.OverflowSet.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1827 } |
10459 | 1828 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1829 public Cwbvs(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1830 super(asm, Ops.BranchOp.getValue(), ConditionFlag.OverflowSet.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1831 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1832 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1833 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1834 public static class Cxbcc extends Fmt00e { |
10459 | 1835 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1836 public Cxbcc(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1837 super(asm, Ops.BranchOp.getValue(), ConditionFlag.CarryClear.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1838 } |
10459 | 1839 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1840 public Cxbcc(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1841 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Equal.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1842 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1843 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1844 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1845 public static class Cxbcs extends Fmt00e { |
10459 | 1846 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1847 public Cxbcs(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1848 super(asm, Ops.BranchOp.getValue(), ConditionFlag.CarrySet.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1849 } |
10459 | 1850 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1851 public Cxbcs(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1852 super(asm, Ops.BranchOp.getValue(), ConditionFlag.CarrySet.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1853 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1854 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1855 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1856 public static class Cxbe extends Fmt00e { |
10459 | 1857 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1858 public Cxbe(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1859 super(asm, Ops.BranchOp.getValue(), ConditionFlag.CarryClear.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1860 } |
10459 | 1861 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1862 public Cxbe(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1863 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Equal.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1864 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1865 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1866 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1867 public static class Cxbg extends Fmt00e { |
10459 | 1868 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1869 public Cxbg(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1870 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Greater.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1871 } |
10459 | 1872 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1873 public Cxbg(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1874 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Greater.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1875 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1876 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1877 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1878 public static class Cxbge extends Fmt00e { |
10459 | 1879 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1880 public Cxbge(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1881 super(asm, Ops.BranchOp.getValue(), ConditionFlag.GreaterEqual.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1882 } |
10459 | 1883 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1884 public Cxbge(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1885 super(asm, Ops.BranchOp.getValue(), ConditionFlag.GreaterEqual.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1886 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1887 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1888 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1889 public static class Cxbgu extends Fmt00e { |
10459 | 1890 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1891 public Cxbgu(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1892 super(asm, Ops.BranchOp.getValue(), ConditionFlag.GreaterUnsigned.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1893 } |
10459 | 1894 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1895 public Cxbgu(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1896 super(asm, Ops.BranchOp.getValue(), ConditionFlag.GreaterUnsigned.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1897 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1898 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1899 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1900 public static class Cxbl extends Fmt00e { |
10459 | 1901 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1902 public Cxbl(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1903 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Less.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1904 } |
10459 | 1905 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1906 public Cxbl(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1907 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Less.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1908 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1909 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1910 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1911 public static class Cxble extends Fmt00e { |
10459 | 1912 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1913 public Cxble(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1914 super(asm, Ops.BranchOp.getValue(), ConditionFlag.LessEqual.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1915 } |
10459 | 1916 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1917 public Cxble(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1918 super(asm, Ops.BranchOp.getValue(), ConditionFlag.LessEqual.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1919 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1920 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1921 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1922 public static class Cxbleu extends Fmt00e { |
10459 | 1923 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1924 public Cxbleu(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1925 super(asm, Ops.BranchOp.getValue(), ConditionFlag.LessEqualUnsigned.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1926 } |
10459 | 1927 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1928 public Cxbleu(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1929 super(asm, Ops.BranchOp.getValue(), ConditionFlag.LessEqualUnsigned.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1930 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1931 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1932 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1933 public static class Cxbne extends Fmt00e { |
10459 | 1934 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1935 public Cxbne(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1936 super(asm, Ops.BranchOp.getValue(), ConditionFlag.NotEqual.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1937 } |
10459 | 1938 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1939 public Cxbne(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1940 super(asm, Ops.BranchOp.getValue(), ConditionFlag.NotEqual.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1941 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1942 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1943 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1944 public static class Cxbneg extends Fmt00e { |
10459 | 1945 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1946 public Cxbneg(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1947 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Negative.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1948 } |
10459 | 1949 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1950 public Cxbneg(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1951 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Negative.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1952 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1953 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1954 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1955 public static class Cxbpos extends Fmt00e { |
10459 | 1956 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1957 public Cxbpos(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1958 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Positive.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1959 } |
10459 | 1960 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1961 public Cxbpos(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1962 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Positive.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1963 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1964 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1965 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1966 public static class Cxbvc extends Fmt00e { |
10459 | 1967 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1968 public Cxbvc(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1969 super(asm, Ops.BranchOp.getValue(), ConditionFlag.OverflowClear.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1970 } |
10459 | 1971 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1972 public Cxbvc(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1973 super(asm, Ops.BranchOp.getValue(), ConditionFlag.OverflowClear.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1974 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1975 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1976 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1977 public static class Cxbvs extends Fmt00e { |
10459 | 1978 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1979 public Cxbvs(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 1980 super(asm, Ops.BranchOp.getValue(), ConditionFlag.OverflowSet.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1981 } |
10459 | 1982 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1983 public Cxbvs(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 1984 super(asm, Ops.BranchOp.getValue(), ConditionFlag.OverflowSet.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1985 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1986 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1987 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1988 public static class Edge8cc extends Fmt3p { |
10459 | 1989 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1990 public Edge8cc(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1991 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Edge8cc, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1992 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1993 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1994 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1995 public static class Edge8n extends Fmt3p { |
10459 | 1996 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1997 public Edge8n(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1998 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Edge8n, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1999 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2000 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2001 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2002 public static class Edge8lcc extends Fmt3p { |
10459 | 2003 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2004 public Edge8lcc(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2005 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Edge8lcc, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2006 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2007 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2008 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2009 public static class Edge8ln extends Fmt3p { |
10459 | 2010 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2011 public Edge8ln(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2012 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Edge8ln, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2013 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2014 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2015 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2016 public static class Edge16cc extends Fmt3p { |
10459 | 2017 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2018 public Edge16cc(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2019 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Edge16cc, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2020 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2021 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2022 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2023 public static class Edge16n extends Fmt3p { |
10459 | 2024 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2025 public Edge16n(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2026 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Edge16n, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2027 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2028 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2029 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2030 public static class Edge16lcc extends Fmt3p { |
10459 | 2031 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2032 public Edge16lcc(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2033 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Edge16lcc, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2034 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2035 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2036 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2037 public static class Edge16ln extends Fmt3p { |
10459 | 2038 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2039 public Edge16ln(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2040 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Edge16ln, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2041 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2042 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2043 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2044 public static class Edge32cc extends Fmt3p { |
10459 | 2045 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2046 public Edge32cc(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2047 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Edge32cc, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2048 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2049 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2050 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2051 public static class Edge32n extends Fmt3p { |
10459 | 2052 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2053 public Edge32n(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2054 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Edge32n, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2055 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2056 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2057 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2058 public static class Edge32lcc extends Fmt3p { |
10459 | 2059 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2060 public Edge32lcc(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2061 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Edge32lcc, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2062 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2063 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2064 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2065 public static class Edge32ln extends Fmt3p { |
10459 | 2066 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2067 public Edge32ln(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2068 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Edge32ln, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2069 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2070 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2071 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2072 public static class Fadds extends Fmt3p { |
10459 | 2073 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2074 public Fadds(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2075 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fadds, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2076 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2077 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2078 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2079 public static class Faddd extends Fmt3p { |
10459 | 2080 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2081 public Faddd(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2082 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Faddd, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2083 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2084 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2085 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2086 public static class Faddq extends Fmt3p { |
10459 | 2087 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2088 public Faddq(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2089 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Faddq, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2090 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2091 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2092 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2093 public static class Faligndata extends Fmt3p { |
10459 | 2094 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2095 public Faligndata(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2096 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Faligndatag, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2097 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2098 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2099 |
9825
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
2100 public static class Fdivs extends Fmt3p { |
10459 | 2101 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2102 public Fdivs(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2103 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fdivs, src1, src2, dst); |
9825
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
2104 } |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
2105 } |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
2106 |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
2107 public static class Fdivd extends Fmt3p { |
10459 | 2108 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2109 public Fdivd(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2110 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fdivd, src1, src2, dst); |
9825
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
2111 } |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
2112 } |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
2113 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2114 public static class Fmadds extends Fmt5a { |
10459 | 2115 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2116 public Fmadds(SPARCAssembler asm, Register src1, Register src2, Register src3, Register dst) { |
10459 | 2117 super(asm, Ops.ArithOp.getValue(), Op3s.Impdep2.getValue(), Op5s.Fmadds.getValue(), src1.encoding(), src2.encoding(), src3.encoding(), dst.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2118 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2119 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2120 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2121 public static class Fmaddd extends Fmt5a { |
10459 | 2122 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2123 public Fmaddd(SPARCAssembler asm, Register src1, Register src2, Register src3, Register dst) { |
10459 | 2124 super(asm, Ops.ArithOp.getValue(), Op3s.Impdep2.getValue(), Op5s.Fmaddd.getValue(), src1.encoding(), src2.encoding(), src3.encoding(), dst.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2125 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2126 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2127 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2128 public static class Fmean16 extends Fmt3p { |
10459 | 2129 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2130 public Fmean16(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2131 /* VIS3 only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2132 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fmean16, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2133 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2134 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2135 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2136 public static class Fmsubs extends Fmt5a { |
10459 | 2137 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2138 public Fmsubs(SPARCAssembler asm, Register src1, Register src2, Register src3, Register dst) { |
10459 | 2139 super(asm, Ops.ArithOp.getValue(), Op3s.Impdep2.getValue(), Op5s.Fmsubs.getValue(), src1.encoding(), src2.encoding(), src3.encoding(), dst.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2140 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2141 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2142 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2143 public static class Fmsubd extends Fmt5a { |
10459 | 2144 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2145 public Fmsubd(SPARCAssembler asm, Register src1, Register src2, Register src3, Register dst) { |
10459 | 2146 super(asm, Ops.ArithOp.getValue(), Op3s.Impdep2.getValue(), Op5s.Fmsubd.getValue(), src1.encoding(), src2.encoding(), src3.encoding(), dst.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2147 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2148 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2149 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2150 public static class Fmuls extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2151 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2152 public Fmuls(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2153 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fmuls, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2154 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2155 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2156 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2157 public static class Fmuld extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2158 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2159 public Fmuld(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2160 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fmuld, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2161 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2162 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2163 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2164 public static class Fmul8x16 extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2165 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2166 public Fmul8x16(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2167 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2168 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fmul8x16, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2169 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2170 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2171 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2172 public static class Fmul8x16au extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2173 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2174 public Fmul8x16au(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2175 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2176 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fmul8x16, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2177 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2178 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2179 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2180 public static class Fmul8x16al extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2181 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2182 public Fmul8x16al(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2183 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2184 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fmul8x16al, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2185 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2186 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2187 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2188 public static class Fmul8sux16 extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2189 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2190 public Fmul8sux16(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2191 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2192 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fmul8sux16, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2193 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2194 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2195 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2196 public static class Fmul8ulx16 extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2197 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2198 public Fmul8ulx16(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2199 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2200 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fmul8ulx16, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2201 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2202 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2203 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2204 public static class Fmuld8sux16 extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2205 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2206 public Fmuld8sux16(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2207 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2208 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fmuld8sux16, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2209 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2210 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2211 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2212 public static class Fmuld8ulx16 extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2213 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2214 public Fmuld8ulx16(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2215 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2216 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fmuld8ulx16, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2217 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2218 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2219 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2220 public static class Fnadds extends Fmt3p { |
10459 | 2221 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2222 public Fnadds(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2223 /* VIS3 only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2224 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fnadds, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2225 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2226 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2227 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2228 public static class Fnaddd extends Fmt3p { |
10459 | 2229 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2230 public Fnaddd(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2231 /* VIS3 only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2232 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fnaddd, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2233 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2234 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2235 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2236 public static class Fnegs extends Fmt3n { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2237 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2238 public Fnegs(SPARCAssembler masm, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2239 super(masm, Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fnegs.getValue(), src2.encoding(), dst.encoding()); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2240 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2241 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2242 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2243 public static class Fnegd extends Fmt3n { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2244 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2245 public Fnegd(SPARCAssembler masm, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2246 super(masm, Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fnegd.getValue(), src2.encoding(), dst.encoding()); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2247 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2248 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2249 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2250 public static class Fnhadds extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2251 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2252 public Fnhadds(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2253 /* VIS3 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2254 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fnhadds, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2255 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2256 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2257 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2258 public static class Fnhaddd extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2259 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2260 public Fnhaddd(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2261 /* VIS3 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2262 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fnhaddd, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2263 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2264 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2265 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2266 public static class Fnmadds extends Fmt5a { |
10459 | 2267 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2268 public Fnmadds(SPARCAssembler asm, Register src1, Register src2, Register src3, Register dst) { |
10459 | 2269 super(asm, Ops.ArithOp.getValue(), Op3s.Impdep2.getValue(), Op5s.Fnmadds.getValue(), src1.encoding(), src2.encoding(), src3.encoding(), dst.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2270 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2271 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2272 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2273 public static class Fnmaddd extends Fmt5a { |
10459 | 2274 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2275 public Fnmaddd(SPARCAssembler asm, Register src1, Register src2, Register src3, Register dst) { |
10459 | 2276 super(asm, Ops.ArithOp.getValue(), Op3s.Impdep2.getValue(), Op5s.Fnmaddd.getValue(), src1.encoding(), src2.encoding(), src3.encoding(), dst.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2277 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2278 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2279 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2280 public static class Fnmsubs extends Fmt5a { |
10459 | 2281 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2282 public Fnmsubs(SPARCAssembler masm, Register src1, Register src2, Register src3, Register dst) { |
10459 | 2283 super(masm, Ops.ArithOp.getValue(), Op3s.Impdep2.getValue(), Op5s.Fnmsubs.getValue(), src1.encoding(), src2.encoding(), src3.encoding(), dst.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2284 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2285 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2286 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2287 public static class Fnmsubd extends Fmt5a { |
10459 | 2288 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2289 public Fnmsubd(SPARCAssembler masm, Register src1, Register src2, Register src3, Register dst) { |
10459 | 2290 super(masm, Ops.ArithOp.getValue(), Op3s.Impdep2.getValue(), Op5s.Fnmsubd.getValue(), src1.encoding(), src2.encoding(), src3.encoding(), dst.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2291 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2292 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2293 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2294 public static class Fnmuls extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2295 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2296 public Fnmuls(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2297 /* VIS3 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2298 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fnmuls, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2299 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2300 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2301 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2302 public static class Fnmuld extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2303 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2304 public Fnmuld(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2305 /* VIS3 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2306 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fnmuld, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2307 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2308 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2309 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2310 public static class Fnsmuld extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2311 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2312 public Fnsmuld(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2313 /* VIS3 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2314 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fnsmuld, src1, src2, dst); |
9825
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
2315 } |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
2316 } |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
2317 |
9817
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
2318 public static class Fstoi extends Fmt3n { |
10459 | 2319 |
9817
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
2320 public Fstoi(SPARCAssembler masm, Register src2, Register dst) { |
10459 | 2321 super(masm, Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fstoi.getValue(), src2.encoding(), dst.encoding()); |
9817
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
2322 } |
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
2323 } |
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
2324 |
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
2325 public static class Fdtoi extends Fmt3n { |
10459 | 2326 |
9817
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
2327 public Fdtoi(SPARCAssembler masm, Register src2, Register dst) { |
10459 | 2328 super(masm, Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fdtoi.getValue(), src2.encoding(), dst.encoding()); |
9817
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
2329 } |
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
2330 } |
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
2331 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2332 public static class Flushw extends Fmt10 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2333 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2334 public Flushw() { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2335 super(Op3s.Flushw); |
9844
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
2336 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2337 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2338 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2339 public static class Fpack16 extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2340 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2341 public Fpack16(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2342 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpack16, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2343 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2344 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2345 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2346 public static class Fpack32 extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2347 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2348 public Fpack32(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2349 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpack32, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2350 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2351 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2352 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2353 public static class Fpackfix extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2354 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2355 public Fpackfix(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2356 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpackfix, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2357 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2358 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2359 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2360 public static class Fpmaddx extends Fmt5a { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2361 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2362 public Fpmaddx(SPARCAssembler asm, Register src1, Register src2, Register src3, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2363 super(asm, Ops.ArithOp.getValue(), Op3s.Impdep2.getValue(), 0, src1.encoding(), src2.encoding(), src3.encoding(), dst.encoding()); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2364 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2365 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2366 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2367 public static class Fpmaddxhi extends Fmt5a { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2368 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2369 public Fpmaddxhi(SPARCAssembler asm, Register src1, Register src2, Register src3, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2370 super(asm, Ops.ArithOp.getValue(), Op3s.Impdep2.getValue(), 4, src1.encoding(), src2.encoding(), src3.encoding(), dst.encoding()); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2371 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2372 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2373 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2374 public static class Fpmerge extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2375 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2376 public Fpmerge(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2377 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2378 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpmerge, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2379 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2380 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2381 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2382 public static class Fpsub16 extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2383 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2384 public Fpsub16(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2385 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2386 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpsub16, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2387 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2388 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2389 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2390 public static class Fpsub16s extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2391 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2392 public Fpsub16s(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2393 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2394 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpsub16s, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2395 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2396 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2397 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2398 public static class Fpsub32 extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2399 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2400 public Fpsub32(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2401 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2402 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpsub32, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2403 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2404 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2405 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2406 public static class Fpsub32s extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2407 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2408 public Fpsub32s(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2409 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2410 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpsub32s, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2411 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2412 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2413 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2414 public static class Fpsub64 extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2415 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2416 public Fpsub64(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2417 /* OSA 2011 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2418 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpsub64, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2419 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2420 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2421 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2422 public static class Fpsubs16 extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2423 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2424 public Fpsubs16(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2425 /* OSA 2011 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2426 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpsubs16, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2427 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2428 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2429 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2430 public static class Fpsubs16s extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2431 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2432 public Fpsubs16s(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2433 /* OSA 2011 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2434 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpsubs16s, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2435 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2436 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2437 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2438 public static class Fpsubs32 extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2439 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2440 public Fpsubs32(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2441 /* OSA 2011 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2442 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpsubs32, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2443 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2444 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2445 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2446 public static class Fpsubs32s extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2447 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2448 public Fpsubs32s(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2449 /* OSA 2011 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2450 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpsubs32s, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2451 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2452 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2453 |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
2454 public static class Fsqrtd extends Fmt3p { |
10459 | 2455 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2456 public Fsqrtd(Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2457 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fsqrtd, SPARC.r0, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2458 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2459 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2460 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2461 public static class Fsrc1d extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2462 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2463 public Fsrc1d(Register src1, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2464 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2465 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fsrc1d, src1, SPARC.r0, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2466 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2467 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2468 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2469 public static class Fsrc1s extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2470 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2471 public Fsrc1s(Register src1, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2472 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2473 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fsrc1s, src1, SPARC.r0, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2474 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2475 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2476 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2477 public static class Fsrc2d extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2478 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2479 public Fsrc2d(Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2480 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2481 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fsrc2d, SPARC.r0, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2482 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2483 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2484 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2485 public static class Fsrc2s extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2486 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2487 public Fsrc2s(Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2488 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2489 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fsrc2s, SPARC.r0, src2, dst); |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
2490 } |
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
2491 } |
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
2492 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2493 public static class Fsubs extends Fmt3p { |
10459 | 2494 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2495 public Fsubs(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2496 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fsubs, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2497 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2498 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2499 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2500 public static class Fsubd extends Fmt3p { |
10459 | 2501 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2502 public Fsubd(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2503 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fsubd, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2504 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2505 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2506 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2507 public static class Fsubq extends Fmt3p { |
10459 | 2508 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2509 public Fsubq(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2510 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fsubq, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2511 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2512 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2513 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2514 public static class Fzeros extends Fmt3n { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2515 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2516 public Fzeros(SPARCAssembler asm, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2517 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2518 super(asm, Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fzeros.getValue(), 0, dst.encoding()); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2519 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2520 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2521 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2522 public static class Fzerod extends Fmt3n { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2523 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2524 public Fzerod(SPARCAssembler asm, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2525 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2526 super(asm, Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fzerod.getValue(), 0, dst.encoding()); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2527 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2528 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2529 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2530 public static class Jmpl extends Fmt10 { |
10459 | 2531 |
2532 public Jmpl(Register src, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2533 super(Op3s.Jmpl, src, simm13, dst); |
9844
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
2534 } |
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
2535 } |
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
2536 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2537 public static class Lddf extends Fmt11 { |
10459 | 2538 |
2539 // TODO remove address | |
2540 public Lddf(SPARCAddress src, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2541 super(Op3s.Lddf, src.getBase(), src.getDisplacement(), dst); |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2542 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2543 } |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
2544 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2545 public static class Ldf extends Fmt11 { |
10459 | 2546 |
2547 public Ldf(SPARCAddress src, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2548 super(Op3s.Ldf, src.getBase(), src.getDisplacement(), dst); |
9825
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
2549 } |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
2550 } |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
2551 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2552 public static class Ldsb extends Fmt11 { |
10459 | 2553 |
2554 public Ldsb(SPARCAddress src, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2555 super(Op3s.Ldsb, src.getBase(), src.getDisplacement(), dst); |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2556 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2557 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2558 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2559 public static class Ldsh extends Fmt11 { |
10459 | 2560 |
2561 public Ldsh(SPARCAddress src, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2562 super(Op3s.Ldsh, src.getBase(), src.getDisplacement(), dst); |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2563 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2564 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2565 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2566 public static class Ldsw extends Fmt11 { |
10459 | 2567 |
2568 public Ldsw(SPARCAddress src, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2569 super(Op3s.Ldsw, src.getBase(), src.getDisplacement(), dst); |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2570 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2571 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2572 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2573 public static class Lduw extends Fmt11 { |
10459 | 2574 |
2575 public Lduw(SPARCAddress src, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2576 super(Op3s.Lduw, src.getBase(), src.getDisplacement(), dst); |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2577 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2578 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2579 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2580 public static class Ldx extends Fmt11 { |
10459 | 2581 |
2582 public Ldx(SPARCAddress src, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2583 super(Op3s.Ldx, src.getBase(), src.getDisplacement(), dst); |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2584 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2585 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2586 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2587 public static class Membar extends Fmt10 { |
10459 | 2588 |
2589 public Membar(int barriers) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2590 super(Op3s.Membar, r15, barriers, r0); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2591 } |
7740
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
2592 } |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
2593 |
10468 | 2594 public static class Movcc extends Fmt10c { |
2595 | |
2596 public Movcc(ConditionFlag cond, CC cca, Register src2, Register dst) { | |
2597 super(Op3s.Movcc, cond, cca, src2, dst); | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2598 } |
10459 | 2599 |
10468 | 2600 public Movcc(ConditionFlag cond, CC cca, int simm11, Register dst) { |
2601 super(Op3s.Movcc, cond, cca, simm11, dst); | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2602 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2603 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2604 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2605 public static class Movr extends Fmt3f { |
10459 | 2606 |
2607 public Movr(SPARCAssembler masm, RCondition rc, Register src1, Register src2, Register dst) { | |
2608 super(masm, Ops.ArithOp.getValue(), Op3s.Movr.getValue(), rc.getValue(), src1.encoding(), src2.encoding(), dst.encoding()); | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2609 } |
10459 | 2610 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2611 public Movr(SPARCAssembler masm, RCondition rc, Register src1, int simm10, Register dst) { |
10459 | 2612 super(masm, Ops.ArithOp.getValue(), Op3s.Movr.getValue(), rc.getValue(), src1.encoding(), simm10, dst.encoding()); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2613 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2614 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2615 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2616 @Deprecated |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2617 public static class Mulscc extends Fmt10 { |
10459 | 2618 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2619 @Deprecated |
10459 | 2620 public Mulscc(Register src1, int simm13, Register dst) { |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2621 super(Op3s.Mulscc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2622 } |
10459 | 2623 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2624 @Deprecated |
10459 | 2625 public Mulscc(Register src1, Register src2, Register dst) { |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2626 super(Op3s.Mulscc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2627 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2628 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2629 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2630 public static class Mulx extends Fmt10 { |
10459 | 2631 |
2632 public Mulx(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2633 super(Op3s.Mulx, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2634 } |
10459 | 2635 |
2636 public Mulx(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2637 super(Op3s.Mulx, src1, src2, dst); |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2638 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2639 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2640 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2641 public static class Or extends Fmt10 { |
10459 | 2642 |
2643 public Or(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2644 super(Op3s.Or, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2645 } |
10459 | 2646 |
2647 public Or(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2648 super(Op3s.Or, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2649 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2650 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2651 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2652 public static class Orcc extends Fmt10 { |
10459 | 2653 |
2654 public Orcc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2655 super(Op3s.Orcc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2656 } |
10459 | 2657 |
2658 public Orcc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2659 super(Op3s.Orcc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2660 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2661 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2662 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2663 public static class Orn extends Fmt10 { |
10459 | 2664 |
2665 public Orn(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2666 super(Op3s.Orn, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2667 } |
10459 | 2668 |
2669 public Orn(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2670 super(Op3s.Orn, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2671 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2672 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2673 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2674 public static class Orncc extends Fmt10 { |
10459 | 2675 |
2676 public Orncc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2677 super(Op3s.Orncc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2678 } |
10459 | 2679 |
2680 public Orncc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2681 super(Op3s.Orncc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2682 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2683 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2684 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2685 public static class Popc extends Fmt10 { |
10459 | 2686 |
2687 public Popc(int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2688 super(Op3s.Popc, r0, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2689 } |
10459 | 2690 |
2691 public Popc(Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2692 super(Op3s.Popc, r0, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2693 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2694 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2695 |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2696 // A.44 Read State Register |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2697 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2698 @Deprecated |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2699 public static class Rdy extends Fmt10 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2700 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2701 public Rdy(Register dst) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2702 super(Op3s.Rdreg, r0, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2703 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2704 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2705 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2706 public static class Rdccr extends Fmt10 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2707 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2708 public Rdccr(Register dst) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2709 super(Op3s.Rdreg, r2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2710 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2711 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2712 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2713 public static class Rdasi extends Fmt10 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2714 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2715 public Rdasi(Register dst) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2716 super(Op3s.Rdreg, r3, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2717 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2718 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2719 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2720 public static class Rdtick extends Fmt10 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2721 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2722 public Rdtick(Register dst) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2723 super(Op3s.Rdreg, r4, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2724 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2725 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2726 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2727 public static class Rdpc extends Fmt10 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2728 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2729 public Rdpc(Register dst) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2730 super(Op3s.Rdreg, r5, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2731 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2732 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2733 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2734 public static class Rdfprs extends Fmt10 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2735 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2736 public Rdfprs(Register dst) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2737 super(Op3s.Rdreg, r6, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2738 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2739 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2740 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2741 public static class Restore extends Fmt10 { |
10459 | 2742 |
2743 public Restore(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2744 super(Op3s.Restore, src1, src2, dst); |
9844
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
2745 } |
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
2746 } |
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
2747 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2748 public static class Restored extends Fmt10 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2749 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2750 public Restored() { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2751 super(Op3s.Saved, r0, r0, r1); |
9844
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
2752 } |
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
2753 } |
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
2754 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2755 public static class Return extends Fmt10 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2756 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2757 public Return(Register src1, int simm13) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2758 super(Op3s.Rett, src1, simm13, r0); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2759 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2760 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2761 public Return(Register src1, Register src2) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2762 super(Op3s.Rett, src1, src2, r0); |
9816
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
2763 } |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
2764 } |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
2765 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2766 public static class Save extends Fmt10 { |
10459 | 2767 |
2768 public Save(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2769 super(Op3s.Save, src1, src2, dst); |
10459 | 2770 } |
2771 | |
2772 public Save(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2773 super(Op3s.Save, src1, simm13, dst); |
9844
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
2774 } |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2775 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2776 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2777 public static class Saved extends Fmt10 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2778 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2779 public Saved() { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2780 super(Op3s.Saved, r0, r0, r0); |
9844
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
2781 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2782 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2783 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2784 @Deprecated |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2785 public static class Sdiv extends Fmt10 { |
10459 | 2786 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2787 @Deprecated |
10459 | 2788 public Sdiv(Register src1, int simm13, Register dst) { |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2789 super(Op3s.Sdiv, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2790 } |
10459 | 2791 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2792 @Deprecated |
10459 | 2793 public Sdiv(Register src1, Register src2, Register dst) { |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2794 super(Op3s.Sdiv, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2795 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2796 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2797 |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2798 @Deprecated |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2799 public static class Sdivcc extends Fmt10 { |
10459 | 2800 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2801 @Deprecated |
10459 | 2802 public Sdivcc(Register src1, int simm13, Register dst) { |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2803 super(Op3s.Sdivcc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2804 } |
10459 | 2805 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2806 @Deprecated |
10459 | 2807 public Sdivcc(Register src1, Register src2, Register dst) { |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2808 super(Op3s.Sdivcc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2809 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2810 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2811 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2812 public static class Sdivx extends Fmt10 { |
10459 | 2813 |
2814 public Sdivx(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2815 super(Op3s.Sdivx, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2816 } |
10459 | 2817 |
2818 public Sdivx(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2819 super(Op3s.Sdivx, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2820 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2821 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2822 |
10459 | 2823 public static class Sethi extends Fmt00a { |
2824 | |
2825 public Sethi(int simm22, Register dst) { | |
2826 super(Op2s.Sethi, simm22, dst); | |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2827 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2828 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2829 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2830 public static class Sir extends Fmt10 { |
10459 | 2831 |
2832 public Sir(int simm13) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2833 super(Op3s.Sir, r0, simm13, r15); |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2834 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2835 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2836 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2837 public static class Sll extends Fmt10 { |
10459 | 2838 |
2839 public Sll(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2840 super(Op3s.Sll, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2841 } |
10459 | 2842 |
2843 public Sll(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2844 super(Op3s.Sll, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2845 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2846 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2847 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2848 public static class Sllx extends Fmt10 { |
10459 | 2849 |
2850 public Sllx(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2851 super(Op3s.Sllx, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2852 } |
10459 | 2853 |
2854 public Sllx(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2855 super(Op3s.Sllx, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2856 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2857 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2858 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2859 public static class Sra extends Fmt10 { |
10459 | 2860 |
2861 public Sra(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2862 super(Op3s.Sra, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2863 } |
10459 | 2864 |
2865 public Sra(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2866 super(Op3s.Sra, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2867 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2868 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2869 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2870 public static class Srax extends Fmt10 { |
10459 | 2871 |
2872 public Srax(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2873 super(Op3s.Srax, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2874 } |
10459 | 2875 |
2876 public Srax(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2877 super(Op3s.Srax, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2878 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2879 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2880 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2881 public static class Srl extends Fmt10 { |
10459 | 2882 |
2883 public Srl(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2884 super(Op3s.Srl, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2885 } |
10459 | 2886 |
2887 public Srl(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2888 super(Op3s.Srl, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2889 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2890 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2891 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2892 public static class Srlx extends Fmt10 { |
10459 | 2893 |
2894 public Srlx(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2895 super(Op3s.Srlx, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2896 } |
10459 | 2897 |
2898 public Srlx(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2899 super(Op3s.Srlx, src1, src2, dst); |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2900 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2901 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2902 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2903 public static class Stb extends Fmt11 { |
10459 | 2904 |
2905 public Stb(Register dst, SPARCAddress addr) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2906 super(Op3s.Stb, addr.getBase(), addr.getDisplacement(), dst); |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2907 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2908 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2909 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2910 public static class Sth extends Fmt11 { |
10459 | 2911 |
2912 public Sth(Register dst, SPARCAddress addr) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2913 super(Op3s.Sth, addr.getBase(), addr.getDisplacement(), dst); |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2914 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2915 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2916 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2917 public static class Stw extends Fmt11 { |
10459 | 2918 |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
2919 public Stw(Register dst, Register src1, Register src2) { |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
2920 super(Op3s.Stw, src1, src2, dst); |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
2921 } |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
2922 |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
2923 public Stw(Register dst, Register src1, int simm13) { |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
2924 super(Op3s.Stw, src1, simm13, dst); |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
2925 } |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
2926 |
10459 | 2927 public Stw(Register dst, SPARCAddress addr) { |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
2928 this(dst, addr.getBase(), addr.getDisplacement()); |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2929 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2930 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2931 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2932 public static class Stx extends Fmt11 { |
10459 | 2933 |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
2934 public Stx(Register dst, Register src1, Register src2) { |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
2935 super(Op3s.Stx, src1, src2, dst); |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
2936 } |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
2937 |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
2938 public Stx(Register dst, Register src1, int simm13) { |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
2939 super(Op3s.Stx, src1, simm13, dst); |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
2940 } |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
2941 |
10459 | 2942 public Stx(Register dst, SPARCAddress addr) { |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
2943 this(dst, addr.getBase(), addr.getDisplacement()); |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2944 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2945 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
2946 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2947 public static class Sub extends Fmt10 { |
10459 | 2948 |
2949 public Sub(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2950 super(Op3s.Sub, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2951 } |
10459 | 2952 |
2953 public Sub(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2954 super(Op3s.Sub, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2955 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2956 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2957 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2958 public static class Subc extends Fmt10 { |
10459 | 2959 |
2960 public Subc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2961 super(Op3s.Subc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2962 } |
10459 | 2963 |
2964 public Subc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2965 super(Op3s.Subc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2966 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2967 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2968 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2969 public static class Subcc extends Fmt10 { |
10459 | 2970 |
2971 public Subcc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2972 super(Op3s.Subcc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2973 } |
10459 | 2974 |
2975 public Subcc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2976 super(Op3s.Subcc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2977 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2978 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2979 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2980 public static class Subccc extends Fmt10 { |
10459 | 2981 |
2982 public Subccc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2983 super(Op3s.Subccc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2984 } |
10459 | 2985 |
2986 public Subccc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2987 super(Op3s.Subccc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2988 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2989 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2990 |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
2991 public static class Ta extends Fmt4a { |
10459 | 2992 |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
2993 public Ta(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 2994 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.Always.getValue()); |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
2995 } |
10459 | 2996 |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
2997 public Ta(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 2998 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.Always.getValue()); |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
2999 } |
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
3000 } |
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
3001 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3002 public static class Taddcc extends Fmt10 { |
10459 | 3003 |
3004 public Taddcc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3005 super(Op3s.Taddcc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3006 } |
10459 | 3007 |
3008 public Taddcc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3009 super(Op3s.Taddcc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3010 } |
7740
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
3011 } |
7839
838293a77af7
Make Address class platform specific.
Roland Schatz <roland.schatz@oracle.com>
parents:
7808
diff
changeset
|
3012 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3013 public static class Tcc extends Fmt4a { |
10459 | 3014 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3015 public Tcc(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 3016 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.CarryClear.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3017 } |
10459 | 3018 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3019 public Tcc(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 3020 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.CarryClear.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3021 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3022 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3023 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3024 public static class Tcs extends Fmt4a { |
10459 | 3025 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3026 public Tcs(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 3027 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.CarrySet.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3028 } |
10459 | 3029 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3030 public Tcs(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 3031 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.CarrySet.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3032 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3033 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3034 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3035 public static class Te extends Fmt4a { |
10459 | 3036 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3037 public Te(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 3038 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.Equal.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3039 } |
10459 | 3040 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3041 public Te(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 3042 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.Equal.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3043 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3044 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3045 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3046 public static class Tg extends Fmt4a { |
10459 | 3047 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3048 public Tg(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 3049 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.Greater.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3050 } |
10459 | 3051 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3052 public Tg(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 3053 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.Greater.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3054 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3055 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3056 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3057 public static class Tge extends Fmt4a { |
10459 | 3058 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3059 public Tge(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 3060 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.GreaterEqual.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3061 } |
10459 | 3062 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3063 public Tge(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 3064 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.GreaterEqual.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3065 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3066 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3067 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3068 public static class Tle extends Fmt4a { |
10459 | 3069 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3070 public Tle(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 3071 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.LessEqual.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3072 } |
10459 | 3073 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3074 public Tle(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 3075 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.LessEqual.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3076 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3077 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3078 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3079 public static class Tleu extends Fmt4a { |
10459 | 3080 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3081 public Tleu(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 3082 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.LessEqualUnsigned.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3083 } |
10459 | 3084 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3085 public Tleu(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 3086 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.LessEqualUnsigned.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3087 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3088 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3089 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3090 public static class Tn extends Fmt4a { |
10459 | 3091 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3092 public Tn(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 3093 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.Never.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3094 } |
10459 | 3095 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3096 public Tn(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 3097 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.Never.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3098 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3099 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3100 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3101 public static class Tne extends Fmt4a { |
10459 | 3102 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3103 public Tne(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 3104 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.NotEqual.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3105 } |
10459 | 3106 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3107 public Tne(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 3108 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.NotEqual.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3109 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3110 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3111 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3112 public static class Tneg extends Fmt4a { |
10459 | 3113 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3114 public Tneg(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 3115 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.Negative.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3116 } |
10459 | 3117 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3118 public Tneg(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 3119 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.Negative.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3120 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3121 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3122 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3123 public static class Tpos extends Fmt4a { |
10459 | 3124 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3125 public Tpos(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 3126 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.Positive.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3127 } |
10459 | 3128 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3129 public Tpos(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 3130 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.Positive.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3131 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3132 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3133 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3134 public static class Tsubcc extends Fmt10 { |
10459 | 3135 |
3136 public Tsubcc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3137 super(Op3s.Tsubcc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3138 } |
10459 | 3139 |
3140 public Tsubcc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3141 super(Op3s.Tsubcc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3142 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3143 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3144 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3145 public static class Tvc extends Fmt4a { |
10459 | 3146 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3147 public Tvc(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 3148 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.OverflowClear.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3149 } |
10459 | 3150 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3151 public Tvc(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 3152 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.OverflowClear.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3153 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3154 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3155 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3156 public static class Tvs extends Fmt4a { |
10459 | 3157 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3158 public Tvs(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 3159 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.OverflowSet.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3160 } |
10459 | 3161 |
3162 public Tvs(SPARCAssembler asm, CC cc, Register src1, Register src2) { | |
3163 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.OverflowSet.getValue()); | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3164 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3165 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3166 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3167 public static class Udivx extends Fmt10 { |
10459 | 3168 |
3169 public Udivx(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3170 super(Op3s.Udivx, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3171 } |
10459 | 3172 |
3173 public Udivx(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3174 super(Op3s.Udivx, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3175 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3176 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3177 |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3178 @Deprecated |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3179 public static class Wry extends Fmt10 { |
10459 | 3180 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3181 @Deprecated |
10459 | 3182 public Wry(Register src1, int simm13) { |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3183 super(Op3s.Wrreg, src1, simm13, r0); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3184 } |
10459 | 3185 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3186 @Deprecated |
10459 | 3187 public Wry(Register src1, Register src2) { |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3188 super(Op3s.Wrreg, src1, src2, r0); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3189 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3190 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3191 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3192 public static class Wrccr extends Fmt10 { |
10459 | 3193 |
3194 public Wrccr(Register src1, int simm13) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3195 super(Op3s.Wrreg, src1, simm13, r2); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3196 } |
10459 | 3197 |
3198 public Wrccr(Register src1, Register src2) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3199 super(Op3s.Wrreg, src1, src2, r2); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3200 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3201 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3202 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3203 public static class Wrasi extends Fmt10 { |
10459 | 3204 |
3205 public Wrasi(Register src1, int simm13) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3206 super(Op3s.Wrreg, src1, simm13, r3); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3207 } |
10459 | 3208 |
3209 public Wrasi(Register src1, Register src2) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3210 super(Op3s.Wrreg, src1, src2, r3); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3211 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3212 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3213 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3214 public static class Wrfprs extends Fmt10 { |
10459 | 3215 |
3216 public Wrfprs(Register src1, int simm13) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3217 super(Op3s.Wrreg, src1, simm13, r6); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3218 } |
10459 | 3219 |
3220 public Wrfprs(Register src1, Register src2) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3221 super(Op3s.Wrreg, src1, src2, r6); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3222 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3223 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3224 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3225 public static class Xor extends Fmt10 { |
10459 | 3226 |
3227 public Xor(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3228 super(Op3s.Xor, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3229 } |
10459 | 3230 |
3231 public Xor(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3232 super(Op3s.Xor, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3233 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3234 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3235 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3236 public static class Xorcc extends Fmt10 { |
10459 | 3237 |
3238 public Xorcc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3239 super(Op3s.Xorcc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3240 } |
10459 | 3241 |
3242 public Xorcc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3243 super(Op3s.Xorcc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3244 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3245 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3246 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3247 public static class Xnor extends Fmt10 { |
10459 | 3248 |
3249 public Xnor(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3250 super(Op3s.Xnor, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3251 } |
10459 | 3252 |
3253 public Xnor(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3254 super(Op3s.Xnor, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3255 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3256 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3257 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3258 public static class Xnorcc extends Fmt10 { |
10459 | 3259 |
3260 public Xnorcc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3261 super(Op3s.Xnorcc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3262 } |
10459 | 3263 |
3264 public Xnorcc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3265 super(Op3s.Xnorcc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3266 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3267 } |
7740
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
3268 } |