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/code-stubs.h" | 5 #include "src/code-stubs.h" |
6 | 6 |
7 #include <sstream> | 7 #include <sstream> |
8 | 8 |
9 #include "src/ast/ast.h" | 9 #include "src/ast/ast.h" |
10 #include "src/bootstrapper.h" | 10 #include "src/bootstrapper.h" |
(...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
554 Node* value = assembler->Parameter(Descriptor::kValue); | 554 Node* value = assembler->Parameter(Descriptor::kValue); |
555 Node* slot = assembler->Parameter(Descriptor::kSlot); | 555 Node* slot = assembler->Parameter(Descriptor::kSlot); |
556 Node* vector = assembler->Parameter(Descriptor::kVector); | 556 Node* vector = assembler->Parameter(Descriptor::kVector); |
557 Node* context = assembler->Parameter(Descriptor::kContext); | 557 Node* context = assembler->Parameter(Descriptor::kContext); |
558 | 558 |
559 CodeStubAssembler::StoreICParameters p(context, receiver, name, value, slot, | 559 CodeStubAssembler::StoreICParameters p(context, receiver, name, value, slot, |
560 vector); | 560 vector); |
561 assembler->StoreIC(&p); | 561 assembler->StoreIC(&p); |
562 } | 562 } |
563 | 563 |
| 564 void KeyedStoreICTrampolineTFStub::GenerateAssembly( |
| 565 CodeStubAssembler* assembler) const { |
| 566 typedef compiler::Node Node; |
| 567 |
| 568 Node* receiver = assembler->Parameter(Descriptor::kReceiver); |
| 569 Node* name = assembler->Parameter(Descriptor::kName); |
| 570 Node* value = assembler->Parameter(Descriptor::kValue); |
| 571 Node* slot = assembler->Parameter(Descriptor::kSlot); |
| 572 Node* context = assembler->Parameter(Descriptor::kContext); |
| 573 Node* vector = assembler->LoadTypeFeedbackVectorForStub(); |
| 574 |
| 575 CodeStubAssembler::StoreICParameters p(context, receiver, name, value, slot, |
| 576 vector); |
| 577 assembler->KeyedStoreIC(&p, StoreICState::GetLanguageMode(GetExtraICState())); |
| 578 } |
| 579 |
| 580 void KeyedStoreICTFStub::GenerateAssembly(CodeStubAssembler* assembler) const { |
| 581 typedef compiler::Node Node; |
| 582 |
| 583 Node* receiver = assembler->Parameter(Descriptor::kReceiver); |
| 584 Node* name = assembler->Parameter(Descriptor::kName); |
| 585 Node* value = assembler->Parameter(Descriptor::kValue); |
| 586 Node* slot = assembler->Parameter(Descriptor::kSlot); |
| 587 Node* vector = assembler->Parameter(Descriptor::kVector); |
| 588 Node* context = assembler->Parameter(Descriptor::kContext); |
| 589 |
| 590 CodeStubAssembler::StoreICParameters p(context, receiver, name, value, slot, |
| 591 vector); |
| 592 assembler->KeyedStoreIC(&p, StoreICState::GetLanguageMode(GetExtraICState())); |
| 593 } |
| 594 |
564 void StoreMapStub::GenerateAssembly(CodeStubAssembler* assembler) const { | 595 void StoreMapStub::GenerateAssembly(CodeStubAssembler* assembler) const { |
565 typedef compiler::Node Node; | 596 typedef compiler::Node Node; |
566 | 597 |
567 Node* receiver = assembler->Parameter(Descriptor::kReceiver); | 598 Node* receiver = assembler->Parameter(Descriptor::kReceiver); |
568 Node* map = assembler->Parameter(Descriptor::kMap); | 599 Node* map = assembler->Parameter(Descriptor::kMap); |
569 Node* value = assembler->Parameter(Descriptor::kValue); | 600 Node* value = assembler->Parameter(Descriptor::kValue); |
570 | 601 |
571 assembler->StoreObjectField(receiver, JSObject::kMapOffset, map); | 602 assembler->StoreObjectField(receiver, JSObject::kMapOffset, map); |
572 assembler->Return(value); | 603 assembler->Return(value); |
573 } | 604 } |
(...skipping 2488 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3062 | 3093 |
3063 if (type == MachineType::Pointer()) { | 3094 if (type == MachineType::Pointer()) { |
3064 return Representation::External(); | 3095 return Representation::External(); |
3065 } | 3096 } |
3066 | 3097 |
3067 return Representation::Tagged(); | 3098 return Representation::Tagged(); |
3068 } | 3099 } |
3069 | 3100 |
3070 } // namespace internal | 3101 } // namespace internal |
3071 } // namespace v8 | 3102 } // namespace v8 |
OLD | NEW |