OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #include "src/bailout-reason.h" | 7 #include "src/bailout-reason.h" |
8 #include "src/code-stubs.h" | 8 #include "src/code-stubs.h" |
9 #include "src/field-index.h" | 9 #include "src/field-index.h" |
10 #include "src/hydrogen.h" | 10 #include "src/hydrogen.h" |
(...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
622 return BuildLoadNamedField(GetParameter(0), casted_stub()->index()); | 622 return BuildLoadNamedField(GetParameter(0), casted_stub()->index()); |
623 } | 623 } |
624 | 624 |
625 | 625 |
626 Handle<Code> LoadFieldStub::GenerateCode() { | 626 Handle<Code> LoadFieldStub::GenerateCode() { |
627 return DoGenerateCode(this); | 627 return DoGenerateCode(this); |
628 } | 628 } |
629 | 629 |
630 | 630 |
631 template <> | 631 template <> |
| 632 HValue* CodeStubGraphBuilder<ArrayBufferViewLoadFieldStub>::BuildCodeStub() { |
| 633 return BuildArrayBufferViewFieldAccessor(GetParameter(0), nullptr, |
| 634 casted_stub()->index()); |
| 635 } |
| 636 |
| 637 |
| 638 Handle<Code> ArrayBufferViewLoadFieldStub::GenerateCode() { |
| 639 return DoGenerateCode(this); |
| 640 } |
| 641 |
| 642 |
| 643 template <> |
632 HValue* CodeStubGraphBuilder<LoadConstantStub>::BuildCodeStub() { | 644 HValue* CodeStubGraphBuilder<LoadConstantStub>::BuildCodeStub() { |
633 HValue* map = AddLoadMap(GetParameter(0), NULL); | 645 HValue* map = AddLoadMap(GetParameter(0), NULL); |
634 HObjectAccess descriptors_access = HObjectAccess::ForObservableJSObjectOffset( | 646 HObjectAccess descriptors_access = HObjectAccess::ForObservableJSObjectOffset( |
635 Map::kDescriptorsOffset, Representation::Tagged()); | 647 Map::kDescriptorsOffset, Representation::Tagged()); |
636 HValue* descriptors = Add<HLoadNamedField>(map, nullptr, descriptors_access); | 648 HValue* descriptors = Add<HLoadNamedField>(map, nullptr, descriptors_access); |
637 HObjectAccess value_access = HObjectAccess::ForObservableJSObjectOffset( | 649 HObjectAccess value_access = HObjectAccess::ForObservableJSObjectOffset( |
638 DescriptorArray::GetValueOffset(casted_stub()->constant_index())); | 650 DescriptorArray::GetValueOffset(casted_stub()->constant_index())); |
639 return Add<HLoadNamedField>(descriptors, nullptr, value_access); | 651 return Add<HLoadNamedField>(descriptors, nullptr, value_access); |
640 } | 652 } |
641 | 653 |
(...skipping 1395 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2037 // need. | 2049 // need. |
2038 info()->MarkMustNotHaveEagerFrame(); | 2050 info()->MarkMustNotHaveEagerFrame(); |
2039 | 2051 |
2040 // Probe the stub cache. | 2052 // Probe the stub cache. |
2041 Add<HTailCallThroughMegamorphicCache>(receiver, name); | 2053 Add<HTailCallThroughMegamorphicCache>(receiver, name); |
2042 | 2054 |
2043 // We never continue. | 2055 // We never continue. |
2044 return graph()->GetConstant0(); | 2056 return graph()->GetConstant0(); |
2045 } | 2057 } |
2046 } } // namespace v8::internal | 2058 } } // namespace v8::internal |
OLD | NEW |