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/handles-inl.h" | 9 #include "src/handles-inl.h" |
10 #include "src/heap/heap.h" | 10 #include "src/heap/heap.h" |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 FieldAccess AccessBuilder::ForJSArrayBufferBackingStore() { | 209 FieldAccess AccessBuilder::ForJSArrayBufferBackingStore() { |
210 FieldAccess access = {kTaggedBase, | 210 FieldAccess access = {kTaggedBase, |
211 JSArrayBuffer::kBackingStoreOffset, | 211 JSArrayBuffer::kBackingStoreOffset, |
212 MaybeHandle<Name>(), | 212 MaybeHandle<Name>(), |
213 Type::UntaggedPointer(), | 213 Type::UntaggedPointer(), |
214 MachineType::Pointer(), | 214 MachineType::Pointer(), |
215 kNoWriteBarrier}; | 215 kNoWriteBarrier}; |
216 return access; | 216 return access; |
217 } | 217 } |
218 | 218 |
219 | |
220 // static | 219 // static |
221 FieldAccess AccessBuilder::ForJSArrayBufferBitField() { | 220 FieldAccess AccessBuilder::ForJSArrayBufferBitField() { |
222 FieldAccess access = {kTaggedBase, JSArrayBuffer::kBitFieldOffset, | 221 FieldAccess access = {kTaggedBase, JSArrayBuffer::kBitFieldOffset, |
223 MaybeHandle<Name>(), TypeCache::Get().kInt8, | 222 MaybeHandle<Name>(), TypeCache::Get().kUint8, |
224 MachineType::Int8(), kNoWriteBarrier}; | 223 MachineType::Uint32(), kNoWriteBarrier}; |
225 return access; | 224 return access; |
226 } | 225 } |
227 | 226 |
228 | |
229 // static | 227 // static |
230 FieldAccess AccessBuilder::ForJSArrayBufferViewBuffer() { | 228 FieldAccess AccessBuilder::ForJSArrayBufferViewBuffer() { |
231 FieldAccess access = {kTaggedBase, | 229 FieldAccess access = {kTaggedBase, |
232 JSArrayBufferView::kBufferOffset, | 230 JSArrayBufferView::kBufferOffset, |
233 MaybeHandle<Name>(), | 231 MaybeHandle<Name>(), |
234 Type::TaggedPointer(), | 232 Type::TaggedPointer(), |
235 MachineType::AnyTagged(), | 233 MachineType::AnyTagged(), |
236 kPointerWriteBarrier}; | 234 kPointerWriteBarrier}; |
237 return access; | 235 return access; |
238 } | 236 } |
239 | 237 |
| 238 // static |
| 239 FieldAccess AccessBuilder::ForJSArrayBufferViewByteLength() { |
| 240 FieldAccess access = {kTaggedBase, |
| 241 JSArrayBufferView::kByteLengthOffset, |
| 242 MaybeHandle<Name>(), |
| 243 TypeCache::Get().kPositiveInteger, |
| 244 MachineType::AnyTagged(), |
| 245 kFullWriteBarrier}; |
| 246 return access; |
| 247 } |
| 248 |
| 249 // static |
| 250 FieldAccess AccessBuilder::ForJSArrayBufferViewByteOffset() { |
| 251 FieldAccess access = {kTaggedBase, |
| 252 JSArrayBufferView::kByteOffsetOffset, |
| 253 MaybeHandle<Name>(), |
| 254 TypeCache::Get().kPositiveInteger, |
| 255 MachineType::AnyTagged(), |
| 256 kFullWriteBarrier}; |
| 257 return access; |
| 258 } |
| 259 |
| 260 // static |
| 261 FieldAccess AccessBuilder::ForJSTypedArrayLength() { |
| 262 FieldAccess access = {kTaggedBase, |
| 263 JSTypedArray::kLengthOffset, |
| 264 MaybeHandle<Name>(), |
| 265 TypeCache::Get().kJSTypedArrayLengthType, |
| 266 MachineType::AnyTagged(), |
| 267 kNoWriteBarrier}; |
| 268 return access; |
| 269 } |
240 | 270 |
241 // static | 271 // static |
242 FieldAccess AccessBuilder::ForJSDateField(JSDate::FieldIndex index) { | 272 FieldAccess AccessBuilder::ForJSDateField(JSDate::FieldIndex index) { |
243 FieldAccess access = {kTaggedBase, | 273 FieldAccess access = {kTaggedBase, |
244 JSDate::kValueOffset + index * kPointerSize, | 274 JSDate::kValueOffset + index * kPointerSize, |
245 MaybeHandle<Name>(), | 275 MaybeHandle<Name>(), |
246 Type::Number(), | 276 Type::Number(), |
247 MachineType::AnyTagged(), | 277 MachineType::AnyTagged(), |
248 kFullWriteBarrier}; | 278 kFullWriteBarrier}; |
249 return access; | 279 return access; |
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
621 } | 651 } |
622 UNREACHABLE(); | 652 UNREACHABLE(); |
623 ElementAccess access = {kUntaggedBase, 0, Type::None(), MachineType::None(), | 653 ElementAccess access = {kUntaggedBase, 0, Type::None(), MachineType::None(), |
624 kNoWriteBarrier}; | 654 kNoWriteBarrier}; |
625 return access; | 655 return access; |
626 } | 656 } |
627 | 657 |
628 } // namespace compiler | 658 } // namespace compiler |
629 } // namespace internal | 659 } // namespace internal |
630 } // namespace v8 | 660 } // namespace v8 |
OLD | NEW |