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/js-operator.h" | 5 #include "src/compiler/js-operator.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 | 8 |
9 #include "src/base/lazy-instance.h" | 9 #include "src/base/lazy-instance.h" |
10 #include "src/compiler/opcodes.h" | 10 #include "src/compiler/opcodes.h" |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 | 86 |
87 ContextAccess const& ContextAccessOf(Operator const* op) { | 87 ContextAccess const& ContextAccessOf(Operator const* op) { |
88 DCHECK(op->opcode() == IrOpcode::kJSLoadContext || | 88 DCHECK(op->opcode() == IrOpcode::kJSLoadContext || |
89 op->opcode() == IrOpcode::kJSStoreContext); | 89 op->opcode() == IrOpcode::kJSStoreContext); |
90 return OpParameter<ContextAccess>(op); | 90 return OpParameter<ContextAccess>(op); |
91 } | 91 } |
92 | 92 |
93 | 93 |
94 DynamicGlobalAccess::DynamicGlobalAccess(const Handle<String>& name, | 94 DynamicGlobalAccess::DynamicGlobalAccess(const Handle<String>& name, |
95 uint32_t check_bitset, | 95 uint32_t check_bitset, |
| 96 const VectorSlotPair& feedback, |
96 ContextualMode mode) | 97 ContextualMode mode) |
97 : name_(name), check_bitset_(check_bitset), mode_(mode) { | 98 : name_(name), |
| 99 check_bitset_(check_bitset), |
| 100 feedback_(feedback), |
| 101 mode_(mode) { |
98 DCHECK(check_bitset == kFullCheckRequired || check_bitset < 0x80000000U); | 102 DCHECK(check_bitset == kFullCheckRequired || check_bitset < 0x80000000U); |
99 } | 103 } |
100 | 104 |
101 | 105 |
102 bool operator==(DynamicGlobalAccess const& lhs, | 106 bool operator==(DynamicGlobalAccess const& lhs, |
103 DynamicGlobalAccess const& rhs) { | 107 DynamicGlobalAccess const& rhs) { |
104 UNIMPLEMENTED(); | 108 UNIMPLEMENTED(); |
105 return true; | 109 return true; |
106 } | 110 } |
107 | 111 |
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
513 ContextAccess access(depth, index, false); | 517 ContextAccess access(depth, index, false); |
514 return new (zone()) Operator1<ContextAccess>( // -- | 518 return new (zone()) Operator1<ContextAccess>( // -- |
515 IrOpcode::kJSStoreContext, // opcode | 519 IrOpcode::kJSStoreContext, // opcode |
516 Operator::kNoRead | Operator::kNoThrow, // flags | 520 Operator::kNoRead | Operator::kNoThrow, // flags |
517 "JSStoreContext", // name | 521 "JSStoreContext", // name |
518 2, 1, 1, 0, 1, 0, // counts | 522 2, 1, 1, 0, 1, 0, // counts |
519 access); // parameter | 523 access); // parameter |
520 } | 524 } |
521 | 525 |
522 | 526 |
523 const Operator* JSOperatorBuilder::LoadDynamicGlobal(const Handle<String>& name, | 527 const Operator* JSOperatorBuilder::LoadDynamicGlobal( |
524 uint32_t check_bitset, | 528 const Handle<String>& name, uint32_t check_bitset, |
525 ContextualMode mode) { | 529 const VectorSlotPair& feedback, ContextualMode mode) { |
526 DynamicGlobalAccess access(name, check_bitset, mode); | 530 DynamicGlobalAccess access(name, check_bitset, feedback, mode); |
527 return new (zone()) Operator1<DynamicGlobalAccess>( // -- | 531 return new (zone()) Operator1<DynamicGlobalAccess>( // -- |
528 IrOpcode::kJSLoadDynamicGlobal, Operator::kNoProperties, // opcode | 532 IrOpcode::kJSLoadDynamicGlobal, Operator::kNoProperties, // opcode |
529 "JSLoadDynamicGlobal", // name | 533 "JSLoadDynamicGlobal", // name |
530 1, 1, 1, 1, 1, 2, // counts | 534 1, 1, 1, 1, 1, 2, // counts |
531 access); // parameter | 535 access); // parameter |
532 } | 536 } |
533 | 537 |
534 | 538 |
535 const Operator* JSOperatorBuilder::LoadDynamicContext( | 539 const Operator* JSOperatorBuilder::LoadDynamicContext( |
536 const Handle<String>& name, uint32_t check_bitset, size_t depth, | 540 const Handle<String>& name, uint32_t check_bitset, size_t depth, |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
579 return new (zone()) Operator1<Unique<String>>( // -- | 583 return new (zone()) Operator1<Unique<String>>( // -- |
580 IrOpcode::kJSCreateCatchContext, Operator::kNoProperties, // opcode | 584 IrOpcode::kJSCreateCatchContext, Operator::kNoProperties, // opcode |
581 "JSCreateCatchContext", // name | 585 "JSCreateCatchContext", // name |
582 2, 1, 1, 1, 1, 2, // counts | 586 2, 1, 1, 1, 1, 2, // counts |
583 name); // parameter | 587 name); // parameter |
584 } | 588 } |
585 | 589 |
586 } // namespace compiler | 590 } // namespace compiler |
587 } // namespace internal | 591 } // namespace internal |
588 } // namespace v8 | 592 } // namespace v8 |
OLD | NEW |