annotate jvmci/jdk.vm.ci.hotspot.sparc/src/jdk/vm/ci/hotspot/sparc/SPARCHotSpotRegisterConfig.java @ 22672:1bbd4a7c274b

Rename jdk.internal.jvmci to jdk.vm.ci
author Tom Rodriguez <tom.rodriguez@oracle.com>
date Thu, 08 Oct 2015 17:28:41 -0700
parents jvmci/jdk.internal.jvmci.hotspot.sparc/src/jdk/internal/jvmci/hotspot/sparc/SPARCHotSpotRegisterConfig.java@a215c16882e0
children 4688478ecb7b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
1 /*
22536
dc1aeef79e7e Refactoring: Rename Kind to JavaKind.
Roland Schatz <roland.schatz@oracle.com>
parents: 22535
diff changeset
2 * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
4 *
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
7 * published by the Free Software Foundation.
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
8 *
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
13 * accompanied this code).
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
14 *
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
18 *
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
21 * questions.
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
22 */
22672
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
23 package jdk.vm.ci.hotspot.sparc;
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
24
22672
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
25 import static jdk.vm.ci.sparc.SPARC.FPUd;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
26 import static jdk.vm.ci.sparc.SPARC.FPUs;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
27 import static jdk.vm.ci.sparc.SPARC.d0;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
28 import static jdk.vm.ci.sparc.SPARC.d2;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
29 import static jdk.vm.ci.sparc.SPARC.d32;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
30 import static jdk.vm.ci.sparc.SPARC.d34;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
31 import static jdk.vm.ci.sparc.SPARC.d36;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
32 import static jdk.vm.ci.sparc.SPARC.d38;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
33 import static jdk.vm.ci.sparc.SPARC.d4;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
34 import static jdk.vm.ci.sparc.SPARC.d40;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
35 import static jdk.vm.ci.sparc.SPARC.d42;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
36 import static jdk.vm.ci.sparc.SPARC.d44;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
37 import static jdk.vm.ci.sparc.SPARC.d46;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
38 import static jdk.vm.ci.sparc.SPARC.d48;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
39 import static jdk.vm.ci.sparc.SPARC.d50;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
40 import static jdk.vm.ci.sparc.SPARC.d52;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
41 import static jdk.vm.ci.sparc.SPARC.d54;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
42 import static jdk.vm.ci.sparc.SPARC.d56;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
43 import static jdk.vm.ci.sparc.SPARC.d58;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
44 import static jdk.vm.ci.sparc.SPARC.d6;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
45 import static jdk.vm.ci.sparc.SPARC.d60;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
46 import static jdk.vm.ci.sparc.SPARC.d62;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
47 import static jdk.vm.ci.sparc.SPARC.f0;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
48 import static jdk.vm.ci.sparc.SPARC.f1;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
49 import static jdk.vm.ci.sparc.SPARC.f10;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
50 import static jdk.vm.ci.sparc.SPARC.f11;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
51 import static jdk.vm.ci.sparc.SPARC.f12;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
52 import static jdk.vm.ci.sparc.SPARC.f13;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
53 import static jdk.vm.ci.sparc.SPARC.f14;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
54 import static jdk.vm.ci.sparc.SPARC.f15;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
55 import static jdk.vm.ci.sparc.SPARC.f16;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
56 import static jdk.vm.ci.sparc.SPARC.f17;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
57 import static jdk.vm.ci.sparc.SPARC.f18;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
58 import static jdk.vm.ci.sparc.SPARC.f19;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
59 import static jdk.vm.ci.sparc.SPARC.f2;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
60 import static jdk.vm.ci.sparc.SPARC.f20;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
61 import static jdk.vm.ci.sparc.SPARC.f21;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
62 import static jdk.vm.ci.sparc.SPARC.f22;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
63 import static jdk.vm.ci.sparc.SPARC.f23;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
64 import static jdk.vm.ci.sparc.SPARC.f24;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
65 import static jdk.vm.ci.sparc.SPARC.f25;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
66 import static jdk.vm.ci.sparc.SPARC.f26;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
67 import static jdk.vm.ci.sparc.SPARC.f27;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
68 import static jdk.vm.ci.sparc.SPARC.f28;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
69 import static jdk.vm.ci.sparc.SPARC.f29;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
70 import static jdk.vm.ci.sparc.SPARC.f3;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
71 import static jdk.vm.ci.sparc.SPARC.f30;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
72 import static jdk.vm.ci.sparc.SPARC.f31;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
73 import static jdk.vm.ci.sparc.SPARC.f4;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
74 import static jdk.vm.ci.sparc.SPARC.f5;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
75 import static jdk.vm.ci.sparc.SPARC.f6;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
76 import static jdk.vm.ci.sparc.SPARC.f7;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
77 import static jdk.vm.ci.sparc.SPARC.f8;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
78 import static jdk.vm.ci.sparc.SPARC.f9;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
79 import static jdk.vm.ci.sparc.SPARC.g1;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
80 import static jdk.vm.ci.sparc.SPARC.g2;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
81 import static jdk.vm.ci.sparc.SPARC.g3;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
82 import static jdk.vm.ci.sparc.SPARC.g4;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
83 import static jdk.vm.ci.sparc.SPARC.g5;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
84 import static jdk.vm.ci.sparc.SPARC.g6;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
85 import static jdk.vm.ci.sparc.SPARC.g7;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
86 import static jdk.vm.ci.sparc.SPARC.i0;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
87 import static jdk.vm.ci.sparc.SPARC.i1;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
88 import static jdk.vm.ci.sparc.SPARC.i2;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
89 import static jdk.vm.ci.sparc.SPARC.i3;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
90 import static jdk.vm.ci.sparc.SPARC.i4;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
91 import static jdk.vm.ci.sparc.SPARC.i5;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
92 import static jdk.vm.ci.sparc.SPARC.i6;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
93 import static jdk.vm.ci.sparc.SPARC.i7;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
94 import static jdk.vm.ci.sparc.SPARC.l0;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
95 import static jdk.vm.ci.sparc.SPARC.l1;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
96 import static jdk.vm.ci.sparc.SPARC.l2;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
97 import static jdk.vm.ci.sparc.SPARC.l3;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
98 import static jdk.vm.ci.sparc.SPARC.l4;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
99 import static jdk.vm.ci.sparc.SPARC.l5;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
100 import static jdk.vm.ci.sparc.SPARC.l6;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
101 import static jdk.vm.ci.sparc.SPARC.l7;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
102 import static jdk.vm.ci.sparc.SPARC.o0;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
103 import static jdk.vm.ci.sparc.SPARC.o1;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
104 import static jdk.vm.ci.sparc.SPARC.o2;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
105 import static jdk.vm.ci.sparc.SPARC.o3;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
106 import static jdk.vm.ci.sparc.SPARC.o4;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
107 import static jdk.vm.ci.sparc.SPARC.o5;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
108 import static jdk.vm.ci.sparc.SPARC.o7;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
109 import static jdk.vm.ci.sparc.SPARC.sp;
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
110
22569
ec96f33a101d updated imports to be explicit and added checkstyle rule to forbid * imports
Doug Simon <doug.simon@oracle.com>
parents: 22557
diff changeset
111 import java.util.ArrayList;
ec96f33a101d updated imports to be explicit and added checkstyle rule to forbid * imports
Doug Simon <doug.simon@oracle.com>
parents: 22557
diff changeset
112 import java.util.Arrays;
ec96f33a101d updated imports to be explicit and added checkstyle rule to forbid * imports
Doug Simon <doug.simon@oracle.com>
parents: 22557
diff changeset
113
22672
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
114 import jdk.vm.ci.code.Architecture;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
115 import jdk.vm.ci.code.CallingConvention;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
116 import jdk.vm.ci.code.CallingConvention.Type;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
117 import jdk.vm.ci.code.Register;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
118 import jdk.vm.ci.code.RegisterAttributes;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
119 import jdk.vm.ci.code.RegisterConfig;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
120 import jdk.vm.ci.code.StackSlot;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
121 import jdk.vm.ci.code.TargetDescription;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
122 import jdk.vm.ci.common.JVMCIError;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
123 import jdk.vm.ci.hotspot.HotSpotVMConfig;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
124 import jdk.vm.ci.meta.AllocatableValue;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
125 import jdk.vm.ci.meta.JavaKind;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
126 import jdk.vm.ci.meta.JavaType;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
127 import jdk.vm.ci.meta.LIRKind;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
128 import jdk.vm.ci.meta.PlatformKind;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
129 import jdk.vm.ci.meta.Value;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
130 import jdk.vm.ci.sparc.SPARC;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22654
diff changeset
131 import jdk.vm.ci.sparc.SPARCKind;
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
132
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
133 public class SPARCHotSpotRegisterConfig implements RegisterConfig {
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
134
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
135 private final Architecture architecture;
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
136
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
137 private final Register[] allocatable;
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
138
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
139 private final RegisterAttributes[] attributesMap;
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
140
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
141 @Override
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
142 public Register[] getAllocatableRegisters() {
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
143 return allocatable.clone();
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
144 }
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
145
20916
661ed7d3d10d RegisterConfig: rename getAllocatableRegisters(PK,R[) to filterAllocatableRegisters and remove caching from implementors.
Josef Eisl <josef.eisl@jku.at>
parents: 20913
diff changeset
146 public Register[] filterAllocatableRegisters(PlatformKind kind, Register[] registers) {
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
147 ArrayList<Register> list = new ArrayList<>();
20913
9b6ea36013c4 RegisterConfig: pass registers array to getAllocatableRegisters(PlatformKind).
Josef Eisl <josef.eisl@jku.at>
parents: 20149
diff changeset
148 for (Register reg : registers) {
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
149 if (architecture.canStoreValue(reg.getRegisterCategory(), kind)) {
16321
fac4af29aeb8 [SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 15345
diff changeset
150 // Special treatment for double precision
16664
62f295bdea36 [SPARC] Fixing compare of short/char with constants, using half of single float registers as of now, otherwise it would overlap with double registers
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 16654
diff changeset
151 // TODO: This is wasteful it uses only half of the registers as float.
22604
479228019e48 [SPARC] Remove JavaKind dependency
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22594
diff changeset
152 if (kind == SPARCKind.DOUBLE) {
22406
2117e8883f28 [SPARC] Determine FPU Register type via its category
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22222
diff changeset
153 if (reg.getRegisterCategory().equals(FPUd)) {
16995
4feac7e51f42 [SPARC] Fixing float register allocation
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 16932
diff changeset
154 list.add(reg);
4feac7e51f42 [SPARC] Fixing float register allocation
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 16932
diff changeset
155 }
22604
479228019e48 [SPARC] Remove JavaKind dependency
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22594
diff changeset
156 } else if (kind == SPARCKind.SINGLE) {
22406
2117e8883f28 [SPARC] Determine FPU Register type via its category
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22222
diff changeset
157 if (reg.getRegisterCategory().equals(FPUs)) {
16321
fac4af29aeb8 [SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 15345
diff changeset
158 list.add(reg);
fac4af29aeb8 [SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 15345
diff changeset
159 }
fac4af29aeb8 [SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 15345
diff changeset
160 } else {
fac4af29aeb8 [SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 15345
diff changeset
161 list.add(reg);
fac4af29aeb8 [SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 15345
diff changeset
162 }
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
163 }
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
164 }
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
165
18355
9a11c4086341 size array appropriately when creating categorized register array
Doug Simon <doug.simon@oracle.com>
parents: 16995
diff changeset
166 Register[] ret = list.toArray(new Register[list.size()]);
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
167 return ret;
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
168 }
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
169
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
170 @Override
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
171 public RegisterAttributes[] getAttributesMap() {
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
172 return attributesMap.clone();
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
173 }
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
174
10792
7a8d6ba83a04 SPARC: fixes and more stuff works
twisti
parents: 10686
diff changeset
175 private final Register[] cpuCallerParameterRegisters = {o0, o1, o2, o3, o4, o5};
7a8d6ba83a04 SPARC: fixes and more stuff works
twisti
parents: 10686
diff changeset
176 private final Register[] cpuCalleeParameterRegisters = {i0, i1, i2, i3, i4, i5};
7a8d6ba83a04 SPARC: fixes and more stuff works
twisti
parents: 10686
diff changeset
177
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
178 private final Register[] fpuParameterRegisters = {f0, f1, f2, f3, f4, f5, f6, f7};
20149
b1a8928fc4b9 [SPARC] Implement new instructions in assembler/enhance assertion error-message in MoveResolver
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 19534
diff changeset
179 private final Register[] fpuDoubleParameterRegisters = {d0, null, d2, null, d4, null, d6, null};
16929
5dc533f7565a [SPARC] Adding registers f0...f31 to callee saved; fixing allocator test, removing direct acquisition of Unsafe from SPARCHotspotBackend
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 16664
diff changeset
180 // @formatter:off
5dc533f7565a [SPARC] Adding registers f0...f31 to callee saved; fixing allocator test, removing direct acquisition of Unsafe from SPARCHotspotBackend
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 16664
diff changeset
181 private final Register[] callerSaveRegisters =
19534
9299e71df12a [SPARC] Save all registers for foreign calls
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 18630
diff changeset
182 {g1, g2, g3, g4, g5, g6, g7,
9299e71df12a [SPARC] Save all registers for foreign calls
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 18630
diff changeset
183 o0, o1, o2, o3, o4, o5, o7,
16929
5dc533f7565a [SPARC] Adding registers f0...f31 to callee saved; fixing allocator test, removing direct acquisition of Unsafe from SPARCHotspotBackend
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 16664
diff changeset
184 f0, f1, f2, f3, f4, f5, f6, f7,
5dc533f7565a [SPARC] Adding registers f0...f31 to callee saved; fixing allocator test, removing direct acquisition of Unsafe from SPARCHotspotBackend
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 16664
diff changeset
185 f8, f9, f10, f11, f12, f13, f14, f15,
5dc533f7565a [SPARC] Adding registers f0...f31 to callee saved; fixing allocator test, removing direct acquisition of Unsafe from SPARCHotspotBackend
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 16664
diff changeset
186 f16, f17, f18, f19, f20, f21, f22, f23,
16995
4feac7e51f42 [SPARC] Fixing float register allocation
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 16932
diff changeset
187 f24, f25, f26, f27, f28, f29, f30, f31,
4feac7e51f42 [SPARC] Fixing float register allocation
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 16932
diff changeset
188 d32, d34, d36, d38, d40, d42, d44, d46,
4feac7e51f42 [SPARC] Fixing float register allocation
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 16932
diff changeset
189 d48, d50, d52, d54, d56, d58, d60, d62};
16929
5dc533f7565a [SPARC] Adding registers f0...f31 to callee saved; fixing allocator test, removing direct acquisition of Unsafe from SPARCHotspotBackend
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 16664
diff changeset
190 // @formatter:on
11233
5a9d68c3a7d7 SPARC: a lot of fixes and more
twisti
parents: 10871
diff changeset
191
5a9d68c3a7d7 SPARC: a lot of fixes and more
twisti
parents: 10871
diff changeset
192 /**
5a9d68c3a7d7 SPARC: a lot of fixes and more
twisti
parents: 10871
diff changeset
193 * Registers saved by the callee. This lists all L and I registers which are saved in the
21674
e0b5d4fcd929 moved HotSpotTargetDescription and [AMD64|SPARC]HotSpotRegisterConfig into JVMCI namespace (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21673
diff changeset
194 * register window.
11233
5a9d68c3a7d7 SPARC: a lot of fixes and more
twisti
parents: 10871
diff changeset
195 */
5a9d68c3a7d7 SPARC: a lot of fixes and more
twisti
parents: 10871
diff changeset
196 private final Register[] calleeSaveRegisters = {l0, l1, l2, l3, l4, l5, l6, l7, i0, i1, i2, i3, i4, i5, i6, i7};
10686
73122b5edf6a SPARC: Can compile simple methods and do static calls.
twisti
parents: 10459
diff changeset
197
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
198 private static Register[] initAllocatable(boolean reserveForHeapBase) {
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
199 Register[] registers = null;
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
200 if (reserveForHeapBase) {
15345
109d6c7c40b5 implement SPARC uncommon trap stub
twisti
parents: 15259
diff changeset
201 // @formatter:off
109d6c7c40b5 implement SPARC uncommon trap stub
twisti
parents: 15259
diff changeset
202 registers = new Register[]{
10854
e1fcdda22831 SPARC: can compile some stubs now but they don't work yet
twisti
parents: 10792
diff changeset
203 // TODO this is not complete
16524
a08a58d0736b [SPARC] Emit compareAndSwap for AtomicInteger and AtomicLong, Removing o7 register from usable ones, as this register is always overwritten, when using Call or JumpAndLink instructions in SPARC, even callee does not overwrite explicitly, implicit exception is defined when doing integer division, parameter constraint narrowed to only register on Unary2Op, Fix SPARCTestOp, as it did a compare instead of an and with condition codes
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 16430
diff changeset
204 // o7 cannot be used as register because it is always overwritten on call
a08a58d0736b [SPARC] Emit compareAndSwap for AtomicInteger and AtomicLong, Removing o7 register from usable ones, as this register is always overwritten, when using Call or JumpAndLink instructions in SPARC, even callee does not overwrite explicitly, implicit exception is defined when doing integer division, parameter constraint narrowed to only register on Unary2Op, Fix SPARCTestOp, as it did a compare instead of an and with condition codes
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 16430
diff changeset
205 // and the current register handler would ignore this fact if the called
a08a58d0736b [SPARC] Emit compareAndSwap for AtomicInteger and AtomicLong, Removing o7 register from usable ones, as this register is always overwritten, when using Call or JumpAndLink instructions in SPARC, even callee does not overwrite explicitly, implicit exception is defined when doing integer division, parameter constraint narrowed to only register on Unary2Op, Fix SPARCTestOp, as it did a compare instead of an and with condition codes
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 16430
diff changeset
206 // method still does not modify registers, in fact o7 is modified by the Call instruction
a08a58d0736b [SPARC] Emit compareAndSwap for AtomicInteger and AtomicLong, Removing o7 register from usable ones, as this register is always overwritten, when using Call or JumpAndLink instructions in SPARC, even callee does not overwrite explicitly, implicit exception is defined when doing integer division, parameter constraint narrowed to only register on Unary2Op, Fix SPARCTestOp, as it did a compare instead of an and with condition codes
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 16430
diff changeset
207 // There would be some extra handlin necessary to be able to handle the o7 properly for local usage
22222
1cf2b4143f3c [SPARC] Use registers g1, g4 and g5 for allocation and g3 and o7 as scratch
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22144
diff changeset
208 g1, g4, g5,
1cf2b4143f3c [SPARC] Use registers g1, g4 and g5 for allocation and g3 and o7 as scratch
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22144
diff changeset
209 o0, o1, o2, o3, o4, o5, /*o6,o7,*/
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
210 l0, l1, l2, l3, l4, l5, l6, l7,
11233
5a9d68c3a7d7 SPARC: a lot of fixes and more
twisti
parents: 10871
diff changeset
211 i0, i1, i2, i3, i4, i5, /*i6,*/ /*i7,*/
16995
4feac7e51f42 [SPARC] Fixing float register allocation
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 16932
diff changeset
212 //f0, f1, f2, f3, f4, f5, f6, f7,
4feac7e51f42 [SPARC] Fixing float register allocation
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 16932
diff changeset
213 f8, f9, f10, f11, f12, f13, f14, f15,
4feac7e51f42 [SPARC] Fixing float register allocation
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 16932
diff changeset
214 f16, f17, f18, f19, f20, f21, f22, f23,
4feac7e51f42 [SPARC] Fixing float register allocation
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 16932
diff changeset
215 f24, f25, f26, f27, f28, f29, f30, f31,
4feac7e51f42 [SPARC] Fixing float register allocation
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 16932
diff changeset
216 d32, d34, d36, d38, d40, d42, d44, d46,
4feac7e51f42 [SPARC] Fixing float register allocation
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 16932
diff changeset
217 d48, d50, d52, d54, d56, d58, d60, d62
15345
109d6c7c40b5 implement SPARC uncommon trap stub
twisti
parents: 15259
diff changeset
218 };
109d6c7c40b5 implement SPARC uncommon trap stub
twisti
parents: 15259
diff changeset
219 // @formatter:on
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
220 } else {
15345
109d6c7c40b5 implement SPARC uncommon trap stub
twisti
parents: 15259
diff changeset
221 // @formatter:off
109d6c7c40b5 implement SPARC uncommon trap stub
twisti
parents: 15259
diff changeset
222 registers = new Register[]{
10854
e1fcdda22831 SPARC: can compile some stubs now but they don't work yet
twisti
parents: 10792
diff changeset
223 // TODO this is not complete
22222
1cf2b4143f3c [SPARC] Use registers g1, g4 and g5 for allocation and g3 and o7 as scratch
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22144
diff changeset
224 g1, g4, g5,
16524
a08a58d0736b [SPARC] Emit compareAndSwap for AtomicInteger and AtomicLong, Removing o7 register from usable ones, as this register is always overwritten, when using Call or JumpAndLink instructions in SPARC, even callee does not overwrite explicitly, implicit exception is defined when doing integer division, parameter constraint narrowed to only register on Unary2Op, Fix SPARCTestOp, as it did a compare instead of an and with condition codes
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 16430
diff changeset
225 o0, o1, o2, o3, o4, o5, /*o6, o7,*/
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
226 l0, l1, l2, l3, l4, l5, l6, l7,
11233
5a9d68c3a7d7 SPARC: a lot of fixes and more
twisti
parents: 10871
diff changeset
227 i0, i1, i2, i3, i4, i5, /*i6,*/ /*i7,*/
16995
4feac7e51f42 [SPARC] Fixing float register allocation
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 16932
diff changeset
228 // f0, f1, f2, f3, f4, f5, f6, f7
4feac7e51f42 [SPARC] Fixing float register allocation
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 16932
diff changeset
229 f8, f9, f10, f11, f12, f13, f14, f15,
4feac7e51f42 [SPARC] Fixing float register allocation
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 16932
diff changeset
230 f16, f17, f18, f19, f20, f21, f22, f23,
4feac7e51f42 [SPARC] Fixing float register allocation
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 16932
diff changeset
231 f24, f25, f26, f27, f28, f29, f30, f31,
4feac7e51f42 [SPARC] Fixing float register allocation
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 16932
diff changeset
232 d32, d34, d36, d38, d40, d42, d44, d46,
4feac7e51f42 [SPARC] Fixing float register allocation
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 16932
diff changeset
233 d48, d50, d52, d54, d56, d58, d60, d62
15345
109d6c7c40b5 implement SPARC uncommon trap stub
twisti
parents: 15259
diff changeset
234 };
109d6c7c40b5 implement SPARC uncommon trap stub
twisti
parents: 15259
diff changeset
235 // @formatter:on
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
236 }
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
237
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
238 return registers;
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
239 }
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
240
14559
883fbd3e06e0 Make size of PlatformKind overridable by VM specific code.
Roland Schatz <roland.schatz@oracle.com>
parents: 14003
diff changeset
241 public SPARCHotSpotRegisterConfig(TargetDescription target, HotSpotVMConfig config) {
15011
c8e575742f36 allow compilation with custom RegisterConfig
Lukas Stadler <lukas.stadler@oracle.com>
parents: 14991
diff changeset
242 this(target, initAllocatable(config.useCompressedOops));
c8e575742f36 allow compilation with custom RegisterConfig
Lukas Stadler <lukas.stadler@oracle.com>
parents: 14991
diff changeset
243 }
c8e575742f36 allow compilation with custom RegisterConfig
Lukas Stadler <lukas.stadler@oracle.com>
parents: 14991
diff changeset
244
c8e575742f36 allow compilation with custom RegisterConfig
Lukas Stadler <lukas.stadler@oracle.com>
parents: 14991
diff changeset
245 public SPARCHotSpotRegisterConfig(TargetDescription target, Register[] allocatable) {
14559
883fbd3e06e0 Make size of PlatformKind overridable by VM specific code.
Roland Schatz <roland.schatz@oracle.com>
parents: 14003
diff changeset
246 this.architecture = target.arch;
15011
c8e575742f36 allow compilation with custom RegisterConfig
Lukas Stadler <lukas.stadler@oracle.com>
parents: 14991
diff changeset
247 this.allocatable = allocatable.clone();
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
248 attributesMap = RegisterAttributes.createMap(this, SPARC.allRegisters);
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
249 }
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
250
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
251 @Override
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
252 public Register[] getCallerSaveRegisters() {
10686
73122b5edf6a SPARC: Can compile simple methods and do static calls.
twisti
parents: 10459
diff changeset
253 return callerSaveRegisters;
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
254 }
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
255
22431
0a0c0111ecda Remove unused class CalleeSaveLayout.
Roland Schatz <roland.schatz@oracle.com>
parents: 22406
diff changeset
256 public Register[] getCalleeSaveRegisters() {
0a0c0111ecda Remove unused class CalleeSaveLayout.
Roland Schatz <roland.schatz@oracle.com>
parents: 22406
diff changeset
257 return calleeSaveRegisters;
0a0c0111ecda Remove unused class CalleeSaveLayout.
Roland Schatz <roland.schatz@oracle.com>
parents: 22406
diff changeset
258 }
0a0c0111ecda Remove unused class CalleeSaveLayout.
Roland Schatz <roland.schatz@oracle.com>
parents: 22406
diff changeset
259
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
260 @Override
14614
abf7cf57df5e added RegisterConfig.areAllAllocatableRegistersCallerSaved()
Doug Simon <doug.simon@oracle.com>
parents: 14559
diff changeset
261 public boolean areAllAllocatableRegistersCallerSaved() {
abf7cf57df5e added RegisterConfig.areAllAllocatableRegistersCallerSaved()
Doug Simon <doug.simon@oracle.com>
parents: 14559
diff changeset
262 return false;
abf7cf57df5e added RegisterConfig.areAllAllocatableRegistersCallerSaved()
Doug Simon <doug.simon@oracle.com>
parents: 14559
diff changeset
263 }
abf7cf57df5e added RegisterConfig.areAllAllocatableRegistersCallerSaved()
Doug Simon <doug.simon@oracle.com>
parents: 14559
diff changeset
264
abf7cf57df5e added RegisterConfig.areAllAllocatableRegistersCallerSaved()
Doug Simon <doug.simon@oracle.com>
parents: 14559
diff changeset
265 @Override
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
266 public Register getRegisterForRole(int index) {
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
267 throw new UnsupportedOperationException();
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
268 }
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
269
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
270 @Override
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
271 public CallingConvention getCallingConvention(Type type, JavaType returnType, JavaType[] parameterTypes, TargetDescription target, boolean stackOnly) {
10792
7a8d6ba83a04 SPARC: fixes and more stuff works
twisti
parents: 10686
diff changeset
272 if (type == Type.JavaCall || type == Type.NativeCall) {
7a8d6ba83a04 SPARC: fixes and more stuff works
twisti
parents: 10686
diff changeset
273 return callingConvention(cpuCallerParameterRegisters, returnType, parameterTypes, type, target, stackOnly);
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
274 }
10792
7a8d6ba83a04 SPARC: fixes and more stuff works
twisti
parents: 10686
diff changeset
275 if (type == Type.JavaCallee) {
7a8d6ba83a04 SPARC: fixes and more stuff works
twisti
parents: 10686
diff changeset
276 return callingConvention(cpuCalleeParameterRegisters, returnType, parameterTypes, type, target, stackOnly);
7a8d6ba83a04 SPARC: fixes and more stuff works
twisti
parents: 10686
diff changeset
277 }
21543
93c50cefb9e8 moved GraalInternalError to com.oracle.jvmci.common and renamed it to JVMCIError (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21526
diff changeset
278 throw JVMCIError.shouldNotReachHere();
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
279 }
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
280
22536
dc1aeef79e7e Refactoring: Rename Kind to JavaKind.
Roland Schatz <roland.schatz@oracle.com>
parents: 22535
diff changeset
281 public Register[] getCallingConventionRegisters(Type type, JavaKind kind) {
22604
479228019e48 [SPARC] Remove JavaKind dependency
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22594
diff changeset
282 switch (kind) {
479228019e48 [SPARC] Remove JavaKind dependency
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22594
diff changeset
283 case Boolean:
479228019e48 [SPARC] Remove JavaKind dependency
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22594
diff changeset
284 case Byte:
479228019e48 [SPARC] Remove JavaKind dependency
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22594
diff changeset
285 case Short:
479228019e48 [SPARC] Remove JavaKind dependency
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22594
diff changeset
286 case Char:
479228019e48 [SPARC] Remove JavaKind dependency
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22594
diff changeset
287 case Int:
479228019e48 [SPARC] Remove JavaKind dependency
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22594
diff changeset
288 case Long:
479228019e48 [SPARC] Remove JavaKind dependency
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22594
diff changeset
289 case Object:
479228019e48 [SPARC] Remove JavaKind dependency
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22594
diff changeset
290 return type == Type.JavaCallee ? cpuCalleeParameterRegisters : cpuCallerParameterRegisters;
479228019e48 [SPARC] Remove JavaKind dependency
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22594
diff changeset
291 case Double:
479228019e48 [SPARC] Remove JavaKind dependency
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22594
diff changeset
292 case Float:
479228019e48 [SPARC] Remove JavaKind dependency
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22594
diff changeset
293 return fpuParameterRegisters;
479228019e48 [SPARC] Remove JavaKind dependency
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22594
diff changeset
294 default:
479228019e48 [SPARC] Remove JavaKind dependency
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22594
diff changeset
295 throw JVMCIError.shouldNotReachHere("Unknown JavaKind " + kind);
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
296 }
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
297 }
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
298
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
299 private CallingConvention callingConvention(Register[] generalParameterRegisters, JavaType returnType, JavaType[] parameterTypes, Type type, TargetDescription target, boolean stackOnly) {
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
300 AllocatableValue[] locations = new AllocatableValue[parameterTypes.length];
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
301
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
302 int currentGeneral = 0;
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
303 int currentFloating = 0;
16637
eda09bc52ab9 [SPARC] Fix handling of overflow parameter on stack.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 16634
diff changeset
304 int currentStackOffset = 0;
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
305
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
306 for (int i = 0; i < parameterTypes.length; i++) {
22536
dc1aeef79e7e Refactoring: Rename Kind to JavaKind.
Roland Schatz <roland.schatz@oracle.com>
parents: 22535
diff changeset
307 final JavaKind kind = parameterTypes[i].getJavaKind().getStackKind();
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
308
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
309 switch (kind) {
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
310 case Byte:
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
311 case Boolean:
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
312 case Short:
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
313 case Char:
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
314 case Int:
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
315 case Long:
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
316 case Object:
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
317 if (!stackOnly && currentGeneral < generalParameterRegisters.length) {
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
318 Register register = generalParameterRegisters[currentGeneral++];
16094
c0b8d395368b Introduce LIRKind to accurately track oop references in backend.
Roland Schatz <roland.schatz@oracle.com>
parents: 15345
diff changeset
319 locations[i] = register.asValue(target.getLIRKind(kind));
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
320 }
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
321 break;
16321
fac4af29aeb8 [SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 15345
diff changeset
322 case Double:
fac4af29aeb8 [SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 15345
diff changeset
323 if (!stackOnly && currentFloating < fpuParameterRegisters.length) {
fac4af29aeb8 [SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 15345
diff changeset
324 if (currentFloating % 2 != 0) {
fac4af29aeb8 [SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 15345
diff changeset
325 // Make register number even to be a double reg
fac4af29aeb8 [SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 15345
diff changeset
326 currentFloating++;
fac4af29aeb8 [SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 15345
diff changeset
327 }
20149
b1a8928fc4b9 [SPARC] Implement new instructions in assembler/enhance assertion error-message in MoveResolver
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 19534
diff changeset
328 Register register = fpuDoubleParameterRegisters[currentFloating];
16321
fac4af29aeb8 [SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 15345
diff changeset
329 currentFloating += 2; // Only every second is a double register
16327
5f01f7c48d40 Merge with 5cdcb94a7cf7d9782107cc582f3e4b50000d5d1f
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 16321 16094
diff changeset
330 locations[i] = register.asValue(target.getLIRKind(kind));
16321
fac4af29aeb8 [SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 15345
diff changeset
331 }
fac4af29aeb8 [SPARC] Fixing lots of float and double issues.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 15345
diff changeset
332 break;
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
333 case Float:
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
334 if (!stackOnly && currentFloating < fpuParameterRegisters.length) {
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
335 Register register = fpuParameterRegisters[currentFloating++];
16094
c0b8d395368b Introduce LIRKind to accurately track oop references in backend.
Roland Schatz <roland.schatz@oracle.com>
parents: 15345
diff changeset
336 locations[i] = register.asValue(target.getLIRKind(kind));
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
337 }
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
338 break;
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
339 default:
21543
93c50cefb9e8 moved GraalInternalError to com.oracle.jvmci.common and renamed it to JVMCIError (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21526
diff changeset
340 throw JVMCIError.shouldNotReachHere();
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
341 }
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
342
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
343 if (locations[i] == null) {
22557
0a7b7c7274be [SPARC] Fix problems introduced on refactoring Kind.Object and Value.getKind()
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22536
diff changeset
344 LIRKind lirKind = target.getLIRKind(kind);
16654
8aa938ab4ac8 [SPARC] Spill slots must be 4 byte aligned
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 16637
diff changeset
345 // Stack slot is always aligned to its size in bytes but minimum wordsize
22594
355c41327aea Remove TargetDescription.getSizeInBytes method.
Roland Schatz <roland.schatz@oracle.com>
parents: 22569
diff changeset
346 int typeSize = lirKind.getPlatformKind().getSizeInBytes();
21674
e0b5d4fcd929 moved HotSpotTargetDescription and [AMD64|SPARC]HotSpotRegisterConfig into JVMCI namespace (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21673
diff changeset
347 currentStackOffset = roundUp(currentStackOffset, typeSize);
22144
7ae8ad713862 [SPARC] Do not preset SPARCFrameMap.initialSpillsize for register save area; set calleeSaveAreaSize correctly instead
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22054
diff changeset
348 int slotOffset = currentStackOffset + SPARC.REGISTER_SAFE_AREA_SIZE;
22557
0a7b7c7274be [SPARC] Fix problems introduced on refactoring Kind.Object and Value.getKind()
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22536
diff changeset
349 locations[i] = StackSlot.get(lirKind, slotOffset, !type.out);
16637
eda09bc52ab9 [SPARC] Fix handling of overflow parameter on stack.
Stefan Anzinger <stefan.anzinger@gmail.com>
parents: 16634
diff changeset
350 currentStackOffset += typeSize;
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
351 }
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
352 }
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
353
22536
dc1aeef79e7e Refactoring: Rename Kind to JavaKind.
Roland Schatz <roland.schatz@oracle.com>
parents: 22535
diff changeset
354 JavaKind returnKind = returnType == null ? JavaKind.Void : returnType.getJavaKind();
dc1aeef79e7e Refactoring: Rename Kind to JavaKind.
Roland Schatz <roland.schatz@oracle.com>
parents: 22535
diff changeset
355 AllocatableValue returnLocation = returnKind == JavaKind.Void ? Value.ILLEGAL : getReturnRegister(returnKind, type).asValue(target.getLIRKind(returnKind.getStackKind()));
22654
a215c16882e0 [SPARC] Add spillslots for first six outgoing parameters
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22604
diff changeset
356 // Space where callee may spill outgoing parameters o0...o5
a215c16882e0 [SPARC] Add spillslots for first six outgoing parameters
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22604
diff changeset
357 int lowerOutgoingSpace = Math.min(locations.length, 6) * target.wordSize;
a215c16882e0 [SPARC] Add spillslots for first six outgoing parameters
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22604
diff changeset
358 return new CallingConvention(currentStackOffset + lowerOutgoingSpace, returnLocation, locations);
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
359 }
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
360
21674
e0b5d4fcd929 moved HotSpotTargetDescription and [AMD64|SPARC]HotSpotRegisterConfig into JVMCI namespace (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21673
diff changeset
361 private static int roundUp(int number, int mod) {
e0b5d4fcd929 moved HotSpotTargetDescription and [AMD64|SPARC]HotSpotRegisterConfig into JVMCI namespace (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21673
diff changeset
362 return ((number + mod - 1) / mod) * mod;
e0b5d4fcd929 moved HotSpotTargetDescription and [AMD64|SPARC]HotSpotRegisterConfig into JVMCI namespace (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21673
diff changeset
363 }
e0b5d4fcd929 moved HotSpotTargetDescription and [AMD64|SPARC]HotSpotRegisterConfig into JVMCI namespace (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21673
diff changeset
364
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
365 @Override
22536
dc1aeef79e7e Refactoring: Rename Kind to JavaKind.
Roland Schatz <roland.schatz@oracle.com>
parents: 22535
diff changeset
366 public Register getReturnRegister(JavaKind kind) {
10871
c3b09d69dfde SPARC: fixes and more implementation; can now allocate objects
twisti
parents: 10854
diff changeset
367 return getReturnRegister(kind, Type.JavaCallee);
c3b09d69dfde SPARC: fixes and more implementation; can now allocate objects
twisti
parents: 10854
diff changeset
368 }
c3b09d69dfde SPARC: fixes and more implementation; can now allocate objects
twisti
parents: 10854
diff changeset
369
22536
dc1aeef79e7e Refactoring: Rename Kind to JavaKind.
Roland Schatz <roland.schatz@oracle.com>
parents: 22535
diff changeset
370 private static Register getReturnRegister(JavaKind kind, Type type) {
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
371 switch (kind) {
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
372 case Boolean:
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
373 case Byte:
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
374 case Char:
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
375 case Short:
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
376 case Int:
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
377 case Long:
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
378 case Object:
10871
c3b09d69dfde SPARC: fixes and more implementation; can now allocate objects
twisti
parents: 10854
diff changeset
379 return type == Type.JavaCallee ? i0 : o0;
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
380 case Float:
20149
b1a8928fc4b9 [SPARC] Implement new instructions in assembler/enhance assertion error-message in MoveResolver
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 19534
diff changeset
381 return f0;
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
382 case Double:
20149
b1a8928fc4b9 [SPARC] Implement new instructions in assembler/enhance assertion error-message in MoveResolver
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 19534
diff changeset
383 return d0;
10459
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
384 case Void:
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
385 case Illegal:
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
386 return null;
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
387 default:
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
388 throw new UnsupportedOperationException("no return register for type " + kind);
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
389 }
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
390 }
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
391
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
392 @Override
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
393 public Register getFrameRegister() {
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
394 return sp;
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
395 }
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
396
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
397 @Override
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
398 public String toString() {
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
399 return String.format("Allocatable: " + Arrays.toString(getAllocatableRegisters()) + "%n" + "CallerSave: " + Arrays.toString(getCallerSaveRegisters()) + "%n");
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
400 }
f78079947084 some basic SPARC arithmetic works
twisti
parents:
diff changeset
401 }