OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 #ifndef V8_X64_ASSEMBLER_X64_INL_H_ | 5 #ifndef V8_X64_ASSEMBLER_X64_INL_H_ |
6 #define V8_X64_ASSEMBLER_X64_INL_H_ | 6 #define V8_X64_ASSEMBLER_X64_INL_H_ |
7 | 7 |
8 #include "src/x64/assembler-x64.h" | 8 #include "src/x64/assembler-x64.h" |
9 | 9 |
10 #include "src/base/cpu.h" | 10 #include "src/base/cpu.h" |
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
345 return Assembler::kSpecialTargetSize; | 345 return Assembler::kSpecialTargetSize; |
346 } else { | 346 } else { |
347 return kPointerSize; | 347 return kPointerSize; |
348 } | 348 } |
349 } | 349 } |
350 | 350 |
351 | 351 |
352 void RelocInfo::set_target_address(Address target, | 352 void RelocInfo::set_target_address(Address target, |
353 WriteBarrierMode write_barrier_mode, | 353 WriteBarrierMode write_barrier_mode, |
354 ICacheFlushMode icache_flush_mode) { | 354 ICacheFlushMode icache_flush_mode) { |
355 DCHECK(IsCodeTarget(rmode_) || IsRuntimeEntry(rmode_)); | 355 DCHECK(IsCodeTarget(rmode_) || IsRuntimeEntry(rmode_) || IsWasmCall(rmode_)); |
356 Assembler::set_target_address_at(isolate_, pc_, host_, target, | 356 Assembler::set_target_address_at(isolate_, pc_, host_, target, |
357 icache_flush_mode); | 357 icache_flush_mode); |
358 if (write_barrier_mode == UPDATE_WRITE_BARRIER && host() != NULL && | 358 if (write_barrier_mode == UPDATE_WRITE_BARRIER && host() != NULL && |
359 IsCodeTarget(rmode_)) { | 359 IsCodeTarget(rmode_)) { |
360 Object* target_code = Code::GetCodeFromTargetAddress(target); | 360 Object* target_code = Code::GetCodeFromTargetAddress(target); |
361 host()->GetHeap()->incremental_marking()->RecordWriteIntoCode( | 361 host()->GetHeap()->incremental_marking()->RecordWriteIntoCode( |
362 host(), this, HeapObject::cast(target_code)); | 362 host(), this, HeapObject::cast(target_code)); |
363 } | 363 } |
364 } | 364 } |
365 | 365 |
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
608 void Operand::set_disp64(int64_t disp) { | 608 void Operand::set_disp64(int64_t disp) { |
609 DCHECK_EQ(1, len_); | 609 DCHECK_EQ(1, len_); |
610 int64_t* p = reinterpret_cast<int64_t*>(&buf_[len_]); | 610 int64_t* p = reinterpret_cast<int64_t*>(&buf_[len_]); |
611 *p = disp; | 611 *p = disp; |
612 len_ += sizeof(disp); | 612 len_ += sizeof(disp); |
613 } | 613 } |
614 } // namespace internal | 614 } // namespace internal |
615 } // namespace v8 | 615 } // namespace v8 |
616 | 616 |
617 #endif // V8_X64_ASSEMBLER_X64_INL_H_ | 617 #endif // V8_X64_ASSEMBLER_X64_INL_H_ |
OLD | NEW |