| OLD | NEW |
| 1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 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 #include "src/code-stub-assembler.h" | 4 #include "src/code-stub-assembler.h" |
| 5 #include "src/code-factory.h" | 5 #include "src/code-factory.h" |
| 6 #include "src/frames-inl.h" | 6 #include "src/frames-inl.h" |
| 7 #include "src/frames.h" | 7 #include "src/frames.h" |
| 8 | 8 |
| 9 namespace v8 { | 9 namespace v8 { |
| 10 namespace internal { | 10 namespace internal { |
| (...skipping 5778 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5789 Node* slot_id) { | 5789 Node* slot_id) { |
| 5790 // This method is used for binary op and compare feedback. These | 5790 // This method is used for binary op and compare feedback. These |
| 5791 // vector nodes are initialized with a smi 0, so we can simply OR | 5791 // vector nodes are initialized with a smi 0, so we can simply OR |
| 5792 // our new feedback in place. | 5792 // our new feedback in place. |
| 5793 Node* previous_feedback = LoadFixedArrayElement(feedback_vector, slot_id); | 5793 Node* previous_feedback = LoadFixedArrayElement(feedback_vector, slot_id); |
| 5794 Node* combined_feedback = SmiOr(previous_feedback, feedback); | 5794 Node* combined_feedback = SmiOr(previous_feedback, feedback); |
| 5795 StoreFixedArrayElement(feedback_vector, slot_id, combined_feedback, | 5795 StoreFixedArrayElement(feedback_vector, slot_id, combined_feedback, |
| 5796 SKIP_WRITE_BARRIER); | 5796 SKIP_WRITE_BARRIER); |
| 5797 } | 5797 } |
| 5798 | 5798 |
| 5799 void CodeStubAssembler::CheckForAssociatedProtector(Node* name, |
| 5800 Label* if_protector) { |
| 5801 // This list must be kept in sync with LookupIterator::UpdateProtector! |
| 5802 // TODO(jkummerow): Would it be faster to have a bit in Symbol::flags()? |
| 5803 GotoIf(WordEqual(name, LoadRoot(Heap::kconstructor_stringRootIndex)), |
| 5804 if_protector); |
| 5805 GotoIf(WordEqual(name, LoadRoot(Heap::kiterator_symbolRootIndex)), |
| 5806 if_protector); |
| 5807 GotoIf(WordEqual(name, LoadRoot(Heap::kspecies_symbolRootIndex)), |
| 5808 if_protector); |
| 5809 GotoIf(WordEqual(name, LoadRoot(Heap::kis_concat_spreadable_symbolRootIndex)), |
| 5810 if_protector); |
| 5811 // Fall through if no case matched. |
| 5812 } |
| 5813 |
| 5799 Node* CodeStubAssembler::LoadReceiverMap(Node* receiver) { | 5814 Node* CodeStubAssembler::LoadReceiverMap(Node* receiver) { |
| 5800 return Select(TaggedIsSmi(receiver), | 5815 return Select(TaggedIsSmi(receiver), |
| 5801 [=] { return LoadRoot(Heap::kHeapNumberMapRootIndex); }, | 5816 [=] { return LoadRoot(Heap::kHeapNumberMapRootIndex); }, |
| 5802 [=] { return LoadMap(receiver); }, | 5817 [=] { return LoadMap(receiver); }, |
| 5803 MachineRepresentation::kTagged); | 5818 MachineRepresentation::kTagged); |
| 5804 } | 5819 } |
| 5805 | 5820 |
| 5806 Node* CodeStubAssembler::TryToIntptr(Node* key, Label* miss) { | 5821 Node* CodeStubAssembler::TryToIntptr(Node* key, Label* miss) { |
| 5807 VARIABLE(var_intptr_key, MachineType::PointerRepresentation()); | 5822 VARIABLE(var_intptr_key, MachineType::PointerRepresentation()); |
| 5808 Label done(this, &var_intptr_key), key_is_smi(this); | 5823 Label done(this, &var_intptr_key), key_is_smi(this); |
| (...skipping 2781 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8590 formatted.c_str(), TENURED); | 8605 formatted.c_str(), TENURED); |
| 8591 CallRuntime(Runtime::kGlobalPrint, NoContextConstant(), | 8606 CallRuntime(Runtime::kGlobalPrint, NoContextConstant(), |
| 8592 HeapConstant(string)); | 8607 HeapConstant(string)); |
| 8593 } | 8608 } |
| 8594 CallRuntime(Runtime::kDebugPrint, NoContextConstant(), tagged_value); | 8609 CallRuntime(Runtime::kDebugPrint, NoContextConstant(), tagged_value); |
| 8595 #endif | 8610 #endif |
| 8596 } | 8611 } |
| 8597 | 8612 |
| 8598 } // namespace internal | 8613 } // namespace internal |
| 8599 } // namespace v8 | 8614 } // namespace v8 |
| OLD | NEW |