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 4768 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4779 BlockConstPoolFor(1); | 4779 BlockConstPoolFor(1); |
4780 } | 4780 } |
4781 | 4781 |
4782 if (!RelocInfo::IsNone(rmode)) { | 4782 if (!RelocInfo::IsNone(rmode)) { |
4783 // Don't record external references unless the heap will be serialized. | 4783 // Don't record external references unless the heap will be serialized. |
4784 if (rmode == RelocInfo::EXTERNAL_REFERENCE && | 4784 if (rmode == RelocInfo::EXTERNAL_REFERENCE && |
4785 !serializer_enabled() && !emit_debug_code()) { | 4785 !serializer_enabled() && !emit_debug_code()) { |
4786 return; | 4786 return; |
4787 } | 4787 } |
4788 DCHECK(buffer_space() >= kMaxRelocSize); // too late to grow buffer here | 4788 DCHECK(buffer_space() >= kMaxRelocSize); // too late to grow buffer here |
4789 DCHECK(rmode != RelocInfo::CODE_TARGET_WITH_ID); | |
4790 reloc_info_writer.Write(&rinfo); | 4789 reloc_info_writer.Write(&rinfo); |
4791 } | 4790 } |
4792 } | 4791 } |
4793 | 4792 |
4794 | 4793 |
4795 void Assembler::BlockConstPoolFor(int instructions) { | 4794 void Assembler::BlockConstPoolFor(int instructions) { |
4796 int pc_limit = pc_offset() + instructions * kInstructionSize; | 4795 int pc_limit = pc_offset() + instructions * kInstructionSize; |
4797 if (no_const_pool_before_ < pc_limit) { | 4796 if (no_const_pool_before_ < pc_limit) { |
4798 no_const_pool_before_ = pc_limit; | 4797 no_const_pool_before_ = pc_limit; |
4799 // Make sure the pool won't be blocked for too long. | 4798 // Make sure the pool won't be blocked for too long. |
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5020 movk(scratch, (target_offset >> 32) & 0xFFFF, 32); | 5019 movk(scratch, (target_offset >> 32) & 0xFFFF, 32); |
5021 DCHECK((target_offset >> 48) == 0); | 5020 DCHECK((target_offset >> 48) == 0); |
5022 add(rd, rd, scratch); | 5021 add(rd, rd, scratch); |
5023 } | 5022 } |
5024 | 5023 |
5025 | 5024 |
5026 } // namespace internal | 5025 } // namespace internal |
5027 } // namespace v8 | 5026 } // namespace v8 |
5028 | 5027 |
5029 #endif // V8_TARGET_ARCH_ARM64 | 5028 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |