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 1953 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1964 | 1964 |
1965 | 1965 |
1966 // MacroAssembler::CallSize is sensitive to changes in this function, as it | 1966 // MacroAssembler::CallSize is sensitive to changes in this function, as it |
1967 // requires to know how many instructions are used to branch to the target. | 1967 // requires to know how many instructions are used to branch to the target. |
1968 void MacroAssembler::Call(Address target, RelocInfo::Mode rmode) { | 1968 void MacroAssembler::Call(Address target, RelocInfo::Mode rmode) { |
1969 BlockPoolsScope scope(this); | 1969 BlockPoolsScope scope(this); |
1970 #ifdef DEBUG | 1970 #ifdef DEBUG |
1971 Label start_call; | 1971 Label start_call; |
1972 Bind(&start_call); | 1972 Bind(&start_call); |
1973 #endif | 1973 #endif |
1974 // Statement positions are expected to be recorded when the target | |
1975 // address is loaded. | |
1976 positions_recorder()->WriteRecordedPositions(); | |
1977 | 1974 |
1978 // Addresses always have 64 bits, so we shouldn't encounter NONE32. | 1975 // Addresses always have 64 bits, so we shouldn't encounter NONE32. |
1979 DCHECK(rmode != RelocInfo::NONE32); | 1976 DCHECK(rmode != RelocInfo::NONE32); |
1980 | 1977 |
1981 UseScratchRegisterScope temps(this); | 1978 UseScratchRegisterScope temps(this); |
1982 Register temp = temps.AcquireX(); | 1979 Register temp = temps.AcquireX(); |
1983 | 1980 |
1984 if (rmode == RelocInfo::NONE64) { | 1981 if (rmode == RelocInfo::NONE64) { |
1985 // Addresses are 48 bits so we never need to load the upper 16 bits. | 1982 // Addresses are 48 bits so we never need to load the upper 16 bits. |
1986 uint64_t imm = reinterpret_cast<uint64_t>(target); | 1983 uint64_t imm = reinterpret_cast<uint64_t>(target); |
(...skipping 3162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5149 } | 5146 } |
5150 | 5147 |
5151 | 5148 |
5152 #undef __ | 5149 #undef __ |
5153 | 5150 |
5154 | 5151 |
5155 } // namespace internal | 5152 } // namespace internal |
5156 } // namespace v8 | 5153 } // namespace v8 |
5157 | 5154 |
5158 #endif // V8_TARGET_ARCH_ARM64 | 5155 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |