Mercurial > hg > graal-jvmci-8
annotate jvmci/jdk.vm.ci.amd64/src/jdk/vm/ci/amd64/AMD64Kind.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.amd64/src/jdk/internal/jvmci/amd64/AMD64Kind.java@3abba3d4aef1 |
children | 4b58c92e939b |
rev | line source |
---|---|
22579
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
1 /* |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
2 * Copyright (c) 2015, 2015, Oracle and/or its affiliates. All rights reserved. |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
4 * |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
5 * This code is free software; you can redistribute it and/or modify it |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
6 * under the terms of the GNU General Public License version 2 only, as |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
7 * published by the Free Software Foundation. |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
8 * |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
9 * This code is distributed in the hope that it will be useful, but WITHOUT |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
12 * version 2 for more details (a copy is included in the LICENSE file that |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
13 * accompanied this code). |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
14 * |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
15 * You should have received a copy of the GNU General Public License version |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
16 * 2 along with this work; if not, write to the Free Software Foundation, |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
18 * |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
20 * or visit www.oracle.com if you need additional information or have any |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
21 * questions. |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
22 */ |
22672
1bbd4a7c274b
Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
22640
diff
changeset
|
23 package jdk.vm.ci.amd64; |
22579
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
24 |
22672
1bbd4a7c274b
Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
22640
diff
changeset
|
25 import jdk.vm.ci.meta.PlatformKind; |
22579
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
26 |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
27 public enum AMD64Kind implements PlatformKind { |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
28 |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
29 // scalar |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
30 BYTE(1), |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
31 WORD(2), |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
32 DWORD(4), |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
33 QWORD(8), |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
34 SINGLE(4), |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
35 DOUBLE(8), |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
36 |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
37 // SSE2 |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
38 V32_BYTE(4, BYTE), |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
39 V32_WORD(4, WORD), |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
40 V64_BYTE(8, BYTE), |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
41 V64_WORD(8, WORD), |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
42 V64_DWORD(8, DWORD), |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
43 V128_BYTE(16, BYTE), |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
44 V128_WORD(16, WORD), |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
45 V128_DWORD(16, DWORD), |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
46 V128_QWORD(16, QWORD), |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
47 V128_SINGLE(16, SINGLE), |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
48 V128_DOUBLE(16, DOUBLE), |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
49 |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
50 // AVX |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
51 V256_BYTE(32, BYTE), |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
52 V256_WORD(32, WORD), |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
53 V256_DWORD(32, DWORD), |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
54 V256_QWORD(32, QWORD), |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
55 V256_SINGLE(32, SINGLE), |
22640
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
56 V256_DOUBLE(32, DOUBLE), |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
57 |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
58 // AVX512 |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
59 V512_BYTE(64, BYTE), |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
60 V512_WORD(64, WORD), |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
61 V512_DWORD(64, DWORD), |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
62 V512_QWORD(64, QWORD), |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
63 V512_SINGLE(64, SINGLE), |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
64 V512_DOUBLE(64, DOUBLE), |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
65 |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
66 MASK8(1), |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
67 MASK16(2), |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
68 MASK32(4), |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
69 MASK64(8); |
22579
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
70 |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
71 private final int size; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
72 private final int vectorLength; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
73 |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
74 private final AMD64Kind scalar; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
75 private final EnumKey<AMD64Kind> key = new EnumKey<>(this); |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
76 |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
77 private AMD64Kind(int size) { |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
78 this.size = size; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
79 this.scalar = this; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
80 this.vectorLength = 1; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
81 } |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
82 |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
83 private AMD64Kind(int size, AMD64Kind scalar) { |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
84 this.size = size; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
85 this.scalar = scalar; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
86 |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
87 assert size % scalar.size == 0; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
88 this.vectorLength = size / scalar.size; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
89 } |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
90 |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
91 public AMD64Kind getScalar() { |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
92 return scalar; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
93 } |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
94 |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
95 public int getSizeInBytes() { |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
96 return size; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
97 } |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
98 |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
99 public int getVectorLength() { |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
100 return vectorLength; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
101 } |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
102 |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
103 public Key getKey() { |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
104 return key; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
105 } |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
106 |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
107 public boolean isInteger() { |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
108 switch (this) { |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
109 case BYTE: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
110 case WORD: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
111 case DWORD: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
112 case QWORD: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
113 return true; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
114 default: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
115 return false; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
116 } |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
117 } |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
118 |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
119 public boolean isXMM() { |
22640
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
120 switch (this) { |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
121 case SINGLE: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
122 case DOUBLE: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
123 case V32_BYTE: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
124 case V32_WORD: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
125 case V64_BYTE: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
126 case V64_WORD: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
127 case V64_DWORD: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
128 case V128_BYTE: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
129 case V128_WORD: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
130 case V128_DWORD: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
131 case V128_QWORD: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
132 case V128_SINGLE: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
133 case V128_DOUBLE: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
134 case V256_BYTE: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
135 case V256_WORD: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
136 case V256_DWORD: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
137 case V256_QWORD: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
138 case V256_SINGLE: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
139 case V256_DOUBLE: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
140 case V512_BYTE: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
141 case V512_WORD: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
142 case V512_DWORD: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
143 case V512_QWORD: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
144 case V512_SINGLE: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
145 case V512_DOUBLE: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
146 return true; |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
147 default: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
148 return false; |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
149 } |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
150 } |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
151 |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
152 public boolean isMask() { |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
153 switch (this) { |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
154 case MASK8: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
155 case MASK16: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
156 case MASK32: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
157 case MASK64: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
158 return true; |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
159 default: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
160 return false; |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
161 } |
22579
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
162 } |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
163 |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
164 public char getTypeChar() { |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
165 switch (this) { |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
166 case BYTE: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
167 return 'b'; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
168 case WORD: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
169 return 'w'; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
170 case DWORD: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
171 return 'd'; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
172 case QWORD: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
173 return 'q'; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
174 case SINGLE: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
175 return 'S'; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
176 case DOUBLE: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
177 return 'D'; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
178 case V32_BYTE: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
179 case V32_WORD: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
180 case V64_BYTE: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
181 case V64_WORD: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
182 case V64_DWORD: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
183 return 'v'; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
184 case V128_BYTE: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
185 case V128_WORD: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
186 case V128_DWORD: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
187 case V128_QWORD: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
188 case V128_SINGLE: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
189 case V128_DOUBLE: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
190 return 'x'; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
191 case V256_BYTE: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
192 case V256_WORD: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
193 case V256_DWORD: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
194 case V256_QWORD: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
195 case V256_SINGLE: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
196 case V256_DOUBLE: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
197 return 'y'; |
22640
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
198 case V512_BYTE: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
199 case V512_WORD: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
200 case V512_DWORD: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
201 case V512_QWORD: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
202 case V512_SINGLE: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
203 case V512_DOUBLE: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
204 return 'z'; |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
205 case MASK8: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
206 case MASK16: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
207 case MASK32: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
208 case MASK64: |
3abba3d4aef1
Register and PlatformKind declarations for AVX512.
Roland Schatz <roland.schatz@oracle.com>
parents:
22579
diff
changeset
|
209 return 'k'; |
22579
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
210 default: |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
211 return '-'; |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
212 } |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
213 } |
c7d9aa0c44fa
Use AMD64Kind instead of JavaKind in AMD64 backend.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff
changeset
|
214 } |