Mercurial > hg > truffle
annotate graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java @ 17082:f8586d059f9d
[SPARC] make compatible for CPU without VIS3 and do some cleanup
author | Stefan Anzinger <stefan.anzinger@oracle.com> |
---|---|
date | Tue, 09 Sep 2014 12:09:58 -0700 |
parents | 790e5e5072a2 |
children | b0146ab5b55f |
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 |
12464
59ce8d220e11
replaced HotSpotGraalRuntime.wordKind with an access via the host backend (GRAAL-363)
Doug Simon <doug.simon@oracle.com>
parents:
11233
diff
changeset
|
25 import static com.oracle.graal.hotspot.HotSpotGraalRuntime.*; |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
26 import static com.oracle.graal.sparc.SPARC.*; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
27 |
10459 | 28 import com.oracle.graal.api.code.*; |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
29 import com.oracle.graal.api.meta.*; |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
30 import com.oracle.graal.asm.*; |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
31 import com.oracle.graal.compiler.common.*; |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
32 import com.oracle.graal.sparc.*; |
7740
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 /** |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
35 * 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
|
36 */ |
14032
d1c1f103d42c
renamed com.oracle.graal.asm.AbstractAssembler to com.oracle.graal.asm.Assembler
twisti
parents:
14031
diff
changeset
|
37 public abstract class SPARCAssembler extends Assembler { |
10459 | 38 |
10465 | 39 /** |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
40 * Constructs an assembler for the SPARC architecture. |
15345 | 41 * |
10465 | 42 * @param registerConfig the register configuration used to bind {@link Register#Frame} and |
43 * {@link Register#CallerFrame} to physical registers. This value can be null if this | |
44 * assembler instance will not be used to assemble instructions using these logical | |
45 * registers. | |
46 */ | |
47 public SPARCAssembler(TargetDescription target, RegisterConfig registerConfig) { | |
48 super(target); | |
49 } | |
50 | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
51 // @formatter:off |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
52 /** |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
53 * Instruction format for Fmt00 instructions. This abstraction is needed as it |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
54 * makes the patching easier later on. |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
55 * |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
56 * | 00 | ?? | op2 | ?? | |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
57 * |31 30|29 25|24 22|21 0| |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
58 */ |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
59 // @formatter:on |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
60 public static abstract class Fmt00 { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
61 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
62 protected static final int OP_SHIFT = 30; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
63 protected static final int OP2_SHIFT = 22; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
64 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
65 // @formatter:off |
16651
a38fea2b8e14
[SPARC] First implementation of TableSwitchOp
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16635
diff
changeset
|
66 protected static final int OP_MASK = 0b1100_0000_0000_0000_0000_0000_0000_0000; |
a38fea2b8e14
[SPARC] First implementation of TableSwitchOp
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16635
diff
changeset
|
67 protected static final int OP2_MASK = 0b0000_0001_1100_0000_0000_0000_0000_0000; |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
68 // @formatter:off |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
69 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
70 private int op2; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
71 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
72 public Fmt00(int op2) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
73 this.op2 = op2; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
74 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
75 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
76 public static Fmt00 read(SPARCAssembler masm, int pos) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
77 final int inst = masm.getInt(pos); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
78 Op2s op2 = Op2s.byValue((inst&OP2_MASK) >> OP2_SHIFT); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
79 switch(op2) { |
16927
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
80 case Br: |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
81 case Fb: |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
82 return Fmt00b.read(masm, op2, pos); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
83 case Sethi: |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
84 case Illtrap: |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
85 return Fmt00a.read(masm, pos); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
86 case Bp: |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
87 return Fmt00c.read(masm, pos); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
88 default: |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
89 throw GraalInternalError.shouldNotReachHere("Unknown op2 " + op2); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
90 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
91 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
92 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
93 public void write(SPARCAssembler masm, int pos) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
94 verify(); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
95 masm.emitInt(getInstructionBits(), pos); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
96 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
97 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
98 public Op2s getOp2s() { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
99 return Op2s.byValue(op2); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
100 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
101 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
102 protected int getInstructionBits() { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
103 return Ops.BranchOp.getValue() << OP_SHIFT | op2 << OP2_SHIFT; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
104 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
105 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
106 public void verify() { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
107 assert ((op2 << OP2_SHIFT) & OP2_MASK) == (op2 << OP2_SHIFT); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
108 assert Op2s.byValue(op2) != null : op2; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
109 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
110 /** |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
111 * Sets the immediate (displacement) value on this instruction. |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
112 * |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
113 * @see SPARCAssembler#patchJumpTarget(int, int) |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
114 * @param imm Displacement/imediate value. Can either be a 22 or 19 bit immediate (dependent on the instruction) |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
115 */ |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
116 public abstract void setImm(int imm); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
117 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
118 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
119 // @formatter:off |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
120 /** |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
121 * Instruction format for sethi. |
15345 | 122 * |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
123 * | 00 | rd | op2 | imm22 | |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
124 * |31 30|29 25|24 22|21 0| |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
125 */ |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
126 // @formatter:on |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
127 public static class Fmt00a extends Fmt00 { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
128 |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
129 private static final int RD_SHIFT = 25; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
130 private static final int IMM22_SHIFT = 0; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
131 |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
132 // @formatter:off |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
133 private static final int RD_MASK = 0b00111110000000000000000000000000; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
134 private static final int IMM22_MASK = 0b00000000001111111111111111111111; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
135 // @formatter:on |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
136 |
10459 | 137 private int rd; |
138 private int imm22; | |
139 | |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
140 private Fmt00a(int rd, int op2, int imm22) { |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
141 super(op2); |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
142 this.rd = rd; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
143 this.imm22 = imm22; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
144 verify(); |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
145 } |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
146 |
10459 | 147 public Fmt00a(Op2s op2, int imm22, Register rd) { |
10871
c3b09d69dfde
SPARC: fixes and more implementation; can now allocate objects
twisti
parents:
10854
diff
changeset
|
148 this(rd.encoding(), op2.getValue(), imm22); |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
149 } |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
150 |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
151 @Override |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
152 protected int getInstructionBits() { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
153 return super.getInstructionBits() | rd << RD_SHIFT | (imm22 & IMM22_MASK) << IMM22_SHIFT; |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
154 } |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
155 |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
156 public static Fmt00a read(SPARCAssembler masm, int pos) { |
14031
390c4b742890
made com.oracle.graal.asm.Buffer non-public and a private field in AbstractAssembler
twisti
parents:
14013
diff
changeset
|
157 final int inst = masm.getInt(pos); |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
158 |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
159 // Make sure it's the right instruction: |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
160 final int op = (inst & OP_MASK) >> OP_SHIFT; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
161 assert op == Ops.BranchOp.getValue(); |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
162 |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
163 // Get the instruction fields: |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
164 final int rd = (inst & RD_MASK) >> RD_SHIFT; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
165 final int op2 = (inst & OP2_MASK) >> OP2_SHIFT; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
166 final int imm22 = (inst & IMM22_MASK) >> IMM22_SHIFT; |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
167 |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
168 return new Fmt00a(op2, imm22, rd); |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
169 } |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
170 |
10459 | 171 public void emit(SPARCAssembler masm) { |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
172 verify(); |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
173 masm.emitInt(getInstructionBits()); |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
174 } |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
175 |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
176 @Override |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
177 public void verify() { |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
178 super.verify(); |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
179 assert ((rd << RD_SHIFT) & RD_MASK) == (rd << RD_SHIFT); |
10792 | 180 assert ((imm22 << IMM22_SHIFT) & IMM22_MASK) == (imm22 << IMM22_SHIFT) : String.format("imm22: %d (%x)", imm22, imm22); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
181 } |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
182 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
183 @Override |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
184 public void setImm(int imm) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
185 setImm22(imm); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
186 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
187 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
188 public void setImm22(int imm22) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
189 this.imm22 = imm22; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
190 } |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
191 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
192 |
10459 | 193 // @formatter:off |
194 /** | |
195 * Instruction format for branches. | |
15345 | 196 * |
10459 | 197 * | 00 |a | cond | op2 | disp22 | |
198 * |31 30|29|28 25|24 22|21 0| | |
199 */ | |
200 // @formatter:on | |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
201 public static class Fmt00b extends Fmt00 { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
202 private int a; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
203 private int cond; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
204 private int disp22; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
205 private Label label; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
206 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
207 private static final int A_SHIFT = 29; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
208 private static final int COND_SHIFT = 25; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
209 private static final int DISP22_SHIFT = 0; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
210 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
211 // @formatter:off |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
212 private static final int A_MASK = 0b00100000000000000000000000000000; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
213 private static final int COND_MASK = 0b00011110000000000000000000000000; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
214 private static final int DISP22_MASK = 0b00000000001111111111111111111111; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
215 // @formatter:on |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
216 |
16927
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
217 public Fmt00b(boolean annul, ConditionFlag cond, Op2s op2, Label label) { |
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
218 this(annul ? 1 : 0, cond.getValue(), op2.getValue(), 0, label); |
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
219 } |
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
220 |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
221 public Fmt00b(boolean annul, FCond cond, Op2s op2, Label label) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
222 this(annul ? 1 : 0, cond.getValue(), op2.getValue(), 0, label); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
223 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
224 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
225 public Fmt00b(int annul, int cond, int op2, Label label) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
226 this(annul, cond, op2, 0, label); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
227 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
228 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
229 public Fmt00b(boolean annul, FCond cond, Op2s op2, int disp22) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
230 this(annul ? 1 : 0, cond.getValue(), op2.getValue(), disp22, null); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
231 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
232 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
233 public Fmt00b(int annul, int cond, int op2, int disp22) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
234 this(annul, cond, op2, disp22, null); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
235 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
236 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
237 public Fmt00b(int a, int cond, int op2, int disp22, Label label) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
238 super(op2); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
239 setA(a); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
240 setCond(cond); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
241 setDisp22(disp22); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
242 setLabel(label); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
243 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
244 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
245 public void emit(SPARCAssembler masm) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
246 if (label != null) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
247 final int pos = label.isBound() ? label.position() : patchUnbound(masm, label); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
248 final int disp = pos - masm.position(); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
249 setDisp22(disp); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
250 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
251 verify(); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
252 masm.emitInt(getInstructionBits()); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
253 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
254 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
255 private static int patchUnbound(SPARCAssembler masm, Label label) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
256 label.addPatchAt(masm.position()); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
257 return 0; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
258 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
259 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
260 @Override |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
261 protected int getInstructionBits() { |
16521
d1b16fe368a0
[SPARC] Fixing dcmp instructions (cmove jump offset)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16520
diff
changeset
|
262 int inst = super.getInstructionBits() | a << A_SHIFT | cond << COND_SHIFT | (disp22 & DISP22_MASK) << DISP22_SHIFT; |
d1b16fe368a0
[SPARC] Fixing dcmp instructions (cmove jump offset)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16520
diff
changeset
|
263 return inst; |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
264 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
265 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
266 protected static Fmt00b read(SPARCAssembler masm, Op2s op2, int pos) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
267 final int inst = masm.getInt(pos); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
268 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
269 // Make sure it's the right instruction: |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
270 final int op = (inst & OP_MASK) >> OP_SHIFT; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
271 assert op == Ops.BranchOp.getValue(); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
272 final int op2Read = (inst & OP2_MASK) >> OP2_SHIFT; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
273 assert op2Read == op2.getValue() : "Op2 value read: " + op2Read + " Required op2: " + op2; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
274 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
275 // Get the instruction fields: |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
276 final int a = (inst & A_MASK) >> A_SHIFT; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
277 final int cond = (inst & COND_MASK) >> COND_SHIFT; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
278 final int disp22 = (inst & DISP22_MASK) >> DISP22_SHIFT << 2; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
279 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
280 Fmt00b fmt = new Fmt00b(a, cond, op2.getValue(), disp22); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
281 fmt.verify(); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
282 return fmt; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
283 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
284 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
285 public int getA() { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
286 return a; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
287 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
288 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
289 public void setA(int a) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
290 this.a = a; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
291 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
292 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
293 public int getCond() { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
294 return cond; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
295 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
296 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
297 public void setCond(int cond) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
298 this.cond = cond; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
299 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
300 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
301 public int getDisp22() { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
302 return disp22 << 2; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
303 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
304 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
305 @Override |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
306 public void setImm(int imm) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
307 setDisp22(imm); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
308 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
309 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
310 public void setDisp22(int disp22) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
311 this.disp22 = disp22 >> 2; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
312 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
313 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
314 public Label getLabel() { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
315 return label; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
316 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
317 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
318 public void setLabel(Label label) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
319 this.label = label; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
320 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
321 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
322 @Override |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
323 public void verify() { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
324 super.verify(); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
325 assert (getA() << A_SHIFT & ~A_MASK) == 0 : getA(); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
326 assert (getCond() << COND_SHIFT & ~COND_MASK) == 0 : getCond(); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
327 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
328 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
329 |
10459 | 330 // @formatter:off |
331 /** | |
332 * Instruction format for conditional branches. | |
15345 | 333 * |
10459 | 334 * | 00 |a | cond | op2 |cc1|cc0|p | disp19 | |
335 * |31 30|29|28 25|24 22|21 |20 |19| 0| | |
336 */ | |
337 // @formatter:on | |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
338 public static class Fmt00c extends Fmt00 { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
339 |
10459 | 340 private static final int A_SHIFT = 29; |
341 private static final int COND_SHIFT = 25; | |
342 private static final int CC_SHIFT = 20; | |
343 private static final int P_SHIFT = 19; | |
344 private static final int DISP19_SHIFT = 0; | |
345 | |
346 // @formatter:off | |
347 private static final int A_MASK = 0b00100000000000000000000000000000; | |
348 private static final int COND_MASK = 0b00011110000000000000000000000000; | |
349 private static final int CC_MASK = 0b00000000001100000000000000000000; | |
350 private static final int P_MASK = 0b00000000000010000000000000000000; | |
351 private static final int DISP19_MASK = 0b00000000000001111111111111111111; | |
352 // @formatter:on | |
353 | |
354 private int a; | |
355 private int cond; | |
356 private int cc; | |
357 private int p; | |
358 private int disp19; | |
359 private Label label; | |
360 | |
361 private Fmt00c(int a, int cond, int op2, int cc, int p, int disp19) { | |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
362 super(op2); |
10459 | 363 setA(a); |
364 setCond(cond); | |
365 setCc(cc); | |
366 setP(p); | |
367 setDisp19(disp19); | |
10468 | 368 verify(); |
10459 | 369 } |
370 | |
371 public Fmt00c(int a, ConditionFlag cond, Op2s op2, CC cc, int p, int disp19) { | |
372 this(a, cond.getValue(), op2.getValue(), cc.getValue(), p, disp19); | |
373 } | |
374 | |
375 public Fmt00c(int a, ConditionFlag cond, Op2s op2, CC cc, int p, Label label) { | |
376 this(a, cond.getValue(), op2.getValue(), cc.getValue(), p, 0); | |
377 this.label = label; | |
378 } | |
379 | |
380 public int getA() { | |
381 return a; | |
382 } | |
383 | |
384 public void setA(int a) { | |
385 this.a = a; | |
386 } | |
387 | |
388 public int getCond() { | |
389 return cond; | |
390 } | |
391 | |
392 public void setCond(int cond) { | |
393 this.cond = cond; | |
394 } | |
395 | |
396 public int getCc() { | |
397 return cc; | |
398 } | |
399 | |
400 public void setCc(int cc) { | |
401 this.cc = cc; | |
402 } | |
403 | |
404 public int getP() { | |
405 return p; | |
406 } | |
407 | |
408 public void setP(int p) { | |
409 this.p = p; | |
410 } | |
411 | |
412 /** | |
413 * Return the displacement in bytes. | |
414 */ | |
415 public int getDisp19() { | |
416 return disp19 << 2; | |
417 } | |
418 | |
419 /** | |
420 * The instructions requires displacements to be word-sized. | |
421 */ | |
422 public void setDisp19(int disp19) { | |
423 this.disp19 = disp19 >> 2; | |
424 } | |
425 | |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
426 @Override |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
427 public void setImm(int imm) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
428 setDisp19(imm); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
429 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
430 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
431 @Override |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
432 protected int getInstructionBits() { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
433 return super.getInstructionBits() | a << A_SHIFT | cond << COND_SHIFT | cc << CC_SHIFT | p << P_SHIFT | (disp19 & DISP19_MASK) << DISP19_SHIFT; |
10459 | 434 } |
435 | |
436 public static Fmt00c read(SPARCAssembler masm, int pos) { | |
14031
390c4b742890
made com.oracle.graal.asm.Buffer non-public and a private field in AbstractAssembler
twisti
parents:
14013
diff
changeset
|
437 final int inst = masm.getInt(pos); |
10459 | 438 |
439 // Make sure it's the right instruction: | |
440 final int op = (inst & OP_MASK) >> OP_SHIFT; | |
441 assert op == Ops.BranchOp.getValue(); | |
442 | |
443 // Get the instruction fields: | |
444 final int a = (inst & A_MASK) >> A_SHIFT; | |
445 final int cond = (inst & COND_MASK) >> COND_SHIFT; | |
446 final int op2 = (inst & OP2_MASK) >> OP2_SHIFT; | |
447 final int cc = (inst & CC_MASK) >> CC_SHIFT; | |
448 final int p = (inst & P_MASK) >> P_SHIFT; | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
449 final int disp19 = (inst & DISP19_MASK) >> DISP19_SHIFT << 2; |
10459 | 450 |
451 Fmt00c fmt = new Fmt00c(a, cond, op2, cc, p, disp19); | |
452 fmt.verify(); | |
453 return fmt; | |
454 } | |
455 | |
456 public void emit(SPARCAssembler masm) { | |
457 if (label != null) { | |
458 final int pos = label.isBound() ? label.position() : patchUnbound(masm, label); | |
14031
390c4b742890
made com.oracle.graal.asm.Buffer non-public and a private field in AbstractAssembler
twisti
parents:
14013
diff
changeset
|
459 final int disp = pos - masm.position(); |
10459 | 460 setDisp19(disp); |
461 } | |
462 verify(); | |
463 masm.emitInt(getInstructionBits()); | |
464 } | |
465 | |
10792 | 466 private static int patchUnbound(SPARCAssembler masm, Label label) { |
14031
390c4b742890
made com.oracle.graal.asm.Buffer non-public and a private field in AbstractAssembler
twisti
parents:
14013
diff
changeset
|
467 label.addPatchAt(masm.position()); |
10792 | 468 return 0; |
469 } | |
470 | |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
471 @Override |
10459 | 472 public void verify() { |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
473 super.verify(); |
10459 | 474 assert p < 2; |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
475 assert cond < 0x10; |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
476 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
477 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
478 @Override |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
479 public String toString() { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
480 return "Fmt00c [a=" + a + ", cond=" + cond + ", cc=" + cc + ", p=" + p + ", disp19=" + disp19 + ", label=" + label + "]"; |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
481 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
482 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
483 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
484 public static class Fmt00d { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
485 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
486 public Fmt00d(SPARCAssembler masm, int op, int a, int rcond, int op2, int d16hi, int predict, int rs1, int d16lo) { |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
487 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
|
488 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
|
489 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
|
490 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
|
491 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
|
492 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
493 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
|
494 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
495 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
496 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
497 public static class Fmt00e { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
498 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
499 public Fmt00e(SPARCAssembler asm, int op, int c4lo, int cc2, int rs1, int d10lo, int regOrImmediate) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
500 assert op == 0; |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
501 assert (cc2 & 0xFFFFFFFE) == 0; |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
502 assert c4lo >= 0 && rs1 < 0x10; |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
503 assert rs1 >= 0 && rs1 < 0x20; |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
504 assert (regOrImmediate & 0x1F) < 0x20; |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
505 assert (regOrImmediate & 0xFFFFC000) == 0; |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
506 assert (d10lo & 0xFFFFFC00) == 0; |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
507 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
508 asm.emitInt(op << 30 | 1 << 28 | 3 << 22 | cc2 << 21 | (d10lo >> 8) << 19 | rs1 << 14 | (d10lo & 0xff) << 5 | regOrImmediate); |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
509 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
510 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
511 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
512 // @formatter:off |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
513 /** |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
514 * Instruction format for calls. |
15345 | 515 * |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
516 * | 01 | disp30 | |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
517 * |31 30|29 0| |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
518 */ |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
519 // @formatter:on |
10459 | 520 public static class Fmt01 { |
521 | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
522 private static final int OP_SHIFT = 30; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
523 private static final int DISP30_SHIFT = 0; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
524 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
525 // @formatter:off |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
526 private static final int OP_MASK = 0b11000000000000000000000000000000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
527 private static final int DISP30_MASK = 0b00111111111111111111111111111111; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
528 // @formatter:on |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
529 |
10459 | 530 private int disp30; |
531 | |
532 public Fmt01(int disp30) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
533 setDisp30(disp30); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
534 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
535 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
536 /** |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
537 * Return the displacement in bytes. |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
538 */ |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
539 public int getDisp30() { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
540 return disp30 << 2; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
541 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
542 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
543 /** |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
544 * The instructions requires displacements to be word-sized. |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
545 */ |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
546 public void setDisp30(int disp30) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
547 this.disp30 = disp30 >> 2; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
548 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
549 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
550 private int getInstructionBits() { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
551 return Ops.CallOp.getValue() << OP_SHIFT | (disp30 & DISP30_MASK) << DISP30_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
552 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
553 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
554 public static Fmt01 read(SPARCAssembler masm, int pos) { |
14031
390c4b742890
made com.oracle.graal.asm.Buffer non-public and a private field in AbstractAssembler
twisti
parents:
14013
diff
changeset
|
555 final int inst = masm.getInt(pos); |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
556 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
557 // Make sure it's the right instruction: |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
558 final int op = (inst & OP_MASK) >> OP_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
559 assert op == Ops.CallOp.getValue(); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
560 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
561 // Get the instruction fields: |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
562 final int disp30 = (inst & DISP30_MASK) >> DISP30_SHIFT << 2; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
563 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
564 Fmt01 fmt = new Fmt01(disp30); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
565 fmt.verify(); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
566 return fmt; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
567 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
568 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
569 public void write(SPARCAssembler masm, int pos) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
570 verify(); |
14031
390c4b742890
made com.oracle.graal.asm.Buffer non-public and a private field in AbstractAssembler
twisti
parents:
14013
diff
changeset
|
571 masm.emitInt(getInstructionBits(), pos); |
10459 | 572 } |
573 | |
574 public void emit(SPARCAssembler masm) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
575 verify(); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
576 masm.emitInt(getInstructionBits()); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
577 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
578 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
579 public void verify() { |
10854
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
580 assert isDisp30(disp30) : disp30; |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
581 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
582 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
583 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
584 public static class Fmt3f { |
10459 | 585 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
586 public Fmt3f(SPARCAssembler masm, int op, int op3, int rcond, int rs1, int simm10, int rd) { |
10459 | 587 assert op == 2 || op == 3; |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
588 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
|
589 assert rs1 >= 0 && rs1 < 0x20; |
10459 | 590 assert rd >= 0 && rd < 0x20; |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
591 |
9816
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
592 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
|
593 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
594 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
595 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
596 public static class Fmt3n { |
16528
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
597 private int op; |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
598 private int op3; |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
599 private int opf; |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
600 private int rs2; |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
601 private int rd; |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
602 |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
603 public Fmt3n(int op, int op3, int opf, int rs2, int rd) { |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
604 this.op = op; |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
605 this.op3 = op3; |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
606 this.opf = opf; |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
607 this.rs2 = rs2; |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
608 this.rd = rd; |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
609 } |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
610 |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
611 public void emit(SPARCAssembler masm) { |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
612 verify(); |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
613 masm.emitInt(op << 30 | rd << 25 | op3 << 19 | opf << 5 | rs2); |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
614 } |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
615 |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
616 public void verify() { |
10459 | 617 assert op == 2 || op == 3; |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
618 assert op3 >= 0 && op3 < 0x40; |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
619 assert opf >= 0 && opf < 0x200; |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
620 assert rs2 >= 0 && rs2 < 0x20; |
10459 | 621 assert rd >= 0 && rd < 0x20; |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
622 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
623 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
624 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
625 public static class Fmt3p { |
10459 | 626 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
627 private int op; |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
628 private int op3; |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
629 private int opf; |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
630 private int rs1; |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
631 private int rs2; |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
632 private int rd; |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
633 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
634 public Fmt3p(Ops op, Op3s op3, Opfs opf, Register rs1, Register rs2, Register rd) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
635 this.op = op.getValue(); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
636 this.op3 = op3.getValue(); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
637 this.opf = opf.getValue(); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
638 this.rs1 = rs1.encoding(); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
639 this.rs2 = rs2.encoding(); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
640 this.rd = rd.encoding(); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
641 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
642 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
643 public void emit(SPARCAssembler masm) { |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
644 assert op == 2 || op == 3 : op; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
645 assert op3 >= 0 && op3 < 0x40 : op3; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
646 assert opf >= 0 && opf < 0x200 : opf; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
647 assert rs1 >= 0 && rs1 < 0x20 : rs1; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
648 assert rs2 >= 0 && rs2 < 0x20 : rs2; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
649 assert rd >= 0 && rd < 0x20 : rd; |
10459 | 650 |
651 masm.emitInt(op << 30 | rd << 25 | op3 << 19 | rs1 << 14 | opf << 5 | rs2); | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
652 } |
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 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
655 // @formatter:off |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
656 /** |
16321
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
657 * Instruction format for fcmp |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
658 * |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
659 * | 10 | --- |cc1|cc0|desc | rs1 | opf | rs2 | |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
660 * |31 30|29 27|26 |25 |24 19|18 14|13 5|4 0| |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
661 */ |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
662 // @formatter:on |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
663 public static class Fmt3c { |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
664 private int op; |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
665 private int cc; |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
666 private int desc; |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
667 private int opf; |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
668 private int rs1; |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
669 private int rs2; |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
670 |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
671 public Fmt3c(Ops op, CC cc, int desc, Opfs opf, Register rs1, Register rs2) { |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
672 this.op = op.getValue(); |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
673 this.opf = opf.getValue(); |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
674 this.desc = desc; |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
675 this.rs1 = rs1.encoding(); |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
676 this.rs2 = rs2.encoding(); |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
677 this.cc = cc.getValue(); |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
678 } |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
679 |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
680 public void emit(SPARCAssembler masm) { |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
681 assert op == 2 || op == 3; |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
682 assert cc >= 0 && cc < 0x4; |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
683 assert opf >= 0 && opf < 0x200; |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
684 assert rs1 >= 0 && rs1 < 0x20; |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
685 assert rs2 >= 0 && rs2 < 0x20; |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
686 assert desc >= 0 && desc < 0x40; |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
687 |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
688 masm.emitInt(op << 30 | cc << 25 | desc << 19 | rs1 << 14 | opf << 5 | rs2); |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
689 } |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
690 } |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
691 |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
692 // @formatter:off |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
693 /** |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
694 * Instruction format for Arithmetic, Logical, Moves, Tcc, Prefetch, and Misc. |
15345 | 695 * |
11233 | 696 * | 10 | rd | op3 | rs1 | i| imm_asi | rs2 | |
697 * | 10 | rd | op3 | rs1 | i| simm13 | | |
698 * | 10 | rd | op3 | rs1 | i| x| | rs2 | | |
699 * | 10 | rd | op3 | rs1 | i| x| | shcnt32 | | |
700 * | 10 | rd | op3 | rs1 | i| x| | shcnt64 | | |
701 * |31 30|29 25|24 19|18 14|13|12|11 5|4 0| | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
702 */ |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
703 // @formatter:on |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
704 public static class Fmt10 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
705 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
706 private static final int OP_SHIFT = 30; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
707 private static final int RD_SHIFT = 25; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
708 private static final int OP3_SHIFT = 19; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
709 private static final int RS1_SHIFT = 14; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
710 private static final int I_SHIFT = 13; |
11233 | 711 private static final int X_SHIFT = 12; |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
712 private static final int IMM_ASI_SHIFT = 5; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
713 private static final int RS2_SHIFT = 0; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
714 private static final int SIMM13_SHIFT = 0; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
715 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
716 // @formatter:off |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
717 private static final int OP_MASK = 0b11000000000000000000000000000000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
718 private static final int RD_MASK = 0b00111110000000000000000000000000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
719 private static final int OP3_MASK = 0b00000001111110000000000000000000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
720 private static final int RS1_MASK = 0b00000000000001111100000000000000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
721 private static final int I_MASK = 0b00000000000000000010000000000000; |
11233 | 722 private static final int X_MASK = 0b00000000000000000001000000000000; |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
723 private static final int IMM_ASI_MASK = 0b00000000000000000001111111100000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
724 private static final int RS2_MASK = 0b00000000000000000000000000011111; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
725 private static final int SIMM13_MASK = 0b00000000000000000001111111111111; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
726 // @formatter:on |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
727 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
728 private int rd; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
729 private int op3; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
730 private int rs1; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
731 private int i; |
11233 | 732 private int x; |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
733 private int immAsi; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
734 private int rs2; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
735 private int simm13; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
736 |
11233 | 737 private Fmt10(int rd, int op3, int rs1, int i, int x, int immAsi, int rs2, int simm13) { |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
738 this.rd = rd; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
739 this.op3 = op3; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
740 this.rs1 = rs1; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
741 this.i = i; |
11233 | 742 this.x = x; |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
743 this.immAsi = immAsi; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
744 this.rs2 = rs2; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
745 this.simm13 = simm13; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
746 verify(); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
747 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
748 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
749 public Fmt10(Op3s op3, Register rs1, Register rs2, Register rd) { |
11233 | 750 this(rd.encoding(), op3.getValue(), rs1.encoding(), 0, getXBit(op3), 0, rs2.encoding(), 0); |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
751 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
752 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
753 public Fmt10(Op3s op3, Register rs1, int simm13, Register rd) { |
11233 | 754 this(rd.encoding(), op3.getValue(), rs1.encoding(), 1, getXBit(op3), 0, 0, simm13); |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
755 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
756 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
757 public Fmt10(Op3s op3) { |
11233 | 758 this(0, op3.getValue(), 0, 0, getXBit(op3), 0, 0, 0); |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
759 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
760 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
761 public Fmt10(Op3s op3, Register rs1, Register rd) { |
11233 | 762 this(rd.encoding(), op3.getValue(), rs1.encoding(), 0, getXBit(op3), 0, 0, 0); |
763 } | |
764 | |
765 /** | |
766 * Helper method to determine if the instruction needs the X bit set. | |
767 */ | |
768 private static int getXBit(Op3s op3) { | |
769 switch (op3) { | |
770 case Sllx: | |
771 case Srax: | |
772 case Srlx: | |
773 return 1; | |
774 default: | |
775 return 0; | |
776 } | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
777 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
778 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
779 private int getInstructionBits() { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
780 if (i == 0) { |
11233 | 781 return Ops.ArithOp.getValue() << OP_SHIFT | rd << RD_SHIFT | op3 << OP3_SHIFT | rs1 << RS1_SHIFT | i << I_SHIFT | x << X_SHIFT | immAsi << IMM_ASI_SHIFT | rs2 << RS2_SHIFT; |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
782 } else { |
11233 | 783 return Ops.ArithOp.getValue() << OP_SHIFT | rd << RD_SHIFT | op3 << OP3_SHIFT | rs1 << RS1_SHIFT | i << I_SHIFT | x << X_SHIFT | ((simm13 << SIMM13_SHIFT) & SIMM13_MASK); |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
784 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
785 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
786 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
787 public static Fmt10 read(SPARCAssembler masm, int pos) { |
14031
390c4b742890
made com.oracle.graal.asm.Buffer non-public and a private field in AbstractAssembler
twisti
parents:
14013
diff
changeset
|
788 final int inst = masm.getInt(pos); |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
789 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
790 // Make sure it's the right instruction: |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
791 final int op = (inst & OP_MASK) >> OP_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
792 assert op == Ops.ArithOp.getValue(); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
793 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
794 // Get the instruction fields: |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
795 final int rd = (inst & RD_MASK) >> RD_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
796 final int op3 = (inst & OP3_MASK) >> OP3_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
797 final int rs1 = (inst & RS1_MASK) >> RS1_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
798 final int i = (inst & I_MASK) >> I_SHIFT; |
11233 | 799 final int x = (inst & X_MASK) >> X_SHIFT; |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
800 final int immAsi = (inst & IMM_ASI_MASK) >> IMM_ASI_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
801 final int rs2 = (inst & RS2_MASK) >> RS2_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
802 final int simm13 = (inst & SIMM13_MASK) >> SIMM13_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
803 |
11233 | 804 return new Fmt10(rd, op3, rs1, i, x, immAsi, rs2, simm13); |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
805 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
806 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
807 public void write(SPARCAssembler masm, int pos) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
808 verify(); |
14031
390c4b742890
made com.oracle.graal.asm.Buffer non-public and a private field in AbstractAssembler
twisti
parents:
14013
diff
changeset
|
809 masm.emitInt(getInstructionBits(), pos); |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
810 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
811 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
812 public void emit(SPARCAssembler masm) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
813 verify(); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
814 masm.emitInt(getInstructionBits()); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
815 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
816 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
817 public void verify() { |
16933
f011bf910f34
[SPARC] Fix sign extension, add debug messages to assertions in Assembler, add FSMULD , Entering frame is now possible with > 2k framesize
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16927
diff
changeset
|
818 assert ((rd << RD_SHIFT) & RD_MASK) == (rd << RD_SHIFT) : this; |
f011bf910f34
[SPARC] Fix sign extension, add debug messages to assertions in Assembler, add FSMULD , Entering frame is now possible with > 2k framesize
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16927
diff
changeset
|
819 assert ((op3 << OP3_SHIFT) & OP3_MASK) == (op3 << OP3_SHIFT) : this; |
f011bf910f34
[SPARC] Fix sign extension, add debug messages to assertions in Assembler, add FSMULD , Entering frame is now possible with > 2k framesize
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16927
diff
changeset
|
820 assert ((rs1 << RS1_SHIFT) & RS1_MASK) == (rs1 << RS1_SHIFT) : this; |
f011bf910f34
[SPARC] Fix sign extension, add debug messages to assertions in Assembler, add FSMULD , Entering frame is now possible with > 2k framesize
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16927
diff
changeset
|
821 assert ((i << I_SHIFT) & I_MASK) == (i << I_SHIFT) : this; |
f011bf910f34
[SPARC] Fix sign extension, add debug messages to assertions in Assembler, add FSMULD , Entering frame is now possible with > 2k framesize
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16927
diff
changeset
|
822 assert ((x << X_SHIFT) & X_MASK) == (x << X_SHIFT) : this; |
f011bf910f34
[SPARC] Fix sign extension, add debug messages to assertions in Assembler, add FSMULD , Entering frame is now possible with > 2k framesize
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16927
diff
changeset
|
823 assert ((immAsi << IMM_ASI_SHIFT) & IMM_ASI_MASK) == (immAsi << IMM_ASI_SHIFT) : this; |
f011bf910f34
[SPARC] Fix sign extension, add debug messages to assertions in Assembler, add FSMULD , Entering frame is now possible with > 2k framesize
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16927
diff
changeset
|
824 assert ((rs2 << RS2_SHIFT) & RS2_MASK) == (rs2 << RS2_SHIFT) : this; |
f011bf910f34
[SPARC] Fix sign extension, add debug messages to assertions in Assembler, add FSMULD , Entering frame is now possible with > 2k framesize
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16927
diff
changeset
|
825 assert isSimm13(simm13) : this; |
f011bf910f34
[SPARC] Fix sign extension, add debug messages to assertions in Assembler, add FSMULD , Entering frame is now possible with > 2k framesize
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16927
diff
changeset
|
826 } |
f011bf910f34
[SPARC] Fix sign extension, add debug messages to assertions in Assembler, add FSMULD , Entering frame is now possible with > 2k framesize
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16927
diff
changeset
|
827 |
f011bf910f34
[SPARC] Fix sign extension, add debug messages to assertions in Assembler, add FSMULD , Entering frame is now possible with > 2k framesize
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16927
diff
changeset
|
828 @Override |
f011bf910f34
[SPARC] Fix sign extension, add debug messages to assertions in Assembler, add FSMULD , Entering frame is now possible with > 2k framesize
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16927
diff
changeset
|
829 public String toString() { |
f011bf910f34
[SPARC] Fix sign extension, add debug messages to assertions in Assembler, add FSMULD , Entering frame is now possible with > 2k framesize
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16927
diff
changeset
|
830 return String.format("%s: [rd: 0x%x, op3: 0x%x, rs1: 0x%x, i: 0x%x, x: 0x%x, immAsi: 0x%x, rs2: 0x%x, simm13: 0x%x", getClass().getName(), rd, op3, rs1, i, x, immAsi, rs2, simm13); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
831 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
832 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
833 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
834 // @formatter:off |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
835 /** |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
836 * Instruction format for Loads, Stores and Misc. |
15345 | 837 * |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
838 * | 11 | rd | op3 | rs1 | i| imm_asi | rs2 | |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
839 * | 11 | rd | op3 | rs1 | i| simm13 | |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
840 * |31 30|29 25|24 19|18 14|13|12 5|4 0| |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
841 */ |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
842 // @formatter:on |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
843 public static class Fmt11 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
844 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
845 private static final int OP_SHIFT = 30; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
846 private static final int RD_SHIFT = 25; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
847 private static final int OP3_SHIFT = 19; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
848 private static final int RS1_SHIFT = 14; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
849 private static final int I_SHIFT = 13; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
850 private static final int IMM_ASI_SHIFT = 5; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
851 private static final int RS2_SHIFT = 0; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
852 private static final int SIMM13_SHIFT = 0; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
853 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
854 // @formatter:off |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
855 private static final int OP_MASK = 0b11000000000000000000000000000000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
856 private static final int RD_MASK = 0b00111110000000000000000000000000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
857 private static final int OP3_MASK = 0b00000001111110000000000000000000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
858 private static final int RS1_MASK = 0b00000000000001111100000000000000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
859 private static final int I_MASK = 0b00000000000000000010000000000000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
860 private static final int IMM_ASI_MASK = 0b00000000000000000001111111100000; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
861 private static final int RS2_MASK = 0b00000000000000000000000000011111; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
862 private static final int SIMM13_MASK = 0b00000000000000000001111111111111; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
863 // @formatter:on |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
864 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
865 private int rd; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
866 private int op3; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
867 private int rs1; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
868 private int i; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
869 private int immAsi; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
870 private int rs2; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
871 private int simm13; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
872 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
873 private Fmt11(int rd, int op3, int rs1, int i, int immAsi, int rs2, int simm13) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
874 this.rd = rd; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
875 this.op3 = op3; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
876 this.rs1 = rs1; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
877 this.i = i; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
878 this.immAsi = immAsi; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
879 this.rs2 = rs2; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
880 this.simm13 = simm13; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
881 verify(); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
882 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
883 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
884 public Fmt11(Op3s op3, Register rs1, Register rs2, Register rd) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
885 this(rd.encoding(), op3.getValue(), rs1.encoding(), 0, 0, rs2.encoding(), 0); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
886 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
887 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
888 public Fmt11(Op3s op3, Register rs1, int simm13, Register rd) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
889 this(rd.encoding(), op3.getValue(), rs1.encoding(), 1, 0, 0, simm13); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
890 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
891 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
892 public Fmt11(Op3s op3, Register rs1, Register rd) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
893 this(rd.encoding(), op3.getValue(), rs1.encoding(), 0, 0, 0, 0); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
894 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
895 |
10792 | 896 /** |
14013 | 897 * Special constructor for {@link Casa} and {@link Casxa}. |
10792 | 898 */ |
899 public Fmt11(Op3s op3, Register rs1, Register rs2, Register rd, Asi asi) { | |
900 this(rd.encoding(), op3.getValue(), rs1.encoding(), asi.isValid() ? 0 : 1, asi.isValid() ? asi.getValue() : 0, rs2.encoding(), 0); | |
901 assert asi.isValid() : "default asi is not supported yet"; | |
902 } | |
903 | |
904 /** | |
905 * Special constructor for loads and stores. | |
906 */ | |
907 public Fmt11(Op3s op3, SPARCAddress addr, Register rd) { | |
908 this(rd.encoding(), op3.getValue(), addr.getBase().encoding(), 0, 0, 0, 0); | |
14013 | 909 decodeAddress(addr); |
910 } | |
911 | |
912 /** | |
913 * Special constructor for {@link Prefetch} and Prefetcha. | |
914 */ | |
915 public Fmt11(Op3s op3, SPARCAddress addr, Prefetch.Fcn fcn) { | |
916 this(fcn.getValue(), op3.getValue(), addr.getBase().encoding(), 0, 0, 0, 0); | |
917 decodeAddress(addr); | |
918 } | |
919 | |
920 private void decodeAddress(SPARCAddress addr) { | |
10792 | 921 if (!addr.getIndex().equals(Register.None)) { |
922 this.rs2 = addr.getIndex().encoding(); | |
923 } else { | |
924 this.simm13 = addr.getDisplacement(); | |
925 this.i = 1; | |
926 } | |
927 verify(); | |
928 } | |
929 | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
930 private int getInstructionBits() { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
931 if (i == 0) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
932 return Ops.LdstOp.getValue() << OP_SHIFT | rd << RD_SHIFT | op3 << OP3_SHIFT | rs1 << RS1_SHIFT | i << I_SHIFT | immAsi << IMM_ASI_SHIFT | rs2 << RS2_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
933 } else { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
934 return Ops.LdstOp.getValue() << OP_SHIFT | rd << RD_SHIFT | op3 << OP3_SHIFT | rs1 << RS1_SHIFT | i << I_SHIFT | ((simm13 << SIMM13_SHIFT) & SIMM13_MASK); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
935 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
936 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
937 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
938 public static Fmt11 read(SPARCAssembler masm, int pos) { |
14031
390c4b742890
made com.oracle.graal.asm.Buffer non-public and a private field in AbstractAssembler
twisti
parents:
14013
diff
changeset
|
939 final int inst = masm.getInt(pos); |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
940 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
941 // Make sure it's the right instruction: |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
942 final int op = (inst & OP_MASK) >> OP_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
943 assert op == Ops.LdstOp.getValue(); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
944 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
945 // Get the instruction fields: |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
946 final int rd = (inst & RD_MASK) >> RD_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
947 final int op3 = (inst & OP3_MASK) >> OP3_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
948 final int rs1 = (inst & RS1_MASK) >> RS1_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
949 final int i = (inst & I_MASK) >> I_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
950 final int immAsi = (inst & IMM_ASI_MASK) >> IMM_ASI_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
951 final int rs2 = (inst & RS2_MASK) >> RS2_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
952 final int simm13 = (inst & SIMM13_MASK) >> SIMM13_SHIFT; |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
953 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
954 return new Fmt11(rd, op3, rs1, i, immAsi, rs2, simm13); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
955 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
956 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
957 public void write(SPARCAssembler masm, int pos) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
958 verify(); |
14031
390c4b742890
made com.oracle.graal.asm.Buffer non-public and a private field in AbstractAssembler
twisti
parents:
14013
diff
changeset
|
959 masm.emitInt(getInstructionBits(), pos); |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
960 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
961 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
962 public void emit(SPARCAssembler masm) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
963 verify(); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
964 masm.emitInt(getInstructionBits()); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
965 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
966 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
967 public void verify() { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
968 assert ((rd << RD_SHIFT) & RD_MASK) == (rd << RD_SHIFT); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
969 assert ((op3 << OP3_SHIFT) & OP3_MASK) == (op3 << OP3_SHIFT); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
970 assert ((rs1 << RS1_SHIFT) & RS1_MASK) == (rs1 << RS1_SHIFT); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
971 assert ((i << I_SHIFT) & I_MASK) == (i << I_SHIFT); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
972 assert ((immAsi << IMM_ASI_SHIFT) & IMM_ASI_MASK) == (immAsi << IMM_ASI_SHIFT); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
973 assert ((rs2 << RS2_SHIFT) & RS2_MASK) == (rs2 << RS2_SHIFT); |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
974 assert isSimm13(simm13) : String.format("simm13: %d (%x)", simm13, simm13); |
9844
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
975 } |
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
976 } |
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
977 |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
978 public static class Fmt4a { |
10459 | 979 |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
980 public Fmt4a(SPARCAssembler masm, int op, int op3, int cc, int rs1, int regOrImmediate, int rd) { |
10459 | 981 assert op == 2; |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
982 assert rs1 >= 0 && rs1 < 0x20; |
10459 | 983 assert rd >= 0 && rd < 0x10; |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
984 |
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
985 masm.emitInt(op << 30 | rd << 25 | op3 << 19 | rs1 << 14 | ((cc << 11) & 0x000001800) | regOrImmediate); |
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
986 } |
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
987 } |
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
988 |
11233 | 989 // @formatter:off |
990 /** | |
991 * Instruction format for Movcc. | |
15345 | 992 * |
11233 | 993 * | 10 | rd | op3 |cc2| cond | i|cc1|cc0| - | rs2 | |
994 * | 10 | rd | op3 |cc2| cond | i|cc1|cc0| simm11 | | |
995 * |31 30|29 25|24 19| 18|17 14|13| 12| 11|10 5|4 0| | |
996 */ | |
997 // @formatter:on | |
10468 | 998 public static class Fmt10c { |
999 | |
1000 private static final int OP_SHIFT = 30; | |
1001 private static final int RD_SHIFT = 25; | |
1002 private static final int OP3_SHIFT = 19; | |
1003 private static final int CC2_SHIFT = 18; | |
1004 private static final int COND_SHIFT = 14; | |
1005 private static final int I_SHIFT = 13; | |
11233 | 1006 private static final int CC1_SHIFT = 12; |
1007 private static final int CC0_SHIFT = 11; | |
10468 | 1008 private static final int RS2_SHIFT = 0; |
1009 private static final int SIMM11_SHIFT = 0; | |
1010 | |
1011 // @formatter:off | |
1012 private static final int OP_MASK = 0b11000000000000000000000000000000; | |
1013 private static final int RD_MASK = 0b00111110000000000000000000000000; | |
1014 private static final int OP3_MASK = 0b00000001111110000000000000000000; | |
1015 private static final int CC2_MASK = 0b00000000000001000000000000000000; | |
1016 private static final int COND_MASK = 0b00000000000000111100000000000000; | |
1017 private static final int I_MASK = 0b00000000000000000010000000000000; | |
11233 | 1018 private static final int CC1_MASK = 0b00000000000000000001000000000000; |
1019 private static final int CC0_MASK = 0b00000000000000000000100000000000; | |
10468 | 1020 private static final int RS2_MASK = 0b00000000000000000000000000011111; |
1021 private static final int SIMM11_MASK = 0b00000000000000000000011111111111; | |
1022 // @formatter:on | |
1023 | |
1024 private int rd; | |
1025 private int op3; | |
1026 private int cond; | |
1027 private int i; | |
1028 private int cc; | |
1029 private int rs2; | |
1030 private int simm11; | |
1031 | |
1032 private Fmt10c(int rd, int op3, int cond, int i, int cc, int rs2, int simm11) { | |
1033 this.rd = rd; | |
1034 this.op3 = op3; | |
1035 this.cond = cond; | |
1036 this.i = i; | |
1037 this.cc = cc; | |
1038 this.rs2 = rs2; | |
1039 this.simm11 = simm11; | |
1040 verify(); | |
1041 } | |
1042 | |
1043 public Fmt10c(Op3s op3, ConditionFlag cond, CC cc, Register rs2, Register rd) { | |
11233 | 1044 this(rd.encoding(), op3.getValue(), cond.getValue(), 0, getCC(cc), rs2.encoding(), 0); |
10468 | 1045 } |
1046 | |
1047 public Fmt10c(Op3s op3, ConditionFlag cond, CC cc, int simm11, Register rd) { | |
11233 | 1048 this(rd.encoding(), op3.getValue(), cond.getValue(), 1, getCC(cc), 0, simm11); |
1049 } | |
1050 | |
1051 /** | |
1052 * Converts regular CC codes to CC codes used by Movcc instructions. | |
1053 */ | |
1054 private static int getCC(CC cc) { | |
1055 switch (cc) { | |
1056 case Icc: | |
1057 case Xcc: | |
1058 return 0b100 + cc.getValue(); | |
1059 default: | |
1060 return cc.getValue(); | |
1061 } | |
10468 | 1062 } |
1063 | |
1064 private int getInstructionBits() { | |
1065 if (i == 0) { | |
11233 | 1066 return Ops.ArithOp.getValue() << OP_SHIFT | rd << RD_SHIFT | op3 << OP3_SHIFT | ((cc << (CC2_SHIFT - 2)) & CC2_MASK) | cond << COND_SHIFT | i << I_SHIFT | |
1067 ((cc << (CC1_SHIFT - 1)) & CC1_MASK) | ((cc << CC0_SHIFT) & CC0_MASK) | rs2 << RS2_SHIFT; | |
10468 | 1068 } else { |
11233 | 1069 return Ops.ArithOp.getValue() << OP_SHIFT | rd << RD_SHIFT | op3 << OP3_SHIFT | ((cc << (CC2_SHIFT - 2)) & CC2_MASK) | cond << COND_SHIFT | i << I_SHIFT | |
1070 ((cc << (CC1_SHIFT - 1)) & CC1_MASK) | ((cc << CC0_SHIFT) & CC0_MASK) | ((simm11 << SIMM11_SHIFT) & SIMM11_MASK); | |
10468 | 1071 } |
1072 } | |
1073 | |
1074 public static Fmt10c read(SPARCAssembler masm, int pos) { | |
14031
390c4b742890
made com.oracle.graal.asm.Buffer non-public and a private field in AbstractAssembler
twisti
parents:
14013
diff
changeset
|
1075 final int inst = masm.getInt(pos); |
10468 | 1076 |
1077 // Make sure it's the right instruction: | |
1078 final int op = (inst & OP_MASK) >> OP_SHIFT; | |
1079 assert op == Ops.ArithOp.getValue(); | |
1080 | |
1081 // Get the instruction fields: | |
1082 final int rd = (inst & RD_MASK) >> RD_SHIFT; | |
1083 final int op3 = (inst & OP3_MASK) >> OP3_SHIFT; | |
1084 final int cond = (inst & COND_MASK) >> COND_SHIFT; | |
1085 final int i = (inst & I_MASK) >> I_SHIFT; | |
11233 | 1086 final int cc = (inst & CC2_MASK) >> CC2_SHIFT | (inst & CC1_MASK) >> CC1_SHIFT | (inst & CC0_MASK) >> CC0_SHIFT; |
10468 | 1087 final int rs2 = (inst & RS2_MASK) >> RS2_SHIFT; |
1088 final int simm11 = (inst & SIMM11_MASK) >> SIMM11_SHIFT; | |
1089 | |
1090 return new Fmt10c(rd, op3, cond, i, cc, rs2, simm11); | |
1091 } | |
1092 | |
1093 public void write(SPARCAssembler masm, int pos) { | |
1094 verify(); | |
14031
390c4b742890
made com.oracle.graal.asm.Buffer non-public and a private field in AbstractAssembler
twisti
parents:
14013
diff
changeset
|
1095 masm.emitInt(getInstructionBits(), pos); |
10468 | 1096 } |
1097 | |
1098 public void emit(SPARCAssembler masm) { | |
1099 verify(); | |
1100 masm.emitInt(getInstructionBits()); | |
1101 } | |
1102 | |
1103 public void verify() { | |
1104 assert ((rd << RD_SHIFT) & RD_MASK) == (rd << RD_SHIFT); | |
1105 assert ((op3 << OP3_SHIFT) & OP3_MASK) == (op3 << OP3_SHIFT); | |
1106 assert ((cond << COND_SHIFT) & COND_MASK) == (cond << COND_SHIFT); | |
1107 assert ((i << I_SHIFT) & I_MASK) == (i << I_SHIFT); | |
1108 // assert cc >= 0 && cc < 0x8; | |
1109 assert ((rs2 << RS2_SHIFT) & RS2_MASK) == (rs2 << RS2_SHIFT); | |
11233 | 1110 assert isSimm11(simm11); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1111 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1112 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1113 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1114 public static class Fmt4d { |
10459 | 1115 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1116 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
|
1117 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
|
1118 assert op3 >= 0 && op3 < 0x40; |
10459 | 1119 assert cc >= 0 && cc < 0x8; |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1120 assert cond >= 0 && cond < 0x10; |
10459 | 1121 assert rd >= 0 && rd < 0x20; |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1122 |
9816
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1123 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
|
1124 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1125 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1126 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1127 public static class Fmt5a { |
10459 | 1128 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1129 public Fmt5a(SPARCAssembler masm, int op, int op3, int op5, int rs1, int rs2, int rs3, int rd) { |
10459 | 1130 assert op == 2; |
1131 assert op3 >= 0 && op3 < 0x40; | |
1132 assert op5 >= 0 && op5 < 0x10; | |
1133 assert rs1 >= 0 && rs1 < 0x20; | |
1134 assert rs2 >= 0 && rs2 < 0x20; | |
1135 assert rs3 >= 0 && rs3 < 0x20; | |
1136 assert rd >= 0 && rd < 0x20; | |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1137 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1138 masm.emitInt(op << 30 | rd << 25 | op3 << 19 | rs1 << 14 | rs3 << 9 | op5 << 5 | rs2); |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1139 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1140 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1141 |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1142 public static final int ImmedTrue = 0x00002000; |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1143 |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1144 public enum Ops { |
11233 | 1145 // @formatter:off |
1146 | |
1147 BranchOp(0b00), | |
1148 CallOp(0b01), | |
1149 ArithOp(0b10), | |
1150 LdstOp(0b11); | |
1151 | |
1152 // @formatter:on | |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1153 |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1154 private final int value; |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1155 |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1156 private Ops(int value) { |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1157 this.value = value; |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1158 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1159 |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1160 public int getValue() { |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1161 return value; |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1162 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1163 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1164 |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1165 public enum Op2s { |
11233 | 1166 // @formatter:off |
1167 | |
1168 Illtrap(0b000), | |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
1169 Bpr (0b011), |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
1170 Fb (0b110), |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
1171 Fbp (0b101), |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
1172 Br (0b010), |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
1173 Bp (0b001), |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
1174 Cb (0b111), |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
1175 Sethi (0b100); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
1176 |
11233 | 1177 |
1178 // @formatter:on | |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1179 |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1180 private final int value; |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1181 |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1182 private Op2s(int value) { |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1183 this.value = value; |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1184 } |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1185 |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1186 public int getValue() { |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1187 return value; |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1188 } |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
1189 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
1190 public static Op2s byValue(int value) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
1191 for (Op2s op : values()) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
1192 if (op.getValue() == value) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
1193 return op; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
1194 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
1195 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
1196 return null; |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
1197 } |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1198 } |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
1199 |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1200 public enum Op3s { |
11233 | 1201 // @formatter:off |
1202 | |
9816
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1203 Add(0x00, "add"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1204 And(0x01, "and"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1205 Or(0x02, "or"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1206 Xor(0x03, "xor"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1207 Sub(0x04, "sub"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1208 Andn(0x05, "andn"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1209 Orn(0x06, "orn"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1210 Xnor(0x07, "xnor"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1211 Addc(0x08, "addc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1212 Mulx(0x09, "mulx"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1213 Umul(0x0A, "umul"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1214 Smul(0x0B, "smul"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1215 Subc(0x0C, "subc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1216 Udivx(0x0D, "udivx"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1217 Udiv(0x0E, "udiv"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1218 Sdiv(0x0F, "sdiv"), |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1219 |
9816
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1220 Addcc(0x10, "addcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1221 Andcc(0x11, "andcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1222 Orcc(0x12, "orcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1223 Xorcc(0x13, "xorcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1224 Subcc(0x14, "subcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1225 Andncc(0x15, "andncc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1226 Orncc(0x16, "orncc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1227 Xnorcc(0x17, "xnorcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1228 Addccc(0x18, "addccc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1229 Mulxcc(0x19, "mulxcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1230 Umulcc(0x1A, "umulcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1231 Smulcc(0x1B, "smulcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1232 Subccc(0x1C0, "subccc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1233 Udivcc(0x1E, "udivcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1234 Sdivcc(0x1F, "sdivcc"), |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1235 |
9816
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1236 Taddcc(0x20, "taddcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1237 Tsubcc(0x21, "tsubcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1238 Taddcctv(0x22, "taddcctv"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1239 Tsubcctv(0x23, "tsubcctv"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1240 Mulscc(0x24, "mulscc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1241 Sll(0x25, "sll"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1242 Sllx(0x25, "sllx"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1243 Srl(0x26, "srl"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1244 Srlx(0x26, "srlx"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1245 Sra(0x27, "srax"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1246 Srax(0x27, "srax"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1247 Rdreg(0x28, "rdreg"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1248 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
|
1249 |
9816
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1250 Flushw(0x2B, "flushw"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1251 Movcc(0x2C, "movcc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1252 Sdivx(0x2D, "sdivx"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1253 Popc(0x2E, "popc"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1254 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
|
1255 |
9816
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1256 Sir(0x30, "sir"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1257 Wrreg(0x30, "wrreg"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1258 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
|
1259 |
15345 | 1260 Fpop1(0b11_0100, "fpop1"), |
9816
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1261 Fpop2(0x35, "fpop2"), |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
1262 Impdep1(0b11_0110, "impdep1"), |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
1263 Impdep2(0b11_0111, "impdep2"), |
9816
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1264 Jmpl(0x38, "jmpl"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1265 Rett(0x39, "rett"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1266 Trap(0x3a, "trap"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1267 Flush(0x3b, "flush"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1268 Save(0x3c, "save"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1269 Restore(0x3d, "restore"), |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
1270 Done(0x3e, "done"), |
9825
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
1271 Retry(0x3e, "retry"), |
10792 | 1272 Casa(0b111100, "casa"), |
1273 Casxa(0b111110, "casxa"), | |
14013 | 1274 Prefetch(0b101101, "prefetch"), |
1275 Prefetcha(0b111101, "prefetcha"), | |
9825
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
1276 |
16635
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1277 Lduw (0b00_0000, "lduw"), |
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1278 Ldub (0b00_0001, "ldub"), |
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1279 Lduh (0b00_0010, "lduh"), |
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1280 Stw (0b00_0100, "stw"), |
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1281 Stb (0b00_0101, "stb"), |
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1282 Sth (0b00_0110, "sth"), |
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1283 Ldsw (0b00_1000, "ldsw"), |
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1284 Ldsb (0b00_1001, "ldsb"), |
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1285 Ldsh (0b00_1010, "ldsh"), |
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1286 Ldx (0b00_1011, "ldx"), |
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1287 Stx (0b00_1110, "stx"), |
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1288 |
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1289 Ldf (0b10_0000, "ldf"), |
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1290 Ldfsr (0b10_0001, "ldfsr"), |
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1291 Ldaf (0b10_0010, "ldaf"), |
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1292 Lddf (0b10_0011, "lddf"), |
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1293 Stf (0b10_0100, "stf"), |
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1294 Stfsr (0b10_0101, "stfsr"), |
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1295 Staf (0x10_0110, "staf"), |
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1296 Stdf (0b10_0111, "stdf"), |
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1297 |
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1298 Fcmp (0b11_0101, "fcmp"), |
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1299 |
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1300 Ldxa (0b01_1011, "ldxa"), |
d4fe35867b95
[SPARC] Reformatting some enum constants to match better to the SPARC 2011 Architecture manual
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16633
diff
changeset
|
1301 Lduwa (0b01_0000, "lduwa"); |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1302 |
11233 | 1303 // @formatter:on |
1304 | |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1305 private final int value; |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1306 private final String operator; |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1307 |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1308 private Op3s(int value, String op) { |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1309 this.value = value; |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1310 this.operator = op; |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1311 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1312 |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1313 public int getValue() { |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1314 return value; |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1315 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1316 |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1317 public String getOperator() { |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1318 return operator; |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1319 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1320 } |
7740
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
1321 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1322 public enum Op5s { |
11233 | 1323 // @formatter:off |
1324 | |
1325 Fmadds(0x1), | |
1326 Fmaddd(0x2), | |
1327 Fmsubs(0x5), | |
1328 Fmsubd(0x6), | |
1329 Fnmsubs(0x9), | |
1330 Fnmsubd(0xA), | |
1331 Fnmadds(0xD), | |
1332 Fnmaddd(0xE); | |
1333 | |
1334 // @formatter:on | |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1335 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1336 private final int value; |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1337 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1338 private Op5s(int value) { |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1339 this.value = value; |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1340 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1341 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1342 public int getValue() { |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1343 return value; |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1344 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1345 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1346 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1347 public enum Opfs { |
11233 | 1348 // @formatter:off |
1349 | |
15345 | 1350 Fmovs(0b0_0000_0001, "fmovs"), |
1351 Fmovd(0b0_0000_0010, "fmovd"), | |
1352 Fmovq(0b0_0000_0011, "fmovq"), | |
11233 | 1353 Fnegs(0x05, "fnegs"), |
1354 Fnegd(0x06, "fnegd"), | |
1355 Fnegq(0x07, "fnegq"), | |
1356 Fabss(0x09, "fabss"), | |
1357 Fabsd(0x0A, "fabsd"), | |
1358 Fabsq(0x0B, "fabsq"), | |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1359 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1360 // start VIS1 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1361 Edge8cc(0x0, "edge8cc"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1362 Edge8n(0x1, "edge8n"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1363 Edge8lcc(0x2, "edge8lcc"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1364 Edge8ln(0x3, "edge8ln"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1365 Edge16cc(0x4, "edge16cc"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1366 Edge16n(0x5, "edge16n"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1367 Edge16lcc(0x6, "edge16lcc"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1368 Edge16ln(0x7, "edge16ln"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1369 Edge32cc(0x8, "edge32cc"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1370 Edge32n(0x9, "edge32n"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1371 Edge32lcc(0xA, "edge32lcc"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1372 Edge32ln(0xB, "edge32ln"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1373 Array8(0x10, "array8"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1374 Array16(0x12, "array16"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1375 Array32(0x14, "array32"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1376 AlignAddress(0x18, "alignaddress"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1377 AlignAddressLittle(0x1A, "alignaddress_little"), |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1378 Fpcmple16(0x20, "fpcmple16"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1379 Fpcmpne16(0x22, "fpcmpne16"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1380 Fpcmple32(0x24, "fpcmple32"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1381 Fpcmpne32(0x26, "fpcmpne32"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1382 Fpcmpgt16(0x28, "fpcmpgt16"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1383 Fpcmpeq16(0x2A, "fpcmpeq16"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1384 Fpcmpgt32(0x2C, "fpcmpgt32"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1385 Fpcmpeq32(0x2E, "fpcmpeq32"), |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1386 Fmul8x16(0x31, "fmul8x16"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1387 Fmul8x16au(0x33, "fmul8x16au"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1388 Fmul8x16al(0x35, "fmul8x16al"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1389 Fmul8sux16(0x36, "fmul8sux16"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1390 Fmul8ulx16(0x37, "fmul8ulx16"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1391 Fmuld8sux16(0x38, "fmuld8sux16"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1392 Fmuld8ulx16(0x39, "fmuld8ulx16"), |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1393 Fpack32(0x3A, "fpack32"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1394 Fpack16(0x3B, "fpack16"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1395 Fpackfix(0x3D, "fpackfix"), |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1396 Faligndatag(0x48, "faligndata"), |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1397 Fpmerge(0x4B, "fpmerge"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1398 Fpadd16(0x50, "fpadd16"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1399 Fpadd16s(0x51, "fpadd16s"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1400 Fpadd32(0x52, "fpadd32"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1401 Fpadd32s(0x53, "fpadd32s"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1402 Fpsub16(0x54, "fpadd16"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1403 Fpsub16s(0x55, "fpadd16s"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1404 Fpsub32(0x56, "fpadd32"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1405 Fpsub32s(0x57, "fpadd32s"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1406 Fzerod(0x60, "fzerod"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1407 Fzeros(0x61, "fzeros"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1408 Fnot2d(0x66, "fnot1d"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1409 Fnot2s(0x67, "fnot1s"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1410 Fnot1d(0x6A, "fnot1d"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1411 Fnot1s(0x6B, "fnot1s"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1412 Fsrc1d(0x74, "fsrc1d"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1413 Fsrc1s(0x75, "fsrc1s"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1414 Fsrc2d(0x78, "fsrc2d"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1415 Fsrc2s(0x79, "fsrc2s"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1416 Foned(0x7E, "foned"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1417 Fones(0x7F, "fones"), |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
1418 Fandd(0b0_0111_0000, "fandd"), |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
1419 Fands(0b0_0111_0001, "fands"), |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1420 // end VIS1 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1421 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1422 // start VIS2 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1423 Bmask(0x19, "bmask"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1424 Bshuffle(0x4c, "bshuffle"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1425 // end VIS2 only |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1426 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1427 // start VIS3 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1428 Addxc(0x11, "addxc"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1429 Addxccc(0x13, "addxccc"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1430 Cmask8(0x1B, "cmask8"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1431 Cmask16(0x1D, "cmask16"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1432 Cmask32(0x1F, "cmask32"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1433 Fmean16(0x40, "fmean16"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1434 Fnadds(0x51, "fnadds"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1435 Fnaddd(0x52, "fnaddd"), |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1436 Fnmuls(0x59, "fnmuls"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1437 Fnmuld(0x5A, "fnmuld"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1438 Fnsmuld(0x79, "fnsmuld"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1439 Fnhadds(0x71, "fnhadds"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1440 Fnhaddd(0x72, "fnhaddd"), |
16321
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1441 Movdtox(0x110, "movdtox"), |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1442 Movstouw(0x111, "movstouw"), |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1443 Movstosw(0x113, "movstosw"), |
16319
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
1444 Movxtod(0x118, "movxtod"), |
16927
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
1445 Movwtos(0b1_0001_1001, "movwtos"), |
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
1446 UMulxhi(0b0_0001_0110, "umulxhi"), |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1447 // end VIS3 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1448 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1449 // start CAMMELLIA |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1450 CammelliaFl(0x13C, "cammelia_fl"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1451 CammelliaFli(0x13D, "cammellia_fli"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1452 // end CAMMELLIA |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1453 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1454 // start CRYPTO |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1455 Crc32c(0x147, "crc32c"), |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1456 // end CRYPTO |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1457 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1458 // start OSA 2011 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1459 Fpadd64(0x44, "fpadd64"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1460 Fpsub64(0x46, "fpsub64"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1461 Fpadds16(0x58, "fpadds16"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1462 Fpadds16s(0x59, "fpadds16"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1463 Fpadds32(0x5A, "fpadds32"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1464 Fpadds32s(0x5B, "fpadds32s"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1465 Fpsubs16(0x5C, "fpsubs16"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1466 Fpsubs16s(0x5D, "fpsubs16s"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1467 Fpsubs32(0x5E, "fpsubs32"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1468 Fpsubs32s(0x5F, "fpsubs32s"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1469 Fpcmpne8(0x122, "fpcmpne8"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1470 Fpcmpeq8(0x12C, "fpcmpeq8"), |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1471 // end OSA 2011 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1472 |
9817
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
1473 Fadds(0x41, "fadds"), |
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
1474 Faddd(0x42, "faddd"), |
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
1475 Faddq(0x43, "faddq"), |
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
1476 Fsubs(0x45, "fsubs"), |
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
1477 Fsubd(0x46, "fsubd"), |
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
1478 Fsubq(0x47, "fsubq"), |
9825
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
1479 Fmuls(0x49, "fmuls"), |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
1480 Fmuld(0x4A, "fmuld"), |
16317
4b24d2019286
Fixing issues with fdiv
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16315
diff
changeset
|
1481 Fdivs(0x4D, "fdivs"), |
4b24d2019286
Fixing issues with fdiv
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16315
diff
changeset
|
1482 Fdivd(0x4E, "fdivd"), |
4b24d2019286
Fixing issues with fdiv
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16315
diff
changeset
|
1483 Fdivq(0x4F, "fdivq"), |
9825
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
1484 |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
1485 Fsqrts(0x29, "fsqrts"), |
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
1486 Fsqrtd(0x2A, "fsqrtd"), |
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
1487 Fsqrtq(0x2B, "fsqrtq"), |
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
1488 |
9825
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
1489 Fsmuld(0x69, "fsmuld"), |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
1490 Fmulq(0x6B, "fmulq"), |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
1491 Fdmuldq(0x6E, "fdmulq"), |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
1492 |
9817
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
1493 Fstoi(0xD1, "fstoi"), |
16315
b955d649fca8
Fixing BC_i2f, BC_i2c, BC_fadd
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16313
diff
changeset
|
1494 Fdtoi(0xD2, "fdtoi"), |
16321
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1495 Fstox(0x81, "fstox"), |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1496 Fdtox(0x82, "fdtox"), |
16319
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
1497 Fxtos(0x84, "fxtos"), |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
1498 Fxtod(0x88, "fxtod"), |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
1499 Fxtoq(0x8C, "fxtoq"), |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
1500 Fitos(0xC4, "fitos"), |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
1501 Fdtos(0xC6, "fdtos"), |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
1502 Fitod(0xC8, "fitod"), |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
1503 Fstod(0xC9, "fstod"), |
16321
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1504 Fitoq(0xCC, "fitoq"), |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1505 |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1506 |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1507 Fcmps(0x51, "fcmps"), |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1508 Fcmpd(0x52, "fcmpd"), |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1509 Fcmpq(0x53, "fcmpq"), |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1510 |
16319
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
1511 ; |
11233 | 1512 // @formatter:on |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1513 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1514 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
|
1515 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
|
1516 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1517 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
|
1518 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
|
1519 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
|
1520 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1521 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1522 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
|
1523 return value; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1524 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1525 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1526 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
|
1527 return operator; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1528 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1529 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1530 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1531 public enum MembarMask { |
11233 | 1532 // @formatter:off |
1533 | |
1534 StoreStore(1 << 3, "storestore"), | |
1535 LoadStore(1 << 2, "loadstore"), | |
1536 StoreLoad(1 << 1, "storeload"), | |
1537 LoadLoad(1 << 0, "loadload"), | |
1538 Sync(1 << 6, "sync"), | |
1539 MemIssue(1 << 5, "memissue"), | |
1540 LookAside(1 << 4, "lookaside"); | |
1541 | |
1542 // @formatter:on | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1543 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1544 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
|
1545 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
|
1546 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1547 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
|
1548 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
|
1549 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
|
1550 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1551 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1552 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
|
1553 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
|
1554 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1555 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1556 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
|
1557 return operator; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1558 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1559 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1560 |
16303
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
1561 /** |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
1562 * Condition Codes to use for instruction |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
1563 */ |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1564 public enum CC { |
11233 | 1565 // @formatter:off |
16303
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
1566 /** |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
1567 * Condition is considered as 32bit operation condition |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
1568 */ |
11233 | 1569 Icc(0b00, "icc"), |
16303
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
1570 /** |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
1571 * Condition is considered as 64bit operation condition |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
1572 */ |
11233 | 1573 Xcc(0b10, "xcc"), |
12464
59ce8d220e11
replaced HotSpotGraalRuntime.wordKind with an access via the host backend (GRAAL-363)
Doug Simon <doug.simon@oracle.com>
parents:
11233
diff
changeset
|
1574 Ptrcc(getHostWordKind() == Kind.Long ? Xcc.getValue() : Icc.getValue(), "ptrcc"), |
11233 | 1575 Fcc0(0b00, "fcc0"), |
1576 Fcc1(0b01, "fcc1"), | |
1577 Fcc2(0b10, "fcc2"), | |
1578 Fcc3(0b11, "fcc3"); | |
1579 | |
1580 // @formatter:on | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1581 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1582 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
|
1583 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
|
1584 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1585 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
|
1586 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
|
1587 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
|
1588 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1589 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1590 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
|
1591 return value; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1592 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1593 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1594 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
|
1595 return operator; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1596 } |
7740
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
1597 } |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
1598 |
16321
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1599 public enum FCond { |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1600 Fba(0x8, "fba"), |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1601 Fbn(0x0, "fbn"), |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1602 Fbu(0x7, "fbu"), |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1603 Fbg(0x6, "fbg"), |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1604 Fbug(0x5, "fbug"), |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1605 Fbl(0x4, "fbl"), |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1606 Fbul(0x3, "fbul"), |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1607 Fblg(0x2, "fblg"), |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1608 Fbne(0x1, "fbne"), |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1609 Fbe(0x9, "fbe"), |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1610 Fbue(0xA, "fbue"), |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1611 Fbge(0xB, "fbge"), |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1612 Fbuge(0xC, "fbuge"), |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1613 Fble(0xD, "fble"), |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1614 Fbule(0xE, "fbule"), |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1615 Fbo(0xF, "fbo"); |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1616 private final int value; |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1617 private final String operator; |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1618 |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1619 private FCond(int value, String op) { |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1620 assert value >= 0 && value < 1 << 5 : value; // 4 bits |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1621 this.value = value; |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1622 this.operator = op; |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1623 } |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1624 |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1625 public int getValue() { |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1626 return value; |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1627 } |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1628 |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1629 public String getOperator() { |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1630 return operator; |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1631 } |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1632 } |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
1633 |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
1634 public enum ConditionFlag { |
11233 | 1635 // @formatter:off |
1636 | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1637 // 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
|
1638 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
|
1639 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
|
1640 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
|
1641 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
|
1642 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
|
1643 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
|
1644 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
|
1645 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
|
1646 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
|
1647 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
|
1648 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
|
1649 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
|
1650 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
|
1651 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
|
1652 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
|
1653 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
|
1654 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
|
1655 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
|
1656 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1657 // for integers |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1658 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
|
1659 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
|
1660 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
|
1661 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
|
1662 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
|
1663 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
|
1664 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
|
1665 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
|
1666 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
|
1667 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
|
1668 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
|
1669 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
|
1670 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
|
1671 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
|
1672 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
|
1673 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
|
1674 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
|
1675 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
|
1676 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
|
1677 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
|
1678 |
11233 | 1679 // @formatter:on |
1680 | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1681 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
|
1682 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
|
1683 |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
1684 private ConditionFlag(int value, String op) { |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1685 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
|
1686 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
|
1687 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1688 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1689 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
|
1690 return value; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1691 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1692 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1693 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
|
1694 return operator; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1695 } |
16927
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
1696 |
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
1697 public ConditionFlag negate() { |
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
1698 switch (this) { |
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
1699 case CarrySet: |
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
1700 return CarryClear; |
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
1701 case CarryClear: |
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
1702 return CarrySet; |
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
1703 default: |
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
1704 GraalInternalError.unimplemented(); |
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
1705 } |
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
1706 return null; |
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
1707 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1708 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1709 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1710 public enum RCondition { |
11233 | 1711 // @formatter:off |
1712 | |
1713 Rc_z(1, "rc_z"), | |
1714 Rc_lez(2, "rc_lez"), | |
1715 Rc_lz(3, "rc_lz"), | |
1716 Rc_nz(5, "rc_nz"), | |
1717 Rc_gz(6, "rc_gz"), | |
1718 Rc_gez(7, "rc_gez"), | |
1719 Rc_last(Rc_gez.getValue(), "rc_last"); | |
1720 | |
1721 // @formatter:on | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1722 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1723 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
|
1724 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
|
1725 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1726 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
|
1727 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
|
1728 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
|
1729 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1730 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1731 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
|
1732 return value; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1733 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1734 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1735 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
|
1736 return operator; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1737 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1738 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1739 |
16303
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
1740 /** |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
1741 * Represents the <b>Address Space Identifier</b> defined in the SPARC architec |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
1742 */ |
10792 | 1743 public enum Asi { |
11233 | 1744 // @formatter:off |
1745 | |
1746 INVALID(-1), | |
1747 ASI_PRIMARY(0x80), | |
1748 ASI_PRIMARY_NOFAULT(0x82), | |
1749 ASI_PRIMARY_LITTLE(0x88), | |
10792 | 1750 // Block initializing store |
1751 ASI_ST_BLKINIT_PRIMARY(0xE2), | |
1752 // Most-Recently-Used (MRU) BIS variant | |
1753 ASI_ST_BLKINIT_MRU_PRIMARY(0xF2); | |
1754 | |
11233 | 1755 // @formatter:on |
1756 | |
10792 | 1757 private final int value; |
1758 | |
1759 private Asi(int value) { | |
1760 this.value = value; | |
1761 } | |
1762 | |
1763 public int getValue() { | |
1764 return value; | |
1765 } | |
1766 | |
1767 public boolean isValid() { | |
1768 return value != INVALID.getValue(); | |
1769 } | |
1770 } | |
1771 | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1772 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
|
1773 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
|
1774 return reg; |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1775 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1776 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1777 public static int getDoubleEncoding(int reg) { |
10459 | 1778 assert reg < 64 && ((reg & 1) == 0); |
1779 // ignore v8 assertion for now | |
1780 return (reg & 0x1e) | ((reg & 0x20) >> 5); | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1781 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1782 |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1783 public static int getQuadEncoding(int reg) { |
10459 | 1784 assert reg < 64 && ((reg & 3) == 0); |
1785 // ignore v8 assertion for now | |
1786 return (reg & 0x1c) | ((reg & 0x20) >> 5); | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1787 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1788 |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1789 public static final int sx1 = 0x00001000; |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1790 |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1791 public static final int simm(int x, int nbits) { |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1792 // assert_signed_range(x, nbits); |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1793 return x & ((1 << nbits) - 1); |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1794 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1795 |
10854
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1796 /** |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1797 * Minimum value for signed immediate ranges. |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1798 */ |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1799 public static long minSimm(long nbits) { |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1800 return -(1L << (nbits - 1)); |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1801 } |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1802 |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1803 /** |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1804 * Maximum value for signed immediate ranges. |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1805 */ |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1806 public static long maxSimm(long nbits) { |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1807 return (1L << (nbits - 1)) - 1; |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
1808 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
1809 |
10854
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1810 /** |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1811 * Test if imm is within signed immediate range for nbits. |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1812 */ |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1813 public static boolean isSimm(long imm, int nbits) { |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1814 return minSimm(nbits) <= imm && imm <= maxSimm(nbits); |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1815 } |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1816 |
11233 | 1817 public static boolean isSimm11(int imm) { |
1818 return isSimm(imm, 11); | |
1819 } | |
1820 | |
10854
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1821 public static boolean isSimm13(int imm) { |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1822 return isSimm(imm, 13); |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1823 } |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1824 |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1825 public static boolean isSimm13(long imm) { |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1826 return NumUtil.isInt(imm) && isSimm(imm, 13); |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1827 } |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1828 |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1829 public static boolean isDisp30(long imm) { |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1830 return isSimm(imm, 30); |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1831 } |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1832 |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1833 public static boolean isWordDisp30(long imm) { |
e1fcdda22831
SPARC: can compile some stubs now but they don't work yet
twisti
parents:
10792
diff
changeset
|
1834 return isSimm(imm, 30 + 2); |
10694
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
1835 } |
31266ceb86ef
SPARC: Can compile and run two or three methods of a bootstrap.
twisti
parents:
10686
diff
changeset
|
1836 |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
1837 public static final int hi22(int x) { |
10792 | 1838 return x >>> 10; |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
1839 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
1840 |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
1841 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
|
1842 return x & ((1 << 10) - 1); |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
1843 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
1844 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1845 public static class Add extends Fmt10 { |
10459 | 1846 |
1847 public Add(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1848 super(Op3s.Add, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1849 } |
10459 | 1850 |
1851 public Add(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1852 super(Op3s.Add, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1853 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1854 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1855 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1856 public static class Addc extends Fmt10 { |
10459 | 1857 |
1858 public Addc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1859 super(Op3s.Addc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1860 } |
10459 | 1861 |
1862 public Addc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1863 super(Op3s.Addc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1864 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1865 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1866 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1867 public static class Addcc extends Fmt10 { |
10459 | 1868 |
1869 public Addcc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1870 super(Op3s.Addcc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1871 } |
10459 | 1872 |
1873 public Addcc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1874 super(Op3s.Addcc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1875 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1876 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1877 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1878 public static class Addccc extends Fmt10 { |
10459 | 1879 |
1880 public Addccc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1881 super(Op3s.Addccc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1882 } |
10459 | 1883 |
1884 public Addccc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1885 super(Op3s.Addccc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1886 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1887 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1888 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1889 public static class Addxc extends Fmt3p { |
10459 | 1890 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1891 public Addxc(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1892 /* VIS3 only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1893 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Addxc, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1894 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1895 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1896 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1897 public static class Addxccc extends Fmt3p { |
10459 | 1898 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1899 public Addxccc(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1900 /* VIS3 only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1901 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Addxccc, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1902 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1903 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1904 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1905 public static class Alignaddr extends Fmt3p { |
10459 | 1906 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1907 public Alignaddr(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1908 /* VIS1 only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1909 super(Ops.ArithOp, Op3s.Impdep1, Opfs.AlignAddress, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1910 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1911 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1912 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1913 public static class Alignaddrl extends Fmt3p { |
10459 | 1914 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1915 public Alignaddrl(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1916 /* VIS1 only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1917 super(Ops.ArithOp, Op3s.Impdep1, Opfs.AlignAddressLittle, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1918 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1919 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1920 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1921 public static class And extends Fmt10 { |
10459 | 1922 |
1923 public And(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1924 super(Op3s.And, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1925 } |
10459 | 1926 |
1927 public And(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1928 super(Op3s.And, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1929 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1930 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1931 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1932 public static class Andcc extends Fmt10 { |
10459 | 1933 |
1934 public Andcc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1935 super(Op3s.Andcc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1936 } |
10459 | 1937 |
1938 public Andcc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1939 super(Op3s.Andcc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1940 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1941 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1942 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1943 public static class Andn extends Fmt10 { |
10459 | 1944 |
1945 public Andn(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1946 super(Op3s.Andn, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1947 } |
10459 | 1948 |
1949 public Andn(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1950 super(Op3s.Andn, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1951 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1952 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1953 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1954 public static class Andncc extends Fmt10 { |
10459 | 1955 |
1956 public Andncc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1957 super(Op3s.Andncc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1958 } |
10459 | 1959 |
1960 public Andncc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
1961 super(Op3s.Andncc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
1962 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1963 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
1964 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1965 public static class Array8 extends Fmt3p { |
10459 | 1966 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1967 public Array8(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1968 /* VIS1 only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1969 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Array8, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1970 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1971 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1972 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1973 public static class Array16 extends Fmt3p { |
10459 | 1974 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1975 public Array16(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1976 /* VIS1 only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1977 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Array16, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1978 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1979 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1980 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1981 public static class Array32 extends Fmt3p { |
10459 | 1982 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1983 public Array32(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1984 /* VIS1 only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1985 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Array32, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1986 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1987 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1988 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1989 public static class Bmask extends Fmt3p { |
10459 | 1990 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1991 public Bmask(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1992 /* VIS2 only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
1993 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Bmask, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1994 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1995 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
1996 |
16315
b955d649fca8
Fixing BC_i2f, BC_i2c, BC_fadd
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16313
diff
changeset
|
1997 public static class Movwtos extends Fmt3p { |
b955d649fca8
Fixing BC_i2f, BC_i2c, BC_fadd
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16313
diff
changeset
|
1998 public Movwtos(Register src, Register dst) { |
b955d649fca8
Fixing BC_i2f, BC_i2c, BC_fadd
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16313
diff
changeset
|
1999 /* VIS3 only */ |
16319
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
2000 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Movwtos, g0, src, dst); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2001 assert isSingleFloatRegister(dst); |
16319
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
2002 } |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
2003 } |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
2004 |
16927
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
2005 public static class Umulxhi extends Fmt3p { |
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
2006 public Umulxhi(Register src1, Register src2, Register dst) { |
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
2007 /* VIS3 only */ |
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
2008 super(Ops.ArithOp, Op3s.Impdep1, Opfs.UMulxhi, src1, src2, dst); |
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
2009 } |
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
2010 } |
949347518b66
[SPARC] new vis3 instruction umulxhi
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16651
diff
changeset
|
2011 |
16319
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
2012 public static class Movxtod extends Fmt3p { |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
2013 public Movxtod(Register src, Register dst) { |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
2014 /* VIS3 only */ |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
2015 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Movxtod, g0, src, dst); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2016 assert isDoubleFloatRegister(dst); |
16319
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
2017 } |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
2018 } |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
2019 |
16321
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
2020 public static class Movdtox extends Fmt3p { |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
2021 public Movdtox(Register src, Register dst) { |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
2022 /* VIS3 only */ |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
2023 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Movdtox, g0, src, dst); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2024 assert isDoubleFloatRegister(src); |
16321
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
2025 } |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
2026 } |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
2027 |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
2028 public static class Movstosw extends Fmt3p { |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
2029 public Movstosw(Register src, Register dst) { |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
2030 /* VIS3 only */ |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
2031 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Movstosw, g0, src, dst); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2032 assert isSingleFloatRegister(src); |
16321
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
2033 } |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
2034 } |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
2035 |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
2036 public static class Movstouw extends Fmt3p { |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
2037 public Movstouw(Register src, Register dst) { |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
2038 /* VIS3 only */ |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
2039 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Movstouw, g0, src, dst); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2040 assert isSingleFloatRegister(src); |
16321
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
2041 } |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
2042 } |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
2043 |
16319
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
2044 public static class Fdtos extends Fmt3p { |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
2045 public Fdtos(Register src, Register dst) { |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
2046 /* VIS3 only */ |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
2047 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fdtos, g0, src, dst); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2048 assert isSingleFloatRegister(dst); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2049 assert isDoubleFloatRegister(src); |
16315
b955d649fca8
Fixing BC_i2f, BC_i2c, BC_fadd
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16313
diff
changeset
|
2050 } |
b955d649fca8
Fixing BC_i2f, BC_i2c, BC_fadd
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16313
diff
changeset
|
2051 } |
b955d649fca8
Fixing BC_i2f, BC_i2c, BC_fadd
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16313
diff
changeset
|
2052 |
10459 | 2053 public static class Bpa extends Fmt00c { |
2054 | |
2055 public Bpa(int simm19) { | |
2056 super(0, ConditionFlag.Always, Op2s.Bp, CC.Icc, 1, simm19); | |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
2057 } |
10459 | 2058 |
2059 public Bpa(Label label) { | |
2060 super(0, ConditionFlag.Always, Op2s.Bp, CC.Icc, 1, label); | |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
2061 } |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
2062 } |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
2063 |
10459 | 2064 public static class Bpcc extends Fmt00c { |
2065 | |
2066 public Bpcc(CC cc, int simm19) { | |
2067 super(0, ConditionFlag.CarryClear, Op2s.Bp, cc, 1, simm19); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2068 } |
10459 | 2069 |
2070 public Bpcc(CC cc, Label label) { | |
2071 super(0, ConditionFlag.CarryClear, Op2s.Bp, cc, 1, label); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2072 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2073 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2074 |
10459 | 2075 public static class Bpcs extends Fmt00c { |
2076 | |
2077 public Bpcs(CC cc, int simm19) { | |
2078 super(0, ConditionFlag.CarrySet, Op2s.Bp, cc, 1, simm19); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2079 } |
10459 | 2080 |
2081 public Bpcs(CC cc, Label label) { | |
2082 super(0, ConditionFlag.CarrySet, Op2s.Bp, cc, 1, label); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2083 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2084 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2085 |
10459 | 2086 public static class Bpe extends Fmt00c { |
2087 | |
2088 public Bpe(CC cc, int simm19) { | |
2089 super(0, ConditionFlag.Equal, Op2s.Bp, cc, 1, simm19); | |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
2090 } |
10459 | 2091 |
2092 public Bpe(CC cc, Label label) { | |
2093 super(0, ConditionFlag.Equal, Op2s.Bp, cc, 1, label); | |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
2094 } |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
2095 } |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
2096 |
10459 | 2097 public static class Bpg extends Fmt00c { |
2098 | |
2099 public Bpg(CC cc, int simm19) { | |
2100 super(0, ConditionFlag.Greater, Op2s.Bp, cc, 1, simm19); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2101 } |
10459 | 2102 |
2103 public Bpg(CC cc, Label label) { | |
2104 super(0, ConditionFlag.Greater, Op2s.Bp, cc, 1, label); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2105 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2106 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2107 |
10459 | 2108 public static class Bpge extends Fmt00c { |
2109 | |
2110 public Bpge(CC cc, int simm19) { | |
2111 super(0, ConditionFlag.GreaterEqual, Op2s.Bp, cc, 1, simm19); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2112 } |
10459 | 2113 |
2114 public Bpge(CC cc, Label label) { | |
2115 super(0, ConditionFlag.GreaterEqual, Op2s.Bp, cc, 1, label); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2116 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2117 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2118 |
10459 | 2119 public static class Bpgu extends Fmt00c { |
2120 | |
2121 public Bpgu(CC cc, int simm19) { | |
2122 super(0, ConditionFlag.GreaterUnsigned, Op2s.Bp, cc, 1, simm19); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2123 } |
10459 | 2124 |
2125 public Bpgu(CC cc, Label label) { | |
2126 super(0, ConditionFlag.GreaterUnsigned, Op2s.Bp, cc, 1, label); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2127 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2128 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2129 |
10459 | 2130 public static class Bpl extends Fmt00c { |
2131 | |
2132 public Bpl(CC cc, int simm19) { | |
2133 super(0, ConditionFlag.Less, Op2s.Bp, cc, 1, simm19); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2134 } |
10459 | 2135 |
2136 public Bpl(CC cc, Label label) { | |
2137 super(0, ConditionFlag.Less, Op2s.Bp, cc, 1, label); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2138 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2139 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2140 |
10459 | 2141 public static class Bple extends Fmt00c { |
2142 | |
2143 public Bple(CC cc, int simm19) { | |
2144 super(0, ConditionFlag.LessEqual, Op2s.Bp, cc, 1, simm19); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2145 } |
10459 | 2146 |
2147 public Bple(CC cc, Label label) { | |
2148 super(0, ConditionFlag.LessEqual, Op2s.Bp, cc, 1, label); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2149 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2150 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2151 |
10459 | 2152 public static class Bpleu extends Fmt00c { |
2153 | |
2154 public Bpleu(CC cc, int simm19) { | |
2155 super(0, ConditionFlag.LessEqualUnsigned, Op2s.Bp, cc, 1, simm19); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2156 } |
10459 | 2157 |
2158 public Bpleu(CC cc, Label label) { | |
2159 super(0, ConditionFlag.LessEqualUnsigned, Op2s.Bp, cc, 1, label); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2160 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2161 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2162 |
10459 | 2163 public static class Bpn extends Fmt00c { |
2164 | |
2165 public Bpn(CC cc, int simm19) { | |
2166 super(0, ConditionFlag.Never, Op2s.Bp, cc, 1, simm19); | |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
2167 } |
10459 | 2168 |
2169 public Bpn(CC cc, Label label) { | |
2170 super(0, ConditionFlag.Never, Op2s.Bp, cc, 1, label); | |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
2171 } |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
2172 } |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
2173 |
10459 | 2174 public static class Bpne extends Fmt00c { |
2175 | |
2176 public Bpne(CC cc, int simm19) { | |
2177 super(0, ConditionFlag.NotZero, Op2s.Bp, cc, 1, simm19); | |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
2178 } |
10459 | 2179 |
2180 public Bpne(CC cc, Label label) { | |
2181 super(0, ConditionFlag.NotZero, Op2s.Bp, cc, 1, label); | |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
2182 } |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
2183 } |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
2184 |
10459 | 2185 public static class Bpneg extends Fmt00c { |
2186 | |
2187 public Bpneg(CC cc, int simm19) { | |
2188 super(0, ConditionFlag.Negative, Op2s.Bp, cc, 1, simm19); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2189 } |
10459 | 2190 |
2191 public Bpneg(CC cc, Label label) { | |
2192 super(0, ConditionFlag.Negative, Op2s.Bp, cc, 1, label); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2193 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2194 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2195 |
10459 | 2196 public static class Bppos extends Fmt00c { |
2197 | |
2198 public Bppos(CC cc, int simm19) { | |
2199 super(0, ConditionFlag.Positive, Op2s.Bp, cc, 1, simm19); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2200 } |
10459 | 2201 |
2202 public Bppos(CC cc, Label label) { | |
2203 super(0, ConditionFlag.Positive, Op2s.Bp, cc, 1, label); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2204 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2205 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2206 |
10459 | 2207 public static class Bpvc extends Fmt00c { |
2208 | |
2209 public Bpvc(CC cc, int simm19) { | |
2210 super(0, ConditionFlag.OverflowClear, Op2s.Bp, cc, 1, simm19); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2211 } |
10459 | 2212 |
2213 public Bpvc(CC cc, Label label) { | |
2214 super(0, ConditionFlag.OverflowClear, Op2s.Bp, cc, 1, label); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2215 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2216 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2217 |
10459 | 2218 public static class Bpvs extends Fmt00c { |
2219 | |
2220 public Bpvs(CC cc, int simm19) { | |
2221 super(0, ConditionFlag.OverflowSet, Op2s.Bp, cc, 1, simm19); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2222 } |
10459 | 2223 |
2224 public Bpvs(CC cc, Label label) { | |
2225 super(0, ConditionFlag.OverflowSet, Op2s.Bp, cc, 1, label); | |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2226 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2227 } |
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
2228 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2229 public static class Bshuffle extends Fmt3p { |
10459 | 2230 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2231 public Bshuffle(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2232 /* VIS2 only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2233 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Bshuffle, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2234 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2235 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2236 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2237 public static class Call extends Fmt01 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2238 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2239 public Call(int disp30) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2240 super(disp30); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2241 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2242 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2243 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2244 public static class CammelliaFl extends Fmt3p { |
10459 | 2245 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2246 public CammelliaFl(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2247 /* CAMELLIA only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2248 super(Ops.ArithOp, Op3s.Impdep1, Opfs.CammelliaFl, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2249 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2250 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2251 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2252 public static class CammelliaFli extends Fmt3p { |
10459 | 2253 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2254 public CammelliaFli(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2255 /* CAMELLIA only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2256 super(Ops.ArithOp, Op3s.Impdep1, Opfs.CammelliaFli, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2257 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2258 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2259 |
10792 | 2260 public static class Casa extends Fmt11 { |
2261 | |
2262 public Casa(Register src1, Register src2, Register dst, Asi asi) { | |
2263 super(Op3s.Casa, src1, src2, dst, asi); | |
2264 } | |
2265 } | |
2266 | |
2267 public static class Casxa extends Fmt11 { | |
2268 | |
2269 public Casxa(Register src1, Register src2, Register dst, Asi asi) { | |
2270 super(Op3s.Casxa, src1, src2, dst, asi); | |
2271 } | |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
2272 } |
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
2273 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2274 public static class Cmask8 extends Fmt3n { |
10459 | 2275 |
16528
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
2276 public Cmask8(Register src2) { |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
2277 super(Ops.ArithOp.getValue(), Op3s.Impdep1.getValue(), Opfs.Cmask8.getValue(), src2.encoding(), 0); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2278 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2279 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2280 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2281 public static class Cmask16 extends Fmt3n { |
10459 | 2282 |
16528
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
2283 public Cmask16(Register src2) { |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
2284 super(Ops.ArithOp.getValue(), Op3s.Impdep1.getValue(), Opfs.Cmask16.getValue(), src2.encoding(), 0); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2285 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2286 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2287 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2288 public static class Cmask32 extends Fmt3n { |
10459 | 2289 |
16528
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
2290 public Cmask32(Register src2) { |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
2291 super(Ops.ArithOp.getValue(), Op3s.Impdep1.getValue(), Opfs.Cmask32.getValue(), src2.encoding(), 0); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2292 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2293 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2294 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2295 public static class Crc32c extends Fmt3p { |
10459 | 2296 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2297 public Crc32c(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2298 /* CRYPTO only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2299 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Crc32c, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2300 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2301 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2302 |
16303
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2303 /** |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2304 * Compare and Branch if Carry Clear ( Greater not C Than or Equal, Unsigned ) |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2305 */ |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2306 public static class Cwbcc extends Fmt00e { |
10459 | 2307 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2308 public Cwbcc(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2309 super(asm, Ops.BranchOp.getValue(), ConditionFlag.CarryClear.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2310 } |
10459 | 2311 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2312 public Cwbcc(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2313 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Equal.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2314 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2315 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2316 |
16303
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2317 /** |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2318 * Compare and Branch if Carry Set (Less Than, Unsigned) |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2319 */ |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2320 public static class Cwbcs extends Fmt00e { |
10459 | 2321 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2322 public Cwbcs(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2323 super(asm, Ops.BranchOp.getValue(), ConditionFlag.CarrySet.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2324 } |
10459 | 2325 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2326 public Cwbcs(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2327 super(asm, Ops.BranchOp.getValue(), ConditionFlag.CarrySet.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2328 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2329 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2330 |
16303
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2331 /** |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2332 * Compare and Branch if Equal |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2333 */ |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2334 public static class Cwbe extends Fmt00e { |
10459 | 2335 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2336 public Cwbe(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2337 super(asm, Ops.BranchOp.getValue(), ConditionFlag.CarryClear.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2338 } |
10459 | 2339 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2340 public Cwbe(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2341 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Equal.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2342 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2343 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2344 |
16303
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2345 /** |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2346 * Compare and Branch if Greater |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2347 */ |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2348 public static class Cwbg extends Fmt00e { |
10459 | 2349 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2350 public Cwbg(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2351 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Greater.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2352 } |
10459 | 2353 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2354 public Cwbg(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2355 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Greater.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2356 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2357 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2358 |
16303
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2359 /** |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2360 * Compare and Branch if Greater or Equal |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2361 */ |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2362 public static class Cwbge extends Fmt00e { |
10459 | 2363 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2364 public Cwbge(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2365 super(asm, Ops.BranchOp.getValue(), ConditionFlag.GreaterEqual.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2366 } |
10459 | 2367 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2368 public Cwbge(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2369 super(asm, Ops.BranchOp.getValue(), ConditionFlag.GreaterEqual.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2370 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2371 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2372 |
16303
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2373 /** |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2374 * Compare and Branch if Greater Unsigned |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2375 */ |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2376 public static class Cwbgu extends Fmt00e { |
10459 | 2377 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2378 public Cwbgu(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2379 super(asm, Ops.BranchOp.getValue(), ConditionFlag.GreaterUnsigned.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2380 } |
10459 | 2381 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2382 public Cwbgu(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2383 super(asm, Ops.BranchOp.getValue(), ConditionFlag.GreaterUnsigned.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2384 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2385 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2386 |
16303
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2387 /** |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2388 * Compare and Branch if Less |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2389 */ |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2390 public static class Cwbl extends Fmt00e { |
10459 | 2391 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2392 public Cwbl(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2393 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Less.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2394 } |
10459 | 2395 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2396 public Cwbl(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2397 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Less.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2398 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2399 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2400 |
16303
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2401 /** |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2402 * Compare and Branch if Less or Equal |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2403 */ |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2404 public static class Cwble extends Fmt00e { |
10459 | 2405 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2406 public Cwble(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2407 super(asm, Ops.BranchOp.getValue(), ConditionFlag.LessEqual.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2408 } |
10459 | 2409 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2410 public Cwble(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2411 super(asm, Ops.BranchOp.getValue(), ConditionFlag.LessEqual.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2412 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2413 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2414 |
16303
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2415 /** |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2416 * Compare and Branch if Less or Equal Unsigned |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2417 */ |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2418 public static class Cwbleu extends Fmt00e { |
10459 | 2419 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2420 public Cwbleu(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2421 super(asm, Ops.BranchOp.getValue(), ConditionFlag.LessEqualUnsigned.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2422 } |
10459 | 2423 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2424 public Cwbleu(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2425 super(asm, Ops.BranchOp.getValue(), ConditionFlag.LessEqualUnsigned.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2426 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2427 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2428 |
16303
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2429 /** |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2430 * Compare and Branch if Not Equal |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2431 */ |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2432 public static class Cwbne extends Fmt00e { |
10459 | 2433 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2434 public Cwbne(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2435 super(asm, Ops.BranchOp.getValue(), ConditionFlag.NotEqual.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2436 } |
10459 | 2437 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2438 public Cwbne(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2439 super(asm, Ops.BranchOp.getValue(), ConditionFlag.NotEqual.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2440 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2441 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2442 |
16303
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2443 /** |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2444 * Compare and Branch if Negative |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2445 */ |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2446 public static class Cwbneg extends Fmt00e { |
10459 | 2447 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2448 public Cwbneg(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2449 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Negative.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2450 } |
10459 | 2451 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2452 public Cwbneg(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2453 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Negative.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2454 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2455 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2456 |
16303
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2457 /** |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2458 * Compare and Branch if Positive |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2459 */ |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2460 public static class Cwbpos extends Fmt00e { |
10459 | 2461 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2462 public Cwbpos(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2463 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Positive.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2464 } |
10459 | 2465 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2466 public Cwbpos(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2467 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Positive.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2468 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2469 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2470 |
16303
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2471 /** |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2472 * Compare and Branch if Overflow Clear |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2473 */ |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2474 public static class Cwbvc extends Fmt00e { |
10459 | 2475 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2476 public Cwbvc(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2477 super(asm, Ops.BranchOp.getValue(), ConditionFlag.OverflowClear.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2478 } |
10459 | 2479 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2480 public Cwbvc(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2481 super(asm, Ops.BranchOp.getValue(), ConditionFlag.OverflowClear.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2482 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2483 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2484 |
16303
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2485 /** |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2486 * Compare and Branch if Overflow Set |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2487 */ |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2488 public static class Cwbvs extends Fmt00e { |
10459 | 2489 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2490 public Cwbvs(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2491 super(asm, Ops.BranchOp.getValue(), ConditionFlag.OverflowSet.getValue(), 0, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2492 } |
10459 | 2493 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2494 public Cwbvs(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2495 super(asm, Ops.BranchOp.getValue(), ConditionFlag.OverflowSet.getValue(), 0, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2496 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2497 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2498 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2499 public static class Cxbcc extends Fmt00e { |
10459 | 2500 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2501 public Cxbcc(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2502 super(asm, Ops.BranchOp.getValue(), ConditionFlag.CarryClear.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2503 } |
10459 | 2504 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2505 public Cxbcc(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2506 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Equal.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2507 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2508 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2509 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2510 public static class Cxbcs extends Fmt00e { |
10459 | 2511 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2512 public Cxbcs(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2513 super(asm, Ops.BranchOp.getValue(), ConditionFlag.CarrySet.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2514 } |
10459 | 2515 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2516 public Cxbcs(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2517 super(asm, Ops.BranchOp.getValue(), ConditionFlag.CarrySet.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2518 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2519 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2520 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2521 public static class Cxbe extends Fmt00e { |
10459 | 2522 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2523 public Cxbe(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2524 super(asm, Ops.BranchOp.getValue(), ConditionFlag.CarryClear.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2525 } |
10459 | 2526 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2527 public Cxbe(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2528 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Equal.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2529 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2530 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2531 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2532 public static class Cxbg extends Fmt00e { |
10459 | 2533 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2534 public Cxbg(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2535 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Greater.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2536 } |
10459 | 2537 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2538 public Cxbg(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2539 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Greater.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2540 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2541 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2542 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2543 public static class Cxbge extends Fmt00e { |
10459 | 2544 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2545 public Cxbge(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2546 super(asm, Ops.BranchOp.getValue(), ConditionFlag.GreaterEqual.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2547 } |
10459 | 2548 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2549 public Cxbge(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2550 super(asm, Ops.BranchOp.getValue(), ConditionFlag.GreaterEqual.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2551 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2552 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2553 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2554 public static class Cxbgu extends Fmt00e { |
10459 | 2555 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2556 public Cxbgu(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2557 super(asm, Ops.BranchOp.getValue(), ConditionFlag.GreaterUnsigned.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2558 } |
10459 | 2559 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2560 public Cxbgu(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2561 super(asm, Ops.BranchOp.getValue(), ConditionFlag.GreaterUnsigned.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2562 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2563 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2564 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2565 public static class Cxbl extends Fmt00e { |
10459 | 2566 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2567 public Cxbl(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2568 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Less.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2569 } |
10459 | 2570 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2571 public Cxbl(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2572 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Less.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2573 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2574 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2575 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2576 public static class Cxble extends Fmt00e { |
10459 | 2577 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2578 public Cxble(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2579 super(asm, Ops.BranchOp.getValue(), ConditionFlag.LessEqual.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2580 } |
10459 | 2581 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2582 public Cxble(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2583 super(asm, Ops.BranchOp.getValue(), ConditionFlag.LessEqual.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2584 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2585 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2586 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2587 public static class Cxbleu extends Fmt00e { |
10459 | 2588 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2589 public Cxbleu(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2590 super(asm, Ops.BranchOp.getValue(), ConditionFlag.LessEqualUnsigned.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2591 } |
10459 | 2592 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2593 public Cxbleu(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2594 super(asm, Ops.BranchOp.getValue(), ConditionFlag.LessEqualUnsigned.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2595 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2596 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2597 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2598 public static class Cxbne extends Fmt00e { |
10459 | 2599 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2600 public Cxbne(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2601 super(asm, Ops.BranchOp.getValue(), ConditionFlag.NotEqual.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2602 } |
10459 | 2603 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2604 public Cxbne(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2605 super(asm, Ops.BranchOp.getValue(), ConditionFlag.NotEqual.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2606 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2607 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2608 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2609 public static class Cxbneg extends Fmt00e { |
10459 | 2610 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2611 public Cxbneg(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2612 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Negative.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2613 } |
10459 | 2614 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2615 public Cxbneg(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2616 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Negative.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2617 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2618 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2619 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2620 public static class Cxbpos extends Fmt00e { |
10459 | 2621 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2622 public Cxbpos(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2623 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Positive.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2624 } |
10459 | 2625 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2626 public Cxbpos(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2627 super(asm, Ops.BranchOp.getValue(), ConditionFlag.Positive.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2628 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2629 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2630 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2631 public static class Cxbvc extends Fmt00e { |
10459 | 2632 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2633 public Cxbvc(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2634 super(asm, Ops.BranchOp.getValue(), ConditionFlag.OverflowClear.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2635 } |
10459 | 2636 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2637 public Cxbvc(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2638 super(asm, Ops.BranchOp.getValue(), ConditionFlag.OverflowClear.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2639 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2640 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2641 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
2642 public static class Cxbvs extends Fmt00e { |
10459 | 2643 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2644 public Cxbvs(SPARCAssembler asm, Register src1, Register src2, int simm10) { |
10459 | 2645 super(asm, Ops.BranchOp.getValue(), ConditionFlag.OverflowSet.getValue(), 1, src1.encoding(), simm10, src2.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2646 } |
10459 | 2647 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2648 public Cxbvs(SPARCAssembler asm, Register src1, int immed5, int simm10) { |
10459 | 2649 super(asm, Ops.BranchOp.getValue(), ConditionFlag.OverflowSet.getValue(), 1, src1.encoding(), simm10, immed5 | ImmedTrue); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2650 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2651 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2652 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2653 public static class Edge8cc extends Fmt3p { |
10459 | 2654 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2655 public Edge8cc(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2656 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Edge8cc, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2657 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2658 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2659 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2660 public static class Edge8n extends Fmt3p { |
10459 | 2661 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2662 public Edge8n(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2663 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Edge8n, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2664 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2665 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2666 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2667 public static class Edge8lcc extends Fmt3p { |
10459 | 2668 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2669 public Edge8lcc(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2670 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Edge8lcc, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2671 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2672 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2673 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2674 public static class Edge8ln extends Fmt3p { |
10459 | 2675 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2676 public Edge8ln(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2677 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Edge8ln, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2678 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2679 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2680 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2681 public static class Edge16cc extends Fmt3p { |
10459 | 2682 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2683 public Edge16cc(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2684 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Edge16cc, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2685 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2686 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2687 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2688 public static class Edge16n extends Fmt3p { |
10459 | 2689 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2690 public Edge16n(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2691 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Edge16n, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2692 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2693 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2694 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2695 public static class Edge16lcc extends Fmt3p { |
10459 | 2696 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2697 public Edge16lcc(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2698 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Edge16lcc, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2699 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2700 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2701 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2702 public static class Edge16ln extends Fmt3p { |
10459 | 2703 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2704 public Edge16ln(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2705 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Edge16ln, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2706 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2707 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2708 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2709 public static class Edge32cc extends Fmt3p { |
10459 | 2710 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2711 public Edge32cc(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2712 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Edge32cc, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2713 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2714 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2715 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2716 public static class Edge32n extends Fmt3p { |
10459 | 2717 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2718 public Edge32n(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2719 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Edge32n, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2720 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2721 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2722 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2723 public static class Edge32lcc extends Fmt3p { |
10459 | 2724 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2725 public Edge32lcc(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2726 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Edge32lcc, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2727 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2728 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2729 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2730 public static class Edge32ln extends Fmt3p { |
10459 | 2731 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2732 public Edge32ln(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2733 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Edge32ln, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2734 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2735 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2736 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2737 public static class Fadds extends Fmt3p { |
10459 | 2738 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2739 public Fadds(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2740 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fadds, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2741 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2742 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2743 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2744 public static class Faddd extends Fmt3p { |
10459 | 2745 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2746 public Faddd(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2747 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Faddd, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2748 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2749 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2750 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2751 public static class Faddq extends Fmt3p { |
10459 | 2752 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2753 public Faddq(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2754 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Faddq, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
2755 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2756 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
2757 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2758 public static class Faligndata extends Fmt3p { |
10459 | 2759 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2760 public Faligndata(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2761 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Faligndatag, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2762 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2763 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2764 |
9825
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
2765 public static class Fdivs extends Fmt3p { |
10459 | 2766 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2767 public Fdivs(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2768 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fdivs, src1, src2, dst); |
9825
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
2769 } |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
2770 } |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
2771 |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
2772 public static class Fdivd extends Fmt3p { |
10459 | 2773 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2774 public Fdivd(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2775 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fdivd, src1, src2, dst); |
9825
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
2776 } |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
2777 } |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
2778 |
16303
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2779 /** |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2780 * Floating-point multiply-add single (fused) |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2781 */ |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2782 public static class Fmadds extends Fmt5a { |
10459 | 2783 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2784 public Fmadds(SPARCAssembler asm, Register src1, Register src2, Register src3, Register dst) { |
10459 | 2785 super(asm, Ops.ArithOp.getValue(), Op3s.Impdep2.getValue(), Op5s.Fmadds.getValue(), src1.encoding(), src2.encoding(), src3.encoding(), dst.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2786 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2787 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2788 |
16303
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2789 /** |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2790 * Floating-point multiply-add double (fused) |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2791 */ |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2792 public static class Fmaddd extends Fmt5a { |
10459 | 2793 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2794 public Fmaddd(SPARCAssembler asm, Register src1, Register src2, Register src3, Register dst) { |
10459 | 2795 super(asm, Ops.ArithOp.getValue(), Op3s.Impdep2.getValue(), Op5s.Fmaddd.getValue(), src1.encoding(), src2.encoding(), src3.encoding(), dst.encoding()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2796 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2797 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2798 |
16303
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2799 /** |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2800 * 16-bit partitioned average |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
2801 */ |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2802 public static class Fmean16 extends Fmt3p { |
10459 | 2803 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2804 public Fmean16(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2805 /* VIS3 only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2806 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fmean16, src1, src2, dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2807 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2808 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2809 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2810 public static class Fmsubs extends Fmt5a { |
10459 | 2811 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2812 public Fmsubs(SPARCAssembler asm, Register src1, Register src2, Register src3, Register dst) { |
10459 | 2813 super(asm, Ops.ArithOp.getValue(), Op3s.Impdep2.getValue(), Op5s.Fmsubs.getValue(), src1.encoding(), src2.encoding(), src3.encoding(), dst.encoding()); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2814 assert isSingleFloatRegister(src1); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2815 assert isSingleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2816 assert isSingleFloatRegister(src3); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2817 assert isSingleFloatRegister(dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2818 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2819 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2820 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2821 public static class Fmsubd extends Fmt5a { |
10459 | 2822 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2823 public Fmsubd(SPARCAssembler asm, Register src1, Register src2, Register src3, Register dst) { |
10459 | 2824 super(asm, Ops.ArithOp.getValue(), Op3s.Impdep2.getValue(), Op5s.Fmsubd.getValue(), src1.encoding(), src2.encoding(), src3.encoding(), dst.encoding()); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2825 assert isDoubleFloatRegister(src1); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2826 assert isDoubleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2827 assert isDoubleFloatRegister(src3); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2828 assert isDoubleFloatRegister(dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2829 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2830 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2831 |
15345 | 2832 public static class Fmovs extends Fmt3p { |
2833 | |
2834 public Fmovs(Register src, Register dst) { | |
2835 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fmovs, g0, src, dst); | |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2836 assert isSingleFloatRegister(src); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2837 assert isSingleFloatRegister(dst); |
15345 | 2838 } |
2839 } | |
2840 | |
2841 public static class Fmovd extends Fmt3p { | |
2842 | |
2843 public Fmovd(Register src, Register dst) { | |
2844 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fmovd, g0, src, dst); | |
2845 } | |
2846 } | |
2847 | |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2848 public static class Fmuls extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2849 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2850 public Fmuls(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2851 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fmuls, src1, src2, dst); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2852 assert isSingleFloatRegister(src1); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2853 assert isSingleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2854 assert isSingleFloatRegister(dst); |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2855 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2856 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2857 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2858 public static class Fmuld extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2859 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2860 public Fmuld(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2861 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fmuld, src1, src2, dst); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2862 assert isDoubleFloatRegister(src1); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2863 assert isDoubleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2864 assert isDoubleFloatRegister(dst); |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2865 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2866 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2867 |
16933
f011bf910f34
[SPARC] Fix sign extension, add debug messages to assertions in Assembler, add FSMULD , Entering frame is now possible with > 2k framesize
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16927
diff
changeset
|
2868 public static class Fsmuld extends Fmt3p { |
f011bf910f34
[SPARC] Fix sign extension, add debug messages to assertions in Assembler, add FSMULD , Entering frame is now possible with > 2k framesize
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16927
diff
changeset
|
2869 |
f011bf910f34
[SPARC] Fix sign extension, add debug messages to assertions in Assembler, add FSMULD , Entering frame is now possible with > 2k framesize
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16927
diff
changeset
|
2870 public Fsmuld(Register src1, Register src2, Register dst) { |
f011bf910f34
[SPARC] Fix sign extension, add debug messages to assertions in Assembler, add FSMULD , Entering frame is now possible with > 2k framesize
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16927
diff
changeset
|
2871 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fsmuld, src1, src2, dst); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2872 assert isSingleFloatRegister(src1); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2873 assert isSingleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2874 assert isDoubleFloatRegister(dst); |
16933
f011bf910f34
[SPARC] Fix sign extension, add debug messages to assertions in Assembler, add FSMULD , Entering frame is now possible with > 2k framesize
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16927
diff
changeset
|
2875 } |
f011bf910f34
[SPARC] Fix sign extension, add debug messages to assertions in Assembler, add FSMULD , Entering frame is now possible with > 2k framesize
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16927
diff
changeset
|
2876 } |
f011bf910f34
[SPARC] Fix sign extension, add debug messages to assertions in Assembler, add FSMULD , Entering frame is now possible with > 2k framesize
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16927
diff
changeset
|
2877 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2878 public static class Fmul8x16 extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2879 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2880 public Fmul8x16(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2881 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2882 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fmul8x16, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2883 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2884 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2885 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2886 public static class Fmul8x16au extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2887 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2888 public Fmul8x16au(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2889 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2890 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fmul8x16, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2891 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2892 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2893 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2894 public static class Fmul8x16al extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2895 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2896 public Fmul8x16al(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2897 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2898 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fmul8x16al, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2899 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2900 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2901 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2902 public static class Fmul8sux16 extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2903 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2904 public Fmul8sux16(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2905 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2906 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fmul8sux16, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2907 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2908 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2909 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2910 public static class Fmul8ulx16 extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2911 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2912 public Fmul8ulx16(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2913 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2914 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fmul8ulx16, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2915 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2916 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2917 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2918 public static class Fmuld8sux16 extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2919 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2920 public Fmuld8sux16(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2921 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2922 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fmuld8sux16, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2923 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2924 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2925 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2926 public static class Fmuld8ulx16 extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2927 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2928 public Fmuld8ulx16(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2929 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2930 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fmuld8ulx16, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2931 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2932 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2933 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2934 public static class Fnadds extends Fmt3p { |
10459 | 2935 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2936 public Fnadds(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2937 /* VIS3 only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2938 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fnadds, src1, src2, dst); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2939 assert isSingleFloatRegister(src1); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2940 assert isSingleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2941 assert isSingleFloatRegister(dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2942 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2943 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2944 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2945 public static class Fnaddd extends Fmt3p { |
10459 | 2946 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2947 public Fnaddd(Register src1, Register src2, Register dst) { |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2948 /* VIS3 only */ |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2949 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fnaddd, src1, src2, dst); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2950 assert isDoubleFloatRegister(src1); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2951 assert isDoubleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2952 assert isDoubleFloatRegister(dst); |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2953 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2954 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2955 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2956 public static class Fnegs extends Fmt3n { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2957 |
16528
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
2958 public Fnegs(Register src2, Register dst) { |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
2959 super(Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fnegs.getValue(), src2.encoding(), dst.encoding()); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2960 assert isSingleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2961 assert isSingleFloatRegister(dst); |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2962 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2963 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2964 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2965 public static class Fnegd extends Fmt3n { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2966 |
16528
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
2967 public Fnegd(Register src2, Register dst) { |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
2968 super(Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fnegd.getValue(), src2.encoding(), dst.encoding()); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2969 assert isDoubleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2970 assert isDoubleFloatRegister(dst); |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2971 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2972 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2973 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2974 public static class Fnhadds extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2975 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2976 public Fnhadds(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2977 /* VIS3 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2978 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fnhadds, src1, src2, dst); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2979 assert isSingleFloatRegister(src1); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2980 assert isSingleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2981 assert isSingleFloatRegister(dst); |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2982 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2983 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2984 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2985 public static class Fnhaddd extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2986 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2987 public Fnhaddd(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2988 /* VIS3 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
2989 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fnhaddd, src1, src2, dst); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2990 assert isDoubleFloatRegister(src1); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2991 assert isDoubleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
2992 assert isDoubleFloatRegister(dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2993 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2994 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2995 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2996 public static class Fnmadds extends Fmt5a { |
10459 | 2997 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
2998 public Fnmadds(SPARCAssembler asm, Register src1, Register src2, Register src3, Register dst) { |
10459 | 2999 super(asm, Ops.ArithOp.getValue(), Op3s.Impdep2.getValue(), Op5s.Fnmadds.getValue(), src1.encoding(), src2.encoding(), src3.encoding(), dst.encoding()); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3000 assert isSingleFloatRegister(src1); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3001 assert isSingleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3002 assert isSingleFloatRegister(src3); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3003 assert isSingleFloatRegister(dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3004 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3005 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3006 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3007 public static class Fnmaddd extends Fmt5a { |
10459 | 3008 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3009 public Fnmaddd(SPARCAssembler asm, Register src1, Register src2, Register src3, Register dst) { |
10459 | 3010 super(asm, Ops.ArithOp.getValue(), Op3s.Impdep2.getValue(), Op5s.Fnmaddd.getValue(), src1.encoding(), src2.encoding(), src3.encoding(), dst.encoding()); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3011 assert isDoubleFloatRegister(src1); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3012 assert isDoubleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3013 assert isDoubleFloatRegister(src3); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3014 assert isDoubleFloatRegister(dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3015 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3016 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3017 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3018 public static class Fnmsubs extends Fmt5a { |
10459 | 3019 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3020 public Fnmsubs(SPARCAssembler masm, Register src1, Register src2, Register src3, Register dst) { |
10459 | 3021 super(masm, Ops.ArithOp.getValue(), Op3s.Impdep2.getValue(), Op5s.Fnmsubs.getValue(), src1.encoding(), src2.encoding(), src3.encoding(), dst.encoding()); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3022 assert isSingleFloatRegister(src1); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3023 assert isSingleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3024 assert isSingleFloatRegister(src3); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3025 assert isSingleFloatRegister(dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3026 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3027 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3028 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3029 public static class Fnmsubd extends Fmt5a { |
10459 | 3030 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3031 public Fnmsubd(SPARCAssembler masm, Register src1, Register src2, Register src3, Register dst) { |
10459 | 3032 super(masm, Ops.ArithOp.getValue(), Op3s.Impdep2.getValue(), Op5s.Fnmsubd.getValue(), src1.encoding(), src2.encoding(), src3.encoding(), dst.encoding()); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3033 assert isDoubleFloatRegister(src1); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3034 assert isDoubleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3035 assert isDoubleFloatRegister(src3); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3036 assert isDoubleFloatRegister(dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3037 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3038 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3039 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3040 public static class Fnmuls extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3041 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3042 public Fnmuls(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3043 /* VIS3 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3044 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fnmuls, src1, src2, dst); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3045 assert isSingleFloatRegister(src1); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3046 assert isSingleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3047 assert isSingleFloatRegister(dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3048 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3049 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3050 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3051 public static class Fnmuld extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3052 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3053 public Fnmuld(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3054 /* VIS3 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3055 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fnmuld, src1, src2, dst); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3056 assert isDoubleFloatRegister(src1); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3057 assert isDoubleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3058 assert isDoubleFloatRegister(dst); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3059 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3060 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
3061 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3062 public static class Fnsmuld extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3063 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3064 public Fnsmuld(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3065 /* VIS3 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3066 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fnsmuld, src1, src2, dst); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3067 assert isDoubleFloatRegister(src1); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3068 assert isDoubleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3069 assert isDoubleFloatRegister(dst); |
9825
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
3070 } |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
3071 } |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
3072 |
9817
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
3073 public static class Fstoi extends Fmt3n { |
10459 | 3074 |
16528
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
3075 public Fstoi(Register src2, Register dst) { |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
3076 super(Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fstoi.getValue(), src2.encoding(), dst.encoding()); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3077 assert isSingleFloatRegister(dst); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3078 assert isSingleFloatRegister(src2); |
9817
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
3079 } |
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
3080 } |
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
3081 |
16321
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
3082 public static class Fstox extends Fmt3n { |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
3083 |
16528
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
3084 public Fstox(Register src2, Register dst) { |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
3085 super(Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fstox.getValue(), src2.encoding(), dst.encoding()); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3086 assert isDoubleFloatRegister(dst); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3087 assert isSingleFloatRegister(src2); |
16321
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
3088 } |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
3089 } |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
3090 |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
3091 public static class Fdtox extends Fmt3n { |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
3092 |
16528
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
3093 public Fdtox(Register src2, Register dst) { |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
3094 super(Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fdtox.getValue(), src2.encoding(), dst.encoding()); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3095 assert isDoubleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3096 assert isDoubleFloatRegister(dst); |
16321
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
3097 } |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
3098 } |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
3099 |
16319
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
3100 public static class Fstod extends Fmt3n { |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
3101 |
16528
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
3102 public Fstod(Register src2, Register dst) { |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
3103 super(Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fstod.getValue(), src2.encoding(), dst.encoding()); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3104 assert isDoubleFloatRegister(dst); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3105 assert isSingleFloatRegister(src2); |
16319
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
3106 } |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
3107 } |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
3108 |
16303
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
3109 /** |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
3110 * Convert Double to 32-bit Integer |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
3111 */ |
9817
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
3112 public static class Fdtoi extends Fmt3n { |
10459 | 3113 |
16528
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
3114 public Fdtoi(Register src2, Register dst) { |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
3115 super(Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fdtoi.getValue(), src2.encoding(), dst.encoding()); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3116 assert isDoubleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3117 assert isSingleFloatRegister(dst); |
9817
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
3118 } |
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
3119 } |
26960d32552c
SPARC integer arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9816
diff
changeset
|
3120 |
16315
b955d649fca8
Fixing BC_i2f, BC_i2c, BC_fadd
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16313
diff
changeset
|
3121 public static class Fitos extends Fmt3n { |
b955d649fca8
Fixing BC_i2f, BC_i2c, BC_fadd
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16313
diff
changeset
|
3122 |
16528
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
3123 public Fitos(Register src2, Register dst) { |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
3124 super(Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fitos.getValue(), src2.encoding(), dst.encoding()); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3125 assert isSingleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3126 assert isSingleFloatRegister(dst); |
16315
b955d649fca8
Fixing BC_i2f, BC_i2c, BC_fadd
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16313
diff
changeset
|
3127 } |
b955d649fca8
Fixing BC_i2f, BC_i2c, BC_fadd
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16313
diff
changeset
|
3128 } |
b955d649fca8
Fixing BC_i2f, BC_i2c, BC_fadd
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16313
diff
changeset
|
3129 |
16319
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
3130 public static class Fitod extends Fmt3n { |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
3131 |
16528
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
3132 public Fitod(Register src2, Register dst) { |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
3133 super(Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fitod.getValue(), src2.encoding(), dst.encoding()); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3134 assert isSingleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3135 assert isDoubleFloatRegister(dst); |
16319
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
3136 } |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
3137 } |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
3138 |
17082
f8586d059f9d
[SPARC] make compatible for CPU without VIS3 and do some cleanup
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
17029
diff
changeset
|
3139 public static class Fxtos extends Fmt3n { |
f8586d059f9d
[SPARC] make compatible for CPU without VIS3 and do some cleanup
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
17029
diff
changeset
|
3140 |
f8586d059f9d
[SPARC] make compatible for CPU without VIS3 and do some cleanup
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
17029
diff
changeset
|
3141 public Fxtos(Register src2, Register dst) { |
f8586d059f9d
[SPARC] make compatible for CPU without VIS3 and do some cleanup
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
17029
diff
changeset
|
3142 super(Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fxtos.getValue(), src2.encoding(), dst.encoding()); |
f8586d059f9d
[SPARC] make compatible for CPU without VIS3 and do some cleanup
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
17029
diff
changeset
|
3143 assert isDoubleFloatRegister(src2); |
f8586d059f9d
[SPARC] make compatible for CPU without VIS3 and do some cleanup
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
17029
diff
changeset
|
3144 assert isSingleFloatRegister(dst); |
f8586d059f9d
[SPARC] make compatible for CPU without VIS3 and do some cleanup
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
17029
diff
changeset
|
3145 } |
f8586d059f9d
[SPARC] make compatible for CPU without VIS3 and do some cleanup
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
17029
diff
changeset
|
3146 } |
f8586d059f9d
[SPARC] make compatible for CPU without VIS3 and do some cleanup
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
17029
diff
changeset
|
3147 |
16319
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
3148 public static class Fxtod extends Fmt3n { |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
3149 |
16528
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
3150 public Fxtod(Register src2, Register dst) { |
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
3151 super(Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fxtod.getValue(), src2.encoding(), dst.encoding()); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3152 assert isDoubleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3153 assert isDoubleFloatRegister(dst); |
16319
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
3154 } |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
3155 } |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
3156 |
16303
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
3157 /** |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
3158 * Flush register windows |
66c7e50a9a32
SPARCMove.java: Adding constant float and double loads
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
14908
diff
changeset
|
3159 */ |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3160 public static class Flushw extends Fmt10 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3161 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3162 public Flushw() { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3163 super(Op3s.Flushw); |
9844
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
3164 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3165 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3166 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3167 public static class Fpack16 extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3168 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3169 public Fpack16(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3170 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpack16, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3171 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3172 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3173 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3174 public static class Fpack32 extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3175 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3176 public Fpack32(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3177 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpack32, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3178 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3179 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3180 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3181 public static class Fpackfix extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3182 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3183 public Fpackfix(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3184 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpackfix, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3185 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3186 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3187 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3188 public static class Fpmaddx extends Fmt5a { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3189 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3190 public Fpmaddx(SPARCAssembler asm, Register src1, Register src2, Register src3, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3191 super(asm, Ops.ArithOp.getValue(), Op3s.Impdep2.getValue(), 0, src1.encoding(), src2.encoding(), src3.encoding(), dst.encoding()); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3192 assert isDoubleFloatRegister(src1); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3193 assert isDoubleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3194 assert isDoubleFloatRegister(src3); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3195 assert isDoubleFloatRegister(dst); |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3196 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3197 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3198 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3199 public static class Fpmaddxhi extends Fmt5a { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3200 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3201 public Fpmaddxhi(SPARCAssembler asm, Register src1, Register src2, Register src3, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3202 super(asm, Ops.ArithOp.getValue(), Op3s.Impdep2.getValue(), 4, src1.encoding(), src2.encoding(), src3.encoding(), dst.encoding()); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3203 assert isDoubleFloatRegister(src1); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3204 assert isDoubleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3205 assert isDoubleFloatRegister(src3); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3206 assert isDoubleFloatRegister(dst); |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3207 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3208 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3209 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3210 public static class Fpmerge extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3211 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3212 public Fpmerge(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3213 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3214 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpmerge, src1, src2, dst); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3215 assert isSingleFloatRegister(src1); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3216 assert isSingleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3217 assert isDoubleFloatRegister(dst); |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3218 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3219 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3220 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3221 public static class Fpsub16 extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3222 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3223 public Fpsub16(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3224 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3225 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpsub16, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3226 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3227 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3228 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3229 public static class Fpsub16s extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3230 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3231 public Fpsub16s(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3232 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3233 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpsub16s, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3234 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3235 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3236 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3237 public static class Fpsub32 extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3238 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3239 public Fpsub32(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3240 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3241 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpsub32, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3242 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3243 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3244 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3245 public static class Fpsub32s extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3246 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3247 public Fpsub32s(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3248 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3249 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpsub32s, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3250 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3251 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3252 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3253 public static class Fpsub64 extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3254 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3255 public Fpsub64(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3256 /* OSA 2011 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3257 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpsub64, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3258 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3259 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3260 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3261 public static class Fpsubs16 extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3262 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3263 public Fpsubs16(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3264 /* OSA 2011 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3265 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpsubs16, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3266 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3267 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3268 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3269 public static class Fpsubs16s extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3270 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3271 public Fpsubs16s(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3272 /* OSA 2011 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3273 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpsubs16s, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3274 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3275 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3276 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3277 public static class Fpsubs32 extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3278 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3279 public Fpsubs32(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3280 /* OSA 2011 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3281 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpsubs32, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3282 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3283 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3284 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3285 public static class Fpsubs32s extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3286 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3287 public Fpsubs32s(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3288 /* OSA 2011 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3289 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fpsubs32s, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3290 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3291 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3292 |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
3293 public static class Fsqrtd extends Fmt3p { |
10459 | 3294 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3295 public Fsqrtd(Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3296 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fsqrtd, SPARC.r0, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3297 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3298 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3299 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3300 public static class Fsrc1d extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3301 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3302 public Fsrc1d(Register src1, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3303 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3304 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fsrc1d, src1, SPARC.r0, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3305 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3306 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3307 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3308 public static class Fsrc1s extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3309 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3310 public Fsrc1s(Register src1, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3311 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3312 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fsrc1s, src1, SPARC.r0, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3313 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3314 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3315 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3316 public static class Fsrc2d extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3317 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3318 public Fsrc2d(Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3319 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3320 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fsrc2d, SPARC.r0, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3321 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3322 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3323 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3324 public static class Fsrc2s extends Fmt3p { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3325 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3326 public Fsrc2s(Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3327 /* VIS1 only */ |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3328 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fsrc2s, SPARC.r0, src2, dst); |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
3329 } |
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
3330 } |
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
3331 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3332 public static class Fsubs extends Fmt3p { |
10459 | 3333 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3334 public Fsubs(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3335 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fsubs, src1, src2, dst); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3336 assert isSingleFloatRegister(src1); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3337 assert isSingleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3338 assert isSingleFloatRegister(dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3339 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3340 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3341 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3342 public static class Fsubd extends Fmt3p { |
10459 | 3343 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3344 public Fsubd(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3345 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fsubd, src1, src2, dst); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3346 assert isDoubleFloatRegister(src1); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3347 assert isDoubleFloatRegister(src2); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3348 assert isDoubleFloatRegister(dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3349 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3350 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3351 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3352 public static class Fsubq extends Fmt3p { |
10459 | 3353 |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3354 public Fsubq(Register src1, Register src2, Register dst) { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3355 super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fsubq, src1, src2, dst); |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3356 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3357 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3358 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3359 public static class Fzeros extends Fmt3n { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3360 |
16528
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
3361 public Fzeros(Register dst) { |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3362 /* VIS1 only */ |
16528
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
3363 super(Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fzeros.getValue(), 0, dst.encoding()); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3364 assert isSingleFloatRegister(dst); |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3365 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3366 } |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3367 |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3368 public static class Fzerod extends Fmt3n { |
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3369 |
16528
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
3370 public Fzerod(Register dst) { |
10564
1b864a1552e0
SPARCAssembler Fmt3p upgrade
Morris Meyer <morris.meyer@oracle.com>
parents:
10468
diff
changeset
|
3371 /* VIS1 only */ |
16528
98686250ed46
[SPARC] Fixing structure of fpops to avoid javac/findbugs complaints
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16521
diff
changeset
|
3372 super(Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fzerod.getValue(), 0, dst.encoding()); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3373 assert isDoubleFloatRegister(dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3374 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3375 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3376 |
16321
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
3377 public static class Fcmp extends Fmt3c { |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
3378 |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
3379 public Fcmp(CC cc, Opfs opf, Register r1, Register r2) { |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
3380 super(Ops.ArithOp, cc, 0b110101, opf, r1, r2); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3381 assert opf != Opfs.Fcmpd || (isDoubleFloatRegister(r1) && isDoubleFloatRegister(r2)); |
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3382 assert opf != Opfs.Fcmps || (isSingleFloatRegister(r1) && isSingleFloatRegister(r2)); |
16321
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
3383 } |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
3384 } |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
3385 |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3386 public static class Fba extends Fmt00b { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3387 public Fba(boolean annul, Label label) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3388 super(annul, FCond.Fba, Op2s.Fb, label); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3389 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3390 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3391 public Fba(boolean annul, int disp) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3392 super(annul, FCond.Fba, Op2s.Fb, disp); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3393 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3394 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3395 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3396 public static class Fbn extends Fmt00b { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3397 public Fbn(boolean annul, Label label) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3398 super(annul, FCond.Fbn, Op2s.Fb, label); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3399 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3400 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3401 public Fbn(boolean annul, int disp) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3402 super(annul, FCond.Fbn, Op2s.Fb, disp); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3403 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3404 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3405 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3406 public static class Fbu extends Fmt00b { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3407 public Fbu(boolean annul, Label label) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3408 super(annul, FCond.Fbu, Op2s.Fb, label); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3409 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3410 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3411 public Fbu(boolean annul, int disp) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3412 super(annul, FCond.Fbu, Op2s.Fb, disp); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3413 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3414 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3415 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3416 public static class Fbg extends Fmt00b { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3417 public Fbg(boolean annul, Label label) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3418 super(annul, FCond.Fbg, Op2s.Fb, label); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3419 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3420 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3421 public Fbg(boolean annul, int disp) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3422 super(annul, FCond.Fbg, Op2s.Fb, disp); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3423 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3424 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3425 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3426 public static class Fbug extends Fmt00b { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3427 public Fbug(boolean annul, Label label) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3428 super(annul, FCond.Fbug, Op2s.Fb, label); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3429 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3430 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3431 public Fbug(boolean annul, int disp) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3432 super(annul, FCond.Fbug, Op2s.Fb, disp); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3433 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3434 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3435 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3436 public static class Fbl extends Fmt00b { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3437 public Fbl(boolean annul, Label label) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3438 super(annul, FCond.Fbl, Op2s.Fb, label); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3439 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3440 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3441 public Fbl(boolean annul, int disp) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3442 super(annul, FCond.Fbl, Op2s.Fb, disp); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3443 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3444 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3445 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3446 public static class Fbul extends Fmt00b { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3447 public Fbul(boolean annul, Label label) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3448 super(annul, FCond.Fbul, Op2s.Fb, label); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3449 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3450 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3451 public Fbul(boolean annul, int disp) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3452 super(annul, FCond.Fbul, Op2s.Fb, disp); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3453 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3454 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3455 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3456 public static class Fblg extends Fmt00b { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3457 public Fblg(boolean annul, Label label) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3458 super(annul, FCond.Fblg, Op2s.Fb, label); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3459 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3460 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3461 public Fblg(boolean annul, int disp) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3462 super(annul, FCond.Fblg, Op2s.Fb, disp); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3463 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3464 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3465 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3466 public static class Fbne extends Fmt00b { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3467 public Fbne(boolean annul, Label label) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3468 super(annul, FCond.Fbne, Op2s.Fb, label); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3469 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3470 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3471 public Fbne(boolean annul, int disp) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3472 super(annul, FCond.Fbne, Op2s.Fb, disp); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3473 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3474 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3475 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3476 public static class Fbe extends Fmt00b { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3477 public Fbe(boolean annul, Label label) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3478 super(annul, FCond.Fbe, Op2s.Fb, label); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3479 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3480 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3481 public Fbe(boolean annul, int disp) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3482 super(annul, FCond.Fbe, Op2s.Fb, disp); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3483 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3484 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3485 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3486 public static class Fbue extends Fmt00b { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3487 public Fbue(boolean annul, Label label) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3488 super(annul, FCond.Fbue, Op2s.Fb, label); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3489 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3490 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3491 public Fbue(boolean annul, int disp) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3492 super(annul, FCond.Fbue, Op2s.Fb, disp); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3493 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3494 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3495 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3496 public static class Fbge extends Fmt00b { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3497 public Fbge(boolean annul, Label label) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3498 super(annul, FCond.Fbge, Op2s.Fb, label); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3499 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3500 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3501 public Fbge(boolean annul, int disp) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3502 super(annul, FCond.Fbge, Op2s.Fb, disp); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3503 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3504 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3505 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3506 public static class Fbuge extends Fmt00b { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3507 public Fbuge(boolean annul, Label label) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3508 super(annul, FCond.Fbuge, Op2s.Fb, label); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3509 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3510 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3511 public Fbuge(boolean annul, int disp) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3512 super(annul, FCond.Fbuge, Op2s.Fb, disp); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3513 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3514 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3515 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3516 public static class Fble extends Fmt00b { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3517 public Fble(boolean annul, Label label) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3518 super(annul, FCond.Fble, Op2s.Fb, label); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3519 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3520 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3521 public Fble(boolean annul, int disp) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3522 super(annul, FCond.Fble, Op2s.Fb, disp); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3523 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3524 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3525 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3526 public static class Fbule extends Fmt00b { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3527 public Fbule(boolean annul, Label label) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3528 super(annul, FCond.Fbule, Op2s.Fb, label); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3529 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3530 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3531 public Fbule(boolean annul, int disp) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3532 super(annul, FCond.Fbule, Op2s.Fb, disp); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3533 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3534 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3535 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3536 public static class Fbo extends Fmt00b { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3537 public Fbo(boolean annul, Label label) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3538 super(annul, FCond.Fbo, Op2s.Fb, label); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3539 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3540 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3541 public Fbo(boolean annul, int disp) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3542 super(annul, FCond.Fbo, Op2s.Fb, disp); |
16321
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
3543 } |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
3544 } |
fac4af29aeb8
[SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16319
diff
changeset
|
3545 |
11233 | 3546 public static class Illtrap extends Fmt00a { |
3547 | |
3548 public Illtrap(int const22) { | |
3549 super(Op2s.Illtrap, const22, g0); | |
3550 } | |
3551 } | |
3552 | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3553 public static class Jmpl extends Fmt10 { |
10459 | 3554 |
3555 public Jmpl(Register src, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3556 super(Op3s.Jmpl, src, simm13, dst); |
9844
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
3557 } |
16651
a38fea2b8e14
[SPARC] First implementation of TableSwitchOp
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16635
diff
changeset
|
3558 |
a38fea2b8e14
[SPARC] First implementation of TableSwitchOp
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16635
diff
changeset
|
3559 public Jmpl(Register src1, Register src2, Register dst) { |
a38fea2b8e14
[SPARC] First implementation of TableSwitchOp
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16635
diff
changeset
|
3560 super(Op3s.Jmpl, src1, src2, dst); |
a38fea2b8e14
[SPARC] First implementation of TableSwitchOp
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16635
diff
changeset
|
3561 } |
9844
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
3562 } |
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
3563 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3564 public static class Lddf extends Fmt11 { |
10459 | 3565 |
3566 public Lddf(SPARCAddress src, Register dst) { | |
10792 | 3567 super(Op3s.Lddf, src, dst); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3568 assert dst == f0 || dst == f2 || dst == f4 || dst == f6 || isDoubleFloatRegister(dst); |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3569 } |
16319
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
3570 |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
3571 public Lddf(Register src, Register dst) { |
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
3572 super(Op3s.Lddf, src, dst); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3573 assert dst == f0 || dst == f2 || dst == f4 || dst == f6 || isDoubleFloatRegister(dst); |
16319
a4bd33d52985
Fixing tests with number conversions, float and double handling. Introducing new VIS3 instructions. Adding testcases.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16317
diff
changeset
|
3574 } |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3575 } |
9828
5aedcaed6ccf
Initial SPARC control instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9825
diff
changeset
|
3576 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3577 public static class Ldf extends Fmt11 { |
10459 | 3578 |
3579 public Ldf(SPARCAddress src, Register dst) { | |
10792 | 3580 super(Op3s.Ldf, src, dst); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3581 assert isSingleFloatRegister(dst); |
9825
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
3582 } |
16315
b955d649fca8
Fixing BC_i2f, BC_i2c, BC_fadd
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16313
diff
changeset
|
3583 |
b955d649fca8
Fixing BC_i2f, BC_i2c, BC_fadd
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16313
diff
changeset
|
3584 public Ldf(Register src, Register dst) { |
b955d649fca8
Fixing BC_i2f, BC_i2c, BC_fadd
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16313
diff
changeset
|
3585 super(Op3s.Ldf, src, dst); |
17028
dc293c1d969c
[SPARC] Fixing conversions of l2d l2f i2d i2f ... Adding assertions for usage of
Stefan Anzinger <stefan.anzinger@oracle.com>
parents:
16933
diff
changeset
|
3586 assert isSingleFloatRegister(dst); |
16315
b955d649fca8
Fixing BC_i2f, BC_i2c, BC_fadd
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16313
diff
changeset
|
3587 } |
9825
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
3588 } |
81d5d8089cda
SPARC float arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9817
diff
changeset
|
3589 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3590 public static class Ldsb extends Fmt11 { |
10459 | 3591 |
3592 public Ldsb(SPARCAddress src, Register dst) { | |
10792 | 3593 super(Op3s.Ldsb, src, dst); |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3594 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3595 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3596 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3597 public static class Ldsh extends Fmt11 { |
10459 | 3598 |
3599 public Ldsh(SPARCAddress src, Register dst) { | |
10792 | 3600 super(Op3s.Ldsh, src, dst); |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3601 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3602 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3603 |
11233 | 3604 public static class Lduh extends Fmt11 { |
3605 | |
3606 public Lduh(SPARCAddress src, Register dst) { | |
3607 super(Op3s.Lduh, src, dst); | |
3608 } | |
3609 } | |
3610 | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3611 public static class Ldsw extends Fmt11 { |
10459 | 3612 |
3613 public Ldsw(SPARCAddress src, Register dst) { | |
10792 | 3614 super(Op3s.Ldsw, src, dst); |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3615 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3616 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3617 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3618 public static class Lduw extends Fmt11 { |
10459 | 3619 |
3620 public Lduw(SPARCAddress src, Register dst) { | |
10792 | 3621 super(Op3s.Lduw, src, dst); |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3622 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3623 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3624 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3625 public static class Ldx extends Fmt11 { |
10459 | 3626 |
3627 public Ldx(SPARCAddress src, Register dst) { | |
10792 | 3628 super(Op3s.Ldx, src, dst); |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3629 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3630 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3631 |
16518
3eb13b910134
[SPARC] Fixing LongBits tests and some implicit exceptions
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16321
diff
changeset
|
3632 public static class Ldxa extends Fmt11 { |
3eb13b910134
[SPARC] Fixing LongBits tests and some implicit exceptions
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16321
diff
changeset
|
3633 |
3eb13b910134
[SPARC] Fixing LongBits tests and some implicit exceptions
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16321
diff
changeset
|
3634 public Ldxa(Register src1, Register src2, Register dst, Asi asi) { |
3eb13b910134
[SPARC] Fixing LongBits tests and some implicit exceptions
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16321
diff
changeset
|
3635 super(Op3s.Ldxa, src1, src2, dst, asi); |
3eb13b910134
[SPARC] Fixing LongBits tests and some implicit exceptions
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16321
diff
changeset
|
3636 } |
3eb13b910134
[SPARC] Fixing LongBits tests and some implicit exceptions
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16321
diff
changeset
|
3637 } |
3eb13b910134
[SPARC] Fixing LongBits tests and some implicit exceptions
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16321
diff
changeset
|
3638 |
3eb13b910134
[SPARC] Fixing LongBits tests and some implicit exceptions
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16321
diff
changeset
|
3639 public static class Lduwa extends Fmt11 { |
3eb13b910134
[SPARC] Fixing LongBits tests and some implicit exceptions
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16321
diff
changeset
|
3640 |
3eb13b910134
[SPARC] Fixing LongBits tests and some implicit exceptions
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16321
diff
changeset
|
3641 public Lduwa(Register src1, Register src2, Register dst, Asi asi) { |
3eb13b910134
[SPARC] Fixing LongBits tests and some implicit exceptions
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16321
diff
changeset
|
3642 super(Op3s.Lduwa, src1, src2, dst, asi); |
3eb13b910134
[SPARC] Fixing LongBits tests and some implicit exceptions
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16321
diff
changeset
|
3643 } |
3eb13b910134
[SPARC] Fixing LongBits tests and some implicit exceptions
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16321
diff
changeset
|
3644 } |
3eb13b910134
[SPARC] Fixing LongBits tests and some implicit exceptions
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16321
diff
changeset
|
3645 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3646 public static class Membar extends Fmt10 { |
10459 | 3647 |
3648 public Membar(int barriers) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3649 super(Op3s.Membar, r15, barriers, r0); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3650 } |
7740
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
3651 } |
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
3652 |
10468 | 3653 public static class Movcc extends Fmt10c { |
3654 | |
3655 public Movcc(ConditionFlag cond, CC cca, Register src2, Register dst) { | |
3656 super(Op3s.Movcc, cond, cca, src2, dst); | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3657 } |
10459 | 3658 |
10468 | 3659 public Movcc(ConditionFlag cond, CC cca, int simm11, Register dst) { |
3660 super(Op3s.Movcc, cond, cca, simm11, dst); | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3661 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3662 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3663 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3664 public static class Movr extends Fmt3f { |
10459 | 3665 |
3666 public Movr(SPARCAssembler masm, RCondition rc, Register src1, Register src2, Register dst) { | |
3667 super(masm, Ops.ArithOp.getValue(), Op3s.Movr.getValue(), rc.getValue(), src1.encoding(), src2.encoding(), dst.encoding()); | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3668 } |
10459 | 3669 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3670 public Movr(SPARCAssembler masm, RCondition rc, Register src1, int simm10, Register dst) { |
10459 | 3671 super(masm, Ops.ArithOp.getValue(), Op3s.Movr.getValue(), rc.getValue(), src1.encoding(), simm10, dst.encoding()); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3672 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3673 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3674 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3675 @Deprecated |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3676 public static class Mulscc extends Fmt10 { |
10459 | 3677 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3678 @Deprecated |
10459 | 3679 public Mulscc(Register src1, int simm13, Register dst) { |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3680 super(Op3s.Mulscc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3681 } |
10459 | 3682 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3683 @Deprecated |
10459 | 3684 public Mulscc(Register src1, Register src2, Register dst) { |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3685 super(Op3s.Mulscc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3686 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3687 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3688 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3689 public static class Mulx extends Fmt10 { |
10459 | 3690 |
3691 public Mulx(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3692 super(Op3s.Mulx, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3693 } |
10459 | 3694 |
3695 public Mulx(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3696 super(Op3s.Mulx, src1, src2, dst); |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3697 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3698 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3699 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3700 public static class Or extends Fmt10 { |
10459 | 3701 |
3702 public Or(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3703 super(Op3s.Or, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3704 } |
10459 | 3705 |
3706 public Or(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3707 super(Op3s.Or, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3708 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3709 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3710 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3711 public static class Orcc extends Fmt10 { |
10459 | 3712 |
3713 public Orcc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3714 super(Op3s.Orcc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3715 } |
10459 | 3716 |
3717 public Orcc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3718 super(Op3s.Orcc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3719 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3720 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3721 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3722 public static class Orn extends Fmt10 { |
10459 | 3723 |
3724 public Orn(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3725 super(Op3s.Orn, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3726 } |
10459 | 3727 |
3728 public Orn(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3729 super(Op3s.Orn, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3730 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3731 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3732 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3733 public static class Orncc extends Fmt10 { |
10459 | 3734 |
3735 public Orncc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3736 super(Op3s.Orncc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3737 } |
10459 | 3738 |
3739 public Orncc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3740 super(Op3s.Orncc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3741 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3742 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3743 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3744 public static class Popc extends Fmt10 { |
10459 | 3745 |
3746 public Popc(int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3747 super(Op3s.Popc, r0, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3748 } |
10459 | 3749 |
3750 public Popc(Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3751 super(Op3s.Popc, r0, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3752 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3753 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3754 |
14013 | 3755 public static class Prefetch extends Fmt11 { |
3756 | |
3757 public enum Fcn { | |
14908
8db6e76cb658
Formatter: Keep one enum constant per line
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
14032
diff
changeset
|
3758 SeveralReads(0), |
8db6e76cb658
Formatter: Keep one enum constant per line
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
14032
diff
changeset
|
3759 OneRead(1), |
8db6e76cb658
Formatter: Keep one enum constant per line
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
14032
diff
changeset
|
3760 SeveralWritesAndPossiblyReads(2), |
8db6e76cb658
Formatter: Keep one enum constant per line
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
14032
diff
changeset
|
3761 OneWrite(3), |
8db6e76cb658
Formatter: Keep one enum constant per line
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
14032
diff
changeset
|
3762 Page(4); |
14013 | 3763 |
3764 private final int value; | |
3765 | |
3766 private Fcn(int value) { | |
3767 this.value = value; | |
3768 } | |
3769 | |
3770 public int getValue() { | |
3771 return value; | |
3772 } | |
3773 } | |
3774 | |
3775 public Prefetch(SPARCAddress addr, Prefetch.Fcn fcn) { | |
3776 super(Op3s.Prefetch, addr, fcn); | |
3777 } | |
3778 } | |
3779 | |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3780 // A.44 Read State Register |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3781 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3782 @Deprecated |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3783 public static class Rdy extends Fmt10 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3784 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3785 public Rdy(Register dst) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3786 super(Op3s.Rdreg, r0, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3787 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3788 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3789 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3790 public static class Rdccr extends Fmt10 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3791 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3792 public Rdccr(Register dst) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3793 super(Op3s.Rdreg, r2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3794 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3795 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3796 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3797 public static class Rdasi extends Fmt10 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3798 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3799 public Rdasi(Register dst) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3800 super(Op3s.Rdreg, r3, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3801 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3802 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3803 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3804 public static class Rdtick extends Fmt10 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3805 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3806 public Rdtick(Register dst) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3807 super(Op3s.Rdreg, r4, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3808 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3809 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3810 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3811 public static class Rdpc extends Fmt10 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3812 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3813 public Rdpc(Register dst) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3814 super(Op3s.Rdreg, r5, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3815 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3816 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3817 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3818 public static class Rdfprs extends Fmt10 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3819 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3820 public Rdfprs(Register dst) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3821 super(Op3s.Rdreg, r6, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3822 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3823 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3824 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3825 public static class Restore extends Fmt10 { |
10459 | 3826 |
3827 public Restore(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3828 super(Op3s.Restore, src1, src2, dst); |
9844
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
3829 } |
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
3830 } |
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
3831 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3832 public static class Restored extends Fmt10 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3833 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3834 public Restored() { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3835 super(Op3s.Saved, r0, r0, r1); |
9844
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
3836 } |
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
3837 } |
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
3838 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3839 public static class Return extends Fmt10 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3840 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3841 public Return(Register src1, int simm13) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3842 super(Op3s.Rett, src1, simm13, r0); |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3843 } |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3844 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3845 public Return(Register src1, Register src2) { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3846 super(Op3s.Rett, src1, src2, r0); |
9816
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
3847 } |
16633
57c3b36b894b
[SPARC] Improving Exception Handling and Const2Stack
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16528
diff
changeset
|
3848 |
57c3b36b894b
[SPARC] Improving Exception Handling and Const2Stack
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16528
diff
changeset
|
3849 public static int PC_RETURN_OFFSET = 8; |
9816
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
3850 } |
4e9854086532
Initial SPARC compilation test
Morris Meyer <morris.meyer@oracle.com>
parents:
9814
diff
changeset
|
3851 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3852 public static class Save extends Fmt10 { |
10459 | 3853 |
3854 public Save(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3855 super(Op3s.Save, src1, src2, dst); |
10459 | 3856 } |
3857 | |
3858 public Save(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3859 super(Op3s.Save, src1, simm13, dst); |
9844
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
3860 } |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3861 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3862 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3863 public static class Saved extends Fmt10 { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3864 |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3865 public Saved() { |
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3866 super(Op3s.Saved, r0, r0, r0); |
9844
2d1687e63484
SPARCMacroAssembler and synthetic instructions
Morris Meyer <morris.meyer@oracle.com>
parents:
9843
diff
changeset
|
3867 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3868 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3869 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3870 @Deprecated |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3871 public static class Sdiv extends Fmt10 { |
10459 | 3872 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3873 @Deprecated |
10459 | 3874 public Sdiv(Register src1, int simm13, Register dst) { |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3875 super(Op3s.Sdiv, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3876 } |
10459 | 3877 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3878 @Deprecated |
10459 | 3879 public Sdiv(Register src1, Register src2, Register dst) { |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3880 super(Op3s.Sdiv, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3881 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3882 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3883 |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3884 @Deprecated |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3885 public static class Sdivcc extends Fmt10 { |
10459 | 3886 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3887 @Deprecated |
10459 | 3888 public Sdivcc(Register src1, int simm13, Register dst) { |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3889 super(Op3s.Sdivcc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3890 } |
10459 | 3891 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3892 @Deprecated |
10459 | 3893 public Sdivcc(Register src1, Register src2, Register dst) { |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3894 super(Op3s.Sdivcc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3895 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3896 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3897 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3898 public static class Sdivx extends Fmt10 { |
10459 | 3899 |
3900 public Sdivx(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3901 super(Op3s.Sdivx, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3902 } |
10459 | 3903 |
3904 public Sdivx(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3905 super(Op3s.Sdivx, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3906 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3907 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3908 |
10459 | 3909 public static class Sethi extends Fmt00a { |
3910 | |
10792 | 3911 public Sethi(int imm22, Register dst) { |
3912 super(Op2s.Sethi, imm22, dst); | |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3913 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3914 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3915 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3916 public static class Sir extends Fmt10 { |
10459 | 3917 |
3918 public Sir(int simm13) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3919 super(Op3s.Sir, r0, simm13, r15); |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3920 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3921 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
3922 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3923 public static class Sll extends Fmt10 { |
10459 | 3924 |
11233 | 3925 public Sll(Register src1, int shcnt32, Register dst) { |
3926 super(Op3s.Sll, src1, shcnt32, dst); | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3927 } |
10459 | 3928 |
3929 public Sll(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3930 super(Op3s.Sll, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3931 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3932 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3933 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3934 public static class Sllx extends Fmt10 { |
10459 | 3935 |
11233 | 3936 public Sllx(Register src1, int shcnt64, Register dst) { |
3937 super(Op3s.Sllx, src1, shcnt64, dst); | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3938 } |
10459 | 3939 |
3940 public Sllx(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3941 super(Op3s.Sllx, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3942 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3943 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3944 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3945 public static class Sra extends Fmt10 { |
10459 | 3946 |
11233 | 3947 public Sra(Register src1, int shcnt32, Register dst) { |
3948 super(Op3s.Sra, src1, shcnt32, dst); | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3949 } |
10459 | 3950 |
3951 public Sra(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3952 super(Op3s.Sra, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3953 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3954 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3955 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3956 public static class Srax extends Fmt10 { |
10459 | 3957 |
11233 | 3958 public Srax(Register src1, int shcnt64, Register dst) { |
3959 super(Op3s.Srax, src1, shcnt64, dst); | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3960 } |
10459 | 3961 |
3962 public Srax(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3963 super(Op3s.Srax, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3964 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3965 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3966 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3967 public static class Srl extends Fmt10 { |
10459 | 3968 |
11233 | 3969 public Srl(Register src1, int shcnt32, Register dst) { |
3970 super(Op3s.Srl, src1, shcnt32, dst); | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3971 } |
10459 | 3972 |
3973 public Srl(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3974 super(Op3s.Srl, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3975 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3976 } |
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3977 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3978 public static class Srlx extends Fmt10 { |
10459 | 3979 |
11233 | 3980 public Srlx(Register src1, int shcnt64, Register dst) { |
3981 super(Op3s.Srlx, src1, shcnt64, dst); | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
3982 } |
10459 | 3983 |
3984 public Srlx(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
3985 super(Op3s.Srlx, src1, src2, dst); |
9845
204e8f3209e9
SPARCMacroAssembler synthetic instructions and SPARCTestOp
Morris Meyer <morris.meyer@oracle.com>
parents:
9844
diff
changeset
|
3986 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3987 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
3988 |
16520
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3989 public static class Fandd extends Fmt3p { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3990 public Fandd(Register src1, Register src2, Register dst) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3991 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fandd, src1, src2, dst); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3992 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3993 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3994 |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3995 public static class Fands extends Fmt3p { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3996 public Fands(Register src1, Register src2, Register dst) { |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3997 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Fands, src1, src2, dst); |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3998 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
3999 } |
9a07bf8467a6
[SPARC] Implement floatingpoint branch instructions, removing math substitutions for SPARC; fixing problems with constants in debug info (Big/Little Endian problems)
Stefan Anzinger <stefan.anzinger@gmail.com>
parents:
16518
diff
changeset
|
4000 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4001 public static class Stb extends Fmt11 { |
10459 | 4002 |
4003 public Stb(Register dst, SPARCAddress addr) { | |
10792 | 4004 super(Op3s.Stb, addr, dst); |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
4005 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
4006 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
4007 |
15345 | 4008 public static class Stdf extends Fmt11 { |
4009 | |
4010 public Stdf(Register dst, SPARCAddress src) { | |
4011 super(Op3s.Stdf, src, dst); | |
4012 } | |
4013 } | |
4014 | |
4015 public static class Stf extends Fmt11 { | |
4016 | |
4017 public Stf(Register dst, SPARCAddress src) { | |
4018 super(Op3s.Stf, src, dst); | |
4019 } | |
4020 } | |
4021 | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4022 public static class Sth extends Fmt11 { |
10459 | 4023 |
4024 public Sth(Register dst, SPARCAddress addr) { | |
10792 | 4025 super(Op3s.Sth, addr, dst); |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
4026 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
4027 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
4028 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4029 public static class Stw extends Fmt11 { |
10459 | 4030 |
4031 public Stw(Register dst, SPARCAddress addr) { | |
10792 | 4032 super(Op3s.Stw, addr, dst); |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
4033 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
4034 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
4035 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4036 public static class Stx extends Fmt11 { |
10459 | 4037 |
4038 public Stx(Register dst, SPARCAddress addr) { | |
10792 | 4039 super(Op3s.Stx, addr, dst); |
9831
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
4040 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
4041 } |
705aca4ebf2f
SPARC array, load / store and compare operations
Morris Meyer <morris.meyer@oracle.com>
parents:
9828
diff
changeset
|
4042 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4043 public static class Sub extends Fmt10 { |
10459 | 4044 |
4045 public Sub(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4046 super(Op3s.Sub, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4047 } |
10459 | 4048 |
4049 public Sub(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4050 super(Op3s.Sub, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4051 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4052 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4053 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4054 public static class Subc extends Fmt10 { |
10459 | 4055 |
4056 public Subc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4057 super(Op3s.Subc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4058 } |
10459 | 4059 |
4060 public Subc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4061 super(Op3s.Subc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4062 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4063 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4064 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4065 public static class Subcc extends Fmt10 { |
10459 | 4066 |
4067 public Subcc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4068 super(Op3s.Subcc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4069 } |
10459 | 4070 |
4071 public Subcc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4072 super(Op3s.Subcc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4073 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4074 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4075 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4076 public static class Subccc extends Fmt10 { |
10459 | 4077 |
4078 public Subccc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4079 super(Op3s.Subccc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4080 } |
10459 | 4081 |
4082 public Subccc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4083 super(Op3s.Subccc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4084 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4085 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4086 |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
4087 public static class Ta extends Fmt4a { |
10459 | 4088 |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
4089 public Ta(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 4090 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.Always.getValue()); |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
4091 } |
10459 | 4092 |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
4093 public Ta(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 4094 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.Always.getValue()); |
9846
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
4095 } |
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
4096 } |
91a1041ec905
SPARCLIRGenerator, sqrt, condition move, breakpoint op, partial bit ops
Morris Meyer <morris.meyer@oracle.com>
parents:
9845
diff
changeset
|
4097 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4098 public static class Taddcc extends Fmt10 { |
10459 | 4099 |
4100 public Taddcc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4101 super(Op3s.Taddcc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4102 } |
10459 | 4103 |
4104 public Taddcc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4105 super(Op3s.Taddcc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4106 } |
7740
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
4107 } |
7839
838293a77af7
Make Address class platform specific.
Roland Schatz <roland.schatz@oracle.com>
parents:
7808
diff
changeset
|
4108 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4109 public static class Tcc extends Fmt4a { |
10459 | 4110 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4111 public Tcc(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 4112 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.CarryClear.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4113 } |
10459 | 4114 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4115 public Tcc(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 4116 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.CarryClear.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4117 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4118 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4119 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4120 public static class Tcs extends Fmt4a { |
10459 | 4121 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4122 public Tcs(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 4123 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.CarrySet.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4124 } |
10459 | 4125 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4126 public Tcs(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 4127 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.CarrySet.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4128 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4129 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4130 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4131 public static class Te extends Fmt4a { |
10459 | 4132 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4133 public Te(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 4134 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.Equal.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4135 } |
10459 | 4136 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4137 public Te(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 4138 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.Equal.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4139 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4140 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4141 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4142 public static class Tg extends Fmt4a { |
10459 | 4143 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4144 public Tg(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 4145 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.Greater.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4146 } |
10459 | 4147 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4148 public Tg(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 4149 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.Greater.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4150 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4151 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4152 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4153 public static class Tge extends Fmt4a { |
10459 | 4154 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4155 public Tge(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 4156 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.GreaterEqual.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4157 } |
10459 | 4158 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4159 public Tge(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 4160 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.GreaterEqual.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4161 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4162 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4163 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4164 public static class Tle extends Fmt4a { |
10459 | 4165 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4166 public Tle(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 4167 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.LessEqual.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4168 } |
10459 | 4169 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4170 public Tle(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 4171 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.LessEqual.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4172 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4173 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4174 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4175 public static class Tleu extends Fmt4a { |
10459 | 4176 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4177 public Tleu(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 4178 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.LessEqualUnsigned.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4179 } |
10459 | 4180 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4181 public Tleu(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 4182 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.LessEqualUnsigned.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4183 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4184 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4185 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4186 public static class Tn extends Fmt4a { |
10459 | 4187 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4188 public Tn(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 4189 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.Never.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4190 } |
10459 | 4191 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4192 public Tn(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 4193 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.Never.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4194 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4195 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4196 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4197 public static class Tne extends Fmt4a { |
10459 | 4198 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4199 public Tne(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 4200 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.NotEqual.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4201 } |
10459 | 4202 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4203 public Tne(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 4204 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.NotEqual.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4205 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4206 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4207 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4208 public static class Tneg extends Fmt4a { |
10459 | 4209 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4210 public Tneg(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 4211 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.Negative.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4212 } |
10459 | 4213 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4214 public Tneg(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 4215 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.Negative.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4216 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4217 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4218 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4219 public static class Tpos extends Fmt4a { |
10459 | 4220 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4221 public Tpos(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 4222 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.Positive.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4223 } |
10459 | 4224 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4225 public Tpos(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 4226 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.Positive.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4227 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4228 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4229 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4230 public static class Tsubcc extends Fmt10 { |
10459 | 4231 |
4232 public Tsubcc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4233 super(Op3s.Tsubcc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4234 } |
10459 | 4235 |
4236 public Tsubcc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4237 super(Op3s.Tsubcc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4238 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4239 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4240 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4241 public static class Tvc extends Fmt4a { |
10459 | 4242 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4243 public Tvc(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 4244 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.OverflowClear.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4245 } |
10459 | 4246 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4247 public Tvc(SPARCAssembler asm, CC cc, Register src1, Register src2) { |
10459 | 4248 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.OverflowClear.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4249 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4250 } |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4251 |
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4252 public static class Tvs extends Fmt4a { |
10459 | 4253 |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4254 public Tvs(SPARCAssembler asm, CC cc, Register src1, int trap) { |
10459 | 4255 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), trap, ConditionFlag.OverflowSet.getValue()); |
9949
41511d78546a
SPARC UA 2011 assembler changes, bit manipulation synthetics
Morris Meyer <morris.meyer@oracle.com>
parents:
9846
diff
changeset
|
4256 } |
10459 | 4257 |
4258 public Tvs(SPARCAssembler asm, CC cc, Register src1, Register src2) { | |
4259 super(asm, Ops.ArithOp.getValue(), Op3s.Trap.getValue(), cc.getValue(), src1.encoding(), src2.encoding(), ConditionFlag.OverflowSet.getValue()); | |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4260 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4261 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4262 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4263 public static class Udivx extends Fmt10 { |
10459 | 4264 |
4265 public Udivx(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4266 super(Op3s.Udivx, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4267 } |
10459 | 4268 |
4269 public Udivx(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4270 super(Op3s.Udivx, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4271 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4272 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4273 |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4274 @Deprecated |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4275 public static class Wry extends Fmt10 { |
10459 | 4276 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4277 @Deprecated |
10459 | 4278 public Wry(Register src1, int simm13) { |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4279 super(Op3s.Wrreg, src1, simm13, r0); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4280 } |
10459 | 4281 |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4282 @Deprecated |
10459 | 4283 public Wry(Register src1, Register src2) { |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4284 super(Op3s.Wrreg, src1, src2, r0); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4285 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4286 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4287 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4288 public static class Wrccr extends Fmt10 { |
10459 | 4289 |
4290 public Wrccr(Register src1, int simm13) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4291 super(Op3s.Wrreg, src1, simm13, r2); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4292 } |
10459 | 4293 |
4294 public Wrccr(Register src1, Register src2) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4295 super(Op3s.Wrreg, src1, src2, r2); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4296 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4297 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4298 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4299 public static class Wrasi extends Fmt10 { |
10459 | 4300 |
4301 public Wrasi(Register src1, int simm13) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4302 super(Op3s.Wrreg, src1, simm13, r3); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4303 } |
10459 | 4304 |
4305 public Wrasi(Register src1, Register src2) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4306 super(Op3s.Wrreg, src1, src2, r3); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4307 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4308 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4309 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4310 public static class Wrfprs extends Fmt10 { |
10459 | 4311 |
4312 public Wrfprs(Register src1, int simm13) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4313 super(Op3s.Wrreg, src1, simm13, r6); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4314 } |
10459 | 4315 |
4316 public Wrfprs(Register src1, Register src2) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4317 super(Op3s.Wrreg, src1, src2, r6); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4318 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4319 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4320 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4321 public static class Xor extends Fmt10 { |
10459 | 4322 |
4323 public Xor(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4324 super(Op3s.Xor, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4325 } |
10459 | 4326 |
4327 public Xor(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4328 super(Op3s.Xor, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4329 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4330 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4331 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4332 public static class Xorcc extends Fmt10 { |
10459 | 4333 |
4334 public Xorcc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4335 super(Op3s.Xorcc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4336 } |
10459 | 4337 |
4338 public Xorcc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4339 super(Op3s.Xorcc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4340 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4341 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4342 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4343 public static class Xnor extends Fmt10 { |
10459 | 4344 |
4345 public Xnor(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4346 super(Op3s.Xnor, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4347 } |
10459 | 4348 |
4349 public Xnor(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4350 super(Op3s.Xnor, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4351 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4352 } |
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4353 |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4354 public static class Xnorcc extends Fmt10 { |
10459 | 4355 |
4356 public Xnorcc(Register src1, int simm13, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4357 super(Op3s.Xnorcc, src1, simm13, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4358 } |
10459 | 4359 |
4360 public Xnorcc(Register src1, Register src2, Register dst) { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10564
diff
changeset
|
4361 super(Op3s.Xnorcc, src1, src2, dst); |
9814
e723f9031785
re-architected SPARC assembler to be Fmt class specific, initial arithmetic
Morris Meyer <morris.meyer@oracle.com>
parents:
9695
diff
changeset
|
4362 } |
9695
a39e67ca883b
partial SPARC assembler
Morris Meyer <morris.meyer@oracle.com>
parents:
8170
diff
changeset
|
4363 } |
7740
5f8101629080
Add projects and skeletons for SPARC port.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
4364 } |