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 #if V8_TARGET_ARCH_ARM64 | 5 #if V8_TARGET_ARCH_ARM64 |
6 | 6 |
7 #include "src/base/bits.h" | 7 #include "src/base/bits.h" |
8 #include "src/base/division-by-constant.h" | 8 #include "src/base/division-by-constant.h" |
9 #include "src/bootstrapper.h" | 9 #include "src/bootstrapper.h" |
10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
(...skipping 3072 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3083 // Load allocation limit. Result already contains allocation top. | 3083 // Load allocation limit. Result already contains allocation top. |
3084 Ldr(alloc_limit, MemOperand(top_address, limit - top)); | 3084 Ldr(alloc_limit, MemOperand(top_address, limit - top)); |
3085 } | 3085 } |
3086 | 3086 |
3087 // We can ignore DOUBLE_ALIGNMENT flags here because doubles and pointers have | 3087 // We can ignore DOUBLE_ALIGNMENT flags here because doubles and pointers have |
3088 // the same alignment on ARM64. | 3088 // the same alignment on ARM64. |
3089 STATIC_ASSERT(kPointerAlignment == kDoubleAlignment); | 3089 STATIC_ASSERT(kPointerAlignment == kDoubleAlignment); |
3090 | 3090 |
3091 // Calculate new top and bail out if new space is exhausted. | 3091 // Calculate new top and bail out if new space is exhausted. |
3092 Adds(result_end, result, object_size); | 3092 Adds(result_end, result, object_size); |
3093 Ccmp(result_end, alloc_limit, CFlag, cc); | 3093 Ccmp(result_end, alloc_limit, NoFlag, cc); |
3094 B(hi, gc_required); | 3094 B(hi, gc_required); |
3095 Str(result_end, MemOperand(top_address)); | 3095 Str(result_end, MemOperand(top_address)); |
3096 | 3096 |
3097 // Tag the object if requested. | 3097 // Tag the object if requested. |
3098 if ((flags & TAG_OBJECT) != 0) { | 3098 if ((flags & TAG_OBJECT) != 0) { |
3099 ObjectTag(result, result); | 3099 ObjectTag(result, result); |
3100 } | 3100 } |
3101 } | 3101 } |
3102 | 3102 |
3103 | 3103 |
(...skipping 1977 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5081 } | 5081 } |
5082 | 5082 |
5083 | 5083 |
5084 #undef __ | 5084 #undef __ |
5085 | 5085 |
5086 | 5086 |
5087 } // namespace internal | 5087 } // namespace internal |
5088 } // namespace v8 | 5088 } // namespace v8 |
5089 | 5089 |
5090 #endif // V8_TARGET_ARCH_ARM64 | 5090 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |