OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // | 2 // |
3 // Redistribution and use in source and binary forms, with or without | 3 // Redistribution and use in source and binary forms, with or without |
4 // modification, are permitted provided that the following conditions are | 4 // modification, are permitted provided that the following conditions are |
5 // met: | 5 // met: |
6 // | 6 // |
7 // * Redistributions of source code must retain the above copyright | 7 // * Redistributions of source code must retain the above copyright |
8 // notice, this list of conditions and the following disclaimer. | 8 // notice, this list of conditions and the following disclaimer. |
9 // * Redistributions in binary form must reproduce the above | 9 // * Redistributions in binary form must reproduce the above |
10 // copyright notice, this list of conditions and the following | 10 // copyright notice, this list of conditions and the following |
(...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
433 unique_entries_.clear(); | 433 unique_entries_.clear(); |
434 first_use_ = -1; | 434 first_use_ = -1; |
435 } | 435 } |
436 | 436 |
437 | 437 |
438 bool ConstPool::CanBeShared(RelocInfo::Mode mode) { | 438 bool ConstPool::CanBeShared(RelocInfo::Mode mode) { |
439 // Constant pool currently does not support 32-bit entries. | 439 // Constant pool currently does not support 32-bit entries. |
440 DCHECK(mode != RelocInfo::NONE32); | 440 DCHECK(mode != RelocInfo::NONE32); |
441 | 441 |
442 return RelocInfo::IsNone(mode) || | 442 return RelocInfo::IsNone(mode) || |
443 (!assm_->serializer_enabled() && | 443 (!assm_->serializer_enabled() && (mode >= RelocInfo::CELL)); |
444 (mode >= RelocInfo::FIRST_SHAREABLE_RELOC_MODE)); | |
445 } | 444 } |
446 | 445 |
447 | 446 |
448 void ConstPool::EmitMarker() { | 447 void ConstPool::EmitMarker() { |
449 // A constant pool size is expressed in number of 32-bits words. | 448 // A constant pool size is expressed in number of 32-bits words. |
450 // Currently all entries are 64-bit. | 449 // Currently all entries are 64-bit. |
451 // + 1 is for the crash guard. | 450 // + 1 is for the crash guard. |
452 // + 0/1 for alignment. | 451 // + 0/1 for alignment. |
453 int word_count = EntryCount() * 2 + 1 + | 452 int word_count = EntryCount() * 2 + 1 + |
454 (IsAligned(assm_->pc_offset(), 8) ? 0 : 1); | 453 (IsAligned(assm_->pc_offset(), 8) ? 0 : 1); |
(...skipping 2686 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3141 movk(scratch, (target_offset >> 32) & 0xFFFF, 32); | 3140 movk(scratch, (target_offset >> 32) & 0xFFFF, 32); |
3142 DCHECK((target_offset >> 48) == 0); | 3141 DCHECK((target_offset >> 48) == 0); |
3143 add(rd, rd, scratch); | 3142 add(rd, rd, scratch); |
3144 } | 3143 } |
3145 | 3144 |
3146 | 3145 |
3147 } // namespace internal | 3146 } // namespace internal |
3148 } // namespace v8 | 3147 } // namespace v8 |
3149 | 3148 |
3150 #endif // V8_TARGET_ARCH_ARM64 | 3149 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |