diff options
Diffstat (limited to 'deps/v8/src/arm64/assembler-arm64-inl.h')
-rw-r--r-- | deps/v8/src/arm64/assembler-arm64-inl.h | 29 |
1 files changed, 8 insertions, 21 deletions
diff --git a/deps/v8/src/arm64/assembler-arm64-inl.h b/deps/v8/src/arm64/assembler-arm64-inl.h index 0c43fbe0e1..72674b87a3 100644 --- a/deps/v8/src/arm64/assembler-arm64-inl.h +++ b/deps/v8/src/arm64/assembler-arm64-inl.h @@ -386,18 +386,16 @@ unsigned Operand::shift_amount() const { Operand Operand::UntagSmi(Register smi) { - STATIC_ASSERT(kXRegSizeInBits == static_cast<unsigned>(kSmiShift + - kSmiValueSize)); DCHECK(smi.Is64Bits()); + DCHECK(SmiValuesAre32Bits() || SmiValuesAre31Bits()); return Operand(smi, ASR, kSmiShift); } Operand Operand::UntagSmiAndScale(Register smi, int scale) { - STATIC_ASSERT(kXRegSizeInBits == static_cast<unsigned>(kSmiShift + - kSmiValueSize)); DCHECK(smi.Is64Bits()); DCHECK((scale >= 0) && (scale <= (64 - kSmiValueSize))); + DCHECK(SmiValuesAre32Bits() || SmiValuesAre31Bits()); if (scale > kSmiShift) { return Operand(smi, LSL, scale - kSmiShift); } else if (scale < kSmiShift) { @@ -551,11 +549,8 @@ Handle<Code> Assembler::code_target_object_handle_at(Address pc) { Assembler::target_address_at(pc, 0 /* unused */))); } else { DCHECK(instr->IsBranchAndLink() || instr->IsUnconditionalBranch()); - DCHECK_GE(instr->ImmPCOffset(), 0); DCHECK_EQ(instr->ImmPCOffset() % kInstructionSize, 0); - DCHECK_LT(instr->ImmPCOffset() >> kInstructionSizeLog2, - code_targets_.size()); - return code_targets_[instr->ImmPCOffset() >> kInstructionSizeLog2]; + return GetCodeTarget(instr->ImmPCOffset() >> kInstructionSizeLog2); } } @@ -565,7 +560,7 @@ Address Assembler::runtime_entry_at(Address pc) { return Assembler::target_address_at(pc, 0 /* unused */); } else { DCHECK(instr->IsBranchAndLink() || instr->IsUnconditionalBranch()); - return instr->ImmPCOffset() + isolate_data().code_range_start_; + return instr->ImmPCOffset() + options().code_range_start; } } @@ -708,7 +703,7 @@ Handle<HeapObject> RelocInfo::target_object_handle(Assembler* origin) { } } -void RelocInfo::set_target_object(HeapObject* target, +void RelocInfo::set_target_object(Heap* heap, HeapObject* target, WriteBarrierMode write_barrier_mode, ICacheFlushMode icache_flush_mode) { DCHECK(IsCodeTarget(rmode_) || rmode_ == EMBEDDED_OBJECT); @@ -716,9 +711,8 @@ void RelocInfo::set_target_object(HeapObject* target, reinterpret_cast<Address>(target), icache_flush_mode); if (write_barrier_mode == UPDATE_WRITE_BARRIER && host() != nullptr) { - host()->GetHeap()->incremental_marking()->RecordWriteIntoCode(host(), this, - target); - host()->GetHeap()->RecordWriteIntoCode(host(), this, target); + heap->incremental_marking()->RecordWriteIntoCode(host(), this, target); + heap->RecordWriteIntoCode(host(), this, target); } } @@ -746,13 +740,6 @@ Address RelocInfo::target_internal_reference_address() { return pc_; } -void RelocInfo::set_wasm_code_table_entry(Address target, - ICacheFlushMode icache_flush_mode) { - DCHECK(rmode_ == RelocInfo::WASM_CODE_TABLE_ENTRY); - Assembler::set_target_address_at(pc_, constant_pool_, target, - icache_flush_mode); -} - Address RelocInfo::target_runtime_entry(Assembler* origin) { DCHECK(IsRuntimeEntry(rmode_)); return origin->runtime_entry_at(pc_); @@ -788,7 +775,7 @@ void RelocInfo::Visit(ObjectVisitor* visitor) { RelocInfo::Mode mode = rmode(); if (mode == RelocInfo::EMBEDDED_OBJECT) { visitor->VisitEmbeddedPointer(host(), this); - } else if (RelocInfo::IsCodeTarget(mode)) { + } else if (RelocInfo::IsCodeTargetMode(mode)) { visitor->VisitCodeTarget(host(), this); } else if (mode == RelocInfo::EXTERNAL_REFERENCE) { visitor->VisitExternalReference(host(), this); |