Mercurial > hg > graal-jvmci-8
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 |
rev | line source |
---|---|
10459 | 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 | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | |
5 * This code is free software; you can redistribute it and/or modify it | |
6 * under the terms of the GNU General Public License version 2 only, as | |
7 * published by the Free Software Foundation. | |
8 * | |
9 * This code is distributed in the hope that it will be useful, but WITHOUT | |
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
12 * version 2 for more details (a copy is included in the LICENSE file that | |
13 * accompanied this code). | |
14 * | |
15 * You should have received a copy of the GNU General Public License version | |
16 * 2 along with this work; if not, write to the Free Software Foundation, | |
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
18 * | |
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA | |
20 * or visit www.oracle.com if you need additional information or have any | |
21 * questions. | |
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 | 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 | 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 | 132 |
133 public class SPARCHotSpotRegisterConfig implements RegisterConfig { | |
134 | |
135 private final Architecture architecture; | |
136 | |
137 private final Register[] allocatable; | |
138 | |
139 private final RegisterAttributes[] attributesMap; | |
140 | |
141 @Override | |
142 public Register[] getAllocatableRegisters() { | |
143 return allocatable.clone(); | |
144 } | |
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 | 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 | 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 | 163 } |
164 } | |
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 | 167 return ret; |
168 } | |
169 | |
170 @Override | |
171 public RegisterAttributes[] getAttributesMap() { | |
172 return attributesMap.clone(); | |
173 } | |
174 | |
10792 | 175 private final Register[] cpuCallerParameterRegisters = {o0, o1, o2, o3, o4, o5}; |
176 private final Register[] cpuCalleeParameterRegisters = {i0, i1, i2, i3, i4, i5}; | |
177 | |
10459 | 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 | 191 |
192 /** | |
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 | 195 */ |
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 | 198 private static Register[] initAllocatable(boolean reserveForHeapBase) { |
199 Register[] registers = null; | |
200 if (reserveForHeapBase) { | |
15345 | 201 // @formatter:off |
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 | 210 l0, l1, l2, l3, l4, l5, l6, l7, |
11233 | 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 | 218 }; |
219 // @formatter:on | |
10459 | 220 } else { |
15345 | 221 // @formatter:off |
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 | 226 l0, l1, l2, l3, l4, l5, l6, l7, |
11233 | 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 | 234 }; |
235 // @formatter:on | |
10459 | 236 } |
237 | |
238 return registers; | |
239 } | |
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 | 248 attributesMap = RegisterAttributes.createMap(this, SPARC.allRegisters); |
249 } | |
250 | |
251 @Override | |
252 public Register[] getCallerSaveRegisters() { | |
10686
73122b5edf6a
SPARC: Can compile simple methods and do static calls.
twisti
parents:
10459
diff
changeset
|
253 return callerSaveRegisters; |
10459 | 254 } |
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 | 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 | 266 public Register getRegisterForRole(int index) { |
267 throw new UnsupportedOperationException(); | |
268 } | |
269 | |
270 @Override | |
271 public CallingConvention getCallingConvention(Type type, JavaType returnType, JavaType[] parameterTypes, TargetDescription target, boolean stackOnly) { | |
10792 | 272 if (type == Type.JavaCall || type == Type.NativeCall) { |
273 return callingConvention(cpuCallerParameterRegisters, returnType, parameterTypes, type, target, stackOnly); | |
10459 | 274 } |
10792 | 275 if (type == Type.JavaCallee) { |
276 return callingConvention(cpuCalleeParameterRegisters, returnType, parameterTypes, type, target, stackOnly); | |
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 | 279 } |
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 | 296 } |
297 } | |
298 | |
299 private CallingConvention callingConvention(Register[] generalParameterRegisters, JavaType returnType, JavaType[] parameterTypes, Type type, TargetDescription target, boolean stackOnly) { | |
300 AllocatableValue[] locations = new AllocatableValue[parameterTypes.length]; | |
301 | |
302 int currentGeneral = 0; | |
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 | 305 |
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 | 308 |
309 switch (kind) { | |
310 case Byte: | |
311 case Boolean: | |
312 case Short: | |
313 case Char: | |
314 case Int: | |
315 case Long: | |
316 case Object: | |
317 if (!stackOnly && currentGeneral < generalParameterRegisters.length) { | |
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 | 320 } |
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>
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 | 333 case Float: |
334 if (!stackOnly && currentFloating < fpuParameterRegisters.length) { | |
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 | 337 } |
338 break; | |
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 | 341 } |
342 | |
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 | 351 } |
352 } | |
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 | 359 } |
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 | 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 | 371 switch (kind) { |
372 case Boolean: | |
373 case Byte: | |
374 case Char: | |
375 case Short: | |
376 case Int: | |
377 case Long: | |
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 | 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 | 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 | 384 case Void: |
385 case Illegal: | |
386 return null; | |
387 default: | |
388 throw new UnsupportedOperationException("no return register for type " + kind); | |
389 } | |
390 } | |
391 | |
392 @Override | |
393 public Register getFrameRegister() { | |
394 return sp; | |
395 } | |
396 | |
397 @Override | |
398 public String toString() { | |
399 return String.format("Allocatable: " + Arrays.toString(getAllocatableRegisters()) + "%n" + "CallerSave: " + Arrays.toString(getCallerSaveRegisters()) + "%n"); | |
400 } | |
401 } |