summaryrefslogtreecommitdiff
path: root/deps/v8/src/arm64/assembler-arm64-inl.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/arm64/assembler-arm64-inl.h')
-rw-r--r--deps/v8/src/arm64/assembler-arm64-inl.h29
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);