Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Side by Side Diff: src/code-stub-assembler.h

Issue 2645743002: [builtins] Port parameter and argument-related code stubs to CSA (Closed)
Patch Set: Remove stray change Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 366 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 // prototype info object or not. 377 // prototype info object or not.
378 Node* LoadMapPrototypeInfo(Node* map, Label* if_has_no_proto_info); 378 Node* LoadMapPrototypeInfo(Node* map, Label* if_has_no_proto_info);
379 // Load the instance size of a Map. 379 // Load the instance size of a Map.
380 Node* LoadMapInstanceSize(Node* map); 380 Node* LoadMapInstanceSize(Node* map);
381 // Load the inobject properties count of a Map (valid only for JSObjects). 381 // Load the inobject properties count of a Map (valid only for JSObjects).
382 Node* LoadMapInobjectProperties(Node* map); 382 Node* LoadMapInobjectProperties(Node* map);
383 // Load the constructor function index of a Map (only for primitive maps). 383 // Load the constructor function index of a Map (only for primitive maps).
384 Node* LoadMapConstructorFunctionIndex(Node* map); 384 Node* LoadMapConstructorFunctionIndex(Node* map);
385 // Load the constructor of a Map (equivalent to Map::GetConstructor()). 385 // Load the constructor of a Map (equivalent to Map::GetConstructor()).
386 Node* LoadMapConstructor(Node* map); 386 Node* LoadMapConstructor(Node* map);
387 // Loads a value from the specially encoded integer fields in the
388 // SharedFunctionInfo object.
389 // TODO(danno): This currently only works for the integer fields that are
390 // mapped to the upper part of 64-bit words. We should customize
391 // SFI::BodyDescriptor and store int32 values directly.
392 Node* LoadSharedFunctionInfoSpecialField(Node* shared, int offset,
393 ParameterMode param_mode);
394
387 // Check if the map is set for slow properties. 395 // Check if the map is set for slow properties.
388 Node* IsDictionaryMap(Node* map); 396 Node* IsDictionaryMap(Node* map);
389 397
390 // Load the hash field of a name as an uint32 value. 398 // Load the hash field of a name as an uint32 value.
391 Node* LoadNameHashField(Node* name); 399 Node* LoadNameHashField(Node* name);
392 // Load the hash value of a name as an uint32 value. 400 // Load the hash value of a name as an uint32 value.
393 // If {if_hash_not_computed} label is specified then it also checks if 401 // If {if_hash_not_computed} label is specified then it also checks if
394 // hash is actually computed. 402 // hash is actually computed.
395 Node* LoadNameHash(Node* name, Label* if_hash_not_computed = nullptr); 403 Node* LoadNameHash(Node* name, Label* if_hash_not_computed = nullptr);
396 404
(...skipping 716 matching lines...) Expand 10 before | Expand all | Expand 10 after
1113 ParameterMode mode, int header_size) { 1121 ParameterMode mode, int header_size) {
1114 return ElementOffsetFromIndex(element_count, kind, mode, header_size); 1122 return ElementOffsetFromIndex(element_count, kind, mode, header_size);
1115 } 1123 }
1116 1124
1117 Node* GetFixedArrayAllocationSize(Node* element_count, ElementsKind kind, 1125 Node* GetFixedArrayAllocationSize(Node* element_count, ElementsKind kind,
1118 ParameterMode mode) { 1126 ParameterMode mode) {
1119 return GetArrayAllocationSize(element_count, kind, mode, 1127 return GetArrayAllocationSize(element_count, kind, mode,
1120 FixedArray::kHeaderSize); 1128 FixedArray::kHeaderSize);
1121 } 1129 }
1122 1130
1131 void GotoIfFixedArraySizeDoesntFitInNewSpace(Node* element_count,
1132 Label* doesnt_fit, int base_size,
1133 ParameterMode mode);
1134
1123 void InitializeFieldsWithRoot(Node* object, Node* start_offset, 1135 void InitializeFieldsWithRoot(Node* object, Node* start_offset,
1124 Node* end_offset, Heap::RootListIndex root); 1136 Node* end_offset, Heap::RootListIndex root);
1125 1137
1126 enum RelationalComparisonMode { 1138 enum RelationalComparisonMode {
1127 kLessThan, 1139 kLessThan,
1128 kLessThanOrEqual, 1140 kLessThanOrEqual,
1129 kGreaterThan, 1141 kGreaterThan,
1130 kGreaterThanOrEqual 1142 kGreaterThanOrEqual
1131 }; 1143 };
1132 1144
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
1317 } 1329 }
1318 #else 1330 #else
1319 #define CSA_SLOW_ASSERT(csa, x) ((void)0) 1331 #define CSA_SLOW_ASSERT(csa, x) ((void)0)
1320 #endif 1332 #endif
1321 1333
1322 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); 1334 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags);
1323 1335
1324 } // namespace internal 1336 } // namespace internal
1325 } // namespace v8 1337 } // namespace v8
1326 #endif // V8_CODE_STUB_ASSEMBLER_H_ 1338 #endif // V8_CODE_STUB_ASSEMBLER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698