annotate graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java @ 9817:26960d32552c

SPARC integer arithmetic
author Morris Meyer <morris.meyer@oracle.com>
date Sat, 25 May 2013 16:24:05 -0400
parents 4e9854086532
children 81d5d8089cda
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
25 import com.oracle.graal.api.code.Register;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
26 import com.oracle.graal.api.code.RegisterConfig;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
27 import com.oracle.graal.api.code.TargetDescription;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
28 import com.oracle.graal.api.meta.Kind;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
29 import com.oracle.graal.hotspot.HotSpotGraalRuntime;
7740
5f8101629080 Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
30
5f8101629080 Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
31 /**
5f8101629080 Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
32 * 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
33 */
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
34 public class SPARCAssembler extends AbstractSPARCAssembler {
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
35
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
36 // @formatter:off
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
37
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
38 public static class Fmt1 {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
39 public Fmt1(SPARCAssembler masm, int op, int disp30) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
40 assert op == 1;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
41 assert ((disp30 & 0xc0000000) == 0);
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
42
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
43 masm.emitInt(op << 30 | disp30);
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
44 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
45 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
46
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
47 public static class Fmt2a {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
48 public Fmt2a(SPARCAssembler masm, int op, int rd, int op2, int imm22) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
49 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
50 assert rd < 0x40;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
51 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
52
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
53 masm.emitInt(op << 30 | rd << 25 | op2 << 22 | (imm22 & 0x003fffff));
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
54 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
55 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
56
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
57 public static class Fmt2b {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
58 public Fmt2b(SPARCAssembler masm, int op, int a, int cond, int op2, int disp22) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
59 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
60 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
61 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
62 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
63
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
64 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
65 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
66 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
67
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
68 public static class Fmt2c {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
69 public Fmt2c(SPARCAssembler masm, int op, int a, int cond, int op2, int cc, int predict, int disp19) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
70 assert predict < 2;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
71 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
72 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
73 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
74
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
75 masm.emitInt(op << 30 | a << 29 | cond << 25 | op2 << 22 | cc << 20 | predict | (disp19 & 0x0007ffff));
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
76 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
77 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
78
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
79 public static class Fmt2d {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
80 public Fmt2d(SPARCAssembler masm, int op, int a, int rcond, int op2, int d16hi, int predict, int rs1, int d16lo) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
81 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
82 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
83 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
84 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
85 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
86
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
87 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
88 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
89 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
90
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
91 public static class Fmt3a {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
92 public Fmt3a(SPARCAssembler masm, int op, int rd, int op3, int rs1, int rs2) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
93 assert op == 2 || op == 3;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
94 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
95 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
96 assert rs2 >= 0 && rs2 < 0x20;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
97 assert rd >= 0 && rd < 0x20;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
98
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
99 masm.emitInt(op << 30 | rd << 25 | op3 << 19 | rs1 << 14 | rs2);
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
100 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
101 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
102
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
103 public static class Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
104 public Fmt3b(SPARCAssembler masm, int op, int op3, int rs1, int regOrImmediate, int rd) {
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
105 assert op == 2 || op == 3;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
106 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
107 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
108 assert rd >= 0 && rd < 0x20;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
109
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
110 masm.emitInt(op << 30 | rd << 25 | op3 << 19 | rs1 << 14 | (regOrImmediate & 0x1fff));
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
111 }
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
112 }
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
113
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
114 public static class Fmt3c {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
115 public Fmt3c(SPARCAssembler masm, int op, int op3, int rs1, int rs2) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
116 assert op == 2;
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
117 assert op3 >= 0 && op3 < 0x40;
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
118 assert rs1 >= 0 && rs1 < 0x20;
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
119 assert rs2 >= 0 && rs2 < 0x20;
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
120
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
121 masm.emitInt(op << 30 | op3 << 19 | rs1 << 14 | rs2);
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
122 }
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
123 }
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
124
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
125 public static class Fmt3d {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
126 public Fmt3d(SPARCAssembler masm, int op, int op3, int rs1, int simm13) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
127 assert op == 2;
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
128 assert op3 >= 0 && op3 < 0x40;
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
129 assert rs1 >= 0 && rs1 < 0x20;
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
130
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
131 masm.emitInt(op << 30 | op3 << 19 | rs1 << 14 | ImmedTrue | simm13);
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
132 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
133 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
134
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
135 public static class Fmt3e {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
136 public Fmt3e(SPARCAssembler masm, int op, int op3, int rcond, int rs1, int rs2, int rd) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
137 assert op == 2 || op == 3;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
138 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
139 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
140 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
141 assert rs2 >= 0 && rs2 < 0x20;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
142 assert rd >= 0 && rd < 0x20;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
143
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
144 masm.emitInt(op << 30 | rd << 25 | op3 << 19 | rs1 << 14 | rcond << 10 | rs2);
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
145 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
146 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
147
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
148 public static class Fmt3f {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
149 public Fmt3f(SPARCAssembler masm, int op, int op3, int rcond, int rs1, int simm10, int rd) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
150 assert op == 2 || op == 3;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
151 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
152 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
153 assert rd >= 0 && rd < 0x20;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
154
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
155 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
156 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
157 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
158
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
159 public static class Fmt3p {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
160 public Fmt3p(SPARCAssembler masm, int op, int op3, int opf, int rs1, int rs2, int rd) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
161 assert op == 2 || op == 3;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
162 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
163 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
164 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
165 assert rs2 >= 0 && rs2 < 0x20;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
166 assert rd >= 0 && rd < 0x20;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
167
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
168 masm.emitInt(op << 30 | rd << 25 | op3 << 19 | rs1 << 14 | opf << 5 | rs2);
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
169 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
170 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
171
9817
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
172 public static class Fmt3n {
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
173 public Fmt3n(SPARCAssembler masm, int op, int op3, int opf, int rs2, int rd) {
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
174 assert op == 2 || op == 3;
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
175 assert op3 >= 0 && op3 < 0x40;
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
176 assert opf >= 0 && opf < 0x200;
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
177 assert rs2 >= 0 && rs2 < 0x20;
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
178 assert rd >= 0 && rd < 0x20;
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
179
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
180 masm.emitInt(op << 30 | rd << 25 | op3 << 19 | opf << 5 | rs2);
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
181 }
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
182 }
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
183
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
184 public static class Fmt3q {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
185 public Fmt3q(SPARCAssembler masm, int op, int op3, int rs1, int rd) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
186 assert op == 2 || op == 3;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
187 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
188 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
189 assert rd >= 0 && rd < 0x20;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
190
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
191 masm.emitInt(op << 30 | rd << 25 | op3 << 19 | rs1 << 14);
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
192 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
193 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
194
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
195 public static class Fmt4c {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
196 public Fmt4c(SPARCAssembler masm, int op, int op3, int cond, int cc, int rs2, int rd) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
197 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
198 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
199 assert cc >= 0 && cc < 0x8;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
200 assert cond >= 0 && cond < 0x10;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
201 assert rs2 >= 0 && rs2 < 0x20;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
202 assert rd >= 0 && rd < 0x20;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
203
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
204 masm.emitInt(op << 30 | rd << 25 | op3 << 19 | ((cc << 15) & 0x00040000) | cond << 14 | ((cc << 11) & 0x3) | rs2);
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
205 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
206 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
207
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
208 public static class Fmt4d {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
209 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
210 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
211 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
212 assert cc >= 0 && cc < 0x8;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
213 assert cond >= 0 && cond < 0x10;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
214 assert rd >= 0 && rd < 0x20;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
215
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
216 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
217 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
218 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
219
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
220 public static final int ImmedTrue = 0x00002000;
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
221
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
222 public enum Ops {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
223 CallOp(1),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
224 BranchOp(0),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
225 ArithOp(2),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
226 LdstOp(3);
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
227
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
228 private final int value;
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
229
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
230 private Ops(int value) {
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
231 this.value = value;
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
232 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
233
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
234 public int getValue() {
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
235 return value;
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
236 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
237 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
238
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
239 public enum Op3s {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
240 Add(0x00, "add"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
241 And(0x01, "and"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
242 Or(0x02, "or"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
243 Xor(0x03, "xor"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
244 Sub(0x04, "sub"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
245 Andn(0x05, "andn"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
246 Orn(0x06, "orn"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
247 Xnor(0x07, "xnor"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
248 Addc(0x08, "addc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
249 Mulx(0x09, "mulx"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
250 Umul(0x0A, "umul"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
251 Smul(0x0B, "smul"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
252 Subc(0x0C, "subc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
253 Udivx(0x0D, "udivx"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
254 Udiv(0x0E, "udiv"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
255 Sdiv(0x0F, "sdiv"),
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
256
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
257 Addcc(0x10, "addcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
258 Andcc(0x11, "andcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
259 Orcc(0x12, "orcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
260 Xorcc(0x13, "xorcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
261 Subcc(0x14, "subcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
262 Andncc(0x15, "andncc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
263 Orncc(0x16, "orncc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
264 Xnorcc(0x17, "xnorcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
265 Addccc(0x18, "addccc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
266 Mulxcc(0x19, "mulxcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
267 Umulcc(0x1A, "umulcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
268 Smulcc(0x1B, "smulcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
269 Subccc(0x1C0, "subccc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
270 Udivcc(0x1E, "udivcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
271 Sdivcc(0x1F, "sdivcc"),
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
272
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
273 Taddcc(0x20, "taddcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
274 Tsubcc(0x21, "tsubcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
275 Taddcctv(0x22, "taddcctv"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
276 Tsubcctv(0x23, "tsubcctv"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
277 Mulscc(0x24, "mulscc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
278 Sll(0x25, "sll"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
279 Sllx(0x25, "sllx"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
280 Srl(0x26, "srl"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
281 Srlx(0x26, "srlx"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
282 Sra(0x27, "srax"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
283 Srax(0x27, "srax"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
284 Rdreg(0x28, "rdreg"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
285 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
286
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
287 Flushw(0x2B, "flushw"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
288 Movcc(0x2C, "movcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
289 Sdivx(0x2D, "sdivx"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
290 Popc(0x2E, "popc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
291 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
292
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
293 Sir(0x30, "sir"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
294 Wrreg(0x30, "wrreg"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
295 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
296
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
297 Fpop1(0x34, "fpop1"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
298 Fpop2(0x35, "fpop2"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
299 Impdep1(0x36, "impdep1"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
300 Impdep2(0x37, "impdep2"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
301 Jmpl(0x38, "jmpl"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
302 Rett(0x39, "rett"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
303 Trap(0x3a, "trap"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
304 Flush(0x3b, "flush"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
305 Save(0x3c, "save"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
306 Restore(0x3d, "restore"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
307 Done(0x3e, "done"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
308 Retry(0x3e, "retry");
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
309
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
310 private final int value;
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
311 private final String operator;
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
312
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
313 private Op3s(int value, String op) {
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
314 this.value = value;
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
315 this.operator = op;
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
316 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
317
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
318 public int getValue() {
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
319 return value;
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
320 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
321
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
322 public String getOperator() {
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
323 return operator;
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
324 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
325 }
7740
5f8101629080 Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
326
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
327 public enum Opfs {
9817
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
328 Fadds(0x41, "fadds"),
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
329 Faddd(0x42, "faddd"),
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
330 Faddq(0x43, "faddq"),
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
331 Fsubs(0x45, "fsubs"),
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
332 Fsubd(0x46, "fsubd"),
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
333 Fsubq(0x47, "fsubq"),
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
334 Fstoi(0xD1, "fstoi"),
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
335 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
336
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
337 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
338 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
339
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
340 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
341 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
342 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
343 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
344
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
345 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
346 return value;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
347 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
348
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
349 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
350 return operator;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
351 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
352 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
353
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
354 public enum MembarMask {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
355 StoreStore(1 << 3, "storestore"),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
356 LoadStore(1 << 2, "loadstore"),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
357 StoreLoad(1 << 1, "storeload"),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
358 LoadLoad(1 << 0, "loadload"),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
359 Sync(1 << 6, "sync"),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
360 MemIssue(1 << 5, "memissue"),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
361 LookAside(1 << 4, "lookaside");
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
362
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
363 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
364 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
365
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
366 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
367 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
368 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
369 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
370
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
371 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
372 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
373 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
374
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
375 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
376 return operator;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
377 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
378 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
379
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
380 public enum CC {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
381 Icc(4, "icc"),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
382 Xcc(6, "xcc"),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
383 Ptrcc(HotSpotGraalRuntime.wordKind() == Kind.Long ? Xcc.getValue() : Icc.getValue(), "ptrcc"),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
384 Fcc0(0, "fcc0"),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
385 Fcc1(1, "fcc1"),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
386 Fcc2(2, "fcc2"),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
387 Fcc3(3, "fcc3");
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
388
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
389 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
390 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
391
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
392 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
393 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
394 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
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 int getValue() {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
398 return value;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
399 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
400
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
401 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
402 return operator;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
403 }
7740
5f8101629080 Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
404 }
5f8101629080 Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
405
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
406 public enum Condition {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
407 // 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
408
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
409 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
410 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
411 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
412 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
413 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
414 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
415 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
416 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
417 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
418 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
419 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
420 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
421 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
422 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
423 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
424 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
425 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
426 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
427
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
428 // for integers
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
429 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
430 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
431 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
432 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
433 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
434 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
435 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
436 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
437 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
438 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
439 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
440 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
441 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
442 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
443 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
444 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
445 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
446 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
447 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
448 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
449
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
450 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
451 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
452
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
453 private Condition(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
454 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
455 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
456 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
457
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
458 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
459 return value;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
460 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
461
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
462 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
463 return operator;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
464 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
465 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
466
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
467 public enum RCondition {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
468 Rc_z(1, "rc_z"),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
469 Rc_lez(2, "rc_lez"),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
470 Rc_lz(3, "rc_lz"),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
471 Rc_nz(5, "rc_nz"),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
472 Rc_gz(6, "rc_gz"),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
473 Rc_gez(7, "rc_gez"),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
474 Rc_last(Rc_gez.getValue(), "rc_last");
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
475
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
476 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
477 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
478
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
479 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
480 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
481 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
482 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
483
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
484 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
485 return value;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
486 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
487
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
488 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
489 return operator;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
490 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
491 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
492
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
493 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
494 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
495 return reg;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
496 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
497
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
498 public static int getDoubleEncoding(int reg) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
499 assert reg < 64 && ((reg & 1) == 0);
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
500 // ignore v8 assertion for now
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
501 return (reg & 0x1e) | ((reg & 0x20) >> 5);
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
502 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
503
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
504 public static int getQuadEncoding(int reg) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
505 assert reg < 64 && ((reg & 3) == 0);
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
506 // ignore v8 assertion for now
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
507 return (reg & 0x1c) | ((reg & 0x20) >> 5);
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
508 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
509
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
510 public SPARCAssembler(TargetDescription target, @SuppressWarnings("unused") RegisterConfig registerConfig) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
511 super(target);
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
512 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
513
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
514 public static final int sx1 = 0x00001000;
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
515
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
516 public static final int simm(int x, int nbits) {
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
517 // assert_signed_range(x, nbits);
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
518 return x & ((1 << nbits) - 1);
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
519 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
520
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
521 private static int fcn(int val) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
522 assert val < 0x20;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
523 return (val << 25);
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
524 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
525
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
526 public static class Add extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
527 public Add(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
528 super(masm, Ops.ArithOp.getValue(), Op3s.Add.getValue(), src1.encoding(), simm13, 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
529 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
530 public Add(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
531 super(masm, Ops.ArithOp.getValue(), Op3s.Add.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
532 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
533 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
534
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
535 public static class Addc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
536 public Addc(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
537 super(masm, Ops.ArithOp.getValue(), Op3s.Addc.getValue(), src1.encoding(), simm13, 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
538 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
539 public Addc(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
540 super(masm, Ops.ArithOp.getValue(), Op3s.Addc.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
541 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
542 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
543
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
544 public static class Addcc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
545 public Addcc(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
546 super(masm, Ops.ArithOp.getValue(), Op3s.Addcc.getValue(), src1.encoding(), simm13, 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
547 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
548 public Addcc(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
549 super(masm, Ops.ArithOp.getValue(), Op3s.Addcc.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
550 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
551 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
552
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
553 public static class Addccc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
554 public Addccc(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
555 super(masm, Ops.ArithOp.getValue(), Op3s.Addccc.getValue(), src1.encoding(), simm13, 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
556 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
557 public Addccc(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
558 super(masm, Ops.ArithOp.getValue(), Op3s.Addccc.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
559 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
560 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
561
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
562 public static class And extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
563 public And(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
564 super(masm, Ops.ArithOp.getValue(), Op3s.And.getValue(), src1.encoding(), simm13, 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
565 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
566 public And(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
567 super(masm, Ops.ArithOp.getValue(), Op3s.And.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
568 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
569 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
570
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
571 public static class Andcc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
572 public Andcc(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
573 super(masm, Ops.ArithOp.getValue(), Op3s.Andcc.getValue(), src1.encoding(), simm13, 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
574 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
575 public Andcc(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
576 super(masm, Ops.ArithOp.getValue(), Op3s.Andcc.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
577 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
578 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
579
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
580 public static class Andn extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
581 public Andn(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
582 super(masm, Ops.ArithOp.getValue(), Op3s.Andn.getValue(), src1.encoding(), simm13, 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
583 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
584 public Andn(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
585 super(masm, Ops.ArithOp.getValue(), Op3s.Andn.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
586 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
587 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
588
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
589 public static class Andncc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
590 public Andncc(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
591 super(masm, Ops.ArithOp.getValue(), Op3s.Andncc.getValue(), src1.encoding(), simm13, 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
592 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
593 public Andncc(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
594 super(masm, Ops.ArithOp.getValue(), Op3s.Andncc.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
595 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
596 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
597
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
598 public static class Fadds extends Fmt3p {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
599 public Fadds(SPARCAssembler masm, Register src1, Register src2, Register dst) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
600 super(masm, Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fadds.getValue(),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
601 src1.encoding(), src2.encoding(), dst.encoding());
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
602 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
603 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
604
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
605 public static class Faddd extends Fmt3p {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
606 public Faddd(SPARCAssembler masm, Register src1, Register src2, Register dst) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
607 super(masm, Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Faddd.getValue(),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
608 src1.encoding(), src2.encoding(), dst.encoding());
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
609 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
610 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
611
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
612 public static class Faddq extends Fmt3p {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
613 public Faddq(SPARCAssembler masm, Register src1, Register src2, Register dst) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
614 super(masm, Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Faddq.getValue(),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
615 src1.encoding(), src2.encoding(), dst.encoding());
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
616 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
617 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
618
9817
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
619 public static class Fstoi extends Fmt3n {
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
620 public Fstoi(SPARCAssembler masm, Register src2, Register dst) {
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
621 super(masm, Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fstoi.getValue(),
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
622 src2.encoding(), dst.encoding());
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
623 }
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
624 }
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
625
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
626 public static class Fdtoi extends Fmt3n {
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
627 public Fdtoi(SPARCAssembler masm, Register src2, Register dst) {
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
628 super(masm, Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fdtoi.getValue(),
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
629 src2.encoding(), dst.encoding());
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
630 }
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
631 }
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
632
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
633 public final void flushw() {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
634 emitInt(Ops.ArithOp.getValue() | Op3s.Flushw.getValue());
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
635 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
636
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
637 public static class Fsubs extends Fmt3p {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
638 public Fsubs(SPARCAssembler masm, Register src1, Register src2, Register dst) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
639 super(masm, Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fsubs.getValue(),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
640 src1.encoding(), src2.encoding(), dst.encoding());
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
641 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
642 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
643
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
644 public static class Fsubd extends Fmt3p {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
645 public Fsubd(SPARCAssembler masm, Register src1, Register src2, Register dst) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
646 super(masm, Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fsubd.getValue(),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
647 src1.encoding(), src2.encoding(), dst.encoding());
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
648 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
649 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
650
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
651 public static class Fsubq extends Fmt3p {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
652 public Fsubq(SPARCAssembler masm, Register src1, Register src2, Register dst) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
653 super(masm, Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fsubq.getValue(),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
654 src1.encoding(), src2.encoding(), dst.encoding());
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
655 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
656 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
657
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
658 public static class Membar extends Fmt3b {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
659 public Membar(SPARCAssembler masm, MembarMask mask) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
660 super(masm, Ops.ArithOp.getValue(), 0, Op3s.Membar.getValue(), 0xf, mask.getValue());
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
661 }
7740
5f8101629080 Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
662 }
5f8101629080 Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
663
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
664 public static class Movcc extends Fmt4c {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
665 public Movcc(SPARCAssembler masm, Condition cond, CC cca, Register src2, Register dst) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
666 super(masm, Ops.ArithOp.getValue(), Op3s.Movcc.getValue(), cond.getValue(), cca.getValue(),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
667 src2.encoding(), dst.encoding());
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
668 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
669 public Movcc(SPARCAssembler masm, Condition cond, CC cca, int simm11a, Register dst) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
670 super(masm, Ops.ArithOp.getValue(), Op3s.Movcc.getValue(), cond.getValue(), cca.getValue(),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
671 simm11a, dst.encoding());
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
672 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
673 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
674
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
675 public static class Movr extends Fmt3f {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
676 public Movr(SPARCAssembler masm, RCondition rc, Register src1, Register src2, Register dst) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
677 super(masm, Ops.ArithOp.getValue(), Op3s.Movr.getValue(), rc.getValue(),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
678 src1.encoding(), src2.encoding(), dst.encoding());
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
679 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
680 public Movr(SPARCAssembler masm, RCondition rc, Register src1, int simm10, Register dst) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
681 super(masm, Ops.ArithOp.getValue(), Op3s.Movr.getValue(), rc.getValue(),
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
682 src1.encoding(), simm10, dst.encoding());
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
683 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
684 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
685
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
686 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
687 public static class Mulscc extends Fmt3b {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
688 @Deprecated
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
689 public Mulscc(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
690 super(masm, Ops.ArithOp.getValue(), Op3s.Mulscc.getValue(), src1.encoding(), simm13, 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
691 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
692 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
693 public Mulscc(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
694 super(masm, Ops.ArithOp.getValue(), Op3s.Mulscc.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
695 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
696 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
697
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
698 public static class Mulx extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
699 public Mulx(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
700 super(masm, Ops.ArithOp.getValue(), Op3s.Mulx.getValue(), src1.encoding(), simm13, 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
701 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
702 public Mulx(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
703 super(masm, Ops.ArithOp.getValue(), Op3s.Mulx.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
704 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
705 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
706
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
707 public static class Or extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
708 public Or(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
709 super(masm, Ops.ArithOp.getValue(), Op3s.Or.getValue(), src1.encoding(), simm13, 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
710 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
711 public Or(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
712 super(masm, Ops.ArithOp.getValue(), Op3s.Or.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
713 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
714 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
715
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
716 public static class Orcc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
717 public Orcc(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
718 super(masm, Ops.ArithOp.getValue(), Op3s.Orcc.getValue(), src1.encoding(), simm13, 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
719 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
720 public Orcc(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
721 super(masm, Ops.ArithOp.getValue(), Op3s.Orcc.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
722 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
723 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
724
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
725 public static class Orn extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
726 public Orn(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
727 super(masm, Ops.ArithOp.getValue(), Op3s.Orn.getValue(), src1.encoding(), simm13, 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
728 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
729 public Orn(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
730 super(masm, Ops.ArithOp.getValue(), Op3s.Orn.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
731 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
732 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
733
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
734 public static class Orncc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
735 public Orncc(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
736 super(masm, Ops.ArithOp.getValue(), Op3s.Orncc.getValue(), src1.encoding(), simm13, 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
737 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
738 public Orncc(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
739 super(masm, Ops.ArithOp.getValue(), Op3s.Orncc.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
740 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
741 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
742
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
743 public static class Popc extends Fmt3b {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
744 public Popc(SPARCAssembler masm, int simm13, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
745 super(masm, Ops.ArithOp.getValue(), Op3s.Popc.getValue(), 0, simm13, 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
746 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
747 public Popc(SPARCAssembler masm, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
748 super(masm, Ops.ArithOp.getValue(), Op3s.Popc.getValue(), 0, 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
749 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
750 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
751
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
752 // A.44 Read State Register
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
753
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
754 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
755 public static class Rdy extends Fmt3q {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
756 public Rdy(SPARCAssembler masm, Register dst) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
757 super(masm, Ops.ArithOp.getValue(), Op3s.Rdreg.getValue(), 0, dst.encoding());
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
758 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
759 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
760
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
761 public static class Rdccr extends Fmt3q {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
762 public Rdccr(SPARCAssembler masm, Register dst) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
763 super(masm, Ops.ArithOp.getValue(), Op3s.Rdreg.getValue(), 2, dst.encoding());
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
764 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
765 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
766
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
767 public static class Rdasi extends Fmt3q {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
768 public Rdasi(SPARCAssembler masm, Register dst) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
769 super(masm, Ops.ArithOp.getValue(), Op3s.Rdreg.getValue(), 3, dst.encoding());
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
770 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
771 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
772
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
773 public static class Rdtick extends Fmt3q {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
774 public Rdtick(SPARCAssembler masm, Register dst) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
775 super(masm, Ops.ArithOp.getValue(), Op3s.Rdreg.getValue(), 4, dst.encoding());
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
776 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
777 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
778
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
779 public static class Rdpc extends Fmt3q {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
780 public Rdpc(SPARCAssembler masm, Register dst) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
781 super(masm, Ops.ArithOp.getValue(), Op3s.Rdreg.getValue(), 5, dst.encoding());
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
782 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
783 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
784
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
785 public static class Rdfprs extends Fmt3q {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
786 public Rdfprs(SPARCAssembler masm, Register dst) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
787 super(masm, Ops.ArithOp.getValue(), Op3s.Rdreg.getValue(), 6, dst.encoding());
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
788 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
789 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
790
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
791 public static class Return extends Fmt3d {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
792 public Return(SPARCAssembler masm, Register src1, int simm13) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
793 super(masm, Ops.ArithOp.getValue(), Op3s.Rett.getValue(), src1.encoding(), simm13);
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
794 }
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
795 public Return(SPARCAssembler masm, Register src1, Register src2) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
796 super(masm, Ops.ArithOp.getValue(), Op3s.Rett.getValue(), src1.encoding(), src2.encoding());
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
797 }
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
798 }
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
799
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
800 public final void restored() {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
801 emitInt(Ops.ArithOp.getValue() | Op3s.Saved.getValue() | fcn(1));
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
802 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
803
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
804 public final void saved() {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
805 emitInt(Ops.ArithOp.getValue() | Op3s.Saved.getValue() | fcn(0));
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
806 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
807
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
808 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
809 public static class Sdiv extends Fmt3b {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
810 @Deprecated
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
811 public Sdiv(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
812 super(masm, Ops.ArithOp.getValue(), Op3s.Sdiv.getValue(), src1.encoding(), simm13, 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
813 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
814 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
815 public Sdiv(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
816 super(masm, Ops.ArithOp.getValue(), Op3s.Sdiv.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
817 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
818 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
819
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
820 @Deprecated
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
821 public static class Sdivcc extends Fmt3b {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
822 @Deprecated
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
823 public Sdivcc(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
824 super(masm, Ops.ArithOp.getValue(), Op3s.Sdivcc.getValue(), src1.encoding(), simm13, 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
825 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
826 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
827 public Sdivcc(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
828 super(masm, Ops.ArithOp.getValue(), Op3s.Sdivcc.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
829 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
830 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
831
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
832 public static class Sdivx extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
833 public Sdivx(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
834 super(masm, Ops.ArithOp.getValue(), Op3s.Sdivx.getValue(), src1.encoding(), simm13, 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
835 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
836 public Sdivx(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
837 super(masm, Ops.ArithOp.getValue(), Op3s.Sdivx.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
838 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
839 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
840
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
841 public final void sir(int simm13a) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
842 emitInt(Ops.ArithOp.getValue() | Op3s.Sir.getValue() | ImmedTrue | simm(simm13a, 13));
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
843 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
844
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
845 public static class Sll extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
846 public Sll(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
847 super(masm, Ops.ArithOp.getValue(), Op3s.Sll.getValue(), src1.encoding(), simm13, 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
848 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
849 public Sll(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
850 super(masm, Ops.ArithOp.getValue(), Op3s.Sll.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
851 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
852 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
853
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
854 public static class Sllx extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
855 public Sllx(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
856 super(masm, Ops.ArithOp.getValue(), Op3s.Sllx.getValue(), src1.encoding(), simm13, 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
857 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
858 public Sllx(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
859 super(masm, Ops.ArithOp.getValue(), Op3s.Sllx.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
860 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
861 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
862
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
863 public static class Smul extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
864 public Smul(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
865 super(masm, Ops.ArithOp.getValue(), Op3s.Smul.getValue(), src1.encoding(), simm13, 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
866 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
867 public Smul(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
868 super(masm, Ops.ArithOp.getValue(), Op3s.Smul.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
869 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
870 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
871
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
872 @Deprecated
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
873 public static class Smulcc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
874 public Smulcc(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
875 super(masm, Ops.ArithOp.getValue(), Op3s.Smulcc.getValue(), src1.encoding(), simm13, 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
876 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
877 public Smulcc(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
878 super(masm, Ops.ArithOp.getValue(), Op3s.Smulcc.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
879 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
880 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
881
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
882 public static class Sra extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
883 public Sra(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
884 super(masm, Ops.ArithOp.getValue(), Op3s.Sra.getValue(), src1.encoding(), simm13, 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
885 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
886 public Sra(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
887 super(masm, Ops.ArithOp.getValue(), Op3s.Sra.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
888 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
889 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
890
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
891 public static class Srax extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
892 public Srax(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
893 super(masm, Ops.ArithOp.getValue(), Op3s.Srax.getValue(), src1.encoding(), simm13, 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
894 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
895 public Srax(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
896 super(masm, Ops.ArithOp.getValue(), Op3s.Srax.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
897 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
898 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
899
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
900 public static class Srl extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
901 public Srl(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
902 super(masm, Ops.ArithOp.getValue(), Op3s.Srl.getValue(), src1.encoding(), simm13, 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
903 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
904 public Srl(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
905 super(masm, Ops.ArithOp.getValue(), Op3s.Srl.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
906 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
907 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
908
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
909 public static class Srlx extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
910 public Srlx(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
911 super(masm, Ops.ArithOp.getValue(), Op3s.Srlx.getValue(), src1.encoding(), simm13, 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
912 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
913 public Srlx(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
914 super(masm, Ops.ArithOp.getValue(), Op3s.Srlx.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
915 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
916 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
917
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
918 @Deprecated
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
919 public final void stbar() {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
920 emitInt(Ops.ArithOp.getValue() | Op3s.Membar.getValue() | 0x0003C000);
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
921 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
922
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
923 public static class Sub extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
924 public Sub(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
925 super(masm, Ops.ArithOp.getValue(), Op3s.Sub.getValue(), src1.encoding(), simm13, 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
926 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
927 public Sub(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
928 super(masm, Ops.ArithOp.getValue(), Op3s.Sub.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
929 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
930 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
931
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
932 public static class Subc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
933 public Subc(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
934 super(masm, Ops.ArithOp.getValue(), Op3s.Subc.getValue(), src1.encoding(), simm13, 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
935 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
936 public Subc(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
937 super(masm, Ops.ArithOp.getValue(), Op3s.Subc.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
938 }
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
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
941 public static class Subcc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
942 public Subcc(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
943 super(masm, Ops.ArithOp.getValue(), Op3s.Subcc.getValue(), src1.encoding(), simm13, 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
944 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
945 public Subcc(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
946 super(masm, Ops.ArithOp.getValue(), Op3s.Subcc.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
947 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
948 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
949
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
950 public static class Subccc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
951 public Subccc(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
952 super(masm, Ops.ArithOp.getValue(), Op3s.Subccc.getValue(), src1.encoding(), simm13, 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
953 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
954 public Subccc(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
955 super(masm, Ops.ArithOp.getValue(), Op3s.Subccc.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
956 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
957 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
958
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
959 public static class Taddcc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
960 public Taddcc(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
961 super(masm, Ops.ArithOp.getValue(), Op3s.Taddcc.getValue(), src1.encoding(), simm13, 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
962 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
963 public Taddcc(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
964 super(masm, Ops.ArithOp.getValue(), Op3s.Taddcc.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
965 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
966 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
967
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
968 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
969 public static class Taddcctv extends Fmt3b {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
970 @Deprecated
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
971 public Taddcctv(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
972 super(masm, Ops.ArithOp.getValue(), Op3s.Taddcctv.getValue(), src1.encoding(), simm13, 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
973 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
974 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
975 public Taddcctv(SPARCAssembler masm, Register src1, Register src2, Register dst) {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
976 super(masm, Ops.ArithOp.getValue(), dst.encoding(), Op3s.Taddcctv.getValue(), src2.encoding(), src1.encoding());
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
977 }
7740
5f8101629080 Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
978 }
7839
838293a77af7 Make Address class platform specific.
Roland Schatz <roland.schatz@oracle.com>
parents: 7808
diff changeset
979
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
980 public static class Tsubcc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
981 public Tsubcc(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
982 super(masm, Ops.ArithOp.getValue(), Op3s.Tsubcc.getValue(), src1.encoding(), simm13, 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
983 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
984 public Tsubcc(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
985 super(masm, Ops.ArithOp.getValue(), Op3s.Tsubcc.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
986 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
987 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
988
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
989 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
990 public static class Tsubcctv extends Fmt3b {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
991 @Deprecated
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
992 public Tsubcctv(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
993 super(masm, Ops.ArithOp.getValue(), Op3s.Tsubcctv.getValue(), src1.encoding(), simm13, 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
994 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
995 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
996 public Tsubcctv(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
997 super(masm, Ops.ArithOp.getValue(), Op3s.Tsubcctv.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
998 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
999 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1000
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1001 @Deprecated
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1002 public static class Udiv extends Fmt3b {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1003 @Deprecated
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1004 public Udiv(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1005 super(masm, Ops.ArithOp.getValue(), Op3s.Udiv.getValue(), src1.encoding(), simm13, 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
1006 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1007 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1008 public Udiv(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1009 super(masm, Ops.ArithOp.getValue(), Op3s.Udiv.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
1010 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1011 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1012
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1013 public static class Udivcc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1014 public Udivcc(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1015 super(masm, Ops.ArithOp.getValue(), Op3s.Udivcc.getValue(), src1.encoding(), simm13, 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
1016 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1017 public Udivcc(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1018 super(masm, Ops.ArithOp.getValue(), Op3s.Udivcc.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
1019 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1020 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1021
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1022 public static class Udivx extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1023 public Udivx(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1024 super(masm, Ops.ArithOp.getValue(), Op3s.Udivx.getValue(), src1.encoding(), simm13, 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
1025 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1026 public Udivx(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1027 super(masm, Ops.ArithOp.getValue(), Op3s.Udivx.getValue(), dst.encoding(), src2.encoding(), src1.encoding());
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1028 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1029 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1030
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1031 public static class Umul extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1032 public Umul(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1033 super(masm, Ops.ArithOp.getValue(), Op3s.Umul.getValue(), src1.encoding(), simm13, 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
1034 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1035 public Umul(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1036 super(masm, Ops.ArithOp.getValue(), Op3s.Umul.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
1037 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1038 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1039
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1040 public static class Umulcc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1041 public Umulcc(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1042 super(masm, Ops.ArithOp.getValue(), Op3s.Umulcc.getValue(), src1.encoding(), simm13, 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
1043 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1044 public Umulcc(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1045 super(masm, Ops.ArithOp.getValue(), Op3s.Umulcc.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
1046 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1047 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1048
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1049 @Deprecated
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1050 public static class Wry extends Fmt3b {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1051 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1052 public Wry(SPARCAssembler masm, int simm13, Register src2) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1053 super(masm, Ops.ArithOp.getValue(), Op3s.Wrreg.getValue(), 0, src2.encoding(), simm13);
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1054 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1055 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1056 public Wry(SPARCAssembler masm, Register src1, Register src2) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1057 super(masm, Ops.ArithOp.getValue(), Op3s.Wrreg.getValue(), 0, src2.encoding(), src1.encoding());
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1058 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1059 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1060
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1061 public static class Wrccr extends Fmt3b {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1062 public Wrccr(SPARCAssembler masm, int simm13, Register src2) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1063 super(masm, Ops.ArithOp.getValue(), Op3s.Wrreg.getValue(), 2, src2.encoding(), simm13);
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1064 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1065 public Wrccr(SPARCAssembler masm, Register src1, Register src2) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1066 super(masm, Ops.ArithOp.getValue(), Op3s.Wrreg.getValue(), 2, src2.encoding(), src1.encoding());
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1067 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1068 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1069
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1070 public static class Wrasi extends Fmt3b {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1071 public Wrasi(SPARCAssembler masm, int simm13, Register src2) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1072 super(masm, Ops.ArithOp.getValue(), Op3s.Wrreg.getValue(), 3, src2.encoding(), simm13);
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1073 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1074 public Wrasi(SPARCAssembler masm, Register src1, Register src2) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1075 super(masm, Ops.ArithOp.getValue(), Op3s.Wrreg.getValue(), 3, src2.encoding(), src1.encoding());
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1076 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1077 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1078
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1079 public static class Wrfprs extends Fmt3b {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1080 public Wrfprs(SPARCAssembler masm, int simm13, Register src2) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1081 super(masm, Ops.ArithOp.getValue(), Op3s.Wrreg.getValue(), 6, src2.encoding(), simm13);
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1082 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1083 public Wrfprs(SPARCAssembler masm, Register src1, Register src2) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1084 super(masm, Ops.ArithOp.getValue(), Op3s.Wrreg.getValue(), 6, src2.encoding(), src1.encoding());
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1085 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1086 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1087
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1088 public static class Xor extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1089 public Xor(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1090 super(masm, Ops.ArithOp.getValue(), Op3s.Xor.getValue(), src1.encoding(), simm13, 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
1091 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1092 public Xor(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1093 super(masm, Ops.ArithOp.getValue(), Op3s.Xor.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
1094 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1095 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1096
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1097 public static class Xorcc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1098 public Xorcc(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1099 super(masm, Ops.ArithOp.getValue(), Op3s.Xorcc.getValue(), src1.encoding(), simm13, 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
1100 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1101 public Xorcc(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1102 super(masm, Ops.ArithOp.getValue(), Op3s.Xorcc.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
1103 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1104 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1105
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1106 public static class Xnor extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1107 public Xnor(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1108 super(masm, Ops.ArithOp.getValue(), Op3s.Xnor.getValue(), src1.encoding(), simm13, 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
1109 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1110 public Xnor(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1111 super(masm, Ops.ArithOp.getValue(), Op3s.Xnor.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
1112 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1113 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1114
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1115 public static class Xnorcc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1116 public Xnorcc(SPARCAssembler masm, Register src1, int simm13, Register dst) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1117 super(masm, Ops.ArithOp.getValue(), Op3s.Xnorcc.getValue(), src1.encoding(), simm13, 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
1118 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1119 public Xnorcc(SPARCAssembler masm, Register src1, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1120 super(masm, Ops.ArithOp.getValue(), Op3s.Xnorcc.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
1121 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1122 }
7740
5f8101629080 Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
1123 }