| 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/compiler/type-cache.h" | 7 #include "src/compiler/type-cache.h" | 
| 8 #include "src/contexts.h" | 8 #include "src/contexts.h" | 
| 9 #include "src/frames.h" | 9 #include "src/frames.h" | 
| 10 #include "src/handles-inl.h" | 10 #include "src/handles-inl.h" | 
| (...skipping 509 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 520 | 520 | 
| 521 // static | 521 // static | 
| 522 ElementAccess AccessBuilder::ForSeqTwoByteStringCharacter() { | 522 ElementAccess AccessBuilder::ForSeqTwoByteStringCharacter() { | 
| 523   ElementAccess access = {kTaggedBase, SeqTwoByteString::kHeaderSize, | 523   ElementAccess access = {kTaggedBase, SeqTwoByteString::kHeaderSize, | 
| 524                           TypeCache::Get().kUint16, MachineType::Uint16(), | 524                           TypeCache::Get().kUint16, MachineType::Uint16(), | 
| 525                           kNoWriteBarrier}; | 525                           kNoWriteBarrier}; | 
| 526   return access; | 526   return access; | 
| 527 } | 527 } | 
| 528 | 528 | 
| 529 // static | 529 // static | 
|  | 530 FieldAccess AccessBuilder::ForSeqTwoByteStringFirstCharacterPair() { | 
|  | 531   FieldAccess access = {kTaggedBase,           SeqTwoByteString::kHeaderSize, | 
|  | 532                         Handle<String>(),      TypeCache::Get().kUint32, | 
|  | 533                         MachineType::Uint32(), kNoWriteBarrier}; | 
|  | 534   return access; | 
|  | 535 } | 
|  | 536 | 
|  | 537 // static | 
| 530 FieldAccess AccessBuilder::ForJSGlobalObjectGlobalProxy() { | 538 FieldAccess AccessBuilder::ForJSGlobalObjectGlobalProxy() { | 
| 531   FieldAccess access = {kTaggedBase, | 539   FieldAccess access = {kTaggedBase, | 
| 532                         JSGlobalObject::kGlobalProxyOffset, | 540                         JSGlobalObject::kGlobalProxyOffset, | 
| 533                         Handle<Name>(), | 541                         Handle<Name>(), | 
| 534                         Type::Receiver(), | 542                         Type::Receiver(), | 
| 535                         MachineType::TaggedPointer(), | 543                         MachineType::TaggedPointer(), | 
| 536                         kPointerWriteBarrier}; | 544                         kPointerWriteBarrier}; | 
| 537   return access; | 545   return access; | 
| 538 } | 546 } | 
| 539 | 547 | 
| 540 // static | 548 // static | 
| 541 FieldAccess AccessBuilder::ForJSGlobalObjectNativeContext() { | 549 FieldAccess AccessBuilder::ForJSGlobalObjectNativeContext() { | 
| 542   FieldAccess access = {kTaggedBase, | 550   FieldAccess access = {kTaggedBase, | 
| 543                         JSGlobalObject::kNativeContextOffset, | 551                         JSGlobalObject::kNativeContextOffset, | 
| 544                         Handle<Name>(), | 552                         Handle<Name>(), | 
| 545                         Type::Internal(), | 553                         Type::Internal(), | 
| 546                         MachineType::TaggedPointer(), | 554                         MachineType::TaggedPointer(), | 
| 547                         kPointerWriteBarrier}; | 555                         kPointerWriteBarrier}; | 
| 548   return access; | 556   return access; | 
| 549 } | 557 } | 
| 550 | 558 | 
|  | 559 // static | 
|  | 560 FieldAccess AccessBuilder::ForJSStringIteratorString() { | 
|  | 561   FieldAccess access = { | 
|  | 562       kTaggedBase,    JSStringIterator::kStringOffset, Handle<String>(), | 
|  | 563       Type::String(), MachineType::TaggedPointer(),    kPointerWriteBarrier}; | 
|  | 564   return access; | 
|  | 565 } | 
|  | 566 | 
|  | 567 // static | 
|  | 568 FieldAccess AccessBuilder::ForJSStringIteratorIndex() { | 
|  | 569   FieldAccess access = {kTaggedBase, | 
|  | 570                         JSStringIterator::kNextIndexOffset, | 
|  | 571                         Handle<String>(), | 
|  | 572                         TypeCache::Get().kStringLengthType, | 
|  | 573                         MachineType::TaggedSigned(), | 
|  | 574                         kNoWriteBarrier}; | 
|  | 575   return access; | 
|  | 576 } | 
| 551 | 577 | 
| 552 // static | 578 // static | 
| 553 FieldAccess AccessBuilder::ForValue() { | 579 FieldAccess AccessBuilder::ForValue() { | 
| 554   FieldAccess access = { | 580   FieldAccess access = { | 
| 555       kTaggedBase,         JSValue::kValueOffset,    Handle<Name>(), | 581       kTaggedBase,         JSValue::kValueOffset,    Handle<Name>(), | 
| 556       Type::NonInternal(), MachineType::AnyTagged(), kFullWriteBarrier}; | 582       Type::NonInternal(), MachineType::AnyTagged(), kFullWriteBarrier}; | 
| 557   return access; | 583   return access; | 
| 558 } | 584 } | 
| 559 | 585 | 
| 560 | 586 | 
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 726   } | 752   } | 
| 727   UNREACHABLE(); | 753   UNREACHABLE(); | 
| 728   ElementAccess access = {kUntaggedBase, 0, Type::None(), MachineType::None(), | 754   ElementAccess access = {kUntaggedBase, 0, Type::None(), MachineType::None(), | 
| 729                           kNoWriteBarrier}; | 755                           kNoWriteBarrier}; | 
| 730   return access; | 756   return access; | 
| 731 } | 757 } | 
| 732 | 758 | 
| 733 }  // namespace compiler | 759 }  // namespace compiler | 
| 734 }  // namespace internal | 760 }  // namespace internal | 
| 735 }  // namespace v8 | 761 }  // namespace v8 | 
| OLD | NEW | 
|---|