OLD | NEW |
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 #include "v8.h" | 5 #include "v8.h" |
6 | 6 |
7 #if V8_TARGET_ARCH_ARM64 | 7 #if V8_TARGET_ARCH_ARM64 |
8 | 8 |
9 #include "bootstrapper.h" | 9 #include "bootstrapper.h" |
10 #include "codegen.h" | 10 #include "codegen.h" |
(...skipping 3521 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3532 scratch1, | 3532 scratch1, |
3533 scratch2); | 3533 scratch2); |
3534 } | 3534 } |
3535 | 3535 |
3536 | 3536 |
3537 void MacroAssembler::AllocateAsciiConsString(Register result, | 3537 void MacroAssembler::AllocateAsciiConsString(Register result, |
3538 Register length, | 3538 Register length, |
3539 Register scratch1, | 3539 Register scratch1, |
3540 Register scratch2, | 3540 Register scratch2, |
3541 Label* gc_required) { | 3541 Label* gc_required) { |
3542 Label allocate_new_space, install_map; | |
3543 AllocationFlags flags = TAG_OBJECT; | |
3544 | |
3545 ExternalReference high_promotion_mode = ExternalReference:: | |
3546 new_space_high_promotion_mode_active_address(isolate()); | |
3547 Mov(scratch1, high_promotion_mode); | |
3548 Ldr(scratch1, MemOperand(scratch1)); | |
3549 Cbz(scratch1, &allocate_new_space); | |
3550 | |
3551 Allocate(ConsString::kSize, | 3542 Allocate(ConsString::kSize, |
3552 result, | 3543 result, |
3553 scratch1, | 3544 scratch1, |
3554 scratch2, | 3545 scratch2, |
3555 gc_required, | 3546 gc_required, |
3556 static_cast<AllocationFlags>(flags | PRETENURE_OLD_POINTER_SPACE)); | 3547 TAG_OBJECT); |
3557 | |
3558 B(&install_map); | |
3559 | |
3560 Bind(&allocate_new_space); | |
3561 Allocate(ConsString::kSize, | |
3562 result, | |
3563 scratch1, | |
3564 scratch2, | |
3565 gc_required, | |
3566 flags); | |
3567 | |
3568 Bind(&install_map); | |
3569 | 3548 |
3570 InitializeNewString(result, | 3549 InitializeNewString(result, |
3571 length, | 3550 length, |
3572 Heap::kConsAsciiStringMapRootIndex, | 3551 Heap::kConsAsciiStringMapRootIndex, |
3573 scratch1, | 3552 scratch1, |
3574 scratch2); | 3553 scratch2); |
3575 } | 3554 } |
3576 | 3555 |
3577 | 3556 |
3578 void MacroAssembler::AllocateTwoByteSlicedString(Register result, | 3557 void MacroAssembler::AllocateTwoByteSlicedString(Register result, |
(...skipping 1697 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5276 } | 5255 } |
5277 } | 5256 } |
5278 | 5257 |
5279 | 5258 |
5280 #undef __ | 5259 #undef __ |
5281 | 5260 |
5282 | 5261 |
5283 } } // namespace v8::internal | 5262 } } // namespace v8::internal |
5284 | 5263 |
5285 #endif // V8_TARGET_ARCH_ARM64 | 5264 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |