| 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 | 4 |
| 5 #ifndef V8_CODE_STUB_ASSEMBLER_H_ | 5 #ifndef V8_CODE_STUB_ASSEMBLER_H_ |
| 6 #define V8_CODE_STUB_ASSEMBLER_H_ | 6 #define V8_CODE_STUB_ASSEMBLER_H_ |
| 7 | 7 |
| 8 #include <functional> | 8 #include <functional> |
| 9 | 9 |
| 10 #include "src/compiler/code-assembler.h" | 10 #include "src/compiler/code-assembler.h" |
| (...skipping 1057 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1068 Node* CreateWeakCellInFeedbackVector(Node* feedback_vector, Node* slot, | 1068 Node* CreateWeakCellInFeedbackVector(Node* feedback_vector, Node* slot, |
| 1069 Node* value); | 1069 Node* value); |
| 1070 | 1070 |
| 1071 // Create a new AllocationSite and install it into a feedback vector. | 1071 // Create a new AllocationSite and install it into a feedback vector. |
| 1072 Node* CreateAllocationSiteInFeedbackVector(Node* feedback_vector, Node* slot); | 1072 Node* CreateAllocationSiteInFeedbackVector(Node* feedback_vector, Node* slot); |
| 1073 | 1073 |
| 1074 enum class IndexAdvanceMode { kPre, kPost }; | 1074 enum class IndexAdvanceMode { kPre, kPost }; |
| 1075 | 1075 |
| 1076 typedef std::function<void(Node* index)> FastLoopBody; | 1076 typedef std::function<void(Node* index)> FastLoopBody; |
| 1077 | 1077 |
| 1078 Node* BuildFastLoop(const VariableList& var_list, | 1078 Node* BuildFastLoop(const VariableList& var_list, Node* start_index, |
| 1079 MachineRepresentation index_rep, Node* start_index, | |
| 1080 Node* end_index, const FastLoopBody& body, int increment, | 1079 Node* end_index, const FastLoopBody& body, int increment, |
| 1081 IndexAdvanceMode mode = IndexAdvanceMode::kPre); | 1080 ParameterMode parameter_mode, |
| 1081 IndexAdvanceMode advance_mode = IndexAdvanceMode::kPre); |
| 1082 | 1082 |
| 1083 Node* BuildFastLoop(MachineRepresentation index_rep, Node* start_index, | 1083 Node* BuildFastLoop(Node* start_index, Node* end_index, |
| 1084 Node* end_index, const FastLoopBody& body, int increment, | 1084 const FastLoopBody& body, int increment, |
| 1085 IndexAdvanceMode mode = IndexAdvanceMode::kPre) { | 1085 ParameterMode parameter_mode, |
| 1086 return BuildFastLoop(VariableList(0, zone()), index_rep, start_index, | 1086 IndexAdvanceMode advance_mode = IndexAdvanceMode::kPre) { |
| 1087 end_index, body, increment, mode); | 1087 return BuildFastLoop(VariableList(0, zone()), start_index, end_index, body, |
| 1088 increment, parameter_mode, advance_mode); |
| 1088 } | 1089 } |
| 1089 | 1090 |
| 1090 enum class ForEachDirection { kForward, kReverse }; | 1091 enum class ForEachDirection { kForward, kReverse }; |
| 1091 | 1092 |
| 1092 typedef std::function<void(Node* fixed_array, Node* offset)> | 1093 typedef std::function<void(Node* fixed_array, Node* offset)> |
| 1093 FastFixedArrayForEachBody; | 1094 FastFixedArrayForEachBody; |
| 1094 | 1095 |
| 1095 void BuildFastFixedArrayForEach( | 1096 void BuildFastFixedArrayForEach( |
| 1096 const CodeStubAssembler::VariableList& vars, Node* fixed_array, | 1097 const CodeStubAssembler::VariableList& vars, Node* fixed_array, |
| 1097 ElementsKind kind, Node* first_element_inclusive, | 1098 ElementsKind kind, Node* first_element_inclusive, |
| (...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1317 } | 1318 } |
| 1318 #else | 1319 #else |
| 1319 #define CSA_SLOW_ASSERT(csa, x) ((void)0) | 1320 #define CSA_SLOW_ASSERT(csa, x) ((void)0) |
| 1320 #endif | 1321 #endif |
| 1321 | 1322 |
| 1322 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); | 1323 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); |
| 1323 | 1324 |
| 1324 } // namespace internal | 1325 } // namespace internal |
| 1325 } // namespace v8 | 1326 } // namespace v8 |
| 1326 #endif // V8_CODE_STUB_ASSEMBLER_H_ | 1327 #endif // V8_CODE_STUB_ASSEMBLER_H_ |
| OLD | NEW |