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_SRC_IC_ACCESSOR_ASSEMBLER_IMPL_H_ | 5 #ifndef V8_SRC_IC_ACCESSOR_ASSEMBLER_IMPL_H_ |
6 #define V8_SRC_IC_ACCESSOR_ASSEMBLER_IMPL_H_ | 6 #define V8_SRC_IC_ACCESSOR_ASSEMBLER_IMPL_H_ |
7 | 7 |
8 #include "src/code-stub-assembler.h" | 8 #include "src/code-stub-assembler.h" |
9 | 9 |
10 namespace v8 { | 10 namespace v8 { |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
153 void HandleStoreICSmiHandlerCase(Node* handler_word, Node* holder, | 153 void HandleStoreICSmiHandlerCase(Node* handler_word, Node* holder, |
154 Node* value, Node* transition, Label* miss); | 154 Node* value, Node* transition, Label* miss); |
155 // If |transition| is nullptr then the normal field store is generated or | 155 // If |transition| is nullptr then the normal field store is generated or |
156 // transitioning store otherwise. | 156 // transitioning store otherwise. |
157 void HandleStoreFieldAndReturn(Node* handler_word, Node* holder, | 157 void HandleStoreFieldAndReturn(Node* handler_word, Node* holder, |
158 Representation representation, Node* value, | 158 Representation representation, Node* value, |
159 Node* transition, Label* miss); | 159 Node* transition, Label* miss); |
160 | 160 |
161 // Low-level helpers. | 161 // Low-level helpers. |
162 | 162 |
| 163 Node* PrepareValueForStore(Node* handler_word, Node* holder, |
| 164 Representation representation, Node* transition, |
| 165 Node* value, Label* bailout); |
| 166 |
| 167 // Extends properties backing store by JSObject::kFieldsAdded elements. |
| 168 void ExtendPropertiesBackingStore(Node* object); |
| 169 |
| 170 void StoreNamedField(Node* object, Node* offset, bool is_inobject, |
| 171 Representation representation, Node* value, |
| 172 bool transition_to_field); |
| 173 |
163 void EmitFastElementsBoundsCheck(Node* object, Node* elements, | 174 void EmitFastElementsBoundsCheck(Node* object, Node* elements, |
164 Node* intptr_index, | 175 Node* intptr_index, |
165 Node* is_jsarray_condition, Label* miss); | 176 Node* is_jsarray_condition, Label* miss); |
166 void EmitElementLoad(Node* object, Node* elements, Node* elements_kind, | 177 void EmitElementLoad(Node* object, Node* elements, Node* elements_kind, |
167 Node* key, Node* is_jsarray_condition, Label* if_hole, | 178 Node* key, Node* is_jsarray_condition, Label* if_hole, |
168 Label* rebox_double, Variable* var_double_value, | 179 Label* rebox_double, Variable* var_double_value, |
169 Label* unimplemented_elements_kind, Label* out_of_bounds, | 180 Label* unimplemented_elements_kind, Label* out_of_bounds, |
170 Label* miss); | 181 Label* miss); |
171 void CheckPrototype(Node* prototype_cell, Node* name, Label* miss); | 182 void CheckPrototype(Node* prototype_cell, Node* name, Label* miss); |
172 void NameDictionaryNegativeLookup(Node* object, Node* name, Label* miss); | 183 void NameDictionaryNegativeLookup(Node* object, Node* name, Label* miss); |
(...skipping 10 matching lines...) Expand all Loading... |
183 void TryProbeStubCacheTable(StubCache* stub_cache, StubCacheTable table_id, | 194 void TryProbeStubCacheTable(StubCache* stub_cache, StubCacheTable table_id, |
184 Node* entry_offset, Node* name, Node* map, | 195 Node* entry_offset, Node* name, Node* map, |
185 Label* if_handler, Variable* var_handler, | 196 Label* if_handler, Variable* var_handler, |
186 Label* if_miss); | 197 Label* if_miss); |
187 }; | 198 }; |
188 | 199 |
189 } // namespace internal | 200 } // namespace internal |
190 } // namespace v8 | 201 } // namespace v8 |
191 | 202 |
192 #endif // V8_SRC_IC_ACCESSOR_ASSEMBLER_IMPL_H_ | 203 #endif // V8_SRC_IC_ACCESSOR_ASSEMBLER_IMPL_H_ |
OLD | NEW |