annotate graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java @ 9843:e05af215586b

SPARC compare
author Morris Meyer <morris.meyer@oracle.com>
date Thu, 30 May 2013 22:56:22 -0400
parents 705aca4ebf2f
children 2d1687e63484
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;
9828
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
29 import com.oracle.graal.asm.*;
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
30 import com.oracle.graal.hotspot.HotSpotGraalRuntime;
9831
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
31 import com.oracle.graal.sparc.SPARC;
7740
5f8101629080 Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
32
5f8101629080 Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
33 /**
5f8101629080 Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
34 * This class implements an assembler that can encode most SPARC instructions.
5f8101629080 Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
35 */
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
36 public class SPARCAssembler extends AbstractSPARCAssembler {
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
37
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
38 // @formatter:off
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
39
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
40 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
41 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
42 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
43 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
44
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
45 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
46 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
47 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
48
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
49 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
50 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
51 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
52 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
53 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
54
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
55 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
56 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
57 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
58
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
59 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
60 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
61 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
62 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
63 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
64 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
65
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
66 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
67 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
68 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
69
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
70 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
71 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
72 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
73 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
74 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
75 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
76
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
77 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
78 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
79 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
80
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
81 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
82 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
83 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
84 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
85 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
86 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
87 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
88
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
89 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
90 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
91 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
92
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
93 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
94 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
95 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
96 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
97 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
98 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
99 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
100
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
101 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
102 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
103 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
104
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
105 public static class Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
106 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
107 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
108 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
109 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
110 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
111
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
112 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
113 }
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
114 }
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
115
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
116 public static class Fmt3c {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
117 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
118 assert op == 2;
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
119 assert op3 >= 0 && op3 < 0x40;
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
120 assert rs1 >= 0 && rs1 < 0x20;
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
121 assert rs2 >= 0 && rs2 < 0x20;
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 masm.emitInt(op << 30 | op3 << 19 | rs1 << 14 | rs2);
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 }
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
126
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
127 public static class Fmt3d {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
128 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
129 assert op == 2;
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
130 assert op3 >= 0 && op3 < 0x40;
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
131 assert rs1 >= 0 && rs1 < 0x20;
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
132
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
133 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
134 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
135 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
136
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
137 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
138 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
139 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
140 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
141 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
142 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
143 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
144 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
145
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
146 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
147 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
148 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
149
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
150 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
151 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
152 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
153 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
154 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
155 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
156
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
157 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
158 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
159 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
160
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
161 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
162 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
163 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
164 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
165 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
166 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
167 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
168 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
169
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
170 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
171 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
172 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
173
9817
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
174 public static class Fmt3n {
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
175 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
176 assert op == 2 || op == 3;
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
177 assert op3 >= 0 && op3 < 0x40;
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
178 assert opf >= 0 && opf < 0x200;
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
179 assert rs2 >= 0 && rs2 < 0x20;
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
180 assert rd >= 0 && rd < 0x20;
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 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
183 }
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
184 }
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
185
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
186 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
187 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
188 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
189 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
190 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
191 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
192
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
193 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
194 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
195 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
196
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
197 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
198 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
199 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
200 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
201 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
202 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
203 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
204 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
205
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
206 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
207 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
208 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
209
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
210 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
211 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
212 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
213 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
214 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
215 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
216 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
217
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
218 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
219 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
220 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
221
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
222 public static final int ImmedTrue = 0x00002000;
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
223
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
224 public enum Ops {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
225 CallOp(1),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
226 BranchOp(0),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
227 ArithOp(2),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
228 LdstOp(3);
9695
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 final int value;
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
231
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
232 private Ops(int value) {
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
233 this.value = value;
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
234 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
235
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
236 public int getValue() {
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
237 return value;
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 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
240
9828
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
241 public enum Op2s {
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
242 Bpr(3),
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
243 Fb(6),
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
244 Fbp(5),
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
245 Br(2),
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
246 Bp(1),
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
247 Cb(7),
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
248 Sethi(4);
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
249
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
250 private final int value;
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
251
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
252 private Op2s(int value) {
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
253 this.value = value;
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
254 }
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
255
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
256 public int getValue() {
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
257 return value;
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
258 }
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
259 }
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
260
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
261 public enum Op3s {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
262 Add(0x00, "add"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
263 And(0x01, "and"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
264 Or(0x02, "or"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
265 Xor(0x03, "xor"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
266 Sub(0x04, "sub"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
267 Andn(0x05, "andn"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
268 Orn(0x06, "orn"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
269 Xnor(0x07, "xnor"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
270 Addc(0x08, "addc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
271 Mulx(0x09, "mulx"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
272 Umul(0x0A, "umul"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
273 Smul(0x0B, "smul"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
274 Subc(0x0C, "subc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
275 Udivx(0x0D, "udivx"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
276 Udiv(0x0E, "udiv"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
277 Sdiv(0x0F, "sdiv"),
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
278
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
279 Addcc(0x10, "addcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
280 Andcc(0x11, "andcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
281 Orcc(0x12, "orcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
282 Xorcc(0x13, "xorcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
283 Subcc(0x14, "subcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
284 Andncc(0x15, "andncc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
285 Orncc(0x16, "orncc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
286 Xnorcc(0x17, "xnorcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
287 Addccc(0x18, "addccc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
288 Mulxcc(0x19, "mulxcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
289 Umulcc(0x1A, "umulcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
290 Smulcc(0x1B, "smulcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
291 Subccc(0x1C0, "subccc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
292 Udivcc(0x1E, "udivcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
293 Sdivcc(0x1F, "sdivcc"),
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
294
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
295 Taddcc(0x20, "taddcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
296 Tsubcc(0x21, "tsubcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
297 Taddcctv(0x22, "taddcctv"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
298 Tsubcctv(0x23, "tsubcctv"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
299 Mulscc(0x24, "mulscc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
300 Sll(0x25, "sll"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
301 Sllx(0x25, "sllx"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
302 Srl(0x26, "srl"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
303 Srlx(0x26, "srlx"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
304 Sra(0x27, "srax"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
305 Srax(0x27, "srax"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
306 Rdreg(0x28, "rdreg"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
307 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
308
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
309 Flushw(0x2B, "flushw"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
310 Movcc(0x2C, "movcc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
311 Sdivx(0x2D, "sdivx"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
312 Popc(0x2E, "popc"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
313 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
314
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
315 Sir(0x30, "sir"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
316 Wrreg(0x30, "wrreg"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
317 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
318
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
319 Fpop1(0x34, "fpop1"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
320 Fpop2(0x35, "fpop2"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
321 Impdep1(0x36, "impdep1"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
322 Impdep2(0x37, "impdep2"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
323 Jmpl(0x38, "jmpl"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
324 Rett(0x39, "rett"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
325 Trap(0x3a, "trap"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
326 Flush(0x3b, "flush"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
327 Save(0x3c, "save"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
328 Restore(0x3d, "restore"),
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
329 Done(0x3e, "done"),
9825
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
330 Retry(0x3e, "retry"),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
331
9831
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
332 Lduw(0x00, "lduw"),
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
333 Ldub(0x01, "ldub"),
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
334 Lduh(0x02, "lduh"),
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
335 Ldd(0x03, "ldd"),
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
336 Stw(0x04, "stw"),
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
337 Stb(0x05, "stb"),
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
338 Sth(0x06, "sth"),
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
339 Std(0x07, "std"),
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
340 Ldsw(0x08, "ldsw"),
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
341 Ldsb(0x09, "ldsb"),
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
342 Ldsh(0x0A, "ldsh"),
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
343 Ldx(0x0b, "ldx"),
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
344 Stx(0x0e, "stx"),
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
345
9825
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
346 Ldf(0x20, "ldf"),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
347 Ldfsr(0x21, "ldfsr"),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
348 Ldaf(0x22, "ldaf"),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
349 Lddf(0x23, "lddf"),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
350 Stf(0x24, "stf"),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
351 Stfsr(0x25, "stfsr"),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
352 Staf(0x26, "staf"),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
353 Stdf(0x27, "stdf");
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
354
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
355 private final int value;
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
356 private final String operator;
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
357
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
358 private Op3s(int value, String op) {
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
359 this.value = value;
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
360 this.operator = op;
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
361 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
362
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
363 public int getValue() {
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
364 return value;
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
365 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
366
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
367 public String getOperator() {
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
368 return operator;
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
369 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
370 }
7740
5f8101629080 Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
371
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
372 public enum Opfs {
9825
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
373 Fmovs(0x01, "fmovs"),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
374 Fmovd(0x02, "fmovd"),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
375 Fmovq(0x03, "fmovq"),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
376 Fnegs(0x05, "fnegs"),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
377 Fnegd(0x06, "fnegd"),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
378 Fnegq(0x07, "fnegq"),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
379 Fabss(0x09, "fabss"),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
380 Fabsd(0x0A, "fabsd"),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
381 Fabsq(0x0B, "fabsq"),
9817
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
382 Fadds(0x41, "fadds"),
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
383 Faddd(0x42, "faddd"),
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
384 Faddq(0x43, "faddq"),
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
385 Fsubs(0x45, "fsubs"),
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
386 Fsubd(0x46, "fsubd"),
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
387 Fsubq(0x47, "fsubq"),
9825
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
388 Fmuls(0x49, "fmuls"),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
389 Fmuld(0x4A, "fmuld"),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
390 Fdivs(0x4C, "fdivs"),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
391 Fdivd(0x4D, "fdivd"),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
392 Fdivq(0x4E, "fdivq"),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
393
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
394 Fsmuld(0x69, "fsmuld"),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
395 Fmulq(0x6B, "fmulq"),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
396 Fdmuldq(0x6E, "fdmulq"),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
397
9817
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
398 Fstoi(0xD1, "fstoi"),
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
399 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
400
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
401 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
402 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
403
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
404 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
405 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
406 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
407 }
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 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
410 return value;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
411 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
412
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
413 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
414 return operator;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
415 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
416 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
417
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
418 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
419 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
420 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
421 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
422 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
423 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
424 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
425 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
426
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
427 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
428 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
429
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
430 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
431 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
432 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
433 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
434
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
435 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
436 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
437 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
438
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
439 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
440 return operator;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
441 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
442 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
443
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
444 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
445 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
446 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
447 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
448 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
449 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
450 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
451 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
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 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
454 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
455
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
456 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
457 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
458 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
459 }
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 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
462 return value;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
463 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
464
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
465 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
466 return operator;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
467 }
7740
5f8101629080 Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
468 }
5f8101629080 Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
469
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
470 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
471 // 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
472
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
473 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
474 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
475 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
476 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
477 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
478 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
479 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
480 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
481 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
482 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
483 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
484 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
485 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
486 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
487 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
488 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
489 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
490 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
491
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
492 // for integers
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
493 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
494 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
495 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
496 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
497 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
498 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
499 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
500 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
501 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
502 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
503 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
504 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
505 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
506 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
507 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
508 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
509 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
510 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
511 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
512 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
513
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
514 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
515 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
516
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
517 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
518 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
519 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
520 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
521
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
522 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
523 return value;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
524 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
525
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
526 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
527 return operator;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
528 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
529 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
530
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
531 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
532 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
533 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
534 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
535 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
536 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
537 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
538 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
539
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
540 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
541 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
542
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
543 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
544 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
545 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
546 }
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 int getValue() {
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
549 return value;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
550 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
551
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
552 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
553 return operator;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
554 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
555 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
556
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
557 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
558 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
559 return reg;
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
560 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
561
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 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
563 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
564 // 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
565 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
566 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
567
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
568 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
569 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
570 // 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
571 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
572 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
573
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
574 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
575 super(target);
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
576 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
577
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
578 public static final int sx1 = 0x00001000;
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
579
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
580 public static final int simm(int x, int nbits) {
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
581 // assert_signed_range(x, nbits);
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
582 return x & ((1 << nbits) - 1);
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
583 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
584
9831
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
585 private static final int max13 = ((1 << 12) - 1);
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
586 private static final int min13 = -(1 << 12);
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
587
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
588 public static boolean isSimm13(int src) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
589 return min13 <= src && src <= max13;
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
590 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
591
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
592 public static final int hi22(int x) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
593 return x >> 10;
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
594 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
595
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
596 public static final int lo10(int x) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
597 return x & ((1 << 10) - 1);
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
598 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
599
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
600 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
601 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
602 return (val << 25);
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 Add extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
606 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
607 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
608 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
609 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
610 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
611 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
612 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
613
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
614 public static class Addc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
615 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
616 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
617 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
618 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
619 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
620 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
621 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
622
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
623 public static class Addcc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
624 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
625 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
626 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
627 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
628 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
629 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
630 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
631
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
632 public static class Addccc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
633 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
634 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
635 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
636 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
637 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
638 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
639 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
640
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
641 public static class And extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
642 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
643 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
644 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
645 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
646 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
647 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
648 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
649
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
650 public static class Andcc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
651 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
652 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
653 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
654 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
655 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
656 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
657 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
658
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
659 public static class Andn extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
660 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
661 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
662 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
663 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
664 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
665 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
666 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
667
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
668 public static class Andncc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
669 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
670 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
671 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
672 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
673 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
674 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
675 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
676
9828
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
677 public static class Bpa extends Fmt2c {
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
678 public Bpa(SPARCAssembler masm, int simmm19) {
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
679 super(masm, Ops.BranchOp.getValue(), 0, Condition.Always.getValue(),
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
680 Op2s.Bp.getValue(), CC.Icc.getValue(), 1, simmm19);
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
681 }
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
682 public Bpa(SPARCAssembler masm, Label label) {
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
683 super(masm, Ops.BranchOp.getValue(), 0, Condition.Always.getValue(),
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
684 Op2s.Bp.getValue(), CC.Icc.getValue(), 1,
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
685 label.isBound() ? label.position() : patchUnbound(masm, label));
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
686 }
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
687 }
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
688
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
689 public static class Bpe extends Fmt2c {
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
690 public Bpe(SPARCAssembler masm, CC cc, int simmm19) {
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
691 super(masm, Ops.BranchOp.getValue(), 0, Condition.Equal.getValue(),
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
692 Op2s.Bp.getValue(), cc.getValue(), 1, simmm19);
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
693 }
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
694 public Bpe(SPARCAssembler masm, CC cc, Label label) {
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
695 super(masm, Ops.BranchOp.getValue(), 0, Condition.Equal.getValue(),
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
696 Op2s.Bp.getValue(), cc.getValue(), 1,
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
697 label.isBound() ? label.position() : patchUnbound(masm, label));
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
698 }
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
699 }
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
700
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
701 public static class Bpn extends Fmt2c {
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
702 public Bpn(SPARCAssembler masm, CC cc, int simmm19) {
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
703 super(masm, Ops.BranchOp.getValue(), 0, Condition.Never.getValue(),
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
704 Op2s.Bp.getValue(), cc.getValue(), 1, simmm19);
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
705 }
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
706 public Bpn(SPARCAssembler masm, CC cc, Label label) {
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
707 super(masm, Ops.BranchOp.getValue(), 0, Condition.Never.getValue(),
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
708 Op2s.Bp.getValue(), cc.getValue(), 1,
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
709 label.isBound() ? label.position() : patchUnbound(masm, label));
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
710 }
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
711 }
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
712
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
713 public static class Bpne extends Fmt2c {
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
714 public Bpne(SPARCAssembler masm, CC cc, int simmm19) {
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
715 super(masm, Ops.BranchOp.getValue(), 0, Condition.NotZero.getValue(),
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
716 Op2s.Bp.getValue(), cc.getValue(), 1, simmm19);
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
717 }
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
718 public Bpne(SPARCAssembler masm, CC cc, Label label) {
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
719 super(masm, Ops.BranchOp.getValue(), 0, Condition.NotZero.getValue(),
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
720 Op2s.Bp.getValue(), cc.getValue(), 1,
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
721 label.isBound() ? label.position() : patchUnbound(masm, label));
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
722 }
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
723 }
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
724
9843
e05af215586b SPARC compare
Morris Meyer <morris.meyer@oracle.com>
parents: 9831
diff changeset
725 @SuppressWarnings("unused")
e05af215586b SPARC compare
Morris Meyer <morris.meyer@oracle.com>
parents: 9831
diff changeset
726 public static class Cmp {
e05af215586b SPARC compare
Morris Meyer <morris.meyer@oracle.com>
parents: 9831
diff changeset
727 public Cmp(SPARCAssembler masm, Register a, Register b) {
e05af215586b SPARC compare
Morris Meyer <morris.meyer@oracle.com>
parents: 9831
diff changeset
728 new Subcc(masm, a, b, SPARC.r0);
e05af215586b SPARC compare
Morris Meyer <morris.meyer@oracle.com>
parents: 9831
diff changeset
729 }
e05af215586b SPARC compare
Morris Meyer <morris.meyer@oracle.com>
parents: 9831
diff changeset
730 public Cmp(SPARCAssembler masm, Register a, int simm13) {
e05af215586b SPARC compare
Morris Meyer <morris.meyer@oracle.com>
parents: 9831
diff changeset
731 new Subcc(masm, a, simm13, SPARC.r0);
e05af215586b SPARC compare
Morris Meyer <morris.meyer@oracle.com>
parents: 9831
diff changeset
732 }
e05af215586b SPARC compare
Morris Meyer <morris.meyer@oracle.com>
parents: 9831
diff changeset
733 }
e05af215586b SPARC compare
Morris Meyer <morris.meyer@oracle.com>
parents: 9831
diff changeset
734
9828
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
735 private static int patchUnbound(SPARCAssembler masm, Label label) {
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
736 label.addPatchAt(masm.codeBuffer.position());
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
737 return 0;
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
738 }
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
739
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
740 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
741 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
742 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
743 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
744 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
745 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
746
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
747 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
748 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
749 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
750 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
751 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
752 }
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 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
755 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
756 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
757 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
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
9825
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
761 public static class Fdivs extends Fmt3p {
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
762 public Fdivs(SPARCAssembler masm, Register src1, Register src2, Register dst) {
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
763 super(masm, Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fdivs.getValue(),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
764 src1.encoding(), src2.encoding(), dst.encoding());
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
765 }
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
766 }
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
767
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
768 public static class Fdivd extends Fmt3p {
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
769 public Fdivd(SPARCAssembler masm, Register src1, Register src2, Register dst) {
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
770 super(masm, Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fdivd.getValue(),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
771 src1.encoding(), src2.encoding(), dst.encoding());
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
772 }
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
773 }
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
774
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
775 public static class Fmuls extends Fmt3p {
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
776 public Fmuls(SPARCAssembler masm, Register src1, Register src2, Register dst) {
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
777 super(masm, Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fmuls.getValue(),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
778 src1.encoding(), src2.encoding(), dst.encoding());
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
779 }
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
780 }
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
781
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
782 public static class Fmuld extends Fmt3p {
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
783 public Fmuld(SPARCAssembler masm, Register src1, Register src2, Register dst) {
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
784 super(masm, Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fmuld.getValue(),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
785 src1.encoding(), src2.encoding(), dst.encoding());
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
786 }
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
787 }
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
788
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
789 public static class Fnegs extends Fmt3n {
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
790 public Fnegs(SPARCAssembler masm, Register src2, Register dst) {
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
791 super(masm, Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fnegs.getValue(),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
792 src2.encoding(), dst.encoding());
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
793 }
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
794 }
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
795
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
796 public static class Fnegd extends Fmt3n {
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
797 public Fnegd(SPARCAssembler masm, Register src2, Register dst) {
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
798 super(masm, Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fnegd.getValue(),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
799 src2.encoding(), dst.encoding());
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
800 }
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
801 }
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
802
9817
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
803 public static class Fstoi extends Fmt3n {
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
804 public Fstoi(SPARCAssembler masm, Register src2, Register dst) {
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
805 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
806 src2.encoding(), dst.encoding());
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
807 }
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
808 }
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
809
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
810 public static class Fdtoi extends Fmt3n {
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
811 public Fdtoi(SPARCAssembler masm, Register src2, Register dst) {
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
812 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
813 src2.encoding(), dst.encoding());
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
814 }
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
815 }
26960d32552c SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9816
diff changeset
816
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
817 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
818 emitInt(Ops.ArithOp.getValue() | Op3s.Flushw.getValue());
9695
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
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 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
822 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
823 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
824 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
825 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
826 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
827
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
828 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
829 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
830 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
831 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
832 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
833 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
834
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
835 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
836 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
837 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
838 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
839 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
840 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
841
9828
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
842 @Override
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
843 @SuppressWarnings("unused")
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
844 public void jmp(Label l) {
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
845 new Bpa(this, l);
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
846 }
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
847
9831
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
848 public static class Lddf extends Fmt3b {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
849 public Lddf(SPARCAssembler masm, SPARCAddress src, Register dst) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
850 super(masm, Ops.ArithOp.getValue(), Op3s.Lddf.getValue(),
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
851 src.getBase().encoding(), src.getDisplacement(), dst.encoding());
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
852 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
853 }
9828
5aedcaed6ccf Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents: 9825
diff changeset
854
9831
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
855 public static class Ldf extends Fmt3b {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
856 public Ldf(SPARCAssembler masm, SPARCAddress src, Register dst) {
9825
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
857 super(masm, Ops.ArithOp.getValue(), Op3s.Ldf.getValue(),
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
858 src.getBase().encoding(), src.getDisplacement(), dst.encoding());
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
859 }
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
860 }
81d5d8089cda SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9817
diff changeset
861
9831
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
862 public static class Ldsb extends Fmt3b {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
863 public Ldsb(SPARCAssembler masm, SPARCAddress src, Register dst) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
864 super(masm, Ops.ArithOp.getValue(), Op3s.Ldsb.getValue(),
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
865 src.getBase().encoding(), src.getDisplacement(), dst.encoding());
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
866 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
867 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
868
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
869 public static class Ldsh extends Fmt3b {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
870 public Ldsh(SPARCAssembler masm, SPARCAddress src, Register dst) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
871 super(masm, Ops.ArithOp.getValue(), Op3s.Ldsh.getValue(),
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
872 src.getBase().encoding(), src.getDisplacement(), dst.encoding());
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
873 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
874 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
875
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
876 public static class Ldsw extends Fmt3b {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
877 public Ldsw(SPARCAssembler masm, SPARCAddress src, Register dst) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
878 super(masm, Ops.ArithOp.getValue(), Op3s.Ldsw.getValue(),
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
879 src.getBase().encoding(), src.getDisplacement(), dst.encoding());
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
880 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
881 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
882
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
883 public static class Lduw extends Fmt3b {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
884 public Lduw(SPARCAssembler masm, SPARCAddress src, Register dst) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
885 super(masm, Ops.ArithOp.getValue(), Op3s.Lduw.getValue(),
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
886 src.getBase().encoding(), src.getDisplacement(), dst.encoding());
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
887 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
888 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
889
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
890 public static class Ldx extends Fmt3b {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
891 public Ldx(SPARCAssembler masm, SPARCAddress src, Register dst) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
892 super(masm, Ops.ArithOp.getValue(), Op3s.Ldx.getValue(),
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
893 src.getBase().encoding(), src.getDisplacement(), dst.encoding());
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
894 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
895 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
896
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
897 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
898 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
899 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
900 }
7740
5f8101629080 Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
901 }
5f8101629080 Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
902
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
903 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
904 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
905 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
906 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
907 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
908 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
909 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
910 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
911 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
912 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
913
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
914 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
915 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
916 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
917 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
918 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
919 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
920 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
921 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
922 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
923 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
924
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
925 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
926 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
927 @Deprecated
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
928 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
929 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
930 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
931 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
932 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
933 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
934 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
935 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
936
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
937 public static class Mulx extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
938 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
939 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
940 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
941 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
942 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
943 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
944 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
945
9831
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
946 public static class NullCheck extends Fmt3b {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
947 public NullCheck(SPARCAssembler masm, SPARCAddress src) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
948 super(masm, Ops.ArithOp.getValue(), Op3s.Ldx.getValue(),
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
949 src.getBase().encoding(), src.getDisplacement(), SPARC.r0.encoding());
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
950 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
951 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
952
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
953 public static class Or extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
954 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
955 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
956 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
957 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
958 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
959 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
960 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
961
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
962 public static class Orcc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
963 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
964 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
965 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
966 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
967 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
968 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
969 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
970
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
971 public static class Orn extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
972 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
973 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
974 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
975 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
976 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
977 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
978 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
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 Orncc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
981 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
982 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
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 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
985 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
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 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
990 public Popc(SPARCAssembler masm, int simm13, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
991 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
992 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
993 public Popc(SPARCAssembler masm, Register src2, Register dst) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
994 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
995 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
996 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
997
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
998 // A.44 Read State Register
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
999
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1000 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1001 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
1002 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
1003 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
1004 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1005 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1006
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1007 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
1008 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
1009 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
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 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
1014 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
1015 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
1016 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1017 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1018
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1019 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
1020 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
1021 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
1022 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1023 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1024
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1025 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
1026 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
1027 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
1028 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1029 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1030
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 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
1032 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
1033 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
1034 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1035 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1036
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1037 public static class Return extends Fmt3d {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1038 public Return(SPARCAssembler masm, Register src1, int simm13) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1039 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
1040 }
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1041 public Return(SPARCAssembler masm, Register src1, Register src2) {
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1042 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
1043 }
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1044 }
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1045
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1046 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
1047 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
1048 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1049
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1050 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
1051 emitInt(Ops.ArithOp.getValue() | Op3s.Saved.getValue() | fcn(0));
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1052 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1053
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1054 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1055 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
1056 @Deprecated
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1057 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
1058 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
1059 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1060 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1061 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
1062 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
1063 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1064 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1065
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1066 @Deprecated
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1067 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
1068 @Deprecated
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1069 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
1070 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
1071 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1072 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1073 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
1074 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
1075 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1076 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1077
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1078 public static class Sdivx extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1079 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
1080 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
1081 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1082 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
1083 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
1084 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1085 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1086
9831
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1087 public static class Sethi extends Fmt2a {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1088 public Sethi(SPARCAssembler masm, int simm22, Register dst) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1089 super(masm, Ops.BranchOp.getValue(), Op2s.Sethi.getValue(), simm22, dst.encoding());
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1090 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1091 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1092
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1093 @SuppressWarnings("unused")
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1094 public static class Setuw {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1095 public Setuw(SPARCAssembler masm, int value, Register dst) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1096 if (value >= 0 && ((value & 0x3FFF) == 0)) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1097 new Sethi(masm, hi22(value), dst);
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1098 } else if (-4095 <= value && value <= 4096) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1099 // or g0, value, dst
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1100 new Or(masm, SPARC.r0, value, dst);
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1101 } else {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1102 new Sethi(masm, hi22(value), dst);
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1103 new Or(masm, dst, lo10(value), dst);
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1104 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1105 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1106 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1107
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1108 @SuppressWarnings("unused")
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1109 public static class Setx {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1110 public Setx(SPARCAssembler masm, long value, Register tmp, Register dst) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1111 int hi = (int) (value >> 32);
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1112 int lo = (int) (value & ~0);
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1113
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1114 if (isSimm13(lo) && value == lo) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1115 new Or(masm, SPARC.r0, lo, dst);
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1116 } else if (hi == 0) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1117 new Sethi(masm, lo, dst); // hardware version zero-extends to upper 32
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1118 if (lo10(lo) != 0) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1119 new Or(masm, dst, lo10(lo), dst);
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1120 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1121 } else if (hi == -1) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1122 new Sethi(masm, ~lo, dst); // hardware version zero-extends to upper 32
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1123 new Xor(masm, dst, lo10(lo) ^ ~lo10(~0), dst);
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1124 } else if (lo == 0) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1125 if (isSimm13(hi)) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1126 new Or(masm, SPARC.r0, hi, dst);
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1127 } else {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1128 new Sethi(masm, hi, dst); // hardware version zero-extends to upper 32
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1129 if (lo10(hi) != 0) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1130 new Or(masm, dst, lo10(hi), dst);
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1131 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1132 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1133 new Sllx(masm, dst, 32, dst);
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1134 } else {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1135 new Sethi(masm, hi, tmp);
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1136 new Sethi(masm, lo, dst); // macro assembler version sign-extends
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1137 if (lo10(hi) != 0) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1138 new Or(masm, tmp, lo10(hi), tmp);
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1139 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1140 if (lo10(lo) != 0) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1141 new Or(masm, dst, lo10(lo), dst);
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1142 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1143 new Sllx(masm, tmp, 32, tmp);
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1144 new Or(masm, dst, tmp, dst);
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1145 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1146 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1147 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1148
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1149 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
1150 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
1151 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1152
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1153 public static class Sll extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1154 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
1155 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
1156 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1157 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
1158 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
1159 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1160 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1161
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1162 public static class Sllx extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1163 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
1164 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
1165 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1166 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
1167 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
1168 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1169 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1170
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1171 public static class Smul extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1172 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
1173 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
1174 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1175 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
1176 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
1177 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1178 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1179
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1180 @Deprecated
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1181 public static class Smulcc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1182 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
1183 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
1184 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1185 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
1186 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
1187 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1188 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1189
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1190 public static class Sra extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1191 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
1192 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
1193 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1194 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
1195 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
1196 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1197 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1198
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1199 public static class Srax extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1200 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
1201 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
1202 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1203 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
1204 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
1205 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1206 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1207
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1208 public static class Srl extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1209 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
1210 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
1211 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1212 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
1213 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
1214 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1215 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1216
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1217 public static class Srlx extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1218 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
1219 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
1220 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1221 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
1222 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
1223 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1224 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1225
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1226 @Deprecated
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1227 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
1228 emitInt(Ops.ArithOp.getValue() | Op3s.Membar.getValue() | 0x0003C000);
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1229 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1230
9831
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1231 public static class Stb extends Fmt3b {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1232 public Stb(SPARCAssembler masm, SPARCAddress src, Register dst) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1233 super(masm, Ops.ArithOp.getValue(), Op3s.Stb.getValue(),
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1234 src.getBase().encoding(), src.getDisplacement(), dst.encoding());
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1235 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1236 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1237
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1238 public static class Sth extends Fmt3b {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1239 public Sth(SPARCAssembler masm, SPARCAddress src, Register dst) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1240 super(masm, Ops.ArithOp.getValue(), Op3s.Sth.getValue(),
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1241 src.getBase().encoding(), src.getDisplacement(), dst.encoding());
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1242 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1243 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1244
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1245 public static class Stw extends Fmt3b {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1246 public Stw(SPARCAssembler masm, SPARCAddress src, Register dst) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1247 super(masm, Ops.ArithOp.getValue(), Op3s.Stw.getValue(),
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1248 src.getBase().encoding(), src.getDisplacement(), dst.encoding());
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1249 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1250 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1251
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1252 public static class Stx extends Fmt3b {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1253 public Stx(SPARCAssembler masm, SPARCAddress src, Register dst) {
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1254 super(masm, Ops.ArithOp.getValue(), Op3s.Stx.getValue(),
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1255 src.getBase().encoding(), src.getDisplacement(), dst.encoding());
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1256 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1257 }
705aca4ebf2f SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents: 9828
diff changeset
1258
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1259 public static class Sub extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1260 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
1261 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
1262 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1263 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
1264 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
1265 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1266 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1267
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1268 public static class Subc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1269 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
1270 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
1271 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1272 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
1273 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
1274 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1275 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1276
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1277 public static class Subcc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1278 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
1279 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
1280 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1281 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
1282 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
1283 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1284 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1285
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1286 public static class Subccc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1287 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
1288 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
1289 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1290 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
1291 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
1292 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1293 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1294
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1295 public static class Taddcc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1296 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
1297 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
1298 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1299 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
1300 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
1301 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1302 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1303
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1304 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1305 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
1306 @Deprecated
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1307 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
1308 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
1309 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1310 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1311 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
1312 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
1313 }
7740
5f8101629080 Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
1314 }
7839
838293a77af7 Make Address class platform specific.
Roland Schatz <roland.schatz@oracle.com>
parents: 7808
diff changeset
1315
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1316 public static class Tsubcc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1317 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
1318 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
1319 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1320 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
1321 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
1322 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1323 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1324
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1325 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1326 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
1327 @Deprecated
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1328 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
1329 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
1330 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1331 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1332 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
1333 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
1334 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1335 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1336
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1337 @Deprecated
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1338 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
1339 @Deprecated
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1340 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
1341 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
1342 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1343 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1344 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
1345 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
1346 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1347 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1348
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1349 public static class Udivcc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1350 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
1351 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
1352 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1353 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
1354 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
1355 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1356 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1357
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1358 public static class Udivx extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1359 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
1360 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
1361 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1362 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
1363 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
1364 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1365 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1366
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1367 public static class Umul extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1368 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
1369 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
1370 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1371 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
1372 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
1373 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1374 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1375
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1376 public static class Umulcc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1377 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
1378 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
1379 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1380 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
1381 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
1382 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1383 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1384
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1385 @Deprecated
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1386 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
1387 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1388 public Wry(SPARCAssembler masm, int simm13, Register src2) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1389 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
1390 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1391 @Deprecated
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1392 public Wry(SPARCAssembler masm, Register src1, Register src2) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1393 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
1394 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1395 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1396
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1397 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
1398 public Wrccr(SPARCAssembler masm, int simm13, Register src2) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1399 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
1400 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1401 public Wrccr(SPARCAssembler masm, Register src1, Register src2) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1402 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
1403 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1404 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1405
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1406 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
1407 public Wrasi(SPARCAssembler masm, int simm13, Register src2) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1408 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
1409 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1410 public Wrasi(SPARCAssembler masm, Register src1, Register src2) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1411 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
1412 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1413 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1414
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1415 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
1416 public Wrfprs(SPARCAssembler masm, int simm13, Register src2) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1417 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
1418 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1419 public Wrfprs(SPARCAssembler masm, Register src1, Register src2) {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1420 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
1421 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1422 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1423
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1424 public static class Xor extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1425 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
1426 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
1427 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1428 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
1429 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
1430 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1431 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1432
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1433 public static class Xorcc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1434 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
1435 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
1436 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1437 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
1438 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
1439 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1440 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1441
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1442 public static class Xnor extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1443 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
1444 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
1445 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1446 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
1447 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
1448 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1449 }
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1450
9814
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1451 public static class Xnorcc extends Fmt3b {
9816
4e9854086532 Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents: 9814
diff changeset
1452 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
1453 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
1454 }
e723f9031785 re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents: 9695
diff changeset
1455 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
1456 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
1457 }
9695
a39e67ca883b partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents: 8170
diff changeset
1458 }
7740
5f8101629080 Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
1459 }