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 4124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4135 Node* capacity = IntPtrRoundUpToPowerOfTwo32( | 4135 Node* capacity = IntPtrRoundUpToPowerOfTwo32( |
4136 WordShl(at_least_space_for, IntPtrConstant(1))); | 4136 WordShl(at_least_space_for, IntPtrConstant(1))); |
4137 return IntPtrMax(capacity, IntPtrConstant(HashTableBase::kMinCapacity)); | 4137 return IntPtrMax(capacity, IntPtrConstant(HashTableBase::kMinCapacity)); |
4138 } | 4138 } |
4139 | 4139 |
4140 Node* CodeStubAssembler::IntPtrMax(Node* left, Node* right) { | 4140 Node* CodeStubAssembler::IntPtrMax(Node* left, Node* right) { |
4141 return Select(IntPtrGreaterThanOrEqual(left, right), left, right, | 4141 return Select(IntPtrGreaterThanOrEqual(left, right), left, right, |
4142 MachineType::PointerRepresentation()); | 4142 MachineType::PointerRepresentation()); |
4143 } | 4143 } |
4144 | 4144 |
| 4145 Node* CodeStubAssembler::IntPtrMin(Node* left, Node* right) { |
| 4146 return Select(IntPtrLessThanOrEqual(left, right), left, right, |
| 4147 MachineType::PointerRepresentation()); |
| 4148 } |
| 4149 |
4145 template <class Dictionary> | 4150 template <class Dictionary> |
4146 Node* CodeStubAssembler::GetNumberOfElements(Node* dictionary) { | 4151 Node* CodeStubAssembler::GetNumberOfElements(Node* dictionary) { |
4147 return LoadFixedArrayElement( | 4152 return LoadFixedArrayElement( |
4148 dictionary, IntPtrConstant(Dictionary::kNumberOfElementsIndex), 0, | 4153 dictionary, IntPtrConstant(Dictionary::kNumberOfElementsIndex), 0, |
4149 INTPTR_PARAMETERS); | 4154 INTPTR_PARAMETERS); |
4150 } | 4155 } |
4151 | 4156 |
4152 template <class Dictionary> | 4157 template <class Dictionary> |
4153 void CodeStubAssembler::SetNumberOfElements(Node* dictionary, | 4158 void CodeStubAssembler::SetNumberOfElements(Node* dictionary, |
4154 Node* num_elements_smi) { | 4159 Node* num_elements_smi) { |
(...skipping 3815 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7970 | 7975 |
7971 Node* CodeStubAssembler::IsDebugActive() { | 7976 Node* CodeStubAssembler::IsDebugActive() { |
7972 Node* is_debug_active = Load( | 7977 Node* is_debug_active = Load( |
7973 MachineType::Uint8(), | 7978 MachineType::Uint8(), |
7974 ExternalConstant(ExternalReference::debug_is_active_address(isolate()))); | 7979 ExternalConstant(ExternalReference::debug_is_active_address(isolate()))); |
7975 return WordNotEqual(is_debug_active, Int32Constant(0)); | 7980 return WordNotEqual(is_debug_active, Int32Constant(0)); |
7976 } | 7981 } |
7977 | 7982 |
7978 } // namespace internal | 7983 } // namespace internal |
7979 } // namespace v8 | 7984 } // namespace v8 |
OLD | NEW |