25 #include "precompiled.hpp"
26 #include "code/debugInfo.hpp"
27 #include "oops/compressedOops.inline.hpp"
28 #include "oops/oop.hpp"
29 #include "runtime/frame.inline.hpp"
30 #include "runtime/handles.inline.hpp"
31 #include "oops/typeArrayOop.inline.hpp"
32 #include "runtime/interfaceSupport.inline.hpp"
33 #include "runtime/stackValue.hpp"
34 #if INCLUDE_ZGC
35 #include "gc/z/zBarrier.inline.hpp"
36 #endif
37
38 static BasicType klass2bt(InstanceKlass* ik, bool& is_mask) {
39 switch(vmSymbols::find_sid(ik->name())) {
40 // Vectors
41 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte64Vector):
42 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte128Vector):
43 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte256Vector):
44 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte512Vector):
45 is_mask = false;
46 return T_BYTE;
47
48 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short64Vector):
49 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short128Vector):
50 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short256Vector):
51 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short512Vector):
52 is_mask = false;
53 return T_SHORT;
54
55 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int64Vector):
56 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int128Vector):
57 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int256Vector):
58 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int512Vector):
59 is_mask = false;
60 return T_INT;
61
62 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long64Vector):
63 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long128Vector):
64 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long256Vector):
65 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long512Vector):
66 is_mask = false;
67 return T_LONG;
68
69 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float64Vector):
70 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float128Vector):
71 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float256Vector):
72 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float512Vector):
73 is_mask = false;
74 return T_FLOAT;
75
76 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double64Vector):
77 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double128Vector):
78 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double256Vector):
79 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double512Vector):
80 is_mask = false;
81 return T_DOUBLE;
82
83 // Masks
84 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte64Vector_Byte64Mask):
85 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte128Vector_Byte128Mask):
86 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte256Vector_Byte256Mask):
87 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte512Vector_Byte512Mask):
88 is_mask = true;
89 return T_BYTE;
90
91 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short64Vector_Short64Mask):
92 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short128Vector_Short128Mask):
93 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short256Vector_Short256Mask):
94 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short512Vector_Short512Mask):
95 is_mask = true;
96 return T_SHORT;
97
98 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int64Vector_Int64Mask):
99 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int128Vector_Int128Mask):
100 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int256Vector_Int256Mask):
101 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int512Vector_Int512Mask):
102 is_mask = true;
103 return T_INT;
104
105 // LongMask
106 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long64Vector_Long64Mask):
107 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long128Vector_Long128Mask):
108 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long256Vector_Long256Mask):
109 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long512Vector_Long512Mask):
110 is_mask = true;
111 return T_LONG;
112
113 // FloatMask
114 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float64Vector_Float64Mask):
115 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float128Vector_Float128Mask):
116 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float256Vector_Float256Mask):
117 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float512Vector_Float512Mask):
118 is_mask = true;
119 return T_INT;
120
121 // DoubleMask
122 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double64Vector_Double64Mask):
123 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double128Vector_Double128Mask):
124 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double256Vector_Double256Mask):
125 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double512Vector_Double512Mask):
126 is_mask = true;
127 return T_LONG;
128
129 default:
130 fatal("unknown klass: %s", ik->name()->as_utf8());
131 return T_ILLEGAL;
132 }
133 }
134
135 static int klass2bytes(InstanceKlass* ik) {
136 switch(vmSymbols::find_sid(ik->name())) {
137 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte64Vector):
138 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte64Vector_Byte64Mask):
139 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short64Vector):
140 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short64Vector_Short64Mask):
141 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int64Vector):
142 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int64Vector_Int64Mask):
143 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long64Vector):
144 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long64Vector_Long64Mask):
145 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float64Vector):
172 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long256Vector_Long256Mask):
173 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float256Vector):
174 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float256Vector_Float256Mask):
175 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double256Vector):
176 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double256Vector_Double256Mask):
177 return (256 / 8);
178
179 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte512Vector):
180 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte512Vector_Byte512Mask):
181 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short512Vector):
182 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short512Vector_Short512Mask):
183 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int512Vector):
184 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int512Vector_Int512Mask):
185 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long512Vector):
186 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long512Vector_Long512Mask):
187 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float512Vector):
188 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float512Vector_Float512Mask):
189 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double512Vector):
190 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double512Vector_Double512Mask):
191 return (512 / 8);
192
193 default:
194 fatal("unknown klass: %s", ik->name()->as_utf8());
195 return -1;
196 }
197 }
198
199 static void init_vector_array(typeArrayOop arr, BasicType elem_bt, int num_elem, address value_addr) {
200 int elem_size = type2aelembytes(elem_bt);
201
202 for (int i = 0; i < num_elem; i++) {
203 switch (elem_bt) {
204 case T_BYTE: {
205 jbyte elem_value = *(jbyte*) (value_addr + i * elem_size);
206 arr->byte_at_put(i, elem_value);
207 break;
208 }
209 case T_SHORT: {
210 jshort elem_value = *(jshort*) (value_addr + i * elem_size);
211 arr->short_at_put(i, elem_value);
|
25 #include "precompiled.hpp"
26 #include "code/debugInfo.hpp"
27 #include "oops/compressedOops.inline.hpp"
28 #include "oops/oop.hpp"
29 #include "runtime/frame.inline.hpp"
30 #include "runtime/handles.inline.hpp"
31 #include "oops/typeArrayOop.inline.hpp"
32 #include "runtime/interfaceSupport.inline.hpp"
33 #include "runtime/stackValue.hpp"
34 #if INCLUDE_ZGC
35 #include "gc/z/zBarrier.inline.hpp"
36 #endif
37
38 static BasicType klass2bt(InstanceKlass* ik, bool& is_mask) {
39 switch(vmSymbols::find_sid(ik->name())) {
40 // Vectors
41 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte64Vector):
42 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte128Vector):
43 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte256Vector):
44 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte512Vector):
45 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_ByteScalableVector):
46 is_mask = false;
47 return T_BYTE;
48
49 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short64Vector):
50 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short128Vector):
51 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short256Vector):
52 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short512Vector):
53 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_ShortScalableVector):
54 is_mask = false;
55 return T_SHORT;
56
57 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int64Vector):
58 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int128Vector):
59 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int256Vector):
60 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int512Vector):
61 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_IntScalableVector):
62 is_mask = false;
63 return T_INT;
64
65 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long64Vector):
66 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long128Vector):
67 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long256Vector):
68 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long512Vector):
69 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_LongScalableVector):
70 is_mask = false;
71 return T_LONG;
72
73 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float64Vector):
74 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float128Vector):
75 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float256Vector):
76 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float512Vector):
77 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_FloatScalableVector):
78 is_mask = false;
79 return T_FLOAT;
80
81 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double64Vector):
82 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double128Vector):
83 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double256Vector):
84 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double512Vector):
85 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_DoubleScalableVector):
86 is_mask = false;
87 return T_DOUBLE;
88
89 // Masks
90 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte64Vector_Byte64Mask):
91 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte128Vector_Byte128Mask):
92 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte256Vector_Byte256Mask):
93 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte512Vector_Byte512Mask):
94 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_ByteScalableVector_ByteScalableMask):
95 is_mask = true;
96 return T_BYTE;
97
98 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short64Vector_Short64Mask):
99 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short128Vector_Short128Mask):
100 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short256Vector_Short256Mask):
101 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short512Vector_Short512Mask):
102 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_ShortScalableVector_ShortScalableMask):
103 is_mask = true;
104 return T_SHORT;
105
106 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int64Vector_Int64Mask):
107 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int128Vector_Int128Mask):
108 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int256Vector_Int256Mask):
109 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int512Vector_Int512Mask):
110 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_IntScalableVector_IntScalableMask):
111 is_mask = true;
112 return T_INT;
113
114 // LongMask
115 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long64Vector_Long64Mask):
116 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long128Vector_Long128Mask):
117 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long256Vector_Long256Mask):
118 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long512Vector_Long512Mask):
119 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_LongScalableVector_LongScalableMask):
120 is_mask = true;
121 return T_LONG;
122
123 // FloatMask
124 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float64Vector_Float64Mask):
125 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float128Vector_Float128Mask):
126 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float256Vector_Float256Mask):
127 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float512Vector_Float512Mask):
128 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_FloatScalableVector_FloatScalableMask):
129 is_mask = true;
130 return T_INT;
131
132 // DoubleMask
133 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double64Vector_Double64Mask):
134 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double128Vector_Double128Mask):
135 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double256Vector_Double256Mask):
136 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double512Vector_Double512Mask):
137 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_DoubleScalableVector_DoubleScalableMask):
138 is_mask = true;
139 return T_LONG;
140
141 default:
142 fatal("unknown klass: %s", ik->name()->as_utf8());
143 return T_ILLEGAL;
144 }
145 }
146
147 static int klass2bytes(InstanceKlass* ik) {
148 switch(vmSymbols::find_sid(ik->name())) {
149 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte64Vector):
150 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte64Vector_Byte64Mask):
151 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short64Vector):
152 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short64Vector_Short64Mask):
153 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int64Vector):
154 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int64Vector_Int64Mask):
155 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long64Vector):
156 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long64Vector_Long64Mask):
157 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float64Vector):
184 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long256Vector_Long256Mask):
185 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float256Vector):
186 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float256Vector_Float256Mask):
187 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double256Vector):
188 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double256Vector_Double256Mask):
189 return (256 / 8);
190
191 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte512Vector):
192 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte512Vector_Byte512Mask):
193 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short512Vector):
194 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short512Vector_Short512Mask):
195 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int512Vector):
196 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int512Vector_Int512Mask):
197 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long512Vector):
198 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long512Vector_Long512Mask):
199 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float512Vector):
200 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float512Vector_Float512Mask):
201 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double512Vector):
202 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double512Vector_Double512Mask):
203 return (512 / 8);
204
205 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_ByteScalableVector):
206 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_ByteScalableVector_ByteScalableMask):
207 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_ShortScalableVector):
208 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_ShortScalableVector_ShortScalableMask):
209 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_IntScalableVector):
210 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_IntScalableVector_IntScalableMask):
211 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_LongScalableVector):
212 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_LongScalableVector_LongScalableMask):
213 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_FloatScalableVector):
214 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_FloatScalableVector_FloatScalableMask):
215 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_DoubleScalableVector):
216 case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_DoubleScalableVector_DoubleScalableMask):
217 return Matcher::max_vector_size(T_BYTE);
218
219 default:
220 fatal("unknown klass: %s", ik->name()->as_utf8());
221 return -1;
222 }
223 }
224
225 static void init_vector_array(typeArrayOop arr, BasicType elem_bt, int num_elem, address value_addr) {
226 int elem_size = type2aelembytes(elem_bt);
227
228 for (int i = 0; i < num_elem; i++) {
229 switch (elem_bt) {
230 case T_BYTE: {
231 jbyte elem_value = *(jbyte*) (value_addr + i * elem_size);
232 arr->byte_at_put(i, elem_value);
233 break;
234 }
235 case T_SHORT: {
236 jshort elem_value = *(jshort*) (value_addr + i * elem_size);
237 arr->short_at_put(i, elem_value);
|