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

Side by Side Diff: src/arm64/macro-assembler-arm64.h

Issue 1899813003: [crankshaft] Fragmentation-free allocation folding. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 7 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
« no previous file with comments | « src/arm/macro-assembler-arm.cc ('k') | src/arm64/macro-assembler-arm64.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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_ARM64_MACRO_ASSEMBLER_ARM64_H_ 5 #ifndef V8_ARM64_MACRO_ASSEMBLER_ARM64_H_
6 #define V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ 6 #define V8_ARM64_MACRO_ASSEMBLER_ARM64_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "src/arm64/assembler-arm64.h" 10 #include "src/arm64/assembler-arm64.h"
(...skipping 1294 matching lines...) Expand 10 before | Expand all | Expand 10 after
1305 1305
1306 // --------------------------------------------------------------------------- 1306 // ---------------------------------------------------------------------------
1307 // Allocation support 1307 // Allocation support
1308 1308
1309 // Allocate an object in new space or old space. The object_size is 1309 // Allocate an object in new space or old space. The object_size is
1310 // specified either in bytes or in words if the allocation flag SIZE_IN_WORDS 1310 // specified either in bytes or in words if the allocation flag SIZE_IN_WORDS
1311 // is passed. The allocated object is returned in result. 1311 // is passed. The allocated object is returned in result.
1312 // 1312 //
1313 // If the new space is exhausted control continues at the gc_required label. 1313 // If the new space is exhausted control continues at the gc_required label.
1314 // In this case, the result and scratch registers may still be clobbered. 1314 // In this case, the result and scratch registers may still be clobbered.
1315 // If flags includes TAG_OBJECT, the result is tagged as as a heap object.
1316 void Allocate(Register object_size, Register result, Register result_end, 1315 void Allocate(Register object_size, Register result, Register result_end,
1317 Register scratch, Label* gc_required, AllocationFlags flags); 1316 Register scratch, Label* gc_required, AllocationFlags flags);
1318 1317
1319 void Allocate(int object_size, 1318 void Allocate(int object_size,
1320 Register result, 1319 Register result,
1321 Register scratch1, 1320 Register scratch1,
1322 Register scratch2, 1321 Register scratch2,
1323 Label* gc_required, 1322 Label* gc_required,
1324 AllocationFlags flags); 1323 AllocationFlags flags);
1325 1324
1325 // FastAllocate is right now only used for folded allocations. It just
1326 // increments the top pointer without checking against limit. This can only
1327 // be done if it was proved earlier that the allocation will succeed.
1328 void FastAllocate(Register object_size, Register result, Register result_end,
1329 Register scratch, AllocationFlags flags);
1330
1331 void FastAllocate(int object_size, Register result, Register scratch1,
1332 Register scratch2, AllocationFlags flags);
1333
1326 void AllocateTwoByteString(Register result, 1334 void AllocateTwoByteString(Register result,
1327 Register length, 1335 Register length,
1328 Register scratch1, 1336 Register scratch1,
1329 Register scratch2, 1337 Register scratch2,
1330 Register scratch3, 1338 Register scratch3,
1331 Label* gc_required); 1339 Label* gc_required);
1332 void AllocateOneByteString(Register result, Register length, 1340 void AllocateOneByteString(Register result, Register length,
1333 Register scratch1, Register scratch2, 1341 Register scratch1, Register scratch2,
1334 Register scratch3, Label* gc_required); 1342 Register scratch3, Label* gc_required);
1335 void AllocateTwoByteConsString(Register result, 1343 void AllocateTwoByteConsString(Register result,
(...skipping 942 matching lines...) Expand 10 before | Expand all | Expand 10 after
2278 #error "Unsupported option" 2286 #error "Unsupported option"
2279 #define CODE_COVERAGE_STRINGIFY(x) #x 2287 #define CODE_COVERAGE_STRINGIFY(x) #x
2280 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) 2288 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x)
2281 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 2289 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
2282 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 2290 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
2283 #else 2291 #else
2284 #define ACCESS_MASM(masm) masm-> 2292 #define ACCESS_MASM(masm) masm->
2285 #endif 2293 #endif
2286 2294
2287 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ 2295 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_
OLDNEW
« no previous file with comments | « src/arm/macro-assembler-arm.cc ('k') | src/arm64/macro-assembler-arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698