OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/compiler/access-builder.h" | 5 #include "src/compiler/access-builder.h" |
6 | 6 |
7 #include "src/contexts.h" | 7 #include "src/contexts.h" |
8 #include "src/frames.h" | 8 #include "src/frames.h" |
9 #include "src/heap/heap.h" | 9 #include "src/heap/heap.h" |
10 #include "src/type-cache.h" | 10 #include "src/type-cache.h" |
11 #include "src/types-inl.h" | 11 #include "src/types-inl.h" |
12 | 12 |
13 namespace v8 { | 13 namespace v8 { |
14 namespace internal { | 14 namespace internal { |
15 namespace compiler { | 15 namespace compiler { |
16 | 16 |
17 // static | 17 // static |
18 FieldAccess AccessBuilder::ForMap() { | 18 FieldAccess AccessBuilder::ForMap() { |
19 FieldAccess access = {kTaggedBase, HeapObject::kMapOffset, | 19 FieldAccess access = {kTaggedBase, HeapObject::kMapOffset, |
20 MaybeHandle<Name>(), Type::Any(), kMachAnyTagged}; | 20 MaybeHandle<Name>(), Type::Any(), |
| 21 MachineType::AnyTagged()}; |
21 return access; | 22 return access; |
22 } | 23 } |
23 | 24 |
24 | 25 |
25 // static | 26 // static |
26 FieldAccess AccessBuilder::ForHeapNumberValue() { | 27 FieldAccess AccessBuilder::ForHeapNumberValue() { |
27 FieldAccess access = {kTaggedBase, HeapNumber::kValueOffset, | 28 FieldAccess access = {kTaggedBase, HeapNumber::kValueOffset, |
28 MaybeHandle<Name>(), TypeCache().Get().kFloat64, | 29 MaybeHandle<Name>(), TypeCache().Get().kFloat64, |
29 kMachFloat64}; | 30 MachineType::Float64()}; |
30 return access; | 31 return access; |
31 } | 32 } |
32 | 33 |
33 | 34 |
34 // static | 35 // static |
35 FieldAccess AccessBuilder::ForJSObjectProperties() { | 36 FieldAccess AccessBuilder::ForJSObjectProperties() { |
36 FieldAccess access = {kTaggedBase, JSObject::kPropertiesOffset, | 37 FieldAccess access = {kTaggedBase, JSObject::kPropertiesOffset, |
37 MaybeHandle<Name>(), Type::Internal(), kMachAnyTagged}; | 38 MaybeHandle<Name>(), Type::Internal(), |
| 39 MachineType::AnyTagged()}; |
38 return access; | 40 return access; |
39 } | 41 } |
40 | 42 |
41 | 43 |
42 // static | 44 // static |
43 FieldAccess AccessBuilder::ForJSObjectElements() { | 45 FieldAccess AccessBuilder::ForJSObjectElements() { |
44 FieldAccess access = {kTaggedBase, JSObject::kElementsOffset, | 46 FieldAccess access = {kTaggedBase, JSObject::kElementsOffset, |
45 MaybeHandle<Name>(), Type::Internal(), kMachAnyTagged}; | 47 MaybeHandle<Name>(), Type::Internal(), |
| 48 MachineType::AnyTagged()}; |
46 return access; | 49 return access; |
47 } | 50 } |
48 | 51 |
49 | 52 |
50 // static | 53 // static |
51 FieldAccess AccessBuilder::ForJSObjectInObjectProperty(Handle<Map> map, | 54 FieldAccess AccessBuilder::ForJSObjectInObjectProperty(Handle<Map> map, |
52 int index) { | 55 int index) { |
53 int const offset = map->GetInObjectPropertyOffset(index); | 56 int const offset = map->GetInObjectPropertyOffset(index); |
54 FieldAccess access = {kTaggedBase, offset, MaybeHandle<Name>(), | 57 FieldAccess access = {kTaggedBase, offset, MaybeHandle<Name>(), |
55 Type::Tagged(), kMachAnyTagged}; | 58 Type::Tagged(), MachineType::AnyTagged()}; |
56 return access; | 59 return access; |
57 } | 60 } |
58 | 61 |
59 | 62 |
60 // static | 63 // static |
61 FieldAccess AccessBuilder::ForJSFunctionContext() { | 64 FieldAccess AccessBuilder::ForJSFunctionContext() { |
62 FieldAccess access = {kTaggedBase, JSFunction::kContextOffset, | 65 FieldAccess access = {kTaggedBase, JSFunction::kContextOffset, |
63 MaybeHandle<Name>(), Type::Internal(), kMachAnyTagged}; | 66 MaybeHandle<Name>(), Type::Internal(), |
| 67 MachineType::AnyTagged()}; |
64 return access; | 68 return access; |
65 } | 69 } |
66 | 70 |
67 | 71 |
68 // static | 72 // static |
69 FieldAccess AccessBuilder::ForJSFunctionSharedFunctionInfo() { | 73 FieldAccess AccessBuilder::ForJSFunctionSharedFunctionInfo() { |
70 FieldAccess access = {kTaggedBase, JSFunction::kSharedFunctionInfoOffset, | 74 FieldAccess access = {kTaggedBase, JSFunction::kSharedFunctionInfoOffset, |
71 Handle<Name>(), Type::Any(), kMachAnyTagged}; | 75 Handle<Name>(), Type::Any(), MachineType::AnyTagged()}; |
72 return access; | 76 return access; |
73 } | 77 } |
74 | 78 |
75 | 79 |
76 // static | 80 // static |
77 FieldAccess AccessBuilder::ForJSArrayLength(ElementsKind elements_kind) { | 81 FieldAccess AccessBuilder::ForJSArrayLength(ElementsKind elements_kind) { |
78 TypeCache const& type_cache = TypeCache::Get(); | 82 TypeCache const& type_cache = TypeCache::Get(); |
79 FieldAccess access = {kTaggedBase, JSArray::kLengthOffset, Handle<Name>(), | 83 FieldAccess access = {kTaggedBase, JSArray::kLengthOffset, Handle<Name>(), |
80 type_cache.kJSArrayLengthType, kMachAnyTagged}; | 84 type_cache.kJSArrayLengthType, |
| 85 MachineType::AnyTagged()}; |
81 if (IsFastDoubleElementsKind(elements_kind)) { | 86 if (IsFastDoubleElementsKind(elements_kind)) { |
82 access.type = type_cache.kFixedDoubleArrayLengthType; | 87 access.type = type_cache.kFixedDoubleArrayLengthType; |
83 } else if (IsFastElementsKind(elements_kind)) { | 88 } else if (IsFastElementsKind(elements_kind)) { |
84 access.type = type_cache.kFixedArrayLengthType; | 89 access.type = type_cache.kFixedArrayLengthType; |
85 } | 90 } |
86 return access; | 91 return access; |
87 } | 92 } |
88 | 93 |
89 | 94 |
90 // static | 95 // static |
91 FieldAccess AccessBuilder::ForJSArrayBufferBackingStore() { | 96 FieldAccess AccessBuilder::ForJSArrayBufferBackingStore() { |
92 FieldAccess access = {kTaggedBase, JSArrayBuffer::kBackingStoreOffset, | 97 FieldAccess access = {kTaggedBase, JSArrayBuffer::kBackingStoreOffset, |
93 MaybeHandle<Name>(), Type::UntaggedPointer(), kMachPtr}; | 98 MaybeHandle<Name>(), Type::UntaggedPointer(), |
| 99 MachineType::Pointer()}; |
94 return access; | 100 return access; |
95 } | 101 } |
96 | 102 |
97 | 103 |
98 // static | 104 // static |
99 FieldAccess AccessBuilder::ForJSArrayBufferBitField() { | 105 FieldAccess AccessBuilder::ForJSArrayBufferBitField() { |
100 FieldAccess access = {kTaggedBase, JSArrayBuffer::kBitFieldOffset, | 106 FieldAccess access = {kTaggedBase, JSArrayBuffer::kBitFieldOffset, |
101 MaybeHandle<Name>(), TypeCache::Get().kInt8, kMachInt8}; | 107 MaybeHandle<Name>(), TypeCache::Get().kInt8, |
| 108 MachineType::Int8()}; |
102 return access; | 109 return access; |
103 } | 110 } |
104 | 111 |
105 | 112 |
106 // static | 113 // static |
107 FieldAccess AccessBuilder::ForJSArrayBufferViewBuffer() { | 114 FieldAccess AccessBuilder::ForJSArrayBufferViewBuffer() { |
108 FieldAccess access = {kTaggedBase, JSArrayBufferView::kBufferOffset, | 115 FieldAccess access = {kTaggedBase, JSArrayBufferView::kBufferOffset, |
109 MaybeHandle<Name>(), Type::TaggedPointer(), | 116 MaybeHandle<Name>(), Type::TaggedPointer(), |
110 kMachAnyTagged}; | 117 MachineType::AnyTagged()}; |
111 return access; | 118 return access; |
112 } | 119 } |
113 | 120 |
114 | 121 |
115 // static | 122 // static |
116 FieldAccess AccessBuilder::ForJSDateField(JSDate::FieldIndex index) { | 123 FieldAccess AccessBuilder::ForJSDateField(JSDate::FieldIndex index) { |
117 FieldAccess access = {kTaggedBase, | 124 FieldAccess access = { |
118 JSDate::kValueOffset + index * kPointerSize, | 125 kTaggedBase, JSDate::kValueOffset + index * kPointerSize, |
119 MaybeHandle<Name>(), Type::Number(), kMachAnyTagged}; | 126 MaybeHandle<Name>(), Type::Number(), MachineType::AnyTagged()}; |
120 return access; | 127 return access; |
121 } | 128 } |
122 | 129 |
123 | 130 |
124 // static | 131 // static |
125 FieldAccess AccessBuilder::ForFixedArrayLength() { | 132 FieldAccess AccessBuilder::ForFixedArrayLength() { |
126 FieldAccess access = {kTaggedBase, FixedArray::kLengthOffset, | 133 FieldAccess access = { |
127 MaybeHandle<Name>(), | 134 kTaggedBase, FixedArray::kLengthOffset, MaybeHandle<Name>(), |
128 TypeCache::Get().kFixedArrayLengthType, kMachAnyTagged}; | 135 TypeCache::Get().kFixedArrayLengthType, MachineType::AnyTagged()}; |
129 return access; | 136 return access; |
130 } | 137 } |
131 | 138 |
132 | 139 |
133 // static | 140 // static |
134 FieldAccess AccessBuilder::ForDescriptorArrayEnumCache() { | 141 FieldAccess AccessBuilder::ForDescriptorArrayEnumCache() { |
135 FieldAccess access = {kTaggedBase, DescriptorArray::kEnumCacheOffset, | 142 FieldAccess access = {kTaggedBase, DescriptorArray::kEnumCacheOffset, |
136 Handle<Name>(), Type::TaggedPointer(), kMachAnyTagged}; | 143 Handle<Name>(), Type::TaggedPointer(), |
| 144 MachineType::AnyTagged()}; |
137 return access; | 145 return access; |
138 } | 146 } |
139 | 147 |
140 | 148 |
141 // static | 149 // static |
142 FieldAccess AccessBuilder::ForDescriptorArrayEnumCacheBridgeCache() { | 150 FieldAccess AccessBuilder::ForDescriptorArrayEnumCacheBridgeCache() { |
143 FieldAccess access = {kTaggedBase, | 151 FieldAccess access = { |
144 DescriptorArray::kEnumCacheBridgeCacheOffset, | 152 kTaggedBase, DescriptorArray::kEnumCacheBridgeCacheOffset, Handle<Name>(), |
145 Handle<Name>(), Type::TaggedPointer(), kMachAnyTagged}; | 153 Type::TaggedPointer(), MachineType::AnyTagged()}; |
146 return access; | 154 return access; |
147 } | 155 } |
148 | 156 |
149 | 157 |
150 // static | 158 // static |
151 FieldAccess AccessBuilder::ForMapBitField3() { | 159 FieldAccess AccessBuilder::ForMapBitField3() { |
152 FieldAccess access = {kTaggedBase, Map::kBitField3Offset, Handle<Name>(), | 160 FieldAccess access = {kTaggedBase, Map::kBitField3Offset, Handle<Name>(), |
153 TypeCache::Get().kInt32, kMachInt32}; | 161 TypeCache::Get().kInt32, MachineType::Int32()}; |
154 return access; | 162 return access; |
155 } | 163 } |
156 | 164 |
157 | 165 |
158 // static | 166 // static |
159 FieldAccess AccessBuilder::ForMapDescriptors() { | 167 FieldAccess AccessBuilder::ForMapDescriptors() { |
160 FieldAccess access = {kTaggedBase, Map::kDescriptorsOffset, Handle<Name>(), | 168 FieldAccess access = {kTaggedBase, Map::kDescriptorsOffset, Handle<Name>(), |
161 Type::TaggedPointer(), kMachAnyTagged}; | 169 Type::TaggedPointer(), MachineType::AnyTagged()}; |
162 return access; | 170 return access; |
163 } | 171 } |
164 | 172 |
165 | 173 |
166 // static | 174 // static |
167 FieldAccess AccessBuilder::ForMapInstanceType() { | 175 FieldAccess AccessBuilder::ForMapInstanceType() { |
168 FieldAccess access = {kTaggedBase, Map::kInstanceTypeOffset, Handle<Name>(), | 176 FieldAccess access = {kTaggedBase, Map::kInstanceTypeOffset, Handle<Name>(), |
169 TypeCache::Get().kUint8, kMachUint8}; | 177 TypeCache::Get().kUint8, MachineType::Uint8()}; |
170 return access; | 178 return access; |
171 } | 179 } |
172 | 180 |
173 | 181 |
174 // static | 182 // static |
175 FieldAccess AccessBuilder::ForMapPrototype() { | 183 FieldAccess AccessBuilder::ForMapPrototype() { |
176 FieldAccess access = {kTaggedBase, Map::kPrototypeOffset, Handle<Name>(), | 184 FieldAccess access = {kTaggedBase, Map::kPrototypeOffset, Handle<Name>(), |
177 Type::TaggedPointer(), kMachAnyTagged}; | 185 Type::TaggedPointer(), MachineType::AnyTagged()}; |
178 return access; | 186 return access; |
179 } | 187 } |
180 | 188 |
181 | 189 |
182 // static | 190 // static |
183 FieldAccess AccessBuilder::ForStringLength() { | 191 FieldAccess AccessBuilder::ForStringLength() { |
184 FieldAccess access = {kTaggedBase, String::kLengthOffset, Handle<Name>(), | 192 FieldAccess access = {kTaggedBase, String::kLengthOffset, Handle<Name>(), |
185 TypeCache::Get().kStringLengthType, kMachAnyTagged}; | 193 TypeCache::Get().kStringLengthType, |
| 194 MachineType::AnyTagged()}; |
186 return access; | 195 return access; |
187 } | 196 } |
188 | 197 |
189 | 198 |
190 // static | 199 // static |
191 FieldAccess AccessBuilder::ForJSGlobalObjectGlobalProxy() { | 200 FieldAccess AccessBuilder::ForJSGlobalObjectGlobalProxy() { |
192 FieldAccess access = {kTaggedBase, JSGlobalObject::kGlobalProxyOffset, | 201 FieldAccess access = {kTaggedBase, JSGlobalObject::kGlobalProxyOffset, |
193 Handle<Name>(), Type::Receiver(), kMachAnyTagged}; | 202 Handle<Name>(), Type::Receiver(), |
| 203 MachineType::AnyTagged()}; |
194 return access; | 204 return access; |
195 } | 205 } |
196 | 206 |
197 | 207 |
198 // static | 208 // static |
199 FieldAccess AccessBuilder::ForJSGlobalObjectNativeContext() { | 209 FieldAccess AccessBuilder::ForJSGlobalObjectNativeContext() { |
200 FieldAccess access = {kTaggedBase, JSGlobalObject::kNativeContextOffset, | 210 FieldAccess access = {kTaggedBase, JSGlobalObject::kNativeContextOffset, |
201 Handle<Name>(), Type::Internal(), kMachAnyTagged}; | 211 Handle<Name>(), Type::Internal(), |
| 212 MachineType::AnyTagged()}; |
202 return access; | 213 return access; |
203 } | 214 } |
204 | 215 |
205 | 216 |
206 // static | 217 // static |
207 FieldAccess AccessBuilder::ForValue() { | 218 FieldAccess AccessBuilder::ForValue() { |
208 FieldAccess access = {kTaggedBase, JSValue::kValueOffset, Handle<Name>(), | 219 FieldAccess access = {kTaggedBase, JSValue::kValueOffset, Handle<Name>(), |
209 Type::Any(), kMachAnyTagged}; | 220 Type::Any(), MachineType::AnyTagged()}; |
210 return access; | 221 return access; |
211 } | 222 } |
212 | 223 |
213 | 224 |
214 // static | 225 // static |
215 FieldAccess AccessBuilder::ForArgumentsLength() { | 226 FieldAccess AccessBuilder::ForArgumentsLength() { |
216 int offset = | 227 int offset = |
217 JSObject::kHeaderSize + Heap::kArgumentsLengthIndex * kPointerSize; | 228 JSObject::kHeaderSize + Heap::kArgumentsLengthIndex * kPointerSize; |
218 FieldAccess access = {kTaggedBase, offset, Handle<Name>(), Type::Any(), | 229 FieldAccess access = {kTaggedBase, offset, Handle<Name>(), Type::Any(), |
219 kMachAnyTagged}; | 230 MachineType::AnyTagged()}; |
220 return access; | 231 return access; |
221 } | 232 } |
222 | 233 |
223 | 234 |
224 // static | 235 // static |
225 FieldAccess AccessBuilder::ForArgumentsCallee() { | 236 FieldAccess AccessBuilder::ForArgumentsCallee() { |
226 int offset = | 237 int offset = |
227 JSObject::kHeaderSize + Heap::kArgumentsCalleeIndex * kPointerSize; | 238 JSObject::kHeaderSize + Heap::kArgumentsCalleeIndex * kPointerSize; |
228 FieldAccess access = {kTaggedBase, offset, Handle<Name>(), Type::Any(), | 239 FieldAccess access = {kTaggedBase, offset, Handle<Name>(), Type::Any(), |
229 kMachAnyTagged}; | 240 MachineType::AnyTagged()}; |
230 return access; | 241 return access; |
231 } | 242 } |
232 | 243 |
233 | 244 |
234 // static | 245 // static |
235 FieldAccess AccessBuilder::ForFixedArraySlot(size_t index) { | 246 FieldAccess AccessBuilder::ForFixedArraySlot(size_t index) { |
236 int offset = FixedArray::OffsetOfElementAt(static_cast<int>(index)); | 247 int offset = FixedArray::OffsetOfElementAt(static_cast<int>(index)); |
237 FieldAccess access = {kTaggedBase, offset, Handle<Name>(), Type::Any(), | 248 FieldAccess access = {kTaggedBase, offset, Handle<Name>(), Type::Any(), |
238 kMachAnyTagged}; | 249 MachineType::AnyTagged()}; |
239 return access; | 250 return access; |
240 } | 251 } |
241 | 252 |
242 | 253 |
243 // static | 254 // static |
244 FieldAccess AccessBuilder::ForContextSlot(size_t index) { | 255 FieldAccess AccessBuilder::ForContextSlot(size_t index) { |
245 int offset = Context::kHeaderSize + static_cast<int>(index) * kPointerSize; | 256 int offset = Context::kHeaderSize + static_cast<int>(index) * kPointerSize; |
246 DCHECK_EQ(offset, | 257 DCHECK_EQ(offset, |
247 Context::SlotOffset(static_cast<int>(index)) + kHeapObjectTag); | 258 Context::SlotOffset(static_cast<int>(index)) + kHeapObjectTag); |
248 FieldAccess access = {kTaggedBase, offset, Handle<Name>(), Type::Any(), | 259 FieldAccess access = {kTaggedBase, offset, Handle<Name>(), Type::Any(), |
249 kMachAnyTagged}; | 260 MachineType::AnyTagged()}; |
250 return access; | 261 return access; |
251 } | 262 } |
252 | 263 |
253 | 264 |
254 // static | 265 // static |
255 FieldAccess AccessBuilder::ForPropertyCellValue() { | 266 FieldAccess AccessBuilder::ForPropertyCellValue() { |
256 return ForPropertyCellValue(Type::Tagged()); | 267 return ForPropertyCellValue(Type::Tagged()); |
257 } | 268 } |
258 | 269 |
259 | 270 |
260 // static | 271 // static |
261 FieldAccess AccessBuilder::ForPropertyCellValue(Type* type) { | 272 FieldAccess AccessBuilder::ForPropertyCellValue(Type* type) { |
262 FieldAccess access = {kTaggedBase, PropertyCell::kValueOffset, Handle<Name>(), | 273 FieldAccess access = {kTaggedBase, PropertyCell::kValueOffset, Handle<Name>(), |
263 type, kMachAnyTagged}; | 274 type, MachineType::AnyTagged()}; |
264 return access; | 275 return access; |
265 } | 276 } |
266 | 277 |
267 | 278 |
268 // static | 279 // static |
269 FieldAccess AccessBuilder::ForSharedFunctionInfoTypeFeedbackVector() { | 280 FieldAccess AccessBuilder::ForSharedFunctionInfoTypeFeedbackVector() { |
270 FieldAccess access = {kTaggedBase, SharedFunctionInfo::kFeedbackVectorOffset, | 281 FieldAccess access = {kTaggedBase, SharedFunctionInfo::kFeedbackVectorOffset, |
271 Handle<Name>(), Type::Any(), kMachAnyTagged}; | 282 Handle<Name>(), Type::Any(), MachineType::AnyTagged()}; |
272 return access; | 283 return access; |
273 } | 284 } |
274 | 285 |
275 | 286 |
276 // static | 287 // static |
277 ElementAccess AccessBuilder::ForFixedArrayElement() { | 288 ElementAccess AccessBuilder::ForFixedArrayElement() { |
278 ElementAccess access = {kTaggedBase, FixedArray::kHeaderSize, Type::Tagged(), | 289 ElementAccess access = {kTaggedBase, FixedArray::kHeaderSize, Type::Tagged(), |
279 kMachAnyTagged}; | 290 MachineType::AnyTagged()}; |
280 return access; | 291 return access; |
281 } | 292 } |
282 | 293 |
283 | 294 |
284 // static | 295 // static |
285 ElementAccess AccessBuilder::ForFixedDoubleArrayElement() { | 296 ElementAccess AccessBuilder::ForFixedDoubleArrayElement() { |
286 ElementAccess access = {kTaggedBase, FixedDoubleArray::kHeaderSize, | 297 ElementAccess access = {kTaggedBase, FixedDoubleArray::kHeaderSize, |
287 TypeCache::Get().kFloat64, kMachFloat64}; | 298 TypeCache::Get().kFloat64, MachineType::Float64()}; |
288 return access; | 299 return access; |
289 } | 300 } |
290 | 301 |
291 | 302 |
292 // static | 303 // static |
293 ElementAccess AccessBuilder::ForTypedArrayElement(ExternalArrayType type, | 304 ElementAccess AccessBuilder::ForTypedArrayElement(ExternalArrayType type, |
294 bool is_external) { | 305 bool is_external) { |
295 BaseTaggedness taggedness = is_external ? kUntaggedBase : kTaggedBase; | 306 BaseTaggedness taggedness = is_external ? kUntaggedBase : kTaggedBase; |
296 int header_size = is_external ? 0 : FixedTypedArrayBase::kDataOffset; | 307 int header_size = is_external ? 0 : FixedTypedArrayBase::kDataOffset; |
297 switch (type) { | 308 switch (type) { |
298 case kExternalInt8Array: { | 309 case kExternalInt8Array: { |
299 ElementAccess access = {taggedness, header_size, Type::Signed32(), | 310 ElementAccess access = {taggedness, header_size, Type::Signed32(), |
300 kMachInt8}; | 311 MachineType::Int8()}; |
301 return access; | 312 return access; |
302 } | 313 } |
303 case kExternalUint8Array: | 314 case kExternalUint8Array: |
304 case kExternalUint8ClampedArray: { | 315 case kExternalUint8ClampedArray: { |
305 ElementAccess access = {taggedness, header_size, Type::Unsigned32(), | 316 ElementAccess access = {taggedness, header_size, Type::Unsigned32(), |
306 kMachUint8}; | 317 MachineType::Uint8()}; |
307 return access; | 318 return access; |
308 } | 319 } |
309 case kExternalInt16Array: { | 320 case kExternalInt16Array: { |
310 ElementAccess access = {taggedness, header_size, Type::Signed32(), | 321 ElementAccess access = {taggedness, header_size, Type::Signed32(), |
311 kMachInt16}; | 322 MachineType::Int16()}; |
312 return access; | 323 return access; |
313 } | 324 } |
314 case kExternalUint16Array: { | 325 case kExternalUint16Array: { |
315 ElementAccess access = {taggedness, header_size, Type::Unsigned32(), | 326 ElementAccess access = {taggedness, header_size, Type::Unsigned32(), |
316 kMachUint16}; | 327 MachineType::Uint16()}; |
317 return access; | 328 return access; |
318 } | 329 } |
319 case kExternalInt32Array: { | 330 case kExternalInt32Array: { |
320 ElementAccess access = {taggedness, header_size, Type::Signed32(), | 331 ElementAccess access = {taggedness, header_size, Type::Signed32(), |
321 kMachInt32}; | 332 MachineType::Int32()}; |
322 return access; | 333 return access; |
323 } | 334 } |
324 case kExternalUint32Array: { | 335 case kExternalUint32Array: { |
325 ElementAccess access = {taggedness, header_size, Type::Unsigned32(), | 336 ElementAccess access = {taggedness, header_size, Type::Unsigned32(), |
326 kMachUint32}; | 337 MachineType::Uint32()}; |
327 return access; | 338 return access; |
328 } | 339 } |
329 case kExternalFloat32Array: { | 340 case kExternalFloat32Array: { |
330 ElementAccess access = {taggedness, header_size, Type::Number(), | 341 ElementAccess access = {taggedness, header_size, Type::Number(), |
331 kMachFloat32}; | 342 MachineType::Float32()}; |
332 return access; | 343 return access; |
333 } | 344 } |
334 case kExternalFloat64Array: { | 345 case kExternalFloat64Array: { |
335 ElementAccess access = {taggedness, header_size, Type::Number(), | 346 ElementAccess access = {taggedness, header_size, Type::Number(), |
336 kMachFloat64}; | 347 MachineType::Float64()}; |
337 return access; | 348 return access; |
338 } | 349 } |
339 } | 350 } |
340 UNREACHABLE(); | 351 UNREACHABLE(); |
341 ElementAccess access = {kUntaggedBase, 0, Type::None(), kMachNone}; | 352 ElementAccess access = {kUntaggedBase, 0, Type::None(), MachineType::None()}; |
342 return access; | 353 return access; |
343 } | 354 } |
344 | 355 |
345 | 356 |
346 // static | 357 // static |
347 FieldAccess AccessBuilder::ForStatsCounter() { | 358 FieldAccess AccessBuilder::ForStatsCounter() { |
348 FieldAccess access = {kUntaggedBase, 0, MaybeHandle<Name>(), | 359 FieldAccess access = {kUntaggedBase, 0, MaybeHandle<Name>(), |
349 TypeCache::Get().kInt32, kMachInt32}; | 360 TypeCache::Get().kInt32, MachineType::Int32()}; |
350 return access; | 361 return access; |
351 } | 362 } |
352 | 363 |
353 | 364 |
354 // static | 365 // static |
355 FieldAccess AccessBuilder::ForFrameCallerFramePtr() { | 366 FieldAccess AccessBuilder::ForFrameCallerFramePtr() { |
356 FieldAccess access = {kUntaggedBase, StandardFrameConstants::kCallerFPOffset, | 367 FieldAccess access = {kUntaggedBase, StandardFrameConstants::kCallerFPOffset, |
357 MaybeHandle<Name>(), Type::Internal(), kMachPtr}; | 368 MaybeHandle<Name>(), Type::Internal(), |
| 369 MachineType::Pointer()}; |
358 return access; | 370 return access; |
359 } | 371 } |
360 | 372 |
361 | 373 |
362 // static | 374 // static |
363 FieldAccess AccessBuilder::ForFrameMarker() { | 375 FieldAccess AccessBuilder::ForFrameMarker() { |
364 FieldAccess access = {kUntaggedBase, StandardFrameConstants::kMarkerOffset, | 376 FieldAccess access = {kUntaggedBase, StandardFrameConstants::kMarkerOffset, |
365 MaybeHandle<Name>(), Type::Tagged(), kMachAnyTagged}; | 377 MaybeHandle<Name>(), Type::Tagged(), |
| 378 MachineType::AnyTagged()}; |
366 return access; | 379 return access; |
367 } | 380 } |
368 | 381 |
369 } // namespace compiler | 382 } // namespace compiler |
370 } // namespace internal | 383 } // namespace internal |
371 } // namespace v8 | 384 } // namespace v8 |
OLD | NEW |