| 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 |